@agent-native/core 0.127.3 → 0.128.1
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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +101 -0
- package/corpus/core/README.md +5 -26
- package/corpus/core/docs/content/actions.mdx +47 -4
- package/corpus/core/docs/content/native-chat-ui.mdx +7 -0
- package/corpus/core/docs/content/organizations-teams-permissions.mdx +109 -3
- package/corpus/core/docs/content/template-design-collaboration-and-full-apps.mdx +15 -0
- package/corpus/core/docs/content/toolkit-org-team.mdx +72 -12
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/a2a/artifact-response.ts +36 -29
- package/corpus/core/src/action.ts +83 -2
- package/corpus/core/src/chat-threads/store.ts +48 -43
- package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +46 -3
- package/corpus/core/src/client/AgentPanel.tsx +26 -6
- package/corpus/core/src/client/AssistantChat.tsx +63 -7
- package/corpus/core/src/client/DefaultSpinner.tsx +29 -0
- package/corpus/core/src/client/org/TeamPage.tsx +161 -6
- package/corpus/core/src/client/org/hooks.ts +67 -0
- package/corpus/core/src/client/org/index.ts +9 -0
- package/corpus/core/src/client/transcription/use-live-transcription.ts +62 -10
- package/corpus/core/src/db/client.ts +42 -3
- package/corpus/core/src/db/ensure-additive-columns.ts +60 -33
- package/corpus/core/src/deploy/build.ts +31 -2
- package/corpus/core/src/mcp-client/routes.ts +10 -1
- package/corpus/core/src/org/app-roles-handlers.ts +152 -0
- package/corpus/core/src/org/app-roles.ts +355 -0
- package/corpus/core/src/org/index.ts +27 -1
- package/corpus/core/src/org/migrations.ts +22 -0
- package/corpus/core/src/org/plugin.ts +27 -0
- package/corpus/core/src/org/schema.ts +15 -0
- package/corpus/core/src/scripts/docs/search.ts +17 -0
- package/corpus/core/src/scripts/docs/source-search.ts +10 -0
- package/corpus/core/src/server/agent-chat/script-entries.ts +3 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +53 -52
- package/corpus/core/src/server/builder-design-systems.ts +299 -82
- package/corpus/core/src/server/core-routes-plugin.ts +6 -1
- package/corpus/core/src/server/framework-request-handler.ts +44 -6
- package/corpus/core/src/server/index.ts +8 -0
- package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/core/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/core/src/templates/default/.agents/skills/security/SKILL.md +31 -0
- package/corpus/core/src/templates/headless/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/analytics/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/analytics/_gitignore +2 -0
- package/corpus/templates/analytics/actions/data-source-status.ts +21 -12
- package/corpus/templates/analytics/app/global.css +7 -7
- package/corpus/templates/analytics/app/i18n-data.ts +30 -0
- package/corpus/templates/analytics/app/lib/data-source-status.ts +2 -1
- package/corpus/templates/analytics/app/pages/DataSources.tsx +54 -10
- package/corpus/templates/analytics/changelog/2026-07-28-analytics-pages-load-reliably-with-large-dashboard-workspaces.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-28-dashboard-loading-shimmer-now-flows-smoothly-in-one-directi.md +6 -0
- package/corpus/templates/analytics/server/lib/first-party-dashboard-repair.ts +5 -4
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +54 -42
- package/corpus/templates/analytics/server/plugins/db.ts +1 -18
- package/corpus/templates/assets/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/assets/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/assets/_gitignore +2 -0
- package/corpus/templates/brain/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/brain/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/calendar/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/calendar/_gitignore +2 -0
- package/corpus/templates/chat/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/chat/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/clips/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/clips/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/clips/_gitignore +2 -0
- package/corpus/templates/clips/actions/request-transcript.ts +77 -11
- package/corpus/templates/clips/actions/save-browser-transcript.ts +28 -7
- package/corpus/templates/clips/app/routes/record.tsx +11 -3
- package/corpus/templates/clips/changelog/2026-07-28-browser-recordings-no-longer-save-a-truncated-transcript-as-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-browser-recordings-no-longer-stop-transcribing-partway-throu.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-desktop-full-screen-clips-now-get-an-instant-local-transcrip.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-long-transcriptions-no-longer-show-a-false-transcription-sto.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-restarting-for-an-update-now-installs-the-newest-release-ins.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-28-the-meeting-recording-pill-now-anchors-to-the-right-edge-of-.md +6 -0
- package/corpus/templates/clips/desktop/src/lib/audio-meter.ts +31 -2
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +114 -13
- package/corpus/templates/clips/desktop/src/lib/updater.ts +12 -4
- package/corpus/templates/clips/desktop/src/overlays/live-audio-bars.tsx +40 -15
- package/corpus/templates/clips/desktop/src/styles.css +10 -7
- package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +21 -14
- package/corpus/templates/clips/shared/transcript-status.ts +10 -0
- package/corpus/templates/content/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/content/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/content/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/content/_gitignore +2 -0
- package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/design/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/design/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/design/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +46 -3
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +7 -5
- package/corpus/templates/design/_gitignore +2 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +2 -2
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +7 -4
- package/corpus/templates/design/app/components/design/keyboard-shortcuts.ts +1 -1
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +10 -4
- package/corpus/templates/design/app/i18n-data.ts +10 -0
- package/corpus/templates/design/app/lib/builder-design-system-upload.ts +280 -0
- package/corpus/templates/design/app/lib/design-ui-events.ts +5 -0
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +90 -54
- package/corpus/templates/design/app/root.tsx +18 -1
- package/corpus/templates/design/changelog/2026-07-28-figma-fig-uploads-now-show-indexing-progress-and-an-open-in-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-28-show-or-hide-design-editing-chrome-with-cmd-on-apple-devices.md +6 -0
- package/corpus/templates/design/server/handlers/design-system-decode-job-status.ts +49 -0
- package/corpus/templates/design/server/handlers/design-system-upload-start.ts +87 -0
- package/corpus/templates/design/server/handlers/index-design-system-sources.ts +82 -0
- package/corpus/templates/design/server/routes/api/design-system-decode-job-status.get.ts +1 -0
- package/corpus/templates/design/server/routes/api/design-system-upload-start.post.ts +1 -0
- package/corpus/templates/design/server/routes/api/index-design-system-sources.post.ts +1 -0
- package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/dispatch/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/dispatch/_gitignore +2 -0
- package/corpus/templates/forms/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/forms/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/forms/_gitignore +2 -0
- package/corpus/templates/macros/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/macros/_gitignore +2 -0
- package/corpus/templates/mail/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/mail/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/mail/_gitignore +2 -0
- package/corpus/templates/plan/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/plan/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/plan/_gitignore +2 -0
- package/corpus/templates/slides/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/slides/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/slides/_gitignore +2 -0
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +126 -53
- package/corpus/templates/slides/app/components/design-system/builder-design-system-upload.ts +271 -0
- package/corpus/templates/slides/app/components/design-system/builder-index-response.ts +1 -1
- package/corpus/templates/slides/app/i18n/en-US.ts +1 -0
- package/corpus/templates/slides/server/handlers/design-system-decode-job-status.ts +49 -0
- package/corpus/templates/slides/server/handlers/design-system-upload-start.ts +87 -0
- package/corpus/templates/slides/server/handlers/index-design-system-sources.ts +79 -0
- package/corpus/templates/slides/server/routes/api/design-system-decode-job-status.get.ts +1 -0
- package/corpus/templates/slides/server/routes/api/design-system-upload-start.post.ts +1 -0
- package/corpus/templates/slides/server/routes/api/index-design-system-sources.post.ts +1 -0
- package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +32 -0
- package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/corpus/templates/tasks/.agents/skills/security/SKILL.md +31 -0
- package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/templates/tasks/_gitignore +2 -0
- package/dist/a2a/artifact-response.d.ts.map +1 -1
- package/dist/a2a/artifact-response.js +30 -29
- package/dist/a2a/artifact-response.js.map +1 -1
- package/dist/action.d.ts +36 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +37 -2
- package/dist/action.js.map +1 -1
- package/dist/chat-threads/store.d.ts +12 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +48 -42
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts +1 -1
- package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/design-visual-edit-skill.js +46 -3
- package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +3 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +11 -9
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +57 -6
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/DefaultSpinner.d.ts +7 -0
- package/dist/client/DefaultSpinner.d.ts.map +1 -1
- package/dist/client/DefaultSpinner.js +25 -1
- package/dist/client/DefaultSpinner.js.map +1 -1
- package/dist/client/org/TeamPage.d.ts +13 -1
- package/dist/client/org/TeamPage.d.ts.map +1 -1
- package/dist/client/org/TeamPage.js +41 -11
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/org/hooks.d.ts +37 -0
- package/dist/client/org/hooks.d.ts.map +1 -1
- package/dist/client/org/hooks.js +37 -0
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.d.ts +3 -2
- package/dist/client/org/index.d.ts.map +1 -1
- package/dist/client/org/index.js +1 -1
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/transcription/use-live-transcription.d.ts +8 -0
- package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
- package/dist/client/transcription/use-live-transcription.js +38 -11
- package/dist/client/transcription/use-live-transcription.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/db/client.d.ts +12 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +40 -3
- package/dist/db/client.js.map +1 -1
- package/dist/db/ensure-additive-columns.d.ts.map +1 -1
- package/dist/db/ensure-additive-columns.js +54 -32
- package/dist/db/ensure-additive-columns.js.map +1 -1
- package/dist/deploy/build.d.ts +1 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +23 -2
- package/dist/deploy/build.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/mcp-client/routes.d.ts +3 -1
- package/dist/mcp-client/routes.d.ts.map +1 -1
- package/dist/mcp-client/routes.js +8 -2
- package/dist/mcp-client/routes.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/org/app-roles-handlers.d.ts +27 -0
- package/dist/org/app-roles-handlers.d.ts.map +1 -0
- package/dist/org/app-roles-handlers.js +125 -0
- package/dist/org/app-roles-handlers.js.map +1 -0
- package/dist/org/app-roles.d.ts +136 -0
- package/dist/org/app-roles.d.ts.map +1 -0
- package/dist/org/app-roles.js +216 -0
- package/dist/org/app-roles.js.map +1 -0
- package/dist/org/index.d.ts +4 -1
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +3 -1
- package/dist/org/index.js.map +1 -1
- package/dist/org/migrations.d.ts.map +1 -1
- package/dist/org/migrations.js +22 -0
- package/dist/org/migrations.js.map +1 -1
- package/dist/org/plugin.d.ts +2 -0
- package/dist/org/plugin.d.ts.map +1 -1
- package/dist/org/plugin.js +20 -0
- package/dist/org/plugin.js.map +1 -1
- package/dist/org/schema.d.ts +143 -0
- package/dist/org/schema.d.ts.map +1 -1
- package/dist/org/schema.js +14 -0
- package/dist/org/schema.js.map +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +8 -8
- package/dist/provider-api/actions/provider-api.d.ts +4 -4
- package/dist/scripts/docs/search.d.ts.map +1 -1
- package/dist/scripts/docs/search.js +15 -0
- package/dist/scripts/docs/search.js.map +1 -1
- package/dist/scripts/docs/source-search.d.ts +7 -0
- package/dist/scripts/docs/source-search.d.ts.map +1 -1
- package/dist/scripts/docs/source-search.js +9 -0
- package/dist/scripts/docs/source-search.js.map +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/script-entries.d.ts.map +1 -1
- package/dist/server/agent-chat/script-entries.js +3 -0
- package/dist/server/agent-chat/script-entries.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +46 -48
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/builder-design-systems.d.ts +49 -0
- package/dist/server/builder-design-systems.d.ts.map +1 -1
- package/dist/server/builder-design-systems.js +221 -69
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +6 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +42 -6
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/templates/chat/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/dist/templates/chat/.agents/skills/security/SKILL.md +31 -0
- package/dist/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
- package/dist/templates/default/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/dist/templates/default/.agents/skills/security/SKILL.md +31 -0
- package/dist/templates/headless/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
- package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
- package/dist/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
- package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
- package/docs/content/actions.mdx +47 -4
- package/docs/content/native-chat-ui.mdx +7 -0
- package/docs/content/organizations-teams-permissions.mdx +109 -3
- package/docs/content/template-design-collaboration-and-full-apps.mdx +15 -0
- package/docs/content/toolkit-org-team.mdx +72 -12
- package/package.json +2 -1
- package/src/a2a/artifact-response.ts +36 -29
- package/src/action.ts +83 -2
- package/src/chat-threads/store.ts +48 -43
- package/src/cli/skills-content/design-visual-edit-skill.ts +46 -3
- package/src/client/AgentPanel.tsx +26 -6
- package/src/client/AssistantChat.tsx +63 -7
- package/src/client/DefaultSpinner.tsx +29 -0
- package/src/client/org/TeamPage.tsx +161 -6
- package/src/client/org/hooks.ts +67 -0
- package/src/client/org/index.ts +9 -0
- package/src/client/transcription/use-live-transcription.ts +62 -10
- package/src/db/client.ts +42 -3
- package/src/db/ensure-additive-columns.ts +60 -33
- package/src/deploy/build.ts +31 -2
- package/src/mcp-client/routes.ts +10 -1
- package/src/org/app-roles-handlers.ts +152 -0
- package/src/org/app-roles.ts +355 -0
- package/src/org/index.ts +27 -1
- package/src/org/migrations.ts +22 -0
- package/src/org/plugin.ts +27 -0
- package/src/org/schema.ts +15 -0
- package/src/scripts/docs/search.ts +17 -0
- package/src/scripts/docs/source-search.ts +10 -0
- package/src/server/agent-chat/script-entries.ts +3 -0
- package/src/server/agent-chat-plugin.ts +53 -52
- package/src/server/builder-design-systems.ts +299 -82
- package/src/server/core-routes-plugin.ts +6 -1
- package/src/server/framework-request-handler.ts +44 -6
- package/src/server/index.ts +8 -0
- package/src/templates/chat/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/src/templates/chat/.agents/skills/security/SKILL.md +31 -0
- package/src/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
- package/src/templates/default/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/src/templates/default/.agents/skills/security/SKILL.md +31 -0
- package/src/templates/headless/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
- package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
- package/src/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
- package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
- package/corpus/core/src/templates/chat/.agents/skills/actions/SKILL.md +0 -530
- package/corpus/core/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +0 -191
- package/corpus/core/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +0 -115
- package/corpus/core/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +0 -177
- package/corpus/core/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
- package/corpus/core/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -221
- package/corpus/core/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +0 -220
- package/corpus/core/src/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +0 -263
- package/corpus/core/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/core/src/templates/chat/.agents/skills/frontend-design/SKILL.md +0 -174
- package/corpus/core/src/templates/chat/.agents/skills/real-time-sync/SKILL.md +0 -232
- package/corpus/core/src/templates/chat/.agents/skills/security/SKILL.md +0 -282
- package/corpus/core/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +0 -119
- package/corpus/core/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +0 -123
- package/corpus/core/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -122
- package/corpus/core/src/templates/chat/.env.example +0 -5
- package/corpus/core/src/templates/chat/.ignore +0 -0
- package/corpus/core/src/templates/chat/.oxfmtrc.json +0 -8
- package/corpus/core/src/templates/chat/AGENTS.md +0 -77
- package/corpus/core/src/templates/chat/CHANGELOG.md +0 -10
- package/corpus/core/src/templates/chat/DEVELOPING.md +0 -185
- package/corpus/core/src/templates/chat/README.md +0 -32
- package/corpus/core/src/templates/chat/_gitignore +0 -46
- package/corpus/core/src/templates/chat/actions/hello.ts +0 -13
- package/corpus/core/src/templates/chat/actions/navigate.ts +0 -41
- package/corpus/core/src/templates/chat/actions/run.ts +0 -2
- package/corpus/core/src/templates/chat/actions/view-screen.ts +0 -31
- package/corpus/core/src/templates/chat/app/components/layout/Header.tsx +0 -60
- package/corpus/core/src/templates/chat/app/components/layout/Layout.tsx +0 -188
- package/corpus/core/src/templates/chat/app/components/layout/Sidebar.tsx +0 -505
- package/corpus/core/src/templates/chat/app/components/ui/button.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/card.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/dropdown-menu.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/input.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/label.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/sheet.tsx +0 -1
- package/corpus/core/src/templates/chat/app/components/ui/toolkit-provider.tsx +0 -17
- package/corpus/core/src/templates/chat/app/components/ui/tooltip.tsx +0 -1
- package/corpus/core/src/templates/chat/app/design-system.ts +0 -3
- package/corpus/core/src/templates/chat/app/entry.client.tsx +0 -22
- package/corpus/core/src/templates/chat/app/entry.server.tsx +0 -10
- package/corpus/core/src/templates/chat/app/global.css +0 -93
- package/corpus/core/src/templates/chat/app/hooks/use-navigation-state.ts +0 -93
- package/corpus/core/src/templates/chat/app/i18n/ar-SA.ts +0 -68
- package/corpus/core/src/templates/chat/app/i18n/de-DE.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/en-US.ts +0 -70
- package/corpus/core/src/templates/chat/app/i18n/es-ES.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/fr-FR.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/hi-IN.ts +0 -69
- package/corpus/core/src/templates/chat/app/i18n/index.ts +0 -34
- package/corpus/core/src/templates/chat/app/i18n/ja-JP.ts +0 -70
- package/corpus/core/src/templates/chat/app/i18n/ko-KR.ts +0 -70
- package/corpus/core/src/templates/chat/app/i18n/pt-BR.ts +0 -71
- package/corpus/core/src/templates/chat/app/i18n/zh-CN.ts +0 -66
- package/corpus/core/src/templates/chat/app/i18n/zh-TW.ts +0 -66
- package/corpus/core/src/templates/chat/app/i18n-data.ts +0 -556
- package/corpus/core/src/templates/chat/app/lib/agent-page.tsx +0 -49
- package/corpus/core/src/templates/chat/app/lib/app-config.ts +0 -11
- package/corpus/core/src/templates/chat/app/lib/tab-id.ts +0 -1
- package/corpus/core/src/templates/chat/app/lib/utils.ts +0 -1
- package/corpus/core/src/templates/chat/app/root.tsx +0 -173
- package/corpus/core/src/templates/chat/app/routes/_index.tsx +0 -94
- package/corpus/core/src/templates/chat/app/routes/agent.tsx +0 -24
- package/corpus/core/src/templates/chat/app/routes/chat.$threadId.tsx +0 -1
- package/corpus/core/src/templates/chat/app/routes/database.tsx +0 -17
- package/corpus/core/src/templates/chat/app/routes/extensions.$id.$slug.tsx +0 -2
- package/corpus/core/src/templates/chat/app/routes/extensions.$id.tsx +0 -11
- package/corpus/core/src/templates/chat/app/routes/extensions._index.tsx +0 -11
- package/corpus/core/src/templates/chat/app/routes/extensions.tsx +0 -5
- package/corpus/core/src/templates/chat/app/routes/observability.tsx +0 -19
- package/corpus/core/src/templates/chat/app/routes/settings.tsx +0 -89
- package/corpus/core/src/templates/chat/app/routes/team.tsx +0 -11
- package/corpus/core/src/templates/chat/app/routes.ts +0 -4
- package/corpus/core/src/templates/chat/app/vite-env.d.ts +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +0 -5
- package/corpus/core/src/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-17-the-agent-chat-sidebar-stays-closed-until-you-open-it-or-sta.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-compact-sidebar-footer.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-22-recent-chats-are-easier-to-scan-and-expand.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-24-borderless-secondary-surfaces.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-24-sidebar-footer-controls-follow-a-consistent-order.md +0 -6
- package/corpus/core/src/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +0 -6
- package/corpus/core/src/templates/chat/components.json +0 -20
- package/corpus/core/src/templates/chat/learnings.defaults.md +0 -5
- package/corpus/core/src/templates/chat/netlify.toml +0 -11
- package/corpus/core/src/templates/chat/package.json +0 -92
- package/corpus/core/src/templates/chat/public/agent-native-icon-dark.svg +0 -10
- package/corpus/core/src/templates/chat/public/agent-native-icon-light.svg +0 -10
- package/corpus/core/src/templates/chat/public/agent-native-logo-dark.svg +0 -21
- package/corpus/core/src/templates/chat/public/agent-native-logo-light.svg +0 -21
- package/corpus/core/src/templates/chat/public/favicon.svg +0 -1
- package/corpus/core/src/templates/chat/public/icon-180.svg +0 -1
- package/corpus/core/src/templates/chat/public/icon-192.svg +0 -1
- package/corpus/core/src/templates/chat/public/icon-512.svg +0 -1
- package/corpus/core/src/templates/chat/public/manifest.json +0 -21
- package/corpus/core/src/templates/chat/react-router.config.ts +0 -7
- package/corpus/core/src/templates/chat/server/middleware/auth.ts +0 -15
- package/corpus/core/src/templates/chat/server/plugins/agent-chat.ts +0 -21
- package/corpus/core/src/templates/chat/server/plugins/auth.ts +0 -17
- package/corpus/core/src/templates/chat/server/routes/[...page].get.ts +0 -5
- package/corpus/core/src/templates/chat/ssr-entry.ts +0 -15
- package/corpus/core/src/templates/chat/tsconfig.json +0 -21
- package/corpus/core/src/templates/chat/vite.config.ts +0 -19
- package/corpus/templates/design/server/handlers/index-design-system-with-builder.ts +0 -151
- package/corpus/templates/design/server/routes/api/index-design-system-with-builder.post.ts +0 -1
- package/corpus/templates/slides/server/handlers/index-design-system-with-builder.ts +0 -119
- package/corpus/templates/slides/server/routes/api/index-design-system-with-builder.post.ts +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DesignSystemSourceInput } from "@builder.io/ai-utils";
|
|
1
2
|
export interface BuilderDesignSystemIndexFile {
|
|
2
3
|
name: string;
|
|
3
4
|
data: Uint8Array;
|
|
@@ -93,14 +94,62 @@ export interface BuilderDesignSystemIndexResult {
|
|
|
93
94
|
builderUrl: string;
|
|
94
95
|
status: "in-progress";
|
|
95
96
|
}
|
|
97
|
+
export interface BuilderDesignSystemUploadAttachment {
|
|
98
|
+
name: string;
|
|
99
|
+
mimetype: string;
|
|
100
|
+
declaredSize: number;
|
|
101
|
+
}
|
|
102
|
+
export interface BuilderDesignSystemUploadSlot {
|
|
103
|
+
idx: number;
|
|
104
|
+
uploadUrl: string;
|
|
105
|
+
uploadToken: string;
|
|
106
|
+
}
|
|
107
|
+
export interface BuilderDesignSystemIndexFromSourcesOptions {
|
|
108
|
+
sources: DesignSystemSourceInput[];
|
|
109
|
+
projectName?: string;
|
|
110
|
+
devToolsVersion?: string;
|
|
111
|
+
}
|
|
112
|
+
export interface BuilderDesignSystemDecodeJobStatus {
|
|
113
|
+
jobId: string;
|
|
114
|
+
status: "pending" | "processing" | "complete" | "error";
|
|
115
|
+
framesProcessed: number;
|
|
116
|
+
totalFrames: number;
|
|
117
|
+
branchName: string | null;
|
|
118
|
+
branchUrl: string | null;
|
|
119
|
+
error: string | null;
|
|
120
|
+
partialFailure?: boolean;
|
|
121
|
+
createdAt: number;
|
|
122
|
+
updatedAt: number;
|
|
123
|
+
}
|
|
124
|
+
export declare function fetchBuilderDesignSystemDecodeJobStatus(jobId: string): Promise<BuilderDesignSystemDecodeJobStatus>;
|
|
96
125
|
export declare function getBuilderDesignSystemsBaseUrl(): string;
|
|
97
126
|
export declare function mimeTypeForBuilderDesignSystemFilename(filename: string, explicit?: string): string;
|
|
98
127
|
export declare function buildBuilderDesignSystemIndexFiles({ codeFiles, designMd, designMdFilename, maxCodeFiles, maxTotalCodeBytes, overflowBehavior, }: BuildBuilderDesignSystemIndexFilesOptions): BuilderDesignSystemIndexFile[];
|
|
99
128
|
export declare function builderDesignSystemUrl(designSystemId?: string | null): string;
|
|
129
|
+
export declare function builderProjectBranchUrl(projectId?: string | null, branchName?: string | null): string | undefined;
|
|
100
130
|
export declare function localBuilderDesignSystemId(builderDesignSystemId: string): string;
|
|
101
131
|
export declare function createBuilderDesignSystemProxyFields({ result, projectName, description, surface, }: BuilderDesignSystemProxyFieldsOptions): BuilderDesignSystemProxyFields;
|
|
102
132
|
export declare function parseBuilderDesignSystemProxyReference(data: unknown): BuilderDesignSystemProxyReference | null;
|
|
103
133
|
export declare function fetchBuilderDesignSystemDocs(designSystemId: string, options?: BuilderDesignSystemDocsOptions): Promise<BuilderDesignSystemDocument[]>;
|
|
104
134
|
export declare function hydrateBuilderDesignSystemReference(reference: BuilderDesignSystemProxyReference, options?: BuilderDesignSystemDocsOptions): Promise<BuilderDesignSystemHydratedReference>;
|
|
135
|
+
/**
|
|
136
|
+
* Opens signed resumable-upload slots for `.fig`/code/design attachments so
|
|
137
|
+
* the browser can stream each file's bytes straight to GCS. Large `.fig`
|
|
138
|
+
* files must not ride through the app server as one request body -- the
|
|
139
|
+
* serverless host caps request bodies well below Figma export sizes.
|
|
140
|
+
*/
|
|
141
|
+
export declare function startBuilderDesignSystemUpload(attachments: BuilderDesignSystemUploadAttachment[]): Promise<BuilderDesignSystemUploadSlot[]>;
|
|
142
|
+
/**
|
|
143
|
+
* Finalizes indexing from already-resolved sources (uploaded file tokens,
|
|
144
|
+
* public repos, connected projects). Callers that stream uploads from the
|
|
145
|
+
* browser pass the returned `uploadToken`s as `file` sources here.
|
|
146
|
+
*/
|
|
147
|
+
export declare function indexBuilderDesignSystem(options: BuilderDesignSystemIndexFromSourcesOptions): Promise<BuilderDesignSystemIndexResult>;
|
|
148
|
+
/**
|
|
149
|
+
* Server-side indexing for in-memory files (the agent action's small inline
|
|
150
|
+
* payloads). Uploads each file server->GCS in resumable chunks, then
|
|
151
|
+
* finalizes. Browser callers should instead stream via
|
|
152
|
+
* `startBuilderDesignSystemUpload` + `indexBuilderDesignSystem`.
|
|
153
|
+
*/
|
|
105
154
|
export declare function startBuilderDesignSystemIndex(options: BuilderDesignSystemIndexOptions): Promise<BuilderDesignSystemIndexResult>;
|
|
106
155
|
//# sourceMappingURL=builder-design-systems.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-design-systems.d.ts","sourceRoot":"","sources":["../../src/server/builder-design-systems.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder-design-systems.d.ts","sourceRoot":"","sources":["../../src/server/builder-design-systems.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,24 @@ import { withBuilderUtmTrackingParams } from "../shared/builder-link-tracking.js
|
|
|
2
2
|
import { FeatureNotConfiguredError } from "./credential-provider.js";
|
|
3
3
|
import { getBuilderProxyOrigin, resolveBuilderCredentials, } from "./credential-provider.js";
|
|
4
4
|
const DEFAULT_TIMEOUT_MS = 120_000;
|
|
5
|
+
// GCS resumable uploads require every chunk except the last to be a multiple
|
|
6
|
+
// of 256 KiB. 16 MiB is the recommended default and keeps very large `.fig`
|
|
7
|
+
// files off a single unbounded request body.
|
|
8
|
+
const GCS_CHUNK_SIZE = 16 * 1024 * 1024;
|
|
9
|
+
const MAX_CHUNK_RETRIES = 5;
|
|
5
10
|
const DEFAULT_MAX_CODE_FILES = 50;
|
|
6
11
|
const DEFAULT_MAX_TOTAL_CODE_BYTES = 2 * 1024 * 1024;
|
|
7
12
|
const MAX_DOC_CONTENT_CHARS = 4_000;
|
|
13
|
+
export async function fetchBuilderDesignSystemDecodeJobStatus(jobId) {
|
|
14
|
+
const credentials = await resolveBuilderDesignSystemCredentials();
|
|
15
|
+
const url = makeBuilderDesignSystemUrl("decode-jobs/" + encodeURIComponent(jobId), credentials);
|
|
16
|
+
const response = await fetchWithTimeout(url, {
|
|
17
|
+
method: "GET",
|
|
18
|
+
headers: makeBuilderHeaders(credentials),
|
|
19
|
+
});
|
|
20
|
+
await assertOk(response, "Builder design-system decode-job status failed");
|
|
21
|
+
return (await response.json());
|
|
22
|
+
}
|
|
8
23
|
function trimTrailingSlash(value) {
|
|
9
24
|
return value.replace(/\/+$/, "");
|
|
10
25
|
}
|
|
@@ -145,14 +160,35 @@ async function assertOk(response, label) {
|
|
|
145
160
|
return;
|
|
146
161
|
throw new Error(`${label} (${response.status}): ${await parseErrorBody(response)}`);
|
|
147
162
|
}
|
|
163
|
+
// GCS reports the highest committed byte in a `Range: bytes=0-<end>` header.
|
|
164
|
+
function committedOffsetFromRange(response) {
|
|
165
|
+
const match = response.headers.get("Range")?.match(/bytes=0-(\d+)/);
|
|
166
|
+
return match ? parseInt(match[1], 10) + 1 : null;
|
|
167
|
+
}
|
|
168
|
+
async function queryCommittedOffset(sessionUrl, total) {
|
|
169
|
+
const response = await fetchWithTimeout(sessionUrl, {
|
|
170
|
+
method: "PUT",
|
|
171
|
+
headers: { "Content-Range": `bytes */${total}` },
|
|
172
|
+
});
|
|
173
|
+
if (response.status === 200 || response.status === 201)
|
|
174
|
+
return total;
|
|
175
|
+
if (response.status === 308) {
|
|
176
|
+
return committedOffsetFromRange(response) ?? 0;
|
|
177
|
+
}
|
|
178
|
+
throw new Error(`Builder design-system upload status query failed (${response.status}).`);
|
|
179
|
+
}
|
|
180
|
+
function delay(ms) {
|
|
181
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
182
|
+
}
|
|
148
183
|
async function uploadToResumableUrl(slot, file) {
|
|
149
184
|
const mimeType = mimeTypeForFile(file);
|
|
150
185
|
const bytes = file.data;
|
|
186
|
+
const total = bytes.byteLength;
|
|
151
187
|
const start = await fetchWithTimeout(slot.uploadUrl, {
|
|
152
188
|
method: "POST",
|
|
153
189
|
headers: {
|
|
154
190
|
"x-goog-resumable": "start",
|
|
155
|
-
"x-goog-content-length-range": `0,${
|
|
191
|
+
"x-goog-content-length-range": `0,${total}`,
|
|
156
192
|
"Content-Type": mimeType,
|
|
157
193
|
},
|
|
158
194
|
});
|
|
@@ -161,15 +197,60 @@ async function uploadToResumableUrl(slot, file) {
|
|
|
161
197
|
if (!sessionUrl) {
|
|
162
198
|
throw new Error("Builder design-system upload session returned no URL.");
|
|
163
199
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
"Content-Range":
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
200
|
+
if (total === 0) {
|
|
201
|
+
const response = await fetchWithTimeout(sessionUrl, {
|
|
202
|
+
method: "PUT",
|
|
203
|
+
headers: { "Content-Range": "bytes */0" },
|
|
204
|
+
body: makeBody(bytes, mimeType),
|
|
205
|
+
});
|
|
206
|
+
await assertOk(response, "Builder design-system file upload failed");
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
// A failed PUT may have still landed at GCS, so the local offset can't be
|
|
210
|
+
// trusted after an error — only GCS's committed-offset response is
|
|
211
|
+
// authoritative.
|
|
212
|
+
let offset = 0;
|
|
213
|
+
let retries = 0;
|
|
214
|
+
while (offset < total) {
|
|
215
|
+
const end = Math.min(offset + GCS_CHUNK_SIZE, total);
|
|
216
|
+
const isLast = end === total;
|
|
217
|
+
try {
|
|
218
|
+
const response = await fetchWithTimeout(sessionUrl, {
|
|
219
|
+
method: "PUT",
|
|
220
|
+
headers: {
|
|
221
|
+
"Content-Range": `bytes ${offset}-${end - 1}/${total}`,
|
|
222
|
+
"Content-Type": mimeType,
|
|
223
|
+
},
|
|
224
|
+
body: makeBody(bytes.subarray(offset, end), mimeType),
|
|
225
|
+
});
|
|
226
|
+
if (response.status === 200 || response.status === 201) {
|
|
227
|
+
offset = total;
|
|
228
|
+
}
|
|
229
|
+
else if (!isLast && response.status === 308) {
|
|
230
|
+
const nextOffset = committedOffsetFromRange(response) ?? offset;
|
|
231
|
+
if (nextOffset <= offset) {
|
|
232
|
+
throw new Error(`Builder design-system upload stalled at byte ${offset}.`);
|
|
233
|
+
}
|
|
234
|
+
offset = nextOffset;
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
throw new Error(`Builder design-system file upload failed (${response.status}).`);
|
|
238
|
+
}
|
|
239
|
+
retries = 0;
|
|
240
|
+
}
|
|
241
|
+
catch (err) {
|
|
242
|
+
if (++retries > MAX_CHUNK_RETRIES)
|
|
243
|
+
throw err;
|
|
244
|
+
await delay(500 * retries);
|
|
245
|
+
try {
|
|
246
|
+
offset = await queryCommittedOffset(sessionUrl, total);
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// If the offset query also fails, retry from the last local offset —
|
|
250
|
+
// GCS's resumable PUT safely re-acknowledges bytes it already has.
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
173
254
|
}
|
|
174
255
|
function nonEmptyFiles(files) {
|
|
175
256
|
return (files ?? []).filter((file) => file.data.byteLength > 0);
|
|
@@ -184,6 +265,21 @@ export function builderDesignSystemUrl(designSystemId) {
|
|
|
184
265
|
content: "design_system_intelligence",
|
|
185
266
|
});
|
|
186
267
|
}
|
|
268
|
+
export function builderProjectBranchUrl(projectId, branchName) {
|
|
269
|
+
const project = projectId?.trim();
|
|
270
|
+
const branch = branchName?.trim();
|
|
271
|
+
if (!project || !branch)
|
|
272
|
+
return undefined;
|
|
273
|
+
const host = trimTrailingSlash(getBuilderAppHost());
|
|
274
|
+
const path = "/app/projects/" +
|
|
275
|
+
encodeURIComponent(project) +
|
|
276
|
+
"/" +
|
|
277
|
+
encodeURIComponent(branch);
|
|
278
|
+
return withBuilderUtmTrackingParams(host + path, {
|
|
279
|
+
campaign: "product",
|
|
280
|
+
content: "design_system_intelligence",
|
|
281
|
+
});
|
|
282
|
+
}
|
|
187
283
|
export function localBuilderDesignSystemId(builderDesignSystemId) {
|
|
188
284
|
const slug = builderDesignSystemId
|
|
189
285
|
.replace(/[^a-zA-Z0-9_-]+/g, "-")
|
|
@@ -351,89 +447,145 @@ export async function hydrateBuilderDesignSystemReference(reference, options = {
|
|
|
351
447
|
docCount: docs.length,
|
|
352
448
|
};
|
|
353
449
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
450
|
+
/**
|
|
451
|
+
* Opens signed resumable-upload slots for `.fig`/code/design attachments so
|
|
452
|
+
* the browser can stream each file's bytes straight to GCS. Large `.fig`
|
|
453
|
+
* files must not ride through the app server as one request body -- the
|
|
454
|
+
* serverless host caps request bodies well below Figma export sizes.
|
|
455
|
+
*/
|
|
456
|
+
export async function startBuilderDesignSystemUpload(attachments) {
|
|
457
|
+
if (attachments.length === 0)
|
|
458
|
+
return [];
|
|
459
|
+
const credentials = await resolveBuilderDesignSystemCredentials();
|
|
460
|
+
const uploadStart = await fetchWithTimeout(makeBuilderDesignSystemUrl("upload/start", credentials), {
|
|
461
|
+
method: "POST",
|
|
462
|
+
headers: {
|
|
463
|
+
...makeBuilderHeaders(credentials),
|
|
464
|
+
"Content-Type": "application/json",
|
|
465
|
+
},
|
|
466
|
+
body: JSON.stringify({ attachments }),
|
|
467
|
+
});
|
|
468
|
+
await assertOk(uploadStart, "Builder design-system upload start failed");
|
|
469
|
+
const uploadJson = (await uploadStart.json());
|
|
470
|
+
const slots = [...(uploadJson.uploads ?? [])].sort((a, b) => a.idx - b.idx);
|
|
471
|
+
if (slots.length !== attachments.length) {
|
|
472
|
+
throw new Error("Builder did not return upload slots for all files.");
|
|
363
473
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
474
|
+
for (let i = 0; i < slots.length; i++) {
|
|
475
|
+
if (slots[i].idx !== i) {
|
|
476
|
+
throw new Error("Builder upload slot mismatch: expected " + i + ".");
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
return slots;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Finalizes indexing from already-resolved sources (uploaded file tokens,
|
|
483
|
+
* public repos, connected projects). Callers that stream uploads from the
|
|
484
|
+
* browser pass the returned `uploadToken`s as `file` sources here.
|
|
485
|
+
*/
|
|
486
|
+
export async function indexBuilderDesignSystem(options) {
|
|
487
|
+
if (options.sources.length === 0) {
|
|
367
488
|
throw new Error("Provide at least one .fig/code/text file or a GitHub repository URL to index with Builder.");
|
|
368
489
|
}
|
|
369
490
|
const credentials = await resolveBuilderDesignSystemCredentials();
|
|
370
|
-
|
|
371
|
-
if (files.length > 0) {
|
|
372
|
-
const uploadStart = await fetchWithTimeout(makeBuilderDesignSystemUrl("upload/start", credentials), {
|
|
373
|
-
method: "POST",
|
|
374
|
-
headers: {
|
|
375
|
-
...makeBuilderHeaders(credentials),
|
|
376
|
-
"Content-Type": "application/json",
|
|
377
|
-
},
|
|
378
|
-
body: JSON.stringify({
|
|
379
|
-
attachments: files.map((file) => ({
|
|
380
|
-
name: file.name,
|
|
381
|
-
mimetype: mimeTypeForFile(file),
|
|
382
|
-
declaredSize: file.data.byteLength,
|
|
383
|
-
})),
|
|
384
|
-
}),
|
|
385
|
-
});
|
|
386
|
-
await assertOk(uploadStart, "Builder design-system upload start failed");
|
|
387
|
-
const uploadJson = (await uploadStart.json());
|
|
388
|
-
const slots = [...(uploadJson.uploads ?? [])].sort((a, b) => a.idx - b.idx);
|
|
389
|
-
if (slots.length !== files.length) {
|
|
390
|
-
throw new Error("Builder did not return upload slots for all files.");
|
|
391
|
-
}
|
|
392
|
-
for (let i = 0; i < slots.length; i++) {
|
|
393
|
-
if (slots[i].idx !== i) {
|
|
394
|
-
throw new Error(`Builder upload slot mismatch: expected ${i}.`);
|
|
395
|
-
}
|
|
396
|
-
await uploadToResumableUrl(slots[i], files[i]);
|
|
397
|
-
}
|
|
398
|
-
uploadTokens = slots.map((slot) => slot.uploadToken);
|
|
399
|
-
}
|
|
400
|
-
const generate = await fetchWithTimeout(makeBuilderDesignSystemUrl("generate", credentials), {
|
|
491
|
+
const index = await fetchWithTimeout(makeBuilderDesignSystemUrl("index", credentials), {
|
|
401
492
|
method: "POST",
|
|
402
493
|
headers: {
|
|
403
494
|
...makeBuilderHeaders(credentials),
|
|
404
495
|
"Content-Type": "application/json",
|
|
405
496
|
},
|
|
406
497
|
body: JSON.stringify({
|
|
407
|
-
|
|
498
|
+
sources: options.sources,
|
|
408
499
|
...(options.projectName?.trim()
|
|
409
|
-
? {
|
|
500
|
+
? { designSystemName: options.projectName.trim() }
|
|
410
501
|
: {}),
|
|
411
|
-
...(options.githubRepoUrl?.trim()
|
|
412
|
-
? { githubRepoUrl: options.githubRepoUrl.trim() }
|
|
413
|
-
: {}),
|
|
414
|
-
...(options.connectedProjectId?.trim()
|
|
415
|
-
? { connectedProjectId: options.connectedProjectId.trim() }
|
|
416
|
-
: {}),
|
|
417
|
-
...(options.selection ? { selection: options.selection } : {}),
|
|
418
502
|
...(options.devToolsVersion?.trim()
|
|
419
503
|
? { devToolsVersion: options.devToolsVersion.trim() }
|
|
420
504
|
: {}),
|
|
421
505
|
}),
|
|
422
506
|
});
|
|
423
|
-
await assertOk(
|
|
424
|
-
const
|
|
425
|
-
if (!
|
|
507
|
+
await assertOk(index, "Builder design-system indexing failed");
|
|
508
|
+
const indexed = (await index.json());
|
|
509
|
+
if (!indexed.designSystemId) {
|
|
426
510
|
throw new Error("Builder design-system indexing returned an incomplete response.");
|
|
427
511
|
}
|
|
512
|
+
const jobId = indexed.jobId ?? "";
|
|
513
|
+
// The `.fig` decode job creates the Fusion branch asynchronously, so
|
|
514
|
+
// `/index` usually can't return a branchUrl yet — the caller polls the
|
|
515
|
+
// decode-job status endpoint for it once the job completes.
|
|
516
|
+
const branchUrl = indexed.branchUrl?.trim() || null;
|
|
428
517
|
return {
|
|
429
518
|
ok: true,
|
|
430
519
|
source: "builder",
|
|
431
|
-
projectId:
|
|
432
|
-
jobId
|
|
433
|
-
designSystemId:
|
|
520
|
+
projectId: indexed.projectId ?? "",
|
|
521
|
+
jobId,
|
|
522
|
+
designSystemId: indexed.designSystemId,
|
|
434
523
|
suggestedTitle: options.projectName?.trim() || null,
|
|
435
|
-
builderUrl:
|
|
524
|
+
builderUrl: branchUrl ||
|
|
525
|
+
builderProjectBranchUrl(indexed.projectId, indexed.branchName) ||
|
|
526
|
+
builderDesignSystemUrl(indexed.designSystemId),
|
|
436
527
|
status: "in-progress",
|
|
437
528
|
};
|
|
438
529
|
}
|
|
530
|
+
/**
|
|
531
|
+
* Server-side indexing for in-memory files (the agent action's small inline
|
|
532
|
+
* payloads). Uploads each file server->GCS in resumable chunks, then
|
|
533
|
+
* finalizes. Browser callers should instead stream via
|
|
534
|
+
* `startBuilderDesignSystemUpload` + `indexBuilderDesignSystem`.
|
|
535
|
+
*/
|
|
536
|
+
export async function startBuilderDesignSystemIndex(options) {
|
|
537
|
+
const files = nonEmptyFiles(options.files);
|
|
538
|
+
const description = options.description?.trim();
|
|
539
|
+
if (description) {
|
|
540
|
+
files.unshift({
|
|
541
|
+
name: "additional-context.txt",
|
|
542
|
+
data: new TextEncoder().encode(description),
|
|
543
|
+
mimeType: "text/plain",
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
if (files.length === 0 &&
|
|
547
|
+
!options.githubRepoUrl &&
|
|
548
|
+
!options.connectedProjectId) {
|
|
549
|
+
throw new Error("Provide at least one .fig/code/text file or a GitHub repository URL to index with Builder.");
|
|
550
|
+
}
|
|
551
|
+
const sources = [];
|
|
552
|
+
if (files.length > 0) {
|
|
553
|
+
const slots = await startBuilderDesignSystemUpload(files.map((file) => ({
|
|
554
|
+
name: file.name,
|
|
555
|
+
mimetype: mimeTypeForFile(file),
|
|
556
|
+
declaredSize: file.data.byteLength,
|
|
557
|
+
})));
|
|
558
|
+
for (let i = 0; i < slots.length; i++) {
|
|
559
|
+
await uploadToResumableUrl(slots[i], files[i]);
|
|
560
|
+
}
|
|
561
|
+
for (let i = 0; i < slots.length; i++) {
|
|
562
|
+
const name = files[i].name;
|
|
563
|
+
const fileSelection = options.selection?.[name];
|
|
564
|
+
sources.push({
|
|
565
|
+
kind: "file",
|
|
566
|
+
uploadToken: slots[i].uploadToken,
|
|
567
|
+
...(fileSelection && fileSelection.length > 0
|
|
568
|
+
? { selection: { [name]: fileSelection } }
|
|
569
|
+
: {}),
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
if (options.githubRepoUrl?.trim()) {
|
|
574
|
+
sources.push({
|
|
575
|
+
kind: "public-repo",
|
|
576
|
+
repoUrl: options.githubRepoUrl.trim(),
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
if (options.connectedProjectId?.trim()) {
|
|
580
|
+
sources.push({
|
|
581
|
+
kind: "connected-repo",
|
|
582
|
+
fusionProjectId: options.connectedProjectId.trim(),
|
|
583
|
+
});
|
|
584
|
+
}
|
|
585
|
+
return indexBuilderDesignSystem({
|
|
586
|
+
sources,
|
|
587
|
+
projectName: options.projectName,
|
|
588
|
+
devToolsVersion: options.devToolsVersion,
|
|
589
|
+
});
|
|
590
|
+
}
|
|
439
591
|
//# sourceMappingURL=builder-design-systems.js.map
|