@superblocksteam/vite-plugin-file-sync 2.0.100 → 2.0.101-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  2. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +28 -10
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  4. package/dist/ai-service/agent/tools/build-rename-file.d.ts +5 -2
  5. package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
  6. package/dist/ai-service/agent/tools/build-rename-file.js +11 -5
  7. package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
  8. package/dist/ai-service/agent/tools/index.d.ts +1 -0
  9. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  10. package/dist/ai-service/agent/tools/index.js +1 -0
  11. package/dist/ai-service/agent/tools/index.js.map +1 -1
  12. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  13. package/dist/ai-service/agent/tools.js +2 -1
  14. package/dist/ai-service/agent/tools.js.map +1 -1
  15. package/dist/ai-service/agent/tools2/tools/git.d.ts +8 -1
  16. package/dist/ai-service/agent/tools2/tools/git.d.ts.map +1 -1
  17. package/dist/ai-service/agent/tools2/tools/git.js +93 -3
  18. package/dist/ai-service/agent/tools2/tools/git.js.map +1 -1
  19. package/dist/ai-service/agent/tools2/tools/remember-knowledge.d.ts +0 -2
  20. package/dist/ai-service/agent/tools2/tools/remember-knowledge.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools2/tools/remember-knowledge.js +2 -3
  22. package/dist/ai-service/agent/tools2/tools/remember-knowledge.js.map +1 -1
  23. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  24. package/dist/ai-service/agent/utils.js +0 -4
  25. package/dist/ai-service/agent/utils.js.map +1 -1
  26. package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
  27. package/dist/ai-service/app-skills/helpers.js +0 -4
  28. package/dist/ai-service/app-skills/helpers.js.map +1 -1
  29. package/dist/ai-service/index.d.ts +2 -1
  30. package/dist/ai-service/index.d.ts.map +1 -1
  31. package/dist/ai-service/index.js +83 -0
  32. package/dist/ai-service/index.js.map +1 -1
  33. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  34. package/dist/ai-service/integrations/store.js +12 -10
  35. package/dist/ai-service/integrations/store.js.map +1 -1
  36. package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts.map +1 -1
  37. package/dist/ai-service/llm/context-v2/truncation-fallback.js +6 -3
  38. package/dist/ai-service/llm/context-v2/truncation-fallback.js.map +1 -1
  39. package/dist/ai-service/llm/impl/anthropic.js +1 -1
  40. package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
  41. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  42. package/dist/ai-service/llm/impl/clark.js +2 -3
  43. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  44. package/dist/ai-service/llm/stream/config.d.ts +1 -1
  45. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  46. package/dist/ai-service/llm/stream/config.js.map +1 -1
  47. package/dist/ai-service/llm/stream/retry-engine.js +2 -2
  48. package/dist/ai-service/llm/types.d.ts +1 -1
  49. package/dist/ai-service/llm/types.d.ts.map +1 -1
  50. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  51. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  52. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +25 -3
  53. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  54. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  55. package/dist/ai-service/state-machine/handlers/llm-generating.js +15 -21
  56. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  57. package/dist/injected-index.d.ts.map +1 -1
  58. package/dist/injected-index.js +7 -3
  59. package/dist/injected-index.js.map +1 -1
  60. package/dist/socket-manager.d.ts.map +1 -1
  61. package/dist/socket-manager.js +36 -5
  62. package/dist/socket-manager.js.map +1 -1
  63. package/package.json +6 -5
  64. package/dist/ai-service/clark-provider/clark-chat-settings.d.ts +0 -10
  65. package/dist/ai-service/clark-provider/clark-chat-settings.d.ts.map +0 -1
  66. package/dist/ai-service/clark-provider/clark-chat-settings.js +0 -11
  67. package/dist/ai-service/clark-provider/clark-chat-settings.js.map +0 -1
  68. package/dist/ai-service/clark-provider/clark-error-handler.d.ts +0 -16
  69. package/dist/ai-service/clark-provider/clark-error-handler.d.ts.map +0 -1
  70. package/dist/ai-service/clark-provider/clark-error-handler.js +0 -18
  71. package/dist/ai-service/clark-provider/clark-error-handler.js.map +0 -1
  72. package/dist/ai-service/clark-provider/clark-language-model.d.ts +0 -25
  73. package/dist/ai-service/clark-provider/clark-language-model.d.ts.map +0 -1
  74. package/dist/ai-service/clark-provider/clark-language-model.js +0 -414
  75. package/dist/ai-service/clark-provider/clark-language-model.js.map +0 -1
  76. package/dist/ai-service/clark-provider/clark-provider.d.ts +0 -45
  77. package/dist/ai-service/clark-provider/clark-provider.d.ts.map +0 -1
  78. package/dist/ai-service/clark-provider/clark-provider.js +0 -50
  79. package/dist/ai-service/clark-provider/clark-provider.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import type { ClarkProviderSettings } from "../clark-provider/clark-provider.js";
2
1
  import type { AnthropicProviderSettings } from "@ai-sdk/anthropic";
3
2
  import type { LanguageModelV3 } from "@ai-sdk/provider";
3
+ import type { ClarkProviderSettings } from "@superblocksteam/clark";
4
4
  import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
5
5
  export type LLMProviderSettings = {
6
6
  /** Allows us to control the paths we can go to, instead of hardcoding them */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,SAAS,EAAE,yBAAyB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,GACT,mBAAmB,GACnB,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;CACrD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,SAAS,EAAE,yBAAyB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,GACT,mBAAmB,GACnB,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;CACrD,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const content = "---\nname: superblocks-frontend\ndescription: |\n Build frontend UI using React, Tailwind CSS, and Superblocks components. Essential for connecting Superblocks UIs with APIs.\n Use when creating pages, components, handling user interactions, or working with the design system.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Superblocks Frontend Development\n\nThis skill covers building frontend UI for Superblocks applications using React, Tailwind CSS v4, and the Superblocks component library.\n\n## Platform Overview\n\nThis is a React-based web application platform. Use standard React patterns:\n\n- `useState`, `useEffect`, `useCallback`, `useMemo`\n- Event handlers and controlled components\n- JSX with Tailwind CSS classes\n\n## Using APIs from Frontend\n\nYou **must** use the `useApi` hook for calling backend APIs. It supports two modes:\n\n**Declarative** \u2014 auto-fetches on mount and when inputs change (preferred for data fetching):\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\n\n// Auto-fetches when email or name changes. No useEffect, no loading state, no HMR guards needed.\nconst { loading, data } = useApi(\"GetUsers\", { email, name });\n```\n\n**Imperative** \u2014 call `run()` manually (for event-driven actions like form submissions):\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\nimport { toast } from \"sonner\";\n\nconst { run: createOrder, loading } = useApi(\"CreateOrder\");\n\nconst handleSubmit = useCallback(async () => {\n try {\n await createOrder({ item, qty });\n } catch (error) {\n const message =\n error && typeof error === \"object\" && \"message\" in error\n ? String((error as { message: unknown }).message)\n : String(error);\n toast.error(\"Error creating order: \" + message);\n }\n}, [item, qty, createOrder]);\n```\n\nBoth modes return `{ run, cancel, loading, data }`. `data` persists across re-runs (shows previous result while loading). HMR double-fetch prevention is built in \u2014 no `useRef` guard needed.\n\n### Critical API Rules\n\n1. **MUST call API by exact name**: Format is `<ApiName>` matching folder `apis/<ApiName>/api.yaml`\n2. **Prefer declarative mode**: For data fetching, pass inputs directly: `useApi(\"GetUsers\", { email })`. Only use imperative mode for event-driven actions (button clicks, form submissions).\n3. **Use `loading` and `data` from useApi**: Do NOT create separate `useState` for loading or response data \u2014 useApi manages this for you\n4. **ALWAYS check API interfaces**: NEVER guess the response structure\n5. **Include all parameters**: Even optional ones should be passed as `null`\n6. **ALWAYS use try/catch**: In imperative mode, APIs throw errors when they fail - wrap ALL `run()` calls in try/catch blocks. In declarative mode, errors are swallowed (check `data` for the last successful result).\n\n### File Handling\n\n**CRITICAL: Files must be wrapped in `{ files: [...] }` format:**\n\n```tsx\n// \u2705 CORRECT - Frontend: wrap files in { files: [...] }\nconst response = await runUploadApi({ userFile: { files: selectedFiles } });\n\n// \u274C WRONG - backend cannot process unwrapped files\nconst response = await runUploadApi({ userFile: selectedFiles });\n```\n\n## Platform Hooks\n\nAvailable hooks from `@superblocksteam/library`:\n\n```typescript\nimport {\n useSuperblocksUser,\n useSuperblocksGroups,\n useSuperblocksDataTags,\n} from \"@superblocksteam/library\";\n\n// Get current user info\nconst user = useSuperblocksUser();\n// user.name, user.email, user.id, user.groups, user.username, user.metadata\n\n// Get organization groups\nconst groups = useSuperblocksGroups();\n\n// Manage data tags\nconst { dataTags, setDataTag } = useSuperblocksDataTags();\n```\n\n**For embedded applications**, see the `references/embedding.md` file for `useEmbedProperties`, `useEmbedEvent`, and `useEmitEmbedEvent` hooks.\n\n## Logging Out of Integrations\n\nWhen building a \"Log out\" or \"Sign out\" button for apps that use OAuth-like integrations, use `logoutIntegrations` from the library to clear OAuth tokens:\n\n```typescript\nimport { logoutIntegrations } from \"@superblocksteam/library\";\n\nconst handleLogout = async () => {\n await logoutIntegrations();\n // Optionally redirect or show confirmation\n};\n```\n\n## Application Architecture\n\n### App.tsx Layout Structure\n\n**For single-page applications:**\n\n- Put all content in `pages/<pageName>/index.tsx`\n- Use components to compose and build the page\n- Keep `App.tsx` minimal with just `<AppProvider>` and `<Outlet />`\n\n**For multi-page applications:**\n\n- Put shared navigation/layout in `App.tsx` (sidebars, headers, footers)\n- Always include `<Outlet />` for page content\n- Always include `<AppProvider />` wrapper\n- Individual pages focus on content, not layout\n\n```tsx\n// \u2705 CORRECT - Multi-page App.tsx layout\n<AppProvider>\n <div className=\"flex flex-row size-screen\">\n {/* Sidebar - persistent across all pages */}\n <div className=\"flex bg-sidebar border-r w-[250px]\">\n <Navigation />\n </div>\n\n {/* Main content area */}\n <div className=\"flex flex-1 h-full flex-col\">\n {/* Header - persistent across all pages */}\n <div className=\"flex bg-header border-b h-[60px]\">\n <Header />\n </div>\n\n {/* Page content area */}\n <div className=\"flex p-4 flex-1 overflow-auto\">\n <Outlet />\n </div>\n </div>\n </div>\n</AppProvider>\n```\n\n**PROTECTED: NEVER remove `<AppProvider>` or `<Outlet />` from App.tsx!**\n\n### Page Structure\n\n```tsx\n// \u2705 CORRECT - Page focuses on content only\n<div className=\"flex flex-col gap-4 size-screen overflow-auto\">\n <h1 className=\"text-3xl font-bold\">Dashboard Content</h1>\n <Card>{/* Page-specific content */}</Card>\n</div>\n```\n\n**IMPORTANT**: The first div on the page must have `overflow-auto` so the user's page can scroll.\n\n## Routing\n\nUse `react-router@7` in data mode. Standard patterns apply:\n\n- `useNavigate()` for programmatic navigation\n- `useParams()` for route parameters\n- `useSearchParams()` for query strings\n\n**If you add new pages or rename files, you MUST update the router.**\n\n## Design System (Tailwind CSS v4)\n\n**All design tokens are defined in `index.css`**. Apps come with a professional black-and-white theme by default.\n\n### Semantic Tokens Rule\n\n**ALWAYS use semantic tokens** \u2014 NEVER raw Tailwind utilities:\n\n```tsx\n// \u2705 CORRECT\n<Card className=\"bg-background text-foreground border border-border\" />\n\n// \u274C WRONG\n<Card className=\"bg-white text-black border-gray-200\" />\n```\n\n### When to Modify index.css\n\nOnly modify when:\n\n- User explicitly requests branding/theme changes\n- Replicating a specific brand look (e.g., Yelp, Instacart)\n- Feature requests (lists, filters, CRUD) do NOT require changes\n\n**Modification Rules:**\n\n- All colors must be in OKLCH format\n- Use semantic names (`--color-warning`, `--shadow-elevated`)\n- Do not remove or rename existing tokens\n- Limit color palette to 5 colors max\n- Avoid gradients unless explicitly requested\n- Minimal font sizes (3 max: body, section heading, main heading)\n\n### Component Variants\n\nUse or create variants instead of one-off styles:\n\n```tsx\n// \u274C WRONG - Hacky inline overrides\n<Button className=\"text-white border-white hover:bg-white\" />\n\n// \u2705 CORRECT - Use a variant\n<Button variant=\"secondary\" />\n```\n\n## Icons\n\nUse icons from Lucide React library:\n\n```tsx\nimport { Icon } from \"@/components/ui/icon\";\n<Icon icon=\"heart\" />;\n\nimport { Button } from \"@/components/ui/button\";\n<Button>\n <Icon icon=\"plus\" /> Add Item\n</Button>;\n```\n\n**Always use icons rather than emojis unless explicitly requested.**\n\n## Custom Components\n\n**CRITICAL: Component composition is MANDATORY. DO NOT create monolithic pages.**\n\n### The Composition Rule\n\nWhen building ANY feature:\n\n1. **First**, identify reusable parts (list items, cards, forms, filters, headers)\n2. **Then**, create separate component files\n3. **Finally**, compose them together in the page\n\n### When to Create Components\n\n- **Rendering any list** - Extract to a component\n- **Building cards/complex UI** - Each card type is a component\n- **Creating forms** - Form sections are components\n- **Adding filters/headers** - These are components\n- **Page has >50 lines JSX** - Break it down\n\n### Component Boundary Rules\n\n**Inside a custom component:**\n\n- \u2705 Use React hooks (useState, useReducer, useEffect, etc.)\n- \u2705 Use local React state\n- \u2705 Use internal helper components\n- \u2705 Use other registered components\n- \u274C CANNOT call APIs - must pass data into the component\n\n### Example: Proper Component Structure\n\n```tsx\n// components/ProductCard/index.tsx - Extract to component\nimport { Card } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\n\ntype ProductCardProps = {\n product: {\n id: string;\n name: string;\n image: string;\n };\n};\n\nexport default function ProductCard(props: ProductCardProps) {\n return (\n <Card>\n <img src={props.product.image} />\n <h3 className=\"text-lg font-semibold\">{props.product.name}</h3>\n <Button>Add</Button>\n </Card>\n );\n}\n\n// pages/Products/index.tsx - Clean composition\nimport ProductCard from \"@/components/ProductCard\";\n\nconst ProductsPage = () => {\n const [products, setProducts] = useState([]);\n\n return (\n <div className=\"grid grid-cols-3 gap-4\">\n {products.map((p) => (\n <ProductCard key={p.id} product={p} />\n ))}\n </div>\n );\n};\n```\n\n## Visual Excellence\n\n**Prioritize visual excellence from the start:**\n\n1. **Design System Enhancement**: Start by enhancing `index.css` with app-specific colors that match the target aesthetic\n2. **Professional Layout Architecture**: Use sophisticated layouts with proper spacing, responsive design\n3. **Rich Interactive Components**: Leverage advanced components with proper variants and states\n4. **Visual Polish**: Add shadows, smooth transitions, skeleton loaders, hover effects, typography hierarchy\n5. **Real-World UI Patterns**: Create layouts that feel like professional applications\n\n**Make applications that look and feel like real, polished products - not basic wireframes.**\n\n### Loading States\n\n**Always represent loading with skeletons (shimmers), not spinners or empty screens.**\n\n### Efficient Loading Patterns\n\n1. **Default to Smart Loading**: Check for existing data before showing loading states\n2. **Loading State Hierarchy**:\n - Empty state \u2192 Full loading\n - Has data \u2192 Keep showing data during refetch\n - Error state \u2192 Show error with retry option\n3. **Debounce Rapid Requests**: Prevent multiple API calls in short succession\n4. **Use hooks to encapsulate API logic**: Avoid repeating code\n\n## Performance Rules\n\n### 1. ALWAYS Paginate Tables and Lists\n\n**NEVER render more than 50 rows without pagination.** Always add client-side pagination:\n\n```tsx\nfunction PaginatedTable({ data }: { data: any[] }) {\n const PAGE_SIZE = 20;\n const [page, setPage] = useState(0);\n const totalPages = Math.ceil(data.length / PAGE_SIZE);\n const pageData = useMemo(\n () => data.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE),\n [data, page],\n );\n\n useEffect(() => {\n setPage(0);\n }, [data.length]);\n\n return (\n <>\n <Table>{/* render pageData rows */}</Table>\n <span>\n Page {page + 1} of {totalPages} ({data.length} total rows)\n </span>\n <Button\n onClick={() => setPage((p) => Math.max(0, p - 1))}\n disabled={page === 0}\n >\n Previous\n </Button>\n <Button\n onClick={() => setPage((p) => Math.min(totalPages - 1, p + 1))}\n disabled={page >= totalPages - 1}\n >\n Next\n </Button>\n </>\n );\n}\n```\n\nFor 200+ rows, prefer **server-side pagination**; use cursor/keyset pagination for high offsets instead of `LIMIT`/`OFFSET`.\n\nFor 500+ item lists where pagination doesn't fit the UX (chat messages, infinite scroll feeds, large dropdowns), use **virtualization** (`react-virtuoso` or `@tanstack/react-virtual`) to render only the items visible in the viewport.\n\n### 2. ALWAYS Debounce Input-Driven API Calls\n\n**NEVER call an API directly from onChange.** Debounce search/filter inputs with a 300ms timer:\n\n```tsx\nfunction DebouncedSearch({ onSearch }: { onSearch: (query: string) => void }) {\n const [localValue, setLocalValue] = useState(\"\");\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalValue(e.target.value);\n clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => onSearch(e.target.value), 300);\n },\n [onSearch],\n );\n useEffect(() => () => clearTimeout(timerRef.current), []);\n\n return (\n <Input value={localValue} onChange={handleChange} placeholder=\"Search...\" />\n );\n}\n```\n\n### 3. Memoize Expensive Renders\n\nUse memoization (`memo()`, `useMemo`, `useCallback`) when it prevents measurable re-renders or expensive recomputation:\n\n```tsx\nconst OrderRow = memo(function OrderRow({\n order,\n onSelect,\n}: {\n order: Order;\n onSelect: (id: string) => void;\n}) {\n return (\n <TableRow onClick={() => onSelect(order.id)}>\n <TableCell>{order.id}</TableCell>...\n </TableRow>\n );\n});\n\nconst handleSelect = useCallback((id: string) => {\n setSelectedId(id);\n}, []);\n\nconst filtered = useMemo(\n () =>\n orders.filter((o) => o.status === status).sort((a, b) => b.total - a.total),\n [orders, status],\n);\n```\n\n### 4. ALWAYS Clean Up Side Effects\n\nClean up timers, event listeners, and subscriptions in `useEffect` return functions:\n\n```tsx\nuseEffect(() => {\n const handler = (e: KeyboardEvent) => {\n /* ... */\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n}, []);\n```\n\n### 5. Cancel In-Flight API Requests on Unmount\n\nFor search/filter patterns, prefer declarative mode \u2014 it handles cancellation and cleanup automatically:\n\n```tsx\n// Declarative: auto-fetches and cancels on unmount/input change\nconst { loading, data } = useApi(\"SearchProducts\", { query });\n```\n\nFor imperative usage with manual cleanup, use the `cancel()` function:\n\n```tsx\nconst { run, cancel } = useApi(\"SearchProducts\");\n\nuseEffect(() => {\n if (!query) return;\n run({ query }).catch(console.error);\n return () => {\n void cancel().catch(() => {});\n };\n}, [query, run, cancel]);\n```\n";
1
+ export declare const content = "---\nname: superblocks-frontend\ndescription: |\n Build frontend UI using React, Tailwind CSS, and Superblocks components. Essential for connecting Superblocks UIs with APIs.\n Use when creating pages, components, handling user interactions, or working with the design system.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Superblocks Frontend Development\n\nThis skill covers building frontend UI for Superblocks applications using React, Tailwind CSS v4, and the Superblocks component library.\n\n## Platform Overview\n\nThis is a React-based web application platform. Use standard React patterns:\n\n- `useState`, `useEffect`, `useCallback`, `useMemo`\n- Event handlers and controlled components\n- JSX with Tailwind CSS classes\n\n## Using APIs from Frontend\n\nYou **must** use the `useApi` hook for calling backend APIs. It supports two modes:\n\n**Declarative** \u2014 auto-fetches on mount and when inputs change (preferred for data fetching):\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\n\n// Auto-fetches when email or name changes. No useEffect, no loading state, no HMR guards needed.\nconst { loading, data } = useApi(\"GetUsers\", { email, name });\n```\n\n**Imperative** \u2014 call `run()` manually (for event-driven actions like form submissions):\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\nimport { toast } from \"sonner\";\n\nconst { run: createOrder, loading } = useApi(\"CreateOrder\");\n\nconst handleSubmit = useCallback(async () => {\n try {\n await createOrder({ item, qty });\n } catch (error) {\n const message =\n error && typeof error === \"object\" && \"message\" in error\n ? String((error as { message: unknown }).message)\n : String(error);\n toast.error(\"Error creating order: \" + message);\n }\n}, [item, qty, createOrder]);\n```\n\nBoth modes return `{ run, cancel, loading, data }`. `data` persists across re-runs (shows previous result while loading). HMR double-fetch prevention is built in \u2014 no `useRef` guard needed.\n\n### Critical API Rules\n\n1. **MUST call API by exact name**: Format is `<ApiName>` matching folder `apis/<ApiName>/api.yaml`\n2. **Prefer declarative mode**: For data fetching, pass inputs directly: `useApi(\"GetUsers\", { email })`. Only use imperative mode for event-driven actions (button clicks, form submissions).\n3. **Use `loading` and `data` from useApi**: Do NOT create separate `useState` for loading or response data \u2014 useApi manages this for you\n4. **ALWAYS check API interfaces**: NEVER guess the response structure\n5. **Include all parameters**: Even optional ones should be passed as `null`\n6. **ALWAYS use try/catch**: In imperative mode, APIs throw errors when they fail - wrap ALL `run()` calls in try/catch blocks. In declarative mode, errors are swallowed (check `data` for the last successful result).\n\n### File Handling\n\n**CRITICAL: Files must be wrapped in `{ files: [...] }` format:**\n\n```tsx\n// \u2705 CORRECT - Frontend: wrap files in { files: [...] }\nconst response = await runUploadApi({ userFile: { files: selectedFiles } });\n\n// \u274C WRONG - backend cannot process unwrapped files\nconst response = await runUploadApi({ userFile: selectedFiles });\n```\n\n## Platform Hooks and Functions\n\nAvailable hooks and functions from `@superblocksteam/library`:\n\n### User and Group Context\n\n```typescript\nimport {\n useSuperblocksUser,\n useSuperblocksGroups,\n} from \"@superblocksteam/library\";\n\n// Get current user info\nconst user = useSuperblocksUser();\n// user.name, user.email, user.id, user.groups, user.username, user.metadata\n\n// Get organization groups\nconst groups = useSuperblocksGroups();\n```\n\n### Environments and Data Tags\n\nConcepts & terminology:\n\n- `Data tags` are labels for different data segments, such as `Staging`, `Production`, or `us-east`.\n- `Profiles` is the legacy term for the same concept. If a user asks about profiles, treat that as data tags.\n- `Environments` are `Edit`, `Preview`, and `Production`, and each data tag is allowed in one or more of those environments.\n- Clark operates in `Edit` mode, so the data tags visible in app context represent the tags available in `Edit`; do not assume this is the same set that will be available in `Preview` or `Production`.\n- When implementing app code, prefer `useSuperblocksDataTags()`, `dataTags`, and `setDataTag()`.\n\nRelevant hooks and functions:\n\n```typescript\nimport { useSuperblocksDataTags, getAppMode } from \"@superblocksteam/library\";\n\n// Manage data tags\nconst { dataTags, setDataTag } = useSuperblocksDataTags();\n\n// Read the current app mode when reasoning about environment-specific behavior\nconst appMode = getAppMode();\n```\n\n### Embedded Applications\n\n**For embedded applications**, see the `references/embedding.md` file for `useEmbedProperties`, `useEmbedEvent`, and `useEmitEmbedEvent` hooks.\n\n## Logging Out of Integrations\n\nWhen building a \"Log out\" or \"Sign out\" button for apps that use OAuth-like integrations, use `logoutIntegrations` from the library to clear OAuth tokens:\n\n```typescript\nimport { logoutIntegrations } from \"@superblocksteam/library\";\n\nconst handleLogout = async () => {\n await logoutIntegrations();\n // Optionally redirect or show confirmation\n};\n```\n\n## Application Architecture\n\n### App.tsx Layout Structure\n\n**For single-page applications:**\n\n- Put all content in `pages/<pageName>/index.tsx`\n- Use components to compose and build the page\n- Keep `App.tsx` minimal with just `<AppProvider>` and `<Outlet />`\n\n**For multi-page applications:**\n\n- Put shared navigation/layout in `App.tsx` (sidebars, headers, footers)\n- Always include `<Outlet />` for page content\n- Always include `<AppProvider />` wrapper\n- Individual pages focus on content, not layout\n\n```tsx\n// \u2705 CORRECT - Multi-page App.tsx layout\n<AppProvider>\n <div className=\"flex flex-row size-screen\">\n {/* Sidebar - persistent across all pages */}\n <div className=\"flex bg-sidebar border-r w-[250px]\">\n <Navigation />\n </div>\n\n {/* Main content area */}\n <div className=\"flex flex-1 h-full flex-col\">\n {/* Header - persistent across all pages */}\n <div className=\"flex bg-header border-b h-[60px]\">\n <Header />\n </div>\n\n {/* Page content area */}\n <div className=\"flex p-4 flex-1 overflow-auto\">\n <Outlet />\n </div>\n </div>\n </div>\n</AppProvider>\n```\n\n**PROTECTED: NEVER remove `<AppProvider>` or `<Outlet />` from App.tsx!**\n\n### Page Structure\n\n```tsx\n// \u2705 CORRECT - Page focuses on content only\n<div className=\"flex flex-col gap-4 size-screen overflow-auto\">\n <h1 className=\"text-3xl font-bold\">Dashboard Content</h1>\n <Card>{/* Page-specific content */}</Card>\n</div>\n```\n\n**IMPORTANT**: The first div on the page must have `overflow-auto` so the user's page can scroll.\n\n## Routing\n\nUse `react-router@7` in data mode. Standard patterns apply:\n\n- `useNavigate()` for programmatic navigation\n- `useParams()` for route parameters\n- `useSearchParams()` for query strings\n\n**If you add new pages or rename files, you MUST update the router.**\n\n## Design System (Tailwind CSS v4)\n\n**All design tokens are defined in `index.css`**. Apps come with a professional black-and-white theme by default.\n\n### Semantic Tokens Rule\n\n**ALWAYS use semantic tokens** \u2014 NEVER raw Tailwind utilities:\n\n```tsx\n// \u2705 CORRECT\n<Card className=\"bg-background text-foreground border border-border\" />\n\n// \u274C WRONG\n<Card className=\"bg-white text-black border-gray-200\" />\n```\n\n### When to Modify index.css\n\nOnly modify when:\n\n- User explicitly requests branding/theme changes\n- Replicating a specific brand look (e.g., Yelp, Instacart)\n- Feature requests (lists, filters, CRUD) do NOT require changes\n\n**Modification Rules:**\n\n- All colors must be in OKLCH format\n- Use semantic names (`--color-warning`, `--shadow-elevated`)\n- Do not remove or rename existing tokens\n- Limit color palette to 5 colors max\n- Avoid gradients unless explicitly requested\n- Minimal font sizes (3 max: body, section heading, main heading)\n\n### Component Variants\n\nUse or create variants instead of one-off styles:\n\n```tsx\n// \u274C WRONG - Hacky inline overrides\n<Button className=\"text-white border-white hover:bg-white\" />\n\n// \u2705 CORRECT - Use a variant\n<Button variant=\"secondary\" />\n```\n\n## Icons\n\nUse icons from Lucide React library:\n\n```tsx\nimport { Icon } from \"@/components/ui/icon\";\n<Icon icon=\"heart\" />;\n\nimport { Button } from \"@/components/ui/button\";\n<Button>\n <Icon icon=\"plus\" /> Add Item\n</Button>;\n```\n\n**Always use icons rather than emojis unless explicitly requested.**\n\n## Custom Components\n\n**CRITICAL: Component composition is MANDATORY. DO NOT create monolithic pages.**\n\n### The Composition Rule\n\nWhen building ANY feature:\n\n1. **First**, identify reusable parts (list items, cards, forms, filters, headers)\n2. **Then**, create separate component files\n3. **Finally**, compose them together in the page\n\n### When to Create Components\n\n- **Rendering any list** - Extract to a component\n- **Building cards/complex UI** - Each card type is a component\n- **Creating forms** - Form sections are components\n- **Adding filters/headers** - These are components\n- **Page has >50 lines JSX** - Break it down\n\n### Component Boundary Rules\n\n**Inside a custom component:**\n\n- \u2705 Use React hooks (useState, useReducer, useEffect, etc.)\n- \u2705 Use local React state\n- \u2705 Use internal helper components\n- \u2705 Use other registered components\n- \u274C CANNOT call APIs - must pass data into the component\n\n### Example: Proper Component Structure\n\n```tsx\n// components/ProductCard/index.tsx - Extract to component\nimport { Card } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\n\ntype ProductCardProps = {\n product: {\n id: string;\n name: string;\n image: string;\n };\n};\n\nexport default function ProductCard(props: ProductCardProps) {\n return (\n <Card>\n <img src={props.product.image} />\n <h3 className=\"text-lg font-semibold\">{props.product.name}</h3>\n <Button>Add</Button>\n </Card>\n );\n}\n\n// pages/Products/index.tsx - Clean composition\nimport ProductCard from \"@/components/ProductCard\";\n\nconst ProductsPage = () => {\n const [products, setProducts] = useState([]);\n\n return (\n <div className=\"grid grid-cols-3 gap-4\">\n {products.map((p) => (\n <ProductCard key={p.id} product={p} />\n ))}\n </div>\n );\n};\n```\n\n## Visual Excellence\n\n**Prioritize visual excellence from the start:**\n\n1. **Design System Enhancement**: Start by enhancing `index.css` with app-specific colors that match the target aesthetic\n2. **Professional Layout Architecture**: Use sophisticated layouts with proper spacing, responsive design\n3. **Rich Interactive Components**: Leverage advanced components with proper variants and states\n4. **Visual Polish**: Add shadows, smooth transitions, skeleton loaders, hover effects, typography hierarchy\n5. **Real-World UI Patterns**: Create layouts that feel like professional applications\n\n**Make applications that look and feel like real, polished products - not basic wireframes.**\n\n### Loading States\n\n**Always represent loading with skeletons (shimmers), not spinners or empty screens.**\n\n### Efficient Loading Patterns\n\n1. **Default to Smart Loading**: Check for existing data before showing loading states\n2. **Loading State Hierarchy**:\n - Empty state \u2192 Full loading\n - Has data \u2192 Keep showing data during refetch\n - Error state \u2192 Show error with retry option\n3. **Debounce Rapid Requests**: Prevent multiple API calls in short succession\n4. **Use hooks to encapsulate API logic**: Avoid repeating code\n\n## Performance Rules\n\n### 1. ALWAYS Paginate Tables and Lists\n\n**NEVER render more than 50 rows without pagination.** Always add client-side pagination:\n\n```tsx\nfunction PaginatedTable({ data }: { data: any[] }) {\n const PAGE_SIZE = 20;\n const [page, setPage] = useState(0);\n const totalPages = Math.ceil(data.length / PAGE_SIZE);\n const pageData = useMemo(\n () => data.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE),\n [data, page],\n );\n\n useEffect(() => {\n setPage(0);\n }, [data.length]);\n\n return (\n <>\n <Table>{/* render pageData rows */}</Table>\n <span>\n Page {page + 1} of {totalPages} ({data.length} total rows)\n </span>\n <Button\n onClick={() => setPage((p) => Math.max(0, p - 1))}\n disabled={page === 0}\n >\n Previous\n </Button>\n <Button\n onClick={() => setPage((p) => Math.min(totalPages - 1, p + 1))}\n disabled={page >= totalPages - 1}\n >\n Next\n </Button>\n </>\n );\n}\n```\n\nFor 200+ rows, prefer **server-side pagination**; use cursor/keyset pagination for high offsets instead of `LIMIT`/`OFFSET`.\n\nFor 500+ item lists where pagination doesn't fit the UX (chat messages, infinite scroll feeds, large dropdowns), use **virtualization** (`react-virtuoso` or `@tanstack/react-virtual`) to render only the items visible in the viewport.\n\n### 2. ALWAYS Debounce Input-Driven API Calls\n\n**NEVER call an API directly from onChange.** Debounce search/filter inputs with a 300ms timer:\n\n```tsx\nfunction DebouncedSearch({ onSearch }: { onSearch: (query: string) => void }) {\n const [localValue, setLocalValue] = useState(\"\");\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalValue(e.target.value);\n clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => onSearch(e.target.value), 300);\n },\n [onSearch],\n );\n useEffect(() => () => clearTimeout(timerRef.current), []);\n\n return (\n <Input value={localValue} onChange={handleChange} placeholder=\"Search...\" />\n );\n}\n```\n\n### 3. Memoize Expensive Renders\n\nUse memoization (`memo()`, `useMemo`, `useCallback`) when it prevents measurable re-renders or expensive recomputation:\n\n```tsx\nconst OrderRow = memo(function OrderRow({\n order,\n onSelect,\n}: {\n order: Order;\n onSelect: (id: string) => void;\n}) {\n return (\n <TableRow onClick={() => onSelect(order.id)}>\n <TableCell>{order.id}</TableCell>...\n </TableRow>\n );\n});\n\nconst handleSelect = useCallback((id: string) => {\n setSelectedId(id);\n}, []);\n\nconst filtered = useMemo(\n () =>\n orders.filter((o) => o.status === status).sort((a, b) => b.total - a.total),\n [orders, status],\n);\n```\n\n### 4. ALWAYS Clean Up Side Effects\n\nClean up timers, event listeners, and subscriptions in `useEffect` return functions:\n\n```tsx\nuseEffect(() => {\n const handler = (e: KeyboardEvent) => {\n /* ... */\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n}, []);\n```\n\n### 5. Cancel In-Flight API Requests on Unmount\n\nFor search/filter patterns, prefer declarative mode \u2014 it handles cancellation and cleanup automatically:\n\n```tsx\n// Declarative: auto-fetches and cancels on unmount/input change\nconst { loading, data } = useApi(\"SearchProducts\", { query });\n```\n\nFor imperative usage with manual cleanup, use the `cancel()` function:\n\n```tsx\nconst { run, cancel } = useApi(\"SearchProducts\");\n\nuseEffect(() => {\n if (!query) return;\n run({ query }).catch(console.error);\n return () => {\n void cancel().catch(() => {});\n };\n}, [query, run, cancel]);\n```\n";
2
2
  //# sourceMappingURL=skill.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,ijdA8dnB,CAAC"}
1
+ {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,sifAofnB,CAAC"}
@@ -80,15 +80,16 @@ const response = await runUploadApi({ userFile: { files: selectedFiles } });
80
80
  const response = await runUploadApi({ userFile: selectedFiles });
81
81
  \`\`\`
82
82
 
83
- ## Platform Hooks
83
+ ## Platform Hooks and Functions
84
84
 
85
- Available hooks from \`@superblocksteam/library\`:
85
+ Available hooks and functions from \`@superblocksteam/library\`:
86
+
87
+ ### User and Group Context
86
88
 
87
89
  \`\`\`typescript
88
90
  import {
89
91
  useSuperblocksUser,
90
92
  useSuperblocksGroups,
91
- useSuperblocksDataTags,
92
93
  } from "@superblocksteam/library";
93
94
 
94
95
  // Get current user info
@@ -97,11 +98,32 @@ const user = useSuperblocksUser();
97
98
 
98
99
  // Get organization groups
99
100
  const groups = useSuperblocksGroups();
101
+ \`\`\`
102
+
103
+ ### Environments and Data Tags
104
+
105
+ Concepts & terminology:
106
+
107
+ - \`Data tags\` are labels for different data segments, such as \`Staging\`, \`Production\`, or \`us-east\`.
108
+ - \`Profiles\` is the legacy term for the same concept. If a user asks about profiles, treat that as data tags.
109
+ - \`Environments\` are \`Edit\`, \`Preview\`, and \`Production\`, and each data tag is allowed in one or more of those environments.
110
+ - Clark operates in \`Edit\` mode, so the data tags visible in app context represent the tags available in \`Edit\`; do not assume this is the same set that will be available in \`Preview\` or \`Production\`.
111
+ - When implementing app code, prefer \`useSuperblocksDataTags()\`, \`dataTags\`, and \`setDataTag()\`.
112
+
113
+ Relevant hooks and functions:
114
+
115
+ \`\`\`typescript
116
+ import { useSuperblocksDataTags, getAppMode } from "@superblocksteam/library";
100
117
 
101
118
  // Manage data tags
102
119
  const { dataTags, setDataTag } = useSuperblocksDataTags();
120
+
121
+ // Read the current app mode when reasoning about environment-specific behavior
122
+ const appMode = getAppMode();
103
123
  \`\`\`
104
124
 
125
+ ### Embedded Applications
126
+
105
127
  **For embedded applications**, see the \`references/embedding.md\` file for \`useEmbedProperties\`, \`useEmbedEvent\`, and \`useEmitEmbedEvent\` hooks.
106
128
 
107
129
  ## Logging Out of Integrations
@@ -1 +1 @@
1
- {"version":3,"file":"skill.generated.js","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8dtB,CAAC"}
1
+ {"version":3,"file":"skill.generated.js","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoftB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-generating.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/llm-generating.ts"],"names":[],"mappings":"AAsCA,OAAO,EAWL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAydzB,eAAO,MAAM,eAAe,GAC1B,OAAO,KAAK,EACZ,UAAU,uBAAuB,MAInB,WAAW,eAAe,KAAG,OAAO,CAAC,IAAI,CAuZxD,CAAC"}
1
+ {"version":3,"file":"llm-generating.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/llm-generating.ts"],"names":[],"mappings":"AAuCA,OAAO,EAWL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAwdzB,eAAO,MAAM,eAAe,GAC1B,OAAO,KAAK,EACZ,UAAU,uBAAuB,MAInB,WAAW,eAAe,KAAG,OAAO,CAAC,IAAI,CAiZxD,CAAC"}
@@ -212,26 +212,26 @@ Do not rely on prior knowledge from skills that may have been summarized away.
212
212
  text: `<current_api>\nThe user is currently viewing the API named "${promptContext.currentApiName}" in the bottom panel.\n</current_api>\n\n`,
213
213
  });
214
214
  }
215
- // Add available profiles context
216
- if (promptContext?.profiles) {
217
- const { available, selected, default: defaultProfile, } = promptContext.profiles;
218
- const profileLines = [];
219
- profileLines.push(`Available profiles (${available.length}):`);
220
- available.forEach((profile) => {
221
- const isSelected = selected?.id === profile.id;
222
- const isDefault = defaultProfile.id === profile.id;
223
- let line = `- ${profile.displayName} (key: "${profile.key}")`;
215
+ // Add available data tags context
216
+ if (promptContext?.dataTags) {
217
+ const { available, selected, default: defaultDataTag, } = promptContext.dataTags;
218
+ const dataTagLines = [];
219
+ dataTagLines.push(`Available data tags (${available.length}):`);
220
+ available.forEach((dataTag) => {
221
+ const isSelected = selected?.id === dataTag.id;
222
+ const isDefault = defaultDataTag.id === dataTag.id;
223
+ let line = `- ${dataTag.displayName} (key: "${dataTag.key}")`;
224
224
  if (isSelected)
225
225
  line += " [CURRENTLY SELECTED]";
226
226
  if (isDefault)
227
227
  line += " [DEFAULT]";
228
- if (profile.description)
229
- line += ` - ${profile.description}`;
230
- profileLines.push(line);
228
+ if (dataTag.description)
229
+ line += ` - ${dataTag.description}`;
230
+ dataTagLines.push(line);
231
231
  });
232
232
  content.push({
233
233
  type: "text",
234
- text: `<available_profiles>\n${profileLines.join("\n")}\n</available_profiles>\n\n`,
234
+ text: `<available_data_tags>\n${dataTagLines.join("\n")}\n</available_data_tags>\n\n`,
235
235
  });
236
236
  }
237
237
  // Add current user context
@@ -487,9 +487,6 @@ export const doLLMGenerating = (clark, services) => {
487
487
  hasToolSuccess("build_finalize"),
488
488
  hasToolSuccess("exitPlanMode"),
489
489
  hasToolSuccess("askMultiChoice"),
490
- // Stop immediately when rememberKnowledge is called so no other tool
491
- // calls or file edits happen before the user approves the fact.
492
- hasToolSuccess("rememberKnowledge"),
493
490
  needsPermissionToExecute(clark),
494
491
  isAwaitingUser(clark),
495
492
  ],
@@ -546,8 +543,7 @@ export const doLLMGenerating = (clark, services) => {
546
543
  return;
547
544
  }
548
545
  if (chunk.type === "tool-result" &&
549
- (chunk.toolName === "askMultiChoice" ||
550
- chunk.toolName === "rememberKnowledge")) {
546
+ chunk.toolName === "askMultiChoice") {
551
547
  shouldTransitionToAwaitingUser = true;
552
548
  }
553
549
  await processStreamChunk(chunk, clark, services);
@@ -631,8 +627,7 @@ export const doLLMGenerating = (clark, services) => {
631
627
  return;
632
628
  }
633
629
  if (shouldTransitionToAwaitingUser ||
634
- clark.context.pendingToolPermissionRequest ||
635
- clark.context.pendingAppKnowledge) {
630
+ clark.context.pendingToolPermissionRequest) {
636
631
  if (isStaleRun()) {
637
632
  clark.logger.info("[llm-generating] Ignoring awaiting-user transition from stale run", {
638
633
  runPromptId,
@@ -644,7 +639,6 @@ export const doLLMGenerating = (clark, services) => {
644
639
  hasSuggestions: clark.context.hasSuggestions,
645
640
  shouldTransitionToAwaitingUser,
646
641
  pendingToolPermissionRequest: !!clark.context.pendingToolPermissionRequest,
647
- pendingAppKnowledge: !!clark.context.pendingAppKnowledge,
648
642
  });
649
643
  void transitionTo({
650
644
  type: AGENT_NEEDS_USER_INPUT,
@@ -1 +1 @@
1
- {"version":3,"file":"llm-generating.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/llm-generating.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-generating.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/llm-generating.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"injected-index.d.ts","sourceRoot":"","sources":["../src/injected-index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AA+D1C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,IAG7C,KAAK,OAAO,CAAC,eAAe,EAC5B,KAAK,IAAI,CAAC,cAAc,EACxB,MAAM,OAAO,CAAC,YAAY,mBA+C7B"}
1
+ {"version":3,"file":"injected-index.d.ts","sourceRoot":"","sources":["../src/injected-index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AA+D1C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,IAG7C,KAAK,OAAO,CAAC,eAAe,EAC5B,KAAK,IAAI,CAAC,cAAc,EACxB,MAAM,OAAO,CAAC,YAAY,mBAoD7B"}
@@ -77,7 +77,11 @@ export function indexHtmlMiddleware(server, features) {
77
77
  if (!entryPoint) {
78
78
  entryPoint = getTemplateEntryPoint(templateName);
79
79
  }
80
- const transformedHtml = await server.transformIndexHtml(url.pathname, getIndexHtml(features ?? {}, entryPoint));
80
+ const viewMode = url.searchParams.get("app_mode") === "PUBLISHED" ||
81
+ url.searchParams.get("app_mode") === "PREVIEW"
82
+ ? "deployed"
83
+ : "dev";
84
+ const transformedHtml = await server.transformIndexHtml(url.pathname, getIndexHtml(features ?? {}, entryPoint, viewMode));
81
85
  if (features?.enableSessionRecording && !isLocalServer) {
82
86
  res.setHeader("Content-Security-Policy", `frame-ancestors 'self' https://*.superblocks.com/ https://*.superblocks.dev/ https://*.superblockshq.com/`);
83
87
  }
@@ -89,7 +93,7 @@ export function indexHtmlMiddleware(server, features) {
89
93
  next();
90
94
  };
91
95
  }
92
- function getIndexHtml(features, entryPoint) {
96
+ function getIndexHtml(features, entryPoint, viewMode = "dev") {
93
97
  return /*html*/ `
94
98
  <!doctype html>
95
99
  <html lang="en">
@@ -98,7 +102,7 @@ function getIndexHtml(features, entryPoint) {
98
102
  <meta name="viewport" content="width=device-width, initial-scale=1" />
99
103
  <title>Code Mode</title>
100
104
  <script>
101
- window._SB_VIEW_MODE = "dev";
105
+ window._SB_VIEW_MODE = "${viewMode}";
102
106
  ${features?.enableSessionRecording ? `window._SB_ENABLE_SESSION_RECORDING = true;` : ""}
103
107
  </script>
104
108
  <!-- Error overlay must load before root.tsx to catch its errors -->
@@ -1 +1 @@
1
- {"version":3,"file":"injected-index.js","sourceRoot":"","sources":["../src/injected-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injected-index.js","sourceRoot":"","sources":["../src/injected-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket-manager.d.ts","sourceRoot":"","sources":["../src/socket-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAGV,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAMlC,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzD,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAOF,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,iBAIjD;AAED,wBAAgB,oBAAoB,SAGnC;AAED,cAAM,aAAc,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IACjE,OAAO,CAAC,OAAO,CAA8C;IAE7D,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,SAAS,CAAwB;gBAE7B,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,YAAY,CAA8B;IAClD,iBAAiB,CAAC,EAChB,MAAM,EACN,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,kBAAkB,GACnB,EAAE;QACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,iBAAiB,CAAC;QACnC,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QAC3D,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IAmtCD,iBAAiB,CACf,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOnE,kBAAkB,CAChB,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOpE,mBAAmB;IAInB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAIhE,eAAe;IASf,OAAO;CAGR"}
1
+ {"version":3,"file":"socket-manager.d.ts","sourceRoot":"","sources":["../src/socket-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAGV,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAMlC,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzD,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAOF,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,iBAIjD;AAED,wBAAgB,oBAAoB,SAGnC;AAED,cAAM,aAAc,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IACjE,OAAO,CAAC,OAAO,CAA8C;IAE7D,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,SAAS,CAAwB;gBAE7B,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,YAAY,CAA8B;IAClD,iBAAiB,CAAC,EAChB,MAAM,EACN,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,kBAAkB,GACnB,EAAE;QACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,iBAAiB,CAAC;QACnC,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QAC3D,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IAuvCD,iBAAiB,CACf,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOnE,kBAAkB,CAChB,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOpE,mBAAmB;IAInB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAIhE,eAAe;IASf,OAAO;CAGR"}
@@ -185,7 +185,6 @@ class SocketManager extends TracedEventEmitter {
185
185
  if (!syncService) {
186
186
  throw new Error("Syncing is disabled, cannot ensure files are synced");
187
187
  }
188
- await getActiveGitService().catch(() => undefined);
189
188
  const result = await syncService.uploadDirectoryNowIfNeeded("requestedFilesSync");
190
189
  return result.directoryHash;
191
190
  },
@@ -286,6 +285,11 @@ class SocketManager extends TracedEventEmitter {
286
285
  await aiService?.handleAiSummarizeApiUsage(request, peer);
287
286
  },
288
287
  ],
288
+ aiSummarizeError: [
289
+ async (request, _context, peer) => {
290
+ await aiService?.handleAiSummarizeError(request, peer);
291
+ },
292
+ ],
289
293
  aiSkipTestCase: [
290
294
  async (request) => {
291
295
  await aiService?.handleSkipTestCase(request.testRunId, request.testCaseId);
@@ -986,10 +990,37 @@ class SocketManager extends TracedEventEmitter {
986
990
  if (userId) {
987
991
  lockService?.removeConnectedPeerIdFromUser(userId, peerId);
988
992
  if (lockService?.connectedUsers.length === 0) {
989
- getLogger().info("[socket-manager] All users disconnected, cleaning up AI service cache");
990
- aiService?.removeIntegrationCache().catch((error) => {
991
- getLogger().warn(`Error removing integration cache after disconnect: ${error}`);
992
- });
993
+ if (aiService?.isBusy()) {
994
+ getLogger().info("[socket-manager] All users disconnected but AI service is busy, deferring cache cleanup until generation completes");
995
+ let cleaned = false;
996
+ const deferredCleanup = () => {
997
+ if (cleaned)
998
+ return;
999
+ cleaned = true;
1000
+ // Only clean up if no users have reconnected in the meantime
1001
+ if (lockService?.connectedUsers.length === 0) {
1002
+ getLogger().info("[socket-manager] Generation ended with no connected users, cleaning up AI service cache");
1003
+ aiService
1004
+ .removeIntegrationCache()
1005
+ .catch((error) => {
1006
+ getLogger().warn(`Error removing integration cache after deferred cleanup: ${error}`);
1007
+ });
1008
+ }
1009
+ else {
1010
+ getLogger().info("[socket-manager] Generation ended but users have reconnected, skipping cache cleanup");
1011
+ }
1012
+ };
1013
+ aiService.once("generationCompleted", deferredCleanup);
1014
+ aiService.once("generationFailed", deferredCleanup);
1015
+ }
1016
+ else {
1017
+ getLogger().info("[socket-manager] All users disconnected, cleaning up AI service cache");
1018
+ aiService
1019
+ ?.removeIntegrationCache()
1020
+ .catch((error) => {
1021
+ getLogger().warn(`Error removing integration cache after disconnect: ${error}`);
1022
+ });
1023
+ }
993
1024
  }
994
1025
  }
995
1026
  this.emit("disconnect:editor", peerId);