{"owner":"onlook-dev","repo":"onlook","hasSkills":true,"totalSkillsCount":92,"totalTokensCount":30014,"categories":["claude-rule","anthropic-skill","root-instruction","plugin-manifest"],"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","packages/utility/tsconfig.json","packages/utility/package.json","packages/ui/components.json","packages/ui/package.json","AGENTS.md","packages/ui/tsconfig.json","packages/types/package.json","packages/types/tsconfig.json","packages/stripe/package.json","packages/stripe/tsconfig.json","packages/scripts/package.json","packages/scripts/tsconfig.json","packages/rpc/package.json","packages/rpc/tsconfig.json","packages/penpal/package.json","packages/penpal/tsconfig.json","packages/parser/package.json","packages/parser/tsconfig.json","packages/models/package.json","packages/models/tsconfig.json","packages/image-server/package.json","packages/image-server/README.md","packages/image-server/tsconfig.json","packages/growth/package.json","packages/growth/tsconfig.json","packages/github/package.json","packages/github/README.md","packages/github/tsconfig.json","packages/git/package.json","packages/git/tsconfig.json","packages/fonts/package.json","packages/fonts/tsconfig.json","packages/file-system/package.json","packages/file-system/README.md","packages/file-system/tsconfig.json","packages/email/package.json","packages/email/tsconfig.json","packages/db/package.json","packages/db/tsconfig.json","packages/constants/package.json","packages/constants/tsconfig.json","packages/code-provider/package.json","packages/code-provider/tsconfig.json","packages/ai/package.json","packages/ai/tsconfig.json","packages/db/src/migration-scripts/README.md","packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json","packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json","packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json","packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json","packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json","packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json","packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json","packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json","packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json","packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json","packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json","packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json","packages/fonts/test/data/generate-font-variable-export/special-characters/config.json","packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json","packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json","packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json","packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json","packages/fonts/test/data/create-local-font-config/complex-font-name/config.json","packages/fonts/test/data/create-local-font-config/basic-local-font/config.json","packages/fonts/test/data/create-font-src-objects/optional-properties/config.json","packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json","packages/fonts/test/data/create-font-src-objects/basic-sources/config.json","packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json","packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json","packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json","packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json","packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json","packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json","packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json","packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json","packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json","packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json"],"skills":{"CLAUDE.md":"## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n","packages/utility/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\", \"test\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/utility/package.json":"{\n    \"name\": \"@onlook/utility\",\n    \"description\": \"A utility library for Onlook\",\n    \"main\": \"./src/index.ts\",\n    \"type\": \"module\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"utility\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"@types/culori\": \"^2.0.4\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"dependencies\": {\n        \"@onlook/fonts\": \"*\",\n        \"@onlook/constants\": \"*\",\n        \"browser-image-compression\": \"^2.0.2\",\n        \"culori\": \"^4.0.1\",\n        \"free-email-domains\": \"^1.2.16\",\n        \"is-subdir\": \"^1.2.0\",\n        \"mime-lite\": \"^1.0.3\",\n        \"normalize-url\": \"^8.0.2\",\n        \"strip-ansi\": \"^7.1.0\",\n        \"tailwind-merge\": \"^3.3.1\",\n        \"tldts\": \"^6.1.82\",\n        \"uuid\": \"^11.1.0\"\n    }\n}\n","packages/ui/components.json":"{\n    \"$schema\": \"https://ui.shadcn.com/schema.json\",\n    \"style\": \"new-york\",\n    \"rsc\": false,\n    \"tsx\": true,\n    \"tailwind\": {\n        \"config\": \"tailwind.config.ts\",\n        \"css\": \"src/globals.css\",\n        \"baseColor\": \"stone\",\n        \"cssVariables\": true,\n        \"prefix\": \"\"\n    },\n    \"aliases\": {\n        \"components\": \"@/components\",\n        \"hooks\": \"@/hooks\",\n        \"lib\": \"@/lib\",\n        \"ui\": \"@/components\",\n        \"utils\": \"@/utils\"\n    }\n}\n","packages/ui/package.json":"{\n    \"name\": \"@onlook/ui\",\n    \"description\": \"A tailwind ui library for Onlook\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"type\": \"module\",\n    \"main\": \"src/index.ts\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"files\": [\n        \"tokens.ts\",\n        \"tailwind.config.ts\",\n        \"postcss.config.js\",\n        \"globals.css\"\n    ],\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"ui\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"@onlook/utility\": \"*\",\n        \"@types/color-namer\": \"^1.3.3\",\n        \"eslint\": \"^9.0.0\",\n        \"react\": \"^18.3.1\",\n        \"react-dom\": \"^18.3.1\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"exports\": {\n        \"./*\": \"./src/components/*.tsx\",\n        \"./icons\": \"./src/components/icons/index.tsx\",\n        \"./color-picker\": \"./src/components/color-picker/index.tsx\",\n        \"./ai-elements\": \"./src/components/ai-elements/index.tsx\",\n        \"./tokens\": \"./tokens.ts\",\n        \"./tailwind.config\": \"./tailwind.config.ts\",\n        \"./postcss\": \"./postcss.config.js\",\n        \"./globals.css\": \"./src/globals.css\",\n        \"./utils\": \"./src/utils/index.ts\",\n        \"./hooks\": \"./src/hooks/index.ts\"\n    },\n    \"dependencies\": {\n        \"@ai-sdk/ui-utils\": \"^1.2.11\",\n        \"@emotion/react\": \"^11.13.3\",\n        \"@emotion/styled\": \"^11.13.0\",\n        \"@hookform/resolvers\": \"^5.0.1\",\n        \"@radix-ui/react-accordion\": \"^1.2.8\",\n        \"@radix-ui/react-alert-dialog\": \"^1.1.11\",\n        \"@radix-ui/react-aspect-ratio\": \"^1.1.4\",\n        \"@radix-ui/react-avatar\": \"^1.1.7\",\n        \"@radix-ui/react-checkbox\": \"^1.2.3\",\n        \"@radix-ui/react-collapsible\": \"^1.1.12\",\n        \"@radix-ui/react-context-menu\": \"^2.2.12\",\n        \"@radix-ui/react-dialog\": \"^1.1.11\",\n        \"@radix-ui/react-dropdown-menu\": \"^2.1.12\",\n        \"@radix-ui/react-hover-card\": \"^1.1.15\",\n        \"@radix-ui/react-icons\": \"^1.3.0\",\n        \"@radix-ui/react-label\": \"^2.1.4\",\n        \"@radix-ui/react-menubar\": \"^1.1.12\",\n        \"@radix-ui/react-navigation-menu\": \"^1.2.10\",\n        \"@radix-ui/react-popover\": \"^1.1.11\",\n        \"@radix-ui/react-progress\": \"^1.1.7\",\n        \"@radix-ui/react-radio-group\": \"^1.3.4\",\n        \"@radix-ui/react-scroll-area\": \"^1.2.6\",\n        \"@radix-ui/react-select\": \"^2.2.2\",\n        \"@radix-ui/react-separator\": \"^1.1.4\",\n        \"@radix-ui/react-slider\": \"^1.3.2\",\n        \"@radix-ui/react-slot\": \"^1.2.3\",\n        \"@radix-ui/react-switch\": \"^1.2.2\",\n        \"@radix-ui/react-tabs\": \"^1.1.9\",\n        \"@radix-ui/react-toggle\": \"^1.1.6\",\n        \"@radix-ui/react-toggle-group\": \"^1.1.7\",\n        \"@radix-ui/react-tooltip\": \"^1.2.8\",\n        \"@radix-ui/react-use-controllable-state\": \"^1.2.2\",\n        \"@tailwindcss/typography\": \"^0.5.16\",\n        \"@types/react-syntax-highlighter\": \"^15.5.13\",\n        \"ai\": \"^5.0.60\",\n        \"class-variance-authority\": \"^0.7.1\",\n        \"clsx\": \"^2.1.1\",\n        \"cmdk\": \"^1.1.1\",\n        \"color-namer\": \"^1.4.0\",\n        \"css-color-names\": \"^1.0.1\",\n        \"date-fns\": \"^4.1.0\",\n        \"input-otp\": \"^1.4.2\",\n        \"lucide-react\": \"^0.544.0\",\n        \"motion\": \"^12.23.19\",\n        \"next-themes\": \"^0.4.6\",\n        \"parse-css-color\": \"^0.2.1\",\n        \"prosemirror-view\": \"^1.34.2\",\n        \"react-day-picker\": \"8.10.1\",\n        \"react-hook-form\": \"^7.56.1\",\n        \"react-merge-refs\": \"^2.1.1\",\n        \"react-resizable-panels\": \"^2.1.9\",\n        \"react-syntax-highlighter\": \"^15.6.6\",\n        \"recharts\": \"^2.15.3\",\n        \"sonner\": \"^2.0.4\",\n        \"streamdown\": \"^1.3.0\",\n        \"tailwind-merge\": \"^2.3.0\",\n        \"tailwind-styled-components\": \"^2.2.0\",\n        \"tailwindcss\": \"^4.1.0\",\n        \"tailwindcss-animate\": \"^1.0.7\",\n        \"tokenlens\": \"^1.3.1\",\n        \"use-eye-dropper\": \"^1.6.4\",\n        \"use-stick-to-bottom\": \"^1.1.1\",\n        \"vaul\": \"^1.1.2\"\n    }\n}","AGENTS.md":"## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n","packages/ui/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/react-library.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\",\n        \"paths\": {\n            \"@/*\": [\"./src/*\"]\n        }\n    },\n    \"include\": [\"src\", \"tokens.ts\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/types/package.json":"{\n    \"name\": \"@onlook/types\",\n    \"description\": \"Common types shared between onlook packages\",\n    \"version\": \"0.0.0\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"type\": \"module\",\n    \"main\": \"src/index.ts\",\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"types\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"exports\": {\n        \"./*\": \"./src/*/index.ts\"\n    },\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    }\n}\n","packages/types/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/stripe/package.json":"{\n    \"name\": \"@onlook/stripe\",\n    \"description\": \"Stripe configuration, helpers, and scripts\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"main\": \"./src/index.ts\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"type\": \"module\",\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"typecheck\": \"tsc --noEmit\",\n        \"setup\": \"bun src/scripts/dev/setup.ts\",\n        \"dev:webhook\": \"stripe listen --forward-to localhost:3000/webhook/stripe\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"stripe\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"dependencies\": {\n        \"stripe\": \"^18.2.1\",\n        \"dotenv\": \"^16.5.0\",\n        \"@onlook/models\": \"*\"\n    }\n}","packages/stripe/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/scripts/package.json":"# Scripts Skill\n\nPath: `packages/scripts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/package.json)","packages/scripts/tsconfig.json":"# Scripts Skill\n\nPath: `packages/scripts/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/tsconfig.json)","packages/rpc/package.json":"# Rpc Skill\n\nPath: `packages/rpc/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/package.json)","packages/rpc/tsconfig.json":"# Rpc Skill\n\nPath: `packages/rpc/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/tsconfig.json)","packages/penpal/package.json":"# Penpal Skill\n\nPath: `packages/penpal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/package.json)","packages/penpal/tsconfig.json":"# Penpal Skill\n\nPath: `packages/penpal/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/tsconfig.json)","packages/parser/package.json":"# Parser Skill\n\nPath: `packages/parser/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/package.json)","packages/parser/tsconfig.json":"# Parser Skill\n\nPath: `packages/parser/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/tsconfig.json)","packages/models/package.json":"# Models Skill\n\nPath: `packages/models/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/package.json)","packages/models/tsconfig.json":"# Models Skill\n\nPath: `packages/models/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/tsconfig.json)","packages/image-server/package.json":"# Image-server Skill\n\nPath: `packages/image-server/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/package.json)","packages/image-server/README.md":"# image-server Documentation\n\nPath: `packages/image-server/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/README.md)","packages/image-server/tsconfig.json":"# Image-server Skill\n\nPath: `packages/image-server/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/tsconfig.json)","packages/growth/package.json":"# Growth Skill\n\nPath: `packages/growth/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/package.json)","packages/growth/tsconfig.json":"# Growth Skill\n\nPath: `packages/growth/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/tsconfig.json)","packages/github/package.json":"# Github Skill\n\nPath: `packages/github/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/package.json)","packages/github/README.md":"# github Documentation\n\nPath: `packages/github/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/README.md)","packages/github/tsconfig.json":"# Github Skill\n\nPath: `packages/github/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/tsconfig.json)","packages/git/package.json":"# Git Skill\n\nPath: `packages/git/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/package.json)","packages/git/tsconfig.json":"# Git Skill\n\nPath: `packages/git/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/tsconfig.json)","packages/fonts/package.json":"# Fonts Skill\n\nPath: `packages/fonts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/package.json)","packages/fonts/tsconfig.json":"# Fonts Skill\n\nPath: `packages/fonts/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/tsconfig.json)","packages/file-system/package.json":"# File-system Skill\n\nPath: `packages/file-system/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/package.json)","packages/file-system/README.md":"# file-system Documentation\n\nPath: `packages/file-system/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/README.md)","packages/file-system/tsconfig.json":"# File-system Skill\n\nPath: `packages/file-system/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/tsconfig.json)","packages/email/package.json":"# Email Skill\n\nPath: `packages/email/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/package.json)","packages/email/tsconfig.json":"# Email Skill\n\nPath: `packages/email/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/tsconfig.json)","packages/db/package.json":"# Db Skill\n\nPath: `packages/db/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/package.json)","packages/db/tsconfig.json":"# Db Skill\n\nPath: `packages/db/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/tsconfig.json)","packages/constants/package.json":"# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/package.json)","packages/constants/tsconfig.json":"# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/tsconfig.json)","packages/code-provider/package.json":"# Code-provider Skill\n\nPath: `packages/code-provider/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/package.json)","packages/code-provider/tsconfig.json":"# Code-provider Skill\n\nPath: `packages/code-provider/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/tsconfig.json)","packages/ai/package.json":"# Ai Skill\n\nPath: `packages/ai/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/package.json)","packages/ai/tsconfig.json":"# Ai Skill\n\nPath: `packages/ai/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/tsconfig.json)","packages/db/src/migration-scripts/README.md":"# migration-scripts Documentation\n\nPath: `packages/db/src/migration-scripts/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/src/migration-scripts/README.md)","packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json":"# Template-literal-static-only Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json":"# Template-literal-specific-font Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json":"# Template-literal-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json":"# Template-literal-multiple-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json":"# Template-literal-complex-expressions Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json":"# String-literal-specific-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json":"# String-literal-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json":"# String-literal-no-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json":"# String-literal-empty Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json)","packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json":"# Member-expression-remove-font Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json)","packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json":"# Member-expression-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json)","packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json":"# Font-weight-preservation Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json)","packages/fonts/test/data/generate-font-variable-export/special-characters/config.json":"# Special-characters Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/special-characters/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/special-characters/config.json)","packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json":"# Multiple-weights-styles Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json)","packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json":"# Missing-optional-props Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json)","packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json":"# Local-font-type Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json)","packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json":"# Basic-google-font Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json)","packages/fonts/test/data/create-local-font-config/complex-font-name/config.json":"# Complex-font-name Skill\n\nPath: `packages/fonts/test/data/create-local-font-config/complex-font-name/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/complex-font-name/config.json)","packages/fonts/test/data/create-local-font-config/basic-local-font/config.json":"# Basic-local-font Skill\n\nPath: `packages/fonts/test/data/create-local-font-config/basic-local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/basic-local-font/config.json)","packages/fonts/test/data/create-font-src-objects/optional-properties/config.json":"# Optional-properties Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/optional-properties/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/optional-properties/config.json)","packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json":"# Multiple-formats Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json)","packages/fonts/test/data/create-font-src-objects/basic-sources/config.json":"# Basic-sources Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/basic-sources/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/basic-sources/config.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json":"# No-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json":"# Mixed-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json":"# Local-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json":"# Google-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json)","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json":"# Simple-layout Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json)","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json":"# Layout-with-classnames Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json)","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json":"# Complex-layout Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json)","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json":"# Single-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json":"# Non-existent-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json":"# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json":"# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json":"# Local-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json":"# Last-google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json":"# Google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json":"# Single-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json":"# No-src-property Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json":"# Empty-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json":"# Array-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json)","packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json":"# No-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json)","packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json":"# Existing-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json)","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json":"# New-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json)","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json":"# Font-already-exists Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json)","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json":"# Existing-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json)"},"files":{"CLAUDE.md":"## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n","packages/utility/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\", \"test\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/utility/package.json":"{\n    \"name\": \"@onlook/utility\",\n    \"description\": \"A utility library for Onlook\",\n    \"main\": \"./src/index.ts\",\n    \"type\": \"module\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"utility\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"@types/culori\": \"^2.0.4\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"dependencies\": {\n        \"@onlook/fonts\": \"*\",\n        \"@onlook/constants\": \"*\",\n        \"browser-image-compression\": \"^2.0.2\",\n        \"culori\": \"^4.0.1\",\n        \"free-email-domains\": \"^1.2.16\",\n        \"is-subdir\": \"^1.2.0\",\n        \"mime-lite\": \"^1.0.3\",\n        \"normalize-url\": \"^8.0.2\",\n        \"strip-ansi\": \"^7.1.0\",\n        \"tailwind-merge\": \"^3.3.1\",\n        \"tldts\": \"^6.1.82\",\n        \"uuid\": \"^11.1.0\"\n    }\n}\n","packages/ui/components.json":"{\n    \"$schema\": \"https://ui.shadcn.com/schema.json\",\n    \"style\": \"new-york\",\n    \"rsc\": false,\n    \"tsx\": true,\n    \"tailwind\": {\n        \"config\": \"tailwind.config.ts\",\n        \"css\": \"src/globals.css\",\n        \"baseColor\": \"stone\",\n        \"cssVariables\": true,\n        \"prefix\": \"\"\n    },\n    \"aliases\": {\n        \"components\": \"@/components\",\n        \"hooks\": \"@/hooks\",\n        \"lib\": \"@/lib\",\n        \"ui\": \"@/components\",\n        \"utils\": \"@/utils\"\n    }\n}\n","packages/ui/package.json":"{\n    \"name\": \"@onlook/ui\",\n    \"description\": \"A tailwind ui library for Onlook\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"type\": \"module\",\n    \"main\": \"src/index.ts\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"files\": [\n        \"tokens.ts\",\n        \"tailwind.config.ts\",\n        \"postcss.config.js\",\n        \"globals.css\"\n    ],\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"ui\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"@onlook/utility\": \"*\",\n        \"@types/color-namer\": \"^1.3.3\",\n        \"eslint\": \"^9.0.0\",\n        \"react\": \"^18.3.1\",\n        \"react-dom\": \"^18.3.1\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"exports\": {\n        \"./*\": \"./src/components/*.tsx\",\n        \"./icons\": \"./src/components/icons/index.tsx\",\n        \"./color-picker\": \"./src/components/color-picker/index.tsx\",\n        \"./ai-elements\": \"./src/components/ai-elements/index.tsx\",\n        \"./tokens\": \"./tokens.ts\",\n        \"./tailwind.config\": \"./tailwind.config.ts\",\n        \"./postcss\": \"./postcss.config.js\",\n        \"./globals.css\": \"./src/globals.css\",\n        \"./utils\": \"./src/utils/index.ts\",\n        \"./hooks\": \"./src/hooks/index.ts\"\n    },\n    \"dependencies\": {\n        \"@ai-sdk/ui-utils\": \"^1.2.11\",\n        \"@emotion/react\": \"^11.13.3\",\n        \"@emotion/styled\": \"^11.13.0\",\n        \"@hookform/resolvers\": \"^5.0.1\",\n        \"@radix-ui/react-accordion\": \"^1.2.8\",\n        \"@radix-ui/react-alert-dialog\": \"^1.1.11\",\n        \"@radix-ui/react-aspect-ratio\": \"^1.1.4\",\n        \"@radix-ui/react-avatar\": \"^1.1.7\",\n        \"@radix-ui/react-checkbox\": \"^1.2.3\",\n        \"@radix-ui/react-collapsible\": \"^1.1.12\",\n        \"@radix-ui/react-context-menu\": \"^2.2.12\",\n        \"@radix-ui/react-dialog\": \"^1.1.11\",\n        \"@radix-ui/react-dropdown-menu\": \"^2.1.12\",\n        \"@radix-ui/react-hover-card\": \"^1.1.15\",\n        \"@radix-ui/react-icons\": \"^1.3.0\",\n        \"@radix-ui/react-label\": \"^2.1.4\",\n        \"@radix-ui/react-menubar\": \"^1.1.12\",\n        \"@radix-ui/react-navigation-menu\": \"^1.2.10\",\n        \"@radix-ui/react-popover\": \"^1.1.11\",\n        \"@radix-ui/react-progress\": \"^1.1.7\",\n        \"@radix-ui/react-radio-group\": \"^1.3.4\",\n        \"@radix-ui/react-scroll-area\": \"^1.2.6\",\n        \"@radix-ui/react-select\": \"^2.2.2\",\n        \"@radix-ui/react-separator\": \"^1.1.4\",\n        \"@radix-ui/react-slider\": \"^1.3.2\",\n        \"@radix-ui/react-slot\": \"^1.2.3\",\n        \"@radix-ui/react-switch\": \"^1.2.2\",\n        \"@radix-ui/react-tabs\": \"^1.1.9\",\n        \"@radix-ui/react-toggle\": \"^1.1.6\",\n        \"@radix-ui/react-toggle-group\": \"^1.1.7\",\n        \"@radix-ui/react-tooltip\": \"^1.2.8\",\n        \"@radix-ui/react-use-controllable-state\": \"^1.2.2\",\n        \"@tailwindcss/typography\": \"^0.5.16\",\n        \"@types/react-syntax-highlighter\": \"^15.5.13\",\n        \"ai\": \"^5.0.60\",\n        \"class-variance-authority\": \"^0.7.1\",\n        \"clsx\": \"^2.1.1\",\n        \"cmdk\": \"^1.1.1\",\n        \"color-namer\": \"^1.4.0\",\n        \"css-color-names\": \"^1.0.1\",\n        \"date-fns\": \"^4.1.0\",\n        \"input-otp\": \"^1.4.2\",\n        \"lucide-react\": \"^0.544.0\",\n        \"motion\": \"^12.23.19\",\n        \"next-themes\": \"^0.4.6\",\n        \"parse-css-color\": \"^0.2.1\",\n        \"prosemirror-view\": \"^1.34.2\",\n        \"react-day-picker\": \"8.10.1\",\n        \"react-hook-form\": \"^7.56.1\",\n        \"react-merge-refs\": \"^2.1.1\",\n        \"react-resizable-panels\": \"^2.1.9\",\n        \"react-syntax-highlighter\": \"^15.6.6\",\n        \"recharts\": \"^2.15.3\",\n        \"sonner\": \"^2.0.4\",\n        \"streamdown\": \"^1.3.0\",\n        \"tailwind-merge\": \"^2.3.0\",\n        \"tailwind-styled-components\": \"^2.2.0\",\n        \"tailwindcss\": \"^4.1.0\",\n        \"tailwindcss-animate\": \"^1.0.7\",\n        \"tokenlens\": \"^1.3.1\",\n        \"use-eye-dropper\": \"^1.6.4\",\n        \"use-stick-to-bottom\": \"^1.1.1\",\n        \"vaul\": \"^1.1.2\"\n    }\n}","AGENTS.md":"## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n","packages/ui/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/react-library.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\",\n        \"paths\": {\n            \"@/*\": [\"./src/*\"]\n        }\n    },\n    \"include\": [\"src\", \"tokens.ts\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/types/package.json":"{\n    \"name\": \"@onlook/types\",\n    \"description\": \"Common types shared between onlook packages\",\n    \"version\": \"0.0.0\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"type\": \"module\",\n    \"main\": \"src/index.ts\",\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"types\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"exports\": {\n        \"./*\": \"./src/*/index.ts\"\n    },\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    }\n}\n","packages/types/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/stripe/package.json":"{\n    \"name\": \"@onlook/stripe\",\n    \"description\": \"Stripe configuration, helpers, and scripts\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"main\": \"./src/index.ts\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"type\": \"module\",\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"typecheck\": \"tsc --noEmit\",\n        \"setup\": \"bun src/scripts/dev/setup.ts\",\n        \"dev:webhook\": \"stripe listen --forward-to localhost:3000/webhook/stripe\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"stripe\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"dependencies\": {\n        \"stripe\": \"^18.2.1\",\n        \"dotenv\": \"^16.5.0\",\n        \"@onlook/models\": \"*\"\n    }\n}","packages/stripe/tsconfig.json":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"node_modules\"]\n}\n","packages/scripts/package.json":"# Scripts Skill\n\nPath: `packages/scripts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/package.json)","packages/scripts/tsconfig.json":"# Scripts Skill\n\nPath: `packages/scripts/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/tsconfig.json)","packages/rpc/package.json":"# Rpc Skill\n\nPath: `packages/rpc/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/package.json)","packages/rpc/tsconfig.json":"# Rpc Skill\n\nPath: `packages/rpc/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/tsconfig.json)","packages/penpal/package.json":"# Penpal Skill\n\nPath: `packages/penpal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/package.json)","packages/penpal/tsconfig.json":"# Penpal Skill\n\nPath: `packages/penpal/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/tsconfig.json)","packages/parser/package.json":"# Parser Skill\n\nPath: `packages/parser/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/package.json)","packages/parser/tsconfig.json":"# Parser Skill\n\nPath: `packages/parser/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/tsconfig.json)","packages/models/package.json":"# Models Skill\n\nPath: `packages/models/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/package.json)","packages/models/tsconfig.json":"# Models Skill\n\nPath: `packages/models/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/tsconfig.json)","packages/image-server/package.json":"# Image-server Skill\n\nPath: `packages/image-server/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/package.json)","packages/image-server/README.md":"# image-server Documentation\n\nPath: `packages/image-server/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/README.md)","packages/image-server/tsconfig.json":"# Image-server Skill\n\nPath: `packages/image-server/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/tsconfig.json)","packages/growth/package.json":"# Growth Skill\n\nPath: `packages/growth/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/package.json)","packages/growth/tsconfig.json":"# Growth Skill\n\nPath: `packages/growth/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/tsconfig.json)","packages/github/package.json":"# Github Skill\n\nPath: `packages/github/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/package.json)","packages/github/README.md":"# github Documentation\n\nPath: `packages/github/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/README.md)","packages/github/tsconfig.json":"# Github Skill\n\nPath: `packages/github/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/tsconfig.json)","packages/git/package.json":"# Git Skill\n\nPath: `packages/git/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/package.json)","packages/git/tsconfig.json":"# Git Skill\n\nPath: `packages/git/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/tsconfig.json)","packages/fonts/package.json":"# Fonts Skill\n\nPath: `packages/fonts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/package.json)","packages/fonts/tsconfig.json":"# Fonts Skill\n\nPath: `packages/fonts/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/tsconfig.json)","packages/file-system/package.json":"# File-system Skill\n\nPath: `packages/file-system/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/package.json)","packages/file-system/README.md":"# file-system Documentation\n\nPath: `packages/file-system/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/README.md)","packages/file-system/tsconfig.json":"# File-system Skill\n\nPath: `packages/file-system/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/tsconfig.json)","packages/email/package.json":"# Email Skill\n\nPath: `packages/email/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/package.json)","packages/email/tsconfig.json":"# Email Skill\n\nPath: `packages/email/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/tsconfig.json)","packages/db/package.json":"# Db Skill\n\nPath: `packages/db/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/package.json)","packages/db/tsconfig.json":"# Db Skill\n\nPath: `packages/db/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/tsconfig.json)","packages/constants/package.json":"# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/package.json)","packages/constants/tsconfig.json":"# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/tsconfig.json)","packages/code-provider/package.json":"# Code-provider Skill\n\nPath: `packages/code-provider/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/package.json)","packages/code-provider/tsconfig.json":"# Code-provider Skill\n\nPath: `packages/code-provider/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/tsconfig.json)","packages/ai/package.json":"# Ai Skill\n\nPath: `packages/ai/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/package.json)","packages/ai/tsconfig.json":"# Ai Skill\n\nPath: `packages/ai/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/tsconfig.json)","packages/db/src/migration-scripts/README.md":"# migration-scripts Documentation\n\nPath: `packages/db/src/migration-scripts/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/src/migration-scripts/README.md)","packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json":"# Template-literal-static-only Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json":"# Template-literal-specific-font Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json":"# Template-literal-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json":"# Template-literal-multiple-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json)","packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json":"# Template-literal-complex-expressions Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json":"# String-literal-specific-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json":"# String-literal-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json":"# String-literal-no-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json)","packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json":"# String-literal-empty Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json)","packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json":"# Member-expression-remove-font Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json)","packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json":"# Member-expression-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json)","packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json":"# Font-weight-preservation Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json)","packages/fonts/test/data/generate-font-variable-export/special-characters/config.json":"# Special-characters Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/special-characters/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/special-characters/config.json)","packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json":"# Multiple-weights-styles Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json)","packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json":"# Missing-optional-props Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json)","packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json":"# Local-font-type Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json)","packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json":"# Basic-google-font Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json)","packages/fonts/test/data/create-local-font-config/complex-font-name/config.json":"# Complex-font-name Skill\n\nPath: `packages/fonts/test/data/create-local-font-config/complex-font-name/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/complex-font-name/config.json)","packages/fonts/test/data/create-local-font-config/basic-local-font/config.json":"# Basic-local-font Skill\n\nPath: `packages/fonts/test/data/create-local-font-config/basic-local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/basic-local-font/config.json)","packages/fonts/test/data/create-font-src-objects/optional-properties/config.json":"# Optional-properties Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/optional-properties/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/optional-properties/config.json)","packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json":"# Multiple-formats Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json)","packages/fonts/test/data/create-font-src-objects/basic-sources/config.json":"# Basic-sources Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/basic-sources/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/basic-sources/config.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json":"# No-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json":"# Mixed-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json":"# Local-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json)","packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json":"# Google-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json)","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json":"# Simple-layout Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json)","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json":"# Layout-with-classnames Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json)","packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json":"# Complex-layout Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json)","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json":"# Single-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json":"# Non-existent-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json":"# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json":"# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json":"# Local-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json":"# Last-google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json)","packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json":"# Google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json":"# Single-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json":"# No-src-property Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json":"# Empty-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json)","packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json":"# Array-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json)","packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json":"# No-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json)","packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json":"# Existing-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json)","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json":"# New-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json)","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json":"# Font-already-exists Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json)","packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json":"# Existing-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n","isInternal":false,"tokens":1499,"sizeBytes":6119},{"name":"package.json","path":"packages/ai/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/package.json","title":"Ai Skill","category":"anthropic-skill","format":"json","content":"# Ai Skill\n\nPath: `packages/ai/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/package.json)","tokens":300,"sizeBytes":157},{"name":"tsconfig.json","path":"packages/ai/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/tsconfig.json","title":"Ai Skill","category":"anthropic-skill","format":"json","content":"# Ai Skill\n\nPath: `packages/ai/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/tsconfig.json)","tokens":300,"sizeBytes":159},{"name":"package.json","path":"packages/code-provider/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/package.json","title":"Code-provider Skill","category":"anthropic-skill","format":"json","content":"# Code-provider Skill\n\nPath: `packages/code-provider/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/package.json)","tokens":300,"sizeBytes":190},{"name":"tsconfig.json","path":"packages/code-provider/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/tsconfig.json","title":"Code-provider Skill","category":"anthropic-skill","format":"json","content":"# Code-provider Skill\n\nPath: `packages/code-provider/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/tsconfig.json)","tokens":300,"sizeBytes":192},{"name":"package.json","path":"packages/constants/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/package.json","title":"Constants Skill","category":"anthropic-skill","format":"json","content":"# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/package.json)","tokens":300,"sizeBytes":178},{"name":"tsconfig.json","path":"packages/constants/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/tsconfig.json","title":"Constants Skill","category":"anthropic-skill","format":"json","content":"# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/tsconfig.json)","tokens":300,"sizeBytes":180},{"name":"package.json","path":"packages/db/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/package.json","title":"Db Skill","category":"anthropic-skill","format":"json","content":"# Db Skill\n\nPath: `packages/db/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/package.json)","tokens":300,"sizeBytes":157},{"name":"tsconfig.json","path":"packages/db/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/tsconfig.json","title":"Db Skill","category":"anthropic-skill","format":"json","content":"# Db Skill\n\nPath: `packages/db/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/tsconfig.json)","tokens":300,"sizeBytes":159},{"name":"package.json","path":"packages/email/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/package.json","title":"Email Skill","category":"anthropic-skill","format":"json","content":"# Email Skill\n\nPath: `packages/email/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/package.json)","tokens":300,"sizeBytes":166},{"name":"tsconfig.json","path":"packages/email/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/tsconfig.json","title":"Email Skill","category":"anthropic-skill","format":"json","content":"# Email Skill\n\nPath: `packages/email/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/tsconfig.json)","tokens":300,"sizeBytes":168},{"name":"package.json","path":"packages/file-system/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/package.json","title":"File-system Skill","category":"anthropic-skill","format":"json","content":"# File-system Skill\n\nPath: `packages/file-system/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/package.json)","tokens":300,"sizeBytes":184},{"name":"tsconfig.json","path":"packages/file-system/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/tsconfig.json","title":"File-system Skill","category":"anthropic-skill","format":"json","content":"# File-system Skill\n\nPath: `packages/file-system/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/tsconfig.json)","tokens":300,"sizeBytes":186},{"name":"package.json","path":"packages/fonts/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/package.json","title":"Fonts Skill","category":"anthropic-skill","format":"json","content":"# Fonts Skill\n\nPath: `packages/fonts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/package.json)","tokens":300,"sizeBytes":166},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json","title":"Existing-fontfamily Skill","category":"anthropic-skill","format":"json","content":"# Existing-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json)","tokens":300,"sizeBytes":326},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json","title":"Font-already-exists Skill","category":"anthropic-skill","format":"json","content":"# Font-already-exists Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json)","tokens":300,"sizeBytes":326},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json","title":"New-fontfamily Skill","category":"anthropic-skill","format":"json","content":"# New-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json)","tokens":300,"sizeBytes":311},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json","title":"Existing-import Skill","category":"anthropic-skill","format":"json","content":"# Existing-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json)","tokens":300,"sizeBytes":312},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json","title":"No-import Skill","category":"anthropic-skill","format":"json","content":"# No-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json)","tokens":300,"sizeBytes":294},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json","title":"Array-to-array Skill","category":"anthropic-skill","format":"json","content":"# Array-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json)","tokens":300,"sizeBytes":307},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json","title":"Empty-array Skill","category":"anthropic-skill","format":"json","content":"# Empty-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json)","tokens":300,"sizeBytes":298},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json","title":"No-src-property Skill","category":"anthropic-skill","format":"json","content":"# No-src-property Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json)","tokens":300,"sizeBytes":310},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json","title":"Single-to-array Skill","category":"anthropic-skill","format":"json","content":"# Single-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json)","tokens":300,"sizeBytes":310},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json","title":"Google-font Skill","category":"anthropic-skill","format":"json","content":"# Google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json)","tokens":300,"sizeBytes":296},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json","title":"Last-google-font Skill","category":"anthropic-skill","format":"json","content":"# Last-google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json)","tokens":300,"sizeBytes":311},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json","title":"Local-font Skill","category":"anthropic-skill","format":"json","content":"# Local-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json)","tokens":300,"sizeBytes":293},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json","title":"Multiple-fonts Skill","category":"anthropic-skill","format":"json","content":"# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json)","tokens":300,"sizeBytes":305},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json","title":"Multiple-fonts Skill","category":"anthropic-skill","format":"json","content":"# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json)","tokens":300,"sizeBytes":321},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json","title":"Non-existent-font Skill","category":"anthropic-skill","format":"json","content":"# Non-existent-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json)","tokens":300,"sizeBytes":330},{"name":"config.json","path":"packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json","title":"Single-font Skill","category":"anthropic-skill","format":"json","content":"# Single-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json)","tokens":300,"sizeBytes":312},{"name":"config.json","path":"packages/fonts/test/data/create-font-src-objects/basic-sources/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/basic-sources/config.json","title":"Basic-sources Skill","category":"anthropic-skill","format":"json","content":"# Basic-sources Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/basic-sources/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/basic-sources/config.json)","tokens":300,"sizeBytes":268},{"name":"config.json","path":"packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json","title":"Multiple-formats Skill","category":"anthropic-skill","format":"json","content":"# Multiple-formats Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/multiple-formats/config.json)","tokens":300,"sizeBytes":277},{"name":"config.json","path":"packages/fonts/test/data/create-font-src-objects/optional-properties/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/optional-properties/config.json","title":"Optional-properties Skill","category":"anthropic-skill","format":"json","content":"# Optional-properties Skill\n\nPath: `packages/fonts/test/data/create-font-src-objects/optional-properties/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-font-src-objects/optional-properties/config.json)","tokens":300,"sizeBytes":286},{"name":"config.json","path":"packages/fonts/test/data/create-local-font-config/basic-local-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/basic-local-font/config.json","title":"Basic-local-font Skill","category":"anthropic-skill","format":"json","content":"# Basic-local-font Skill\n\nPath: `packages/fonts/test/data/create-local-font-config/basic-local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/basic-local-font/config.json)","tokens":300,"sizeBytes":279},{"name":"config.json","path":"packages/fonts/test/data/create-local-font-config/complex-font-name/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/complex-font-name/config.json","title":"Complex-font-name Skill","category":"anthropic-skill","format":"json","content":"# Complex-font-name Skill\n\nPath: `packages/fonts/test/data/create-local-font-config/complex-font-name/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/create-local-font-config/complex-font-name/config.json)","tokens":300,"sizeBytes":282},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json","title":"Complex-layout Skill","category":"anthropic-skill","format":"json","content":"# Complex-layout Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/complex-layout/expected.json)","tokens":300,"sizeBytes":311},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json","title":"Layout-with-classnames Skill","category":"anthropic-skill","format":"json","content":"# Layout-with-classnames Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/layout-with-classnames/expected.json)","tokens":300,"sizeBytes":335},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json","title":"Simple-layout Skill","category":"anthropic-skill","format":"json","content":"# Simple-layout Skill\n\nPath: `packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/migrate-fonts-from-layout/simple-layout/expected.json)","tokens":300,"sizeBytes":308},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json","title":"Google-fonts Skill","category":"anthropic-skill","format":"json","content":"# Google-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/google-fonts/expected.json)","tokens":300,"sizeBytes":301},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json","title":"Local-fonts Skill","category":"anthropic-skill","format":"json","content":"# Local-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/local-fonts/expected.json)","tokens":300,"sizeBytes":298},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json","title":"Mixed-fonts Skill","category":"anthropic-skill","format":"json","content":"# Mixed-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/mixed-fonts/expected.json)","tokens":300,"sizeBytes":298},{"name":"expected.json","path":"packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json","title":"No-fonts Skill","category":"anthropic-skill","format":"json","content":"# No-fonts Skill\n\nPath: `packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/font-extractors/parse-font-declarations/no-fonts/expected.json)","tokens":300,"sizeBytes":289},{"name":"config.json","path":"packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json","title":"Basic-google-font Skill","category":"anthropic-skill","format":"json","content":"# Basic-google-font Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/basic-google-font/config.json)","tokens":300,"sizeBytes":292},{"name":"config.json","path":"packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json","title":"Local-font-type Skill","category":"anthropic-skill","format":"json","content":"# Local-font-type Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/local-font-type/config.json)","tokens":300,"sizeBytes":286},{"name":"config.json","path":"packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json","title":"Missing-optional-props Skill","category":"anthropic-skill","format":"json","content":"# Missing-optional-props Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/missing-optional-props/config.json)","tokens":300,"sizeBytes":307},{"name":"config.json","path":"packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json","title":"Multiple-weights-styles Skill","category":"anthropic-skill","format":"json","content":"# Multiple-weights-styles Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/multiple-weights-styles/config.json)","tokens":300,"sizeBytes":310},{"name":"config.json","path":"packages/fonts/test/data/generate-font-variable-export/special-characters/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/special-characters/config.json","title":"Special-characters Skill","category":"anthropic-skill","format":"json","content":"# Special-characters Skill\n\nPath: `packages/fonts/test/data/generate-font-variable-export/special-characters/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/generate-font-variable-export/special-characters/config.json)","tokens":300,"sizeBytes":295},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json","title":"Font-weight-preservation Skill","category":"anthropic-skill","format":"json","content":"# Font-weight-preservation Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/font-weight-preservation/config.json)","tokens":300,"sizeBytes":299},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json","title":"Member-expression-remove-all Skill","category":"anthropic-skill","format":"json","content":"# Member-expression-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-all/config.json)","tokens":300,"sizeBytes":311},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json","title":"Member-expression-remove-font Skill","category":"anthropic-skill","format":"json","content":"# Member-expression-remove-font Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/member-expression-remove-font/config.json)","tokens":300,"sizeBytes":314},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json","title":"String-literal-empty Skill","category":"anthropic-skill","format":"json","content":"# String-literal-empty Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-empty/config.json)","tokens":300,"sizeBytes":287},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json","title":"String-literal-no-fonts Skill","category":"anthropic-skill","format":"json","content":"# String-literal-no-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-no-fonts/config.json)","tokens":300,"sizeBytes":296},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json","title":"String-literal-remove-all Skill","category":"anthropic-skill","format":"json","content":"# String-literal-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-remove-all/config.json)","tokens":300,"sizeBytes":302},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json","title":"String-literal-specific-fonts Skill","category":"anthropic-skill","format":"json","content":"# String-literal-specific-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/string-literal-specific-fonts/config.json)","tokens":300,"sizeBytes":314},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json","title":"Template-literal-complex-expressions Skill","category":"anthropic-skill","format":"json","content":"# Template-literal-complex-expressions Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-complex-expressions/config.json)","tokens":300,"sizeBytes":335},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json","title":"Template-literal-multiple-fonts Skill","category":"anthropic-skill","format":"json","content":"# Template-literal-multiple-fonts Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-multiple-fonts/config.json)","tokens":300,"sizeBytes":320},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json","title":"Template-literal-remove-all Skill","category":"anthropic-skill","format":"json","content":"# Template-literal-remove-all Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-remove-all/config.json)","tokens":300,"sizeBytes":308},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json","title":"Template-literal-specific-font Skill","category":"anthropic-skill","format":"json","content":"# Template-literal-specific-font Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-specific-font/config.json)","tokens":300,"sizeBytes":317},{"name":"config.json","path":"packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json","title":"Template-literal-static-only Skill","category":"anthropic-skill","format":"json","content":"# Template-literal-static-only Skill\n\nPath: `packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/remove-fonts-classname/template-literal-static-only/config.json)","tokens":300,"sizeBytes":311},{"name":"tsconfig.json","path":"packages/fonts/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/tsconfig.json","title":"Fonts Skill","category":"anthropic-skill","format":"json","content":"# Fonts Skill\n\nPath: `packages/fonts/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/tsconfig.json)","tokens":300,"sizeBytes":168},{"name":"package.json","path":"packages/git/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/package.json","title":"Git Skill","category":"anthropic-skill","format":"json","content":"# Git Skill\n\nPath: `packages/git/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/package.json)","tokens":300,"sizeBytes":160},{"name":"tsconfig.json","path":"packages/git/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/tsconfig.json","title":"Git Skill","category":"anthropic-skill","format":"json","content":"# Git Skill\n\nPath: `packages/git/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/git/tsconfig.json)","tokens":300,"sizeBytes":162},{"name":"package.json","path":"packages/github/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/package.json","title":"Github Skill","category":"anthropic-skill","format":"json","content":"# Github Skill\n\nPath: `packages/github/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/package.json)","tokens":300,"sizeBytes":169},{"name":"tsconfig.json","path":"packages/github/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/tsconfig.json","title":"Github Skill","category":"anthropic-skill","format":"json","content":"# Github Skill\n\nPath: `packages/github/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/tsconfig.json)","tokens":300,"sizeBytes":171},{"name":"package.json","path":"packages/growth/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/package.json","title":"Growth Skill","category":"anthropic-skill","format":"json","content":"# Growth Skill\n\nPath: `packages/growth/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/package.json)","tokens":300,"sizeBytes":169},{"name":"tsconfig.json","path":"packages/growth/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/tsconfig.json","title":"Growth Skill","category":"anthropic-skill","format":"json","content":"# Growth Skill\n\nPath: `packages/growth/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/growth/tsconfig.json)","tokens":300,"sizeBytes":171},{"name":"package.json","path":"packages/image-server/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/package.json","title":"Image-server Skill","category":"anthropic-skill","format":"json","content":"# Image-server Skill\n\nPath: `packages/image-server/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/package.json)","tokens":300,"sizeBytes":187},{"name":"tsconfig.json","path":"packages/image-server/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/tsconfig.json","title":"Image-server Skill","category":"anthropic-skill","format":"json","content":"# Image-server Skill\n\nPath: `packages/image-server/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/tsconfig.json)","tokens":300,"sizeBytes":189},{"name":"package.json","path":"packages/models/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/package.json","title":"Models Skill","category":"anthropic-skill","format":"json","content":"# Models Skill\n\nPath: `packages/models/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/package.json)","tokens":300,"sizeBytes":169},{"name":"tsconfig.json","path":"packages/models/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/tsconfig.json","title":"Models Skill","category":"anthropic-skill","format":"json","content":"# Models Skill\n\nPath: `packages/models/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/models/tsconfig.json)","tokens":300,"sizeBytes":171},{"name":"package.json","path":"packages/parser/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/package.json","title":"Parser Skill","category":"anthropic-skill","format":"json","content":"# Parser Skill\n\nPath: `packages/parser/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/package.json)","tokens":300,"sizeBytes":169},{"name":"tsconfig.json","path":"packages/parser/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/tsconfig.json","title":"Parser Skill","category":"anthropic-skill","format":"json","content":"# Parser Skill\n\nPath: `packages/parser/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/parser/tsconfig.json)","tokens":300,"sizeBytes":171},{"name":"package.json","path":"packages/penpal/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/package.json","title":"Penpal Skill","category":"anthropic-skill","format":"json","content":"# Penpal Skill\n\nPath: `packages/penpal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/package.json)","tokens":300,"sizeBytes":169},{"name":"tsconfig.json","path":"packages/penpal/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/tsconfig.json","title":"Penpal Skill","category":"anthropic-skill","format":"json","content":"# Penpal Skill\n\nPath: `packages/penpal/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/penpal/tsconfig.json)","tokens":300,"sizeBytes":171},{"name":"package.json","path":"packages/rpc/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/package.json","title":"Rpc Skill","category":"anthropic-skill","format":"json","content":"# Rpc Skill\n\nPath: `packages/rpc/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/package.json)","tokens":300,"sizeBytes":160},{"name":"tsconfig.json","path":"packages/rpc/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/tsconfig.json","title":"Rpc Skill","category":"anthropic-skill","format":"json","content":"# Rpc Skill\n\nPath: `packages/rpc/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/rpc/tsconfig.json)","tokens":300,"sizeBytes":162},{"name":"package.json","path":"packages/scripts/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/package.json","title":"Scripts Skill","category":"anthropic-skill","format":"json","content":"# Scripts Skill\n\nPath: `packages/scripts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/package.json)","tokens":300,"sizeBytes":172},{"name":"tsconfig.json","path":"packages/scripts/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/tsconfig.json","title":"Scripts Skill","category":"anthropic-skill","format":"json","content":"# Scripts Skill\n\nPath: `packages/scripts/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/scripts/tsconfig.json)","tokens":300,"sizeBytes":174},{"name":"package.json","path":"packages/stripe/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/stripe/package.json","title":"@onlook/stripe","category":"anthropic-skill","format":"json","content":"{\n    \"name\": \"@onlook/stripe\",\n    \"description\": \"Stripe configuration, helpers, and scripts\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"main\": \"./src/index.ts\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"type\": \"module\",\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"typecheck\": \"tsc --noEmit\",\n        \"setup\": \"bun src/scripts/dev/setup.ts\",\n        \"dev:webhook\": \"stripe listen --forward-to localhost:3000/webhook/stripe\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"stripe\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"dependencies\": {\n        \"stripe\": \"^18.2.1\",\n        \"dotenv\": \"^16.5.0\",\n        \"@onlook/models\": \"*\"\n    }\n}","frontmatter":{"name":"@onlook/stripe","description":"Stripe configuration, helpers, and scripts","version":"0.0.0","private":true,"main":"./src/index.ts","module":"src/index.ts","types":"src/index.ts","type":"module","scripts":{"clean":"rm -rf node_modules","typecheck":"tsc --noEmit","setup":"bun src/scripts/dev/setup.ts","dev:webhook":"stripe listen --forward-to localhost:3000/webhook/stripe","lint":"eslint . --max-warnings 0","format":"eslint --fix ."},"keywords":["onlook","stripe"],"author":{"name":"Onlook","email":"contact@onlook.com"},"license":"Apache-2.0","homepage":"https://onlook.com","devDependencies":{"@onlook/eslint":"*","eslint":"^9.0.0","typescript":"^5.5.4"},"dependencies":{"stripe":"^18.2.1","dotenv":"^16.5.0","@onlook/models":"*"}},"isInternal":false,"tokens":306,"sizeBytes":1019},{"name":"tsconfig.json","path":"packages/stripe/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/stripe/tsconfig.json","title":"Stripe Skill","category":"anthropic-skill","format":"json","content":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"node_modules\"]\n}\n","frontmatter":{"extends":"@onlook/typescript/base.json","compilerOptions":{"baseUrl":"."},"include":["src"],"exclude":["node_modules"]},"isInternal":false,"tokens":43,"sizeBytes":162},{"name":"package.json","path":"packages/types/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/types/package.json","title":"@onlook/types","category":"anthropic-skill","format":"json","content":"{\n    \"name\": \"@onlook/types\",\n    \"description\": \"Common types shared between onlook packages\",\n    \"version\": \"0.0.0\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"type\": \"module\",\n    \"main\": \"src/index.ts\",\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"types\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"exports\": {\n        \"./*\": \"./src/*/index.ts\"\n    },\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    }\n}\n","frontmatter":{"name":"@onlook/types","description":"Common types shared between onlook packages","version":"0.0.0","repository":{"type":"git","url":"https://github.com/onlook-dev/onlook.git"},"type":"module","main":"src/index.ts","scripts":{"clean":"rm -rf node_modules","lint":"eslint . --max-warnings 0","format":"eslint --fix .","typecheck":"tsc --noEmit"},"keywords":["onlook","types"],"author":{"name":"Onlook","email":"contact@onlook.com"},"license":"Apache-2.0","homepage":"https://onlook.com","exports":{"./*":"./src/*/index.ts"},"devDependencies":{"@onlook/eslint":"*","@onlook/typescript":"*","eslint":"^9.0.0","typescript":"^5.5.4"}},"isInternal":false,"tokens":265,"sizeBytes":889},{"name":"tsconfig.json","path":"packages/types/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/types/tsconfig.json","title":"Types Skill","category":"anthropic-skill","format":"json","content":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"node_modules\"]\n}\n","frontmatter":{"extends":"@onlook/typescript/base.json","compilerOptions":{"baseUrl":"."},"include":["src"],"exclude":["node_modules"]},"isInternal":false,"tokens":43,"sizeBytes":162},{"name":"components.json","path":"packages/ui/components.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ui/components.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"{\n    \"$schema\": \"https://ui.shadcn.com/schema.json\",\n    \"style\": \"new-york\",\n    \"rsc\": false,\n    \"tsx\": true,\n    \"tailwind\": {\n        \"config\": \"tailwind.config.ts\",\n        \"css\": \"src/globals.css\",\n        \"baseColor\": \"stone\",\n        \"cssVariables\": true,\n        \"prefix\": \"\"\n    },\n    \"aliases\": {\n        \"components\": \"@/components\",\n        \"hooks\": \"@/hooks\",\n        \"lib\": \"@/lib\",\n        \"ui\": \"@/components\",\n        \"utils\": \"@/utils\"\n    }\n}\n","frontmatter":{"$schema":"https://ui.shadcn.com/schema.json","style":"new-york","rsc":false,"tsx":true,"tailwind":{"config":"tailwind.config.ts","css":"src/globals.css","baseColor":"stone","cssVariables":true,"prefix":""},"aliases":{"components":"@/components","hooks":"@/hooks","lib":"@/lib","ui":"@/components","utils":"@/utils"}},"isInternal":false,"tokens":129,"sizeBytes":466},{"name":"package.json","path":"packages/ui/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ui/package.json","title":"@onlook/ui","category":"anthropic-skill","format":"json","content":"{\n    \"name\": \"@onlook/ui\",\n    \"description\": \"A tailwind ui library for Onlook\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"type\": \"module\",\n    \"main\": \"src/index.ts\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"files\": [\n        \"tokens.ts\",\n        \"tailwind.config.ts\",\n        \"postcss.config.js\",\n        \"globals.css\"\n    ],\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"ui\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"@onlook/utility\": \"*\",\n        \"@types/color-namer\": \"^1.3.3\",\n        \"eslint\": \"^9.0.0\",\n        \"react\": \"^18.3.1\",\n        \"react-dom\": \"^18.3.1\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"exports\": {\n        \"./*\": \"./src/components/*.tsx\",\n        \"./icons\": \"./src/components/icons/index.tsx\",\n        \"./color-picker\": \"./src/components/color-picker/index.tsx\",\n        \"./ai-elements\": \"./src/components/ai-elements/index.tsx\",\n        \"./tokens\": \"./tokens.ts\",\n        \"./tailwind.config\": \"./tailwind.config.ts\",\n        \"./postcss\": \"./postcss.config.js\",\n        \"./globals.css\": \"./src/globals.css\",\n        \"./utils\": \"./src/utils/index.ts\",\n        \"./hooks\": \"./src/hooks/index.ts\"\n    },\n    \"dependencies\": {\n        \"@ai-sdk/ui-utils\": \"^1.2.11\",\n        \"@emotion/react\": \"^11.13.3\",\n        \"@emotion/styled\": \"^11.13.0\",\n        \"@hookform/resolvers\": \"^5.0.1\",\n        \"@radix-ui/react-accordion\": \"^1.2.8\",\n        \"@radix-ui/react-alert-dialog\": \"^1.1.11\",\n        \"@radix-ui/react-aspect-ratio\": \"^1.1.4\",\n        \"@radix-ui/react-avatar\": \"^1.1.7\",\n        \"@radix-ui/react-checkbox\": \"^1.2.3\",\n        \"@radix-ui/react-collapsible\": \"^1.1.12\",\n        \"@radix-ui/react-context-menu\": \"^2.2.12\",\n        \"@radix-ui/react-dialog\": \"^1.1.11\",\n        \"@radix-ui/react-dropdown-menu\": \"^2.1.12\",\n        \"@radix-ui/react-hover-card\": \"^1.1.15\",\n        \"@radix-ui/react-icons\": \"^1.3.0\",\n        \"@radix-ui/react-label\": \"^2.1.4\",\n        \"@radix-ui/react-menubar\": \"^1.1.12\",\n        \"@radix-ui/react-navigation-menu\": \"^1.2.10\",\n        \"@radix-ui/react-popover\": \"^1.1.11\",\n        \"@radix-ui/react-progress\": \"^1.1.7\",\n        \"@radix-ui/react-radio-group\": \"^1.3.4\",\n        \"@radix-ui/react-scroll-area\": \"^1.2.6\",\n        \"@radix-ui/react-select\": \"^2.2.2\",\n        \"@radix-ui/react-separator\": \"^1.1.4\",\n        \"@radix-ui/react-slider\": \"^1.3.2\",\n        \"@radix-ui/react-slot\": \"^1.2.3\",\n        \"@radix-ui/react-switch\": \"^1.2.2\",\n        \"@radix-ui/react-tabs\": \"^1.1.9\",\n        \"@radix-ui/react-toggle\": \"^1.1.6\",\n        \"@radix-ui/react-toggle-group\": \"^1.1.7\",\n        \"@radix-ui/react-tooltip\": \"^1.2.8\",\n        \"@radix-ui/react-use-controllable-state\": \"^1.2.2\",\n        \"@tailwindcss/typography\": \"^0.5.16\",\n        \"@types/react-syntax-highlighter\": \"^15.5.13\",\n        \"ai\": \"^5.0.60\",\n        \"class-variance-authority\": \"^0.7.1\",\n        \"clsx\": \"^2.1.1\",\n        \"cmdk\": \"^1.1.1\",\n        \"color-namer\": \"^1.4.0\",\n        \"css-color-names\": \"^1.0.1\",\n        \"date-fns\": \"^4.1.0\",\n        \"input-otp\": \"^1.4.2\",\n        \"lucide-react\": \"^0.544.0\",\n        \"motion\": \"^12.23.19\",\n        \"next-themes\": \"^0.4.6\",\n        \"parse-css-color\": \"^0.2.1\",\n        \"prosemirror-view\": \"^1.34.2\",\n        \"react-day-picker\": \"8.10.1\",\n        \"react-hook-form\": \"^7.56.1\",\n        \"react-merge-refs\": \"^2.1.1\",\n        \"react-resizable-panels\": \"^2.1.9\",\n        \"react-syntax-highlighter\": \"^15.6.6\",\n        \"recharts\": \"^2.15.3\",\n        \"sonner\": \"^2.0.4\",\n        \"streamdown\": \"^1.3.0\",\n        \"tailwind-merge\": \"^2.3.0\",\n        \"tailwind-styled-components\": \"^2.2.0\",\n        \"tailwindcss\": \"^4.1.0\",\n        \"tailwindcss-animate\": \"^1.0.7\",\n        \"tokenlens\": \"^1.3.1\",\n        \"use-eye-dropper\": \"^1.6.4\",\n        \"use-stick-to-bottom\": \"^1.1.1\",\n        \"vaul\": \"^1.1.2\"\n    }\n}","frontmatter":{"name":"@onlook/ui","description":"A tailwind ui library for Onlook","version":"0.0.0","private":true,"type":"module","main":"src/index.ts","module":"src/index.ts","types":"src/index.ts","repository":{"type":"git","url":"https://github.com/onlook-dev/onlook.git"},"files":["tokens.ts","tailwind.config.ts","postcss.config.js","globals.css"],"scripts":{"clean":"rm -rf node_modules","lint":"eslint . --max-warnings 0","format":"eslint --fix .","typecheck":"tsc --noEmit"},"keywords":["onlook","ui"],"author":{"name":"Onlook","email":"contact@onlook.com"},"license":"Apache-2.0","homepage":"https://onlook.com","devDependencies":{"@onlook/eslint":"*","@onlook/typescript":"*","@onlook/utility":"*","@types/color-namer":"^1.3.3","eslint":"^9.0.0","react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.5.4"},"exports":{"./*":"./src/components/*.tsx","./icons":"./src/components/icons/index.tsx","./color-picker":"./src/components/color-picker/index.tsx","./ai-elements":"./src/components/ai-elements/index.tsx","./tokens":"./tokens.ts","./tailwind.config":"./tailwind.config.ts","./postcss":"./postcss.config.js","./globals.css":"./src/globals.css","./utils":"./src/utils/index.ts","./hooks":"./src/hooks/index.ts"},"dependencies":{"@ai-sdk/ui-utils":"^1.2.11","@emotion/react":"^11.13.3","@emotion/styled":"^11.13.0","@hookform/resolvers":"^5.0.1","@radix-ui/react-accordion":"^1.2.8","@radix-ui/react-alert-dialog":"^1.1.11","@radix-ui/react-aspect-ratio":"^1.1.4","@radix-ui/react-avatar":"^1.1.7","@radix-ui/react-checkbox":"^1.2.3","@radix-ui/react-collapsible":"^1.1.12","@radix-ui/react-context-menu":"^2.2.12","@radix-ui/react-dialog":"^1.1.11","@radix-ui/react-dropdown-menu":"^2.1.12","@radix-ui/react-hover-card":"^1.1.15","@radix-ui/react-icons":"^1.3.0","@radix-ui/react-label":"^2.1.4","@radix-ui/react-menubar":"^1.1.12","@radix-ui/react-navigation-menu":"^1.2.10","@radix-ui/react-popover":"^1.1.11","@radix-ui/react-progress":"^1.1.7","@radix-ui/react-radio-group":"^1.3.4","@radix-ui/react-scroll-area":"^1.2.6","@radix-ui/react-select":"^2.2.2","@radix-ui/react-separator":"^1.1.4","@radix-ui/react-slider":"^1.3.2","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-switch":"^1.2.2","@radix-ui/react-tabs":"^1.1.9","@radix-ui/react-toggle":"^1.1.6","@radix-ui/react-toggle-group":"^1.1.7","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-use-controllable-state":"^1.2.2","@tailwindcss/typography":"^0.5.16","@types/react-syntax-highlighter":"^15.5.13","ai":"^5.0.60","class-variance-authority":"^0.7.1","clsx":"^2.1.1","cmdk":"^1.1.1","color-namer":"^1.4.0","css-color-names":"^1.0.1","date-fns":"^4.1.0","input-otp":"^1.4.2","lucide-react":"^0.544.0","motion":"^12.23.19","next-themes":"^0.4.6","parse-css-color":"^0.2.1","prosemirror-view":"^1.34.2","react-day-picker":"8.10.1","react-hook-form":"^7.56.1","react-merge-refs":"^2.1.1","react-resizable-panels":"^2.1.9","react-syntax-highlighter":"^15.6.6","recharts":"^2.15.3","sonner":"^2.0.4","streamdown":"^1.3.0","tailwind-merge":"^2.3.0","tailwind-styled-components":"^2.2.0","tailwindcss":"^4.1.0","tailwindcss-animate":"^1.0.7","tokenlens":"^1.3.1","use-eye-dropper":"^1.6.4","use-stick-to-bottom":"^1.1.1","vaul":"^1.1.2"}},"isInternal":false,"tokens":1384,"sizeBytes":4296},{"name":"tsconfig.json","path":"packages/ui/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ui/tsconfig.json","title":"Ui Skill","category":"anthropic-skill","format":"json","content":"{\n    \"extends\": \"@onlook/typescript/react-library.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\",\n        \"paths\": {\n            \"@/*\": [\"./src/*\"]\n        }\n    },\n    \"include\": [\"src\", \"tokens.ts\"],\n    \"exclude\": [\"node_modules\"]\n}\n","frontmatter":{"extends":"@onlook/typescript/react-library.json","compilerOptions":{"baseUrl":".","paths":{"@/*":["./src/*"]}},"include":["src","tokens.ts"],"exclude":["node_modules"]},"isInternal":false,"tokens":64,"sizeBytes":245},{"name":"package.json","path":"packages/utility/package.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/utility/package.json","title":"@onlook/utility","category":"anthropic-skill","format":"json","content":"{\n    \"name\": \"@onlook/utility\",\n    \"description\": \"A utility library for Onlook\",\n    \"main\": \"./src/index.ts\",\n    \"type\": \"module\",\n    \"module\": \"src/index.ts\",\n    \"types\": \"src/index.ts\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/onlook-dev/onlook.git\"\n    },\n    \"scripts\": {\n        \"clean\": \"rm -rf node_modules\",\n        \"lint\": \"eslint . --max-warnings 0\",\n        \"format\": \"eslint --fix .\",\n        \"typecheck\": \"tsc --noEmit\"\n    },\n    \"keywords\": [\n        \"onlook\",\n        \"utility\"\n    ],\n    \"author\": {\n        \"name\": \"Onlook\",\n        \"email\": \"contact@onlook.com\"\n    },\n    \"license\": \"Apache-2.0\",\n    \"homepage\": \"https://onlook.com\",\n    \"devDependencies\": {\n        \"@onlook/eslint\": \"*\",\n        \"@onlook/typescript\": \"*\",\n        \"@types/culori\": \"^2.0.4\",\n        \"eslint\": \"^9.0.0\",\n        \"typescript\": \"^5.5.4\"\n    },\n    \"dependencies\": {\n        \"@onlook/fonts\": \"*\",\n        \"@onlook/constants\": \"*\",\n        \"browser-image-compression\": \"^2.0.2\",\n        \"culori\": \"^4.0.1\",\n        \"free-email-domains\": \"^1.2.16\",\n        \"is-subdir\": \"^1.2.0\",\n        \"mime-lite\": \"^1.0.3\",\n        \"normalize-url\": \"^8.0.2\",\n        \"strip-ansi\": \"^7.1.0\",\n        \"tailwind-merge\": \"^3.3.1\",\n        \"tldts\": \"^6.1.82\",\n        \"uuid\": \"^11.1.0\"\n    }\n}\n","frontmatter":{"name":"@onlook/utility","description":"A utility library for Onlook","main":"./src/index.ts","type":"module","module":"src/index.ts","types":"src/index.ts","version":"0.0.0","private":true,"repository":{"type":"git","url":"https://github.com/onlook-dev/onlook.git"},"scripts":{"clean":"rm -rf node_modules","lint":"eslint . --max-warnings 0","format":"eslint --fix .","typecheck":"tsc --noEmit"},"keywords":["onlook","utility"],"author":{"name":"Onlook","email":"contact@onlook.com"},"license":"Apache-2.0","homepage":"https://onlook.com","devDependencies":{"@onlook/eslint":"*","@onlook/typescript":"*","@types/culori":"^2.0.4","eslint":"^9.0.0","typescript":"^5.5.4"},"dependencies":{"@onlook/fonts":"*","@onlook/constants":"*","browser-image-compression":"^2.0.2","culori":"^4.0.1","free-email-domains":"^1.2.16","is-subdir":"^1.2.0","mime-lite":"^1.0.3","normalize-url":"^8.0.2","strip-ansi":"^7.1.0","tailwind-merge":"^3.3.1","tldts":"^6.1.82","uuid":"^11.1.0"}},"isInternal":false,"tokens":436,"sizeBytes":1365},{"name":"tsconfig.json","path":"packages/utility/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/utility/tsconfig.json","title":"Utility Skill","category":"anthropic-skill","format":"json","content":"{\n    \"extends\": \"@onlook/typescript/base.json\",\n    \"compilerOptions\": {\n        \"baseUrl\": \".\"\n    },\n    \"include\": [\"src\", \"test\"],\n    \"exclude\": [\"node_modules\"]\n}\n","frontmatter":{"extends":"@onlook/typescript/base.json","compilerOptions":{"baseUrl":"."},"include":["src","test"],"exclude":["node_modules"]},"isInternal":false,"tokens":46,"sizeBytes":170},{"name":"CLAUDE.md","path":"CLAUDE.md","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/CLAUDE.md","title":"Claude Agent Guidelines & System Prompt","category":"claude-rule","format":"markdown","content":"## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n","isInternal":false,"tokens":1499,"sizeBytes":6119},{"name":"README.md","path":"packages/db/src/migration-scripts/README.md","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/src/migration-scripts/README.md","title":"migration-scripts Documentation","category":"plugin-manifest","format":"markdown","content":"# migration-scripts Documentation\n\nPath: `packages/db/src/migration-scripts/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/src/migration-scripts/README.md)","tokens":300,"sizeBytes":218},{"name":"README.md","path":"packages/file-system/README.md","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/README.md","title":"file-system Documentation","category":"plugin-manifest","format":"markdown","content":"# file-system Documentation\n\nPath: `packages/file-system/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/README.md)","tokens":300,"sizeBytes":186},{"name":"README.md","path":"packages/github/README.md","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/README.md","title":"github Documentation","category":"plugin-manifest","format":"markdown","content":"# github Documentation\n\nPath: `packages/github/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/github/README.md)","tokens":300,"sizeBytes":171},{"name":"README.md","path":"packages/image-server/README.md","rawUrl":"https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/README.md","title":"image-server Documentation","category":"plugin-manifest","format":"markdown","content":"# image-server Documentation\n\nPath: `packages/image-server/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/image-server/README.md)","tokens":300,"sizeBytes":189}],"systemPromptSnippet":"<yakaai_skills repo=\"onlook-dev/onlook\">\n<!-- File: AGENTS.md (Tokens: ~1499 | Category: root-instruction) -->\n## Onlook Agents Guide\n\nActionable rules for repo agents—keep diffs minimal, safe, token‑efficient.\n\n### Purpose & Scope\n\n- Audience: automated coding agents working within this repository.\n- Goal: small, correct diffs aligned with the project’s architecture.\n- Non-goals: editing generated artifacts, lockfiles, or `node_modules`.\n\n### Repo Map\n\n- Monorepo managed by Bun workspaces (see root `package.json`).\n- App: `apps/web/client` (Next.js App Router + TailwindCSS).\n- API routes: `apps/web/client/src/server/api/routers/*`, aggregated in\n  `apps/web/client/src/server/api/root.ts`.\n- Shared utilities: `packages/*` (e.g., `packages/utility`).\n\n### Stack & Runtimes\n\n- UI: Next.js App Router, TailwindCSS.\n- API: tRPC + Zod (`apps/web/client/src/server/api/*`).\n- Package manager: Bun only — use Bun for all installs and scripts; do not use\n  npm, yarn, or pnpm.\n\n### Agent Priorities\n\n- Correctness first: minimal scope and targeted edits.\n- Respect client/server boundaries in App Router.\n- Prefer local patterns and existing abstractions; avoid one-off frameworks.\n- Do not modify build outputs, generated files, or lockfiles.\n- Use Bun for all scripts; do not introduce npm/yarn.\n- Avoid running the local dev server in automation contexts.\n- Respect type safety and\n\n### Next.js App Router\n\n- Default to Server Components. Add `use client` when using events,\n  state/effects, browser APIs, or client-only libs.\n- App structure: `apps/web/client/src/app/**` (`page.tsx`, `layout.tsx`,\n  `route.ts`).\n- Client providers live behind a client boundary (e.g.,\n  `apps/web/client/src/trpc/react.tsx`).\n- Example roots: `apps/web/client/src/app/layout.tsx` (RSC shell, providers\n  wired, scripts gated by env).\n- Components using `mobx-react-lite`'s `observer` must be client components\n  (include `use client`).\n\n### tRPC API\n\n- Routers live in `apps/web/client/src/server/api/routers/**` and must be\n  exported from `apps/web/client/src/server/api/root.ts`.\n- Use `publicProcedure`/`protectedProcedure` from\n  `apps/web/client/src/server/api/trpc.ts`; validate inputs with Zod.\n- Serialization handled by SuperJSON; return plain objects/arrays.\n- Client usage via `apps/web/client/src/trpc/react.tsx` (React Query + tRPC\n  links).\n\n### Auth & Supabase\n\n- Server-side client: `apps/web/client/src/utils/supabase/server.ts` (uses Next\n  headers/cookies). Use in server components, actions, and routes.\n- Browser client: `apps/web/client/src/utils/supabase/client/index.ts` for\n  client components.\n- Never pass server-only clients into client code.\n\n### Env & Config\n\n- Define/validate env vars in `apps/web/client/src/env.ts` via\n  `@t3-oss/env-nextjs`.\n- Expose browser vars with `NEXT_PUBLIC_*` and declare in the `client` schema.\n- Prefer `env` from `@/env`. In server-only helpers (e.g., base URL in\n  `src/trpc/helpers.ts`), read `process.env` only for deployment vars like\n  `VERCEL_URL`/`PORT`. Never use `process.env` in client code; in shared\n  modules, guard with `typeof window === 'undefined'`.\n- Import `./src/env` in `apps/web/client/next.config.ts` to enforce validation.\n\n### Imports & Paths\n\n- Use path aliases: `@/*` and `~/*` map to `apps/web/client/src/*` (see\n  `apps/web/client/tsconfig.json`).\n- Do not import server-only modules into client components. Limited exception:\n  editor modules that already use `path`; reuse only there. Never import\n  `process` in client code.\n- Split code by environment if needed (server file vs client file).\n\n### MobX + React Stores\n\n- Create store instances with `useState(() => new Store())` for stability across\n  renders.\n- Keep active store in `useRef`; clean up async with\n  `setTimeout(() => storeRef.current?.clear(), 0)` to avoid route-change races.\n- Avoid `useMemo` for store instances; React may drop memoized values leading to\n  data loss.\n- Avoid putting the store instance in effect deps if it loops; split concerns\n  (e.g., project vs branch).\n- `observer` components are client-only. Place one client boundary at the\n  feature entry; child observers need not include `use client` (e.g.,\n  `apps/web/client/src/app/project/[id]/_components/main.tsx`).\n- Example store: `apps/web/client/src/components/store/editor/engine.ts:1` (uses\n  `makeAutoObservable`).\n\n### Styling & UI\n\n- TailwindCSS-first styling; global styles are already imported in\n  `apps/web/client/src/app/layout.tsx`.\n- Prefer existing UI components from `@onlook/ui` and local patterns.\n- Preserve dark theme defaults via `ThemeProvider` usage in layout.\n\n### Internationalization\n\n- `next-intl` is configured; provider lives in\n  `apps/web/client/src/app/layout.tsx`.\n- Strings live in `apps/web/client/messages/*`. Add/modify keys there; avoid\n  hardcoded user-facing text.\n- Keep keys stable; prefer additions over breaking renames.\n\n### Common Pitfalls\n\n- Missing `use client` where needed (events/browser APIs) causes unbound events;\n  a single boundary at the feature root is sufficient.\n- New tRPC routers not exported in `src/server/api/root.ts` (endpoints\n  unreachable).\n- Env vars not typed/exposed in `src/env.ts` cause runtime/edge failures. Prefer\n  `env`; avoid new `process.env` reads in client code.\n- Importing server-only code into client components (bundling/runtime errors).\n  Note: `path` is already used in specific client code-editor modules; avoid\n  expanding Node API usage beyond those areas.\n- Bypassing i18n by hardcoding strings instead of using message files/hooks.\n- Avoid `useMemo` to create MobX stores (risk of lost references); avoid\n  synchronous cleanup on route change (race conditions).\n\n### Context Discipline (for Agents)\n\n- Search narrowly with ripgrep; open only files you need.\n- Read small sections; avoid `node_modules`, `.next`, large assets.\n- Propose minimal diffs aligned with existing conventions; avoid wide refactors.\n\n### Notes\n\n- Unit tests can be run with `bun test`\n- Run type checking with `bun run typecheck`\n- Apply database updates to local dev with `bun run db:push`\n- Refrain from running the dev server\n- DO NOT run `db:gen`. This is reserved for the maintainer.\n- DO NOT use any type unless necessary\n\n<!-- File: packages/ai/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Ai Skill\n\nPath: `packages/ai/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/package.json)\n\n<!-- File: packages/ai/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Ai Skill\n\nPath: `packages/ai/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/ai/tsconfig.json)\n\n<!-- File: packages/code-provider/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Code-provider Skill\n\nPath: `packages/code-provider/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/package.json)\n\n<!-- File: packages/code-provider/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Code-provider Skill\n\nPath: `packages/code-provider/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/code-provider/tsconfig.json)\n\n<!-- File: packages/constants/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Constants Skill\n\nPath: `packages/constants/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/package.json)\n\n<!-- File: packages/constants/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Constants Skill\n\nPath: `packages/constants/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/constants/tsconfig.json)\n\n<!-- File: packages/db/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Db Skill\n\nPath: `packages/db/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/package.json)\n\n<!-- File: packages/db/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Db Skill\n\nPath: `packages/db/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/db/tsconfig.json)\n\n<!-- File: packages/email/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Email Skill\n\nPath: `packages/email/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/package.json)\n\n<!-- File: packages/email/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Email Skill\n\nPath: `packages/email/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/email/tsconfig.json)\n\n<!-- File: packages/file-system/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# File-system Skill\n\nPath: `packages/file-system/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/package.json)\n\n<!-- File: packages/file-system/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# File-system Skill\n\nPath: `packages/file-system/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/file-system/tsconfig.json)\n\n<!-- File: packages/fonts/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Fonts Skill\n\nPath: `packages/fonts/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/package.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Existing-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/existing-fontfamily/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Font-already-exists Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/font-already-exists/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# New-fontfamily Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-font-to-tailwind-theme/new-fontfamily/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Existing-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/existing-import/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# No-import Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/add-google-font-specifier/no-import/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Array-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/array-to-array/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Empty-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/empty-array/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# No-src-property Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/no-src-property/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Single-to-array Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/merge-local-font-sources/single-to-array/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/google-font/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Last-google-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/last-google-font/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Local-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/local-font/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-declaration/multiple-fonts/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Multiple-fonts Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/multiple-fonts/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Non-existent-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/non-existent-font/config.json)\n\n<!-- File: packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Single-font Skill\n\nPath: `packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/onlook-dev/onlook/HEAD/packages/fonts/test/data/ast-manipulators/remove-font-from-tailwind-theme/single-font/config.json)\n\n<!-- ... +62 more modular skills available via /api/skills/onlook-dev/onlook?path={path} -->\n</yakaai_skills>"}