@agent-native/core 0.103.1 → 0.104.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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +30 -0
- package/corpus/core/package.json +9 -2
- package/corpus/core/src/agent/engine/credential-errors.ts +2 -2
- package/corpus/core/src/agent/production-agent.ts +30 -0
- package/corpus/core/src/agent/run-store.ts +12 -2
- package/corpus/core/src/cli/create.ts +1 -0
- package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +30 -11
- package/corpus/core/src/cli/templates-meta.ts +4 -3
- package/corpus/core/src/client/AgentAskPopover.tsx +89 -0
- package/corpus/core/src/client/AgentChatHome.tsx +4 -0
- package/corpus/core/src/client/AgentPanel.tsx +321 -223
- package/corpus/core/src/client/AssistantChat.tsx +6 -10
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +53 -372
- package/corpus/core/src/client/agent-chat-adapter.ts +13 -1
- package/corpus/core/src/client/agent-page/AgentContextTab.tsx +133 -149
- package/corpus/core/src/client/agent-page/AgentEmptyState.tsx +44 -0
- package/corpus/core/src/client/agent-page/AgentJobsTab.tsx +153 -82
- package/corpus/core/src/client/agent-page/AgentTabFrame.tsx +39 -0
- package/corpus/core/src/client/agent-page/AgentTabsPage.tsx +368 -356
- package/corpus/core/src/client/agent-page/types.ts +1 -1
- package/corpus/core/src/client/analytics.ts +51 -5
- package/corpus/core/src/client/chat/run-recovery.tsx +12 -4
- package/corpus/core/src/client/composer/PromptComposer.tsx +5 -15
- package/corpus/core/src/client/composer/TiptapComposer.tsx +32 -3
- package/corpus/core/src/client/dynamic-suggestions.ts +3 -3
- package/corpus/core/src/client/index.ts +16 -1
- package/corpus/core/src/client/resources/ResourceTree.tsx +249 -38
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +307 -140
- package/corpus/core/src/client/session-replay.ts +158 -5
- package/corpus/core/src/client/settings/AutomationsSection.tsx +30 -10
- package/corpus/core/src/client/settings/SettingsPanel.tsx +3 -2
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +2 -0
- package/corpus/core/src/client/settings/agent-settings-search.ts +2 -2
- package/corpus/core/src/client/use-chat-threads.ts +2 -0
- package/corpus/core/src/connections/catalog.ts +49 -7
- package/corpus/core/src/db/index.ts +6 -1
- package/corpus/core/src/extensions/actions.ts +106 -16
- package/corpus/core/src/extensions/content-patch.ts +22 -0
- package/corpus/core/src/extensions/routes.ts +18 -0
- package/corpus/core/src/extensions/store.ts +8 -0
- package/corpus/core/src/index.ts +3 -0
- package/corpus/core/src/ingestion/docx.ts +158 -0
- package/corpus/core/src/ingestion/figma-node-to-html.ts +1860 -0
- package/corpus/core/src/ingestion/figma.ts +548 -0
- package/corpus/core/src/ingestion/index.ts +107 -0
- package/corpus/core/src/ingestion/media.ts +264 -0
- package/corpus/core/src/ingestion/notion.ts +121 -0
- package/corpus/core/src/ingestion/office.ts +214 -0
- package/corpus/core/src/ingestion/orchestration.ts +160 -0
- package/corpus/core/src/ingestion/pptx.ts +333 -0
- package/corpus/core/src/ingestion/selection.ts +81 -0
- package/corpus/core/src/ingestion/website.ts +151 -0
- package/corpus/core/src/integrations/plugin.ts +45 -37
- package/corpus/core/src/localization/default-messages.ts +35 -12
- package/corpus/core/src/observability/hosted-model-experiment.ts +118 -0
- package/corpus/core/src/observability/traces.ts +5 -3
- package/corpus/core/src/provider-api/index.ts +452 -8
- package/corpus/core/src/scripts/agent-engines/list-agent-engines.ts +18 -1
- package/corpus/core/src/search-utils/index.ts +112 -0
- package/corpus/core/src/secrets/register-framework-secrets.ts +61 -0
- package/corpus/core/src/server/action-discovery.ts +33 -8
- package/corpus/core/src/server/agent-chat/framework-prompts.ts +2 -2
- package/corpus/core/src/server/agent-chat/prompt-resources.ts +144 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +6 -0
- package/corpus/core/src/server/core-routes-plugin.ts +12 -0
- package/corpus/core/src/server/index.ts +30 -0
- package/corpus/core/src/server/workspace-provider-oauth.ts +583 -0
- package/corpus/core/src/styles/agent-native.css +9 -0
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +3 -3
- package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +14 -5
- package/corpus/core/src/templates/workspace-root/.env.example +12 -0
- package/corpus/core/src/workspace-connections/index.ts +6 -0
- package/corpus/core/src/workspace-connections/lifecycle.ts +43 -0
- package/corpus/core/src/workspace-connections/store.ts +16 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +46 -3
- package/corpus/templates/analytics/AGENTS.md +9 -0
- package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +120 -6
- package/corpus/templates/analytics/actions/mutate-dashboard.ts +92 -30
- package/corpus/templates/analytics/actions/update-dashboard.ts +5 -5
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +313 -220
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +2 -2
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +9 -6
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +90 -64
- package/corpus/templates/analytics/app/i18n-data.ts +3 -3
- package/corpus/templates/analytics/app/lib/dashboard-list-loading.ts +25 -0
- package/corpus/templates/analytics/app/lib/item-popularity.ts +13 -4
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/pivot.ts +8 -3
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +1 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +15 -3
- package/corpus/templates/analytics/changelog/2026-07-16-dashboard-filter-defaults-can-now-be-changed-reliably-withou.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-16-dashboard-lists-load-in-one-stable-order-without-popping-bet.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-16-fixed-dashboard-filter-dropdown-text-alignment.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-16-recurring-signed-in-users-can-now-be-viewed-as-weekly-bars-b.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-16-the-analytics-agent-can-now-duplicate-a-chart-and-place-the-.md +6 -0
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +41 -1
- package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +1 -1
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +47 -1
- package/corpus/templates/analytics/server/lib/session-replay.ts +68 -0
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +1 -0
- package/corpus/templates/analytics/server/routes/sessions/lookup.get.ts +47 -0
- package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +16 -9
- package/corpus/templates/assets/.agents/skills/creative-context/SKILL.md +86 -0
- package/corpus/templates/assets/AGENTS.md +10 -0
- package/corpus/templates/assets/actions/create-generation-session.ts +59 -1
- package/corpus/templates/assets/actions/edit-image.ts +2 -0
- package/corpus/templates/assets/actions/generate-asset.ts +52 -0
- package/corpus/templates/assets/actions/generate-image-batch.ts +55 -0
- package/corpus/templates/assets/actions/generate-image.ts +219 -1
- package/corpus/templates/assets/actions/open-asset-picker.ts +14 -0
- package/corpus/templates/assets/actions/refine-image.ts +3 -0
- package/corpus/templates/assets/actions/restyle-image.ts +2 -0
- package/corpus/templates/assets/agent-native.app-skill.json +4 -0
- package/corpus/templates/assets/app/components/layout/Layout.tsx +2 -0
- package/corpus/templates/assets/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/assets/app/i18n-data.ts +29 -13
- package/corpus/templates/assets/app/routes/agent.tsx +7 -1
- package/corpus/templates/assets/app/routes/library.tsx +9 -0
- package/corpus/templates/assets/app/routes/settings.tsx +3 -0
- package/corpus/templates/assets/changelog/2026-07-16-creative-context-library.md +6 -0
- package/corpus/templates/assets/package.json +1 -0
- package/corpus/templates/assets/server/lib/image-processing.ts +1 -22
- package/corpus/templates/assets/server/plugins/creative-context.ts +205 -0
- package/corpus/templates/brain/app/i18n-data.ts +3 -3
- package/corpus/templates/brain/app/lib/brain.ts +1 -1
- package/corpus/templates/brain/server/lib/search.ts +17 -67
- package/corpus/templates/calendar/app/i18n-data.ts +3 -3
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +19 -18
- package/corpus/templates/chat/app/i18n/en-US.ts +3 -3
- package/corpus/templates/chat/app/lib/agent-page.tsx +10 -1
- package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
- package/corpus/templates/clips/AGENTS.md +4 -0
- package/corpus/templates/clips/actions/cleanup-transcript.ts +35 -4
- package/corpus/templates/clips/actions/create-meeting.ts +6 -2
- package/corpus/templates/clips/actions/create-organization.ts +3 -2
- package/corpus/templates/clips/actions/create-recording.ts +4 -1
- package/corpus/templates/clips/actions/finalize-recording.ts +44 -7
- package/corpus/templates/clips/actions/import-loom-recording.ts +4 -1
- package/corpus/templates/clips/actions/lib/create-recording-schema.ts +2 -2
- package/corpus/templates/clips/actions/list-meetings.ts +23 -5
- package/corpus/templates/clips/actions/list-organization-state.ts +1 -1
- package/corpus/templates/clips/actions/remove-silences.ts +10 -1
- package/corpus/templates/clips/actions/request-transcript.ts +53 -11
- package/corpus/templates/clips/actions/search-recordings-utils.ts +7 -0
- package/corpus/templates/clips/actions/search-recordings.ts +5 -8
- package/corpus/templates/clips/actions/set-organization-branding.ts +2 -2
- package/corpus/templates/clips/actions/stitch-recordings.ts +10 -5
- package/corpus/templates/clips/actions/update-ai-request-status.ts +38 -0
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +3 -4
- package/corpus/templates/clips/app/components/editor/editor-selection.ts +19 -0
- package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +10 -10
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +1 -2
- package/corpus/templates/clips/app/components/library/library-grid.tsx +101 -93
- package/corpus/templates/clips/app/components/player/video-player.tsx +11 -0
- package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +53 -1
- package/corpus/templates/clips/app/i18n/ar-SA.ts +7 -1
- package/corpus/templates/clips/app/i18n/de-DE.ts +7 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +10 -4
- package/corpus/templates/clips/app/i18n/es-ES.ts +7 -1
- package/corpus/templates/clips/app/i18n/fr-FR.ts +7 -1
- package/corpus/templates/clips/app/i18n/hi-IN.ts +7 -1
- package/corpus/templates/clips/app/i18n/ja-JP.ts +7 -1
- package/corpus/templates/clips/app/i18n/ko-KR.ts +7 -1
- package/corpus/templates/clips/app/i18n/pt-BR.ts +7 -1
- package/corpus/templates/clips/app/i18n/zh-CN.ts +6 -1
- package/corpus/templates/clips/app/i18n/zh-TW.ts +6 -1
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +5 -9
- package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +6 -2
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +129 -27
- package/corpus/templates/clips/app/routes/record.tsx +23 -2
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +6 -2
- package/corpus/templates/clips/changelog/2026-07-16-authorized-viewers-can-open-shared-private-clips-without-a-m.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-camera-bubble-hover-controls-appear-above-the-face.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-chrome-extension-recovers-stale-recorder-state.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-clips-agent-chat-no-longer-shows-a-separate-workspace-header.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-clips-search-now-matches-recording-content-without-requiring.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-declined-meetings-no-longer-show-desktop-reminders.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-failed-desktop-saves-now-show-their-local-recovery-copy.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-long-desktop-clips-now-preserve-complete-playback-synced-aud.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-long-recording-lists-keep-stitch-and-library-actions-visible.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-organization-admins-can-choose-new-recording-visibility.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-remove-silences-now-shows-queued-active-completed-and-failed.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-settings-no-longer-repeats-the-builder-connection-status-in-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-16-transcripts-now-appear-from-native-browser-speech-sooner-wit.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
- package/corpus/templates/clips/chrome-extension/src/background.ts +73 -1
- package/corpus/templates/clips/chrome-extension/src/native-recording-state.ts +32 -0
- package/corpus/templates/clips/chrome-extension/src/native-transcription.ts +248 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +106 -0
- package/corpus/templates/clips/desktop/src/app.tsx +66 -28
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +335 -285
- package/corpus/templates/clips/desktop/src/lib/single-flight.ts +7 -0
- package/corpus/templates/clips/desktop/src/lib/upload-verification.ts +51 -0
- package/corpus/templates/clips/desktop/src/overlays/bubble.tsx +2 -2
- package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +10 -2
- package/corpus/templates/clips/desktop/src/styles.css +13 -11
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +8 -9
- package/corpus/templates/clips/desktop/src-tauri/src/meetings_watcher.rs +1 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +88 -13
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/live_upload.rs +13 -2
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +241 -6
- package/corpus/templates/clips/server/db/schema.ts +2 -2
- package/corpus/templates/clips/server/lib/builder-media-compression.ts +64 -67
- package/corpus/templates/clips/server/lib/calendar-event-classification.ts +19 -0
- package/corpus/templates/clips/server/lib/google-calendar-client.ts +1 -0
- package/corpus/templates/clips/server/lib/recordings.ts +40 -1
- package/corpus/templates/clips/server/plugins/agent-chat.ts +1 -0
- package/corpus/templates/clips/server/plugins/db.ts +2 -2
- package/corpus/templates/clips/server/routes/api/auth/google-calendar.get.ts +1 -1
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +14 -5
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +51 -1
- package/corpus/templates/clips/server/routes/api/video/[recordingId].get.ts +1 -64
- package/corpus/templates/clips/shared/media-worker-contract.ts +32 -15
- package/corpus/templates/content/.agents/skills/content/SKILL.md +16 -0
- package/corpus/templates/content/.agents/skills/creative-context/SKILL.md +85 -0
- package/corpus/templates/content/.agents/skills/notion-integration/SKILL.md +8 -0
- package/corpus/templates/content/AGENTS.md +9 -0
- package/corpus/templates/content/actions/create-document.ts +94 -0
- package/corpus/templates/content/actions/edit-document.ts +144 -4
- package/corpus/templates/content/actions/update-document.ts +138 -0
- package/corpus/templates/content/agent-native.app-skill.json +4 -0
- package/corpus/templates/content/app/components/layout/Layout.tsx +2 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/content/app/i18n-data.ts +13 -4
- package/corpus/templates/content/app/routes/_app.agent.tsx +2 -1
- package/corpus/templates/content/app/routes/_app.settings.tsx +3 -0
- package/corpus/templates/content/changelog/2026-07-16-creative-context-library.md +6 -0
- package/corpus/templates/content/package.json +1 -0
- package/corpus/templates/content/server/plugins/creative-context.ts +31 -0
- package/corpus/templates/design/.agents/skills/creative-context/SKILL.md +116 -0
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +16 -0
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -0
- package/corpus/templates/design/AGENTS.md +6 -0
- package/corpus/templates/design/actions/clone-creative-context-design.ts +176 -0
- package/corpus/templates/design/actions/edit-design.ts +128 -0
- package/corpus/templates/design/actions/generate-design.ts +278 -14
- package/corpus/templates/design/actions/generate-screens.ts +42 -1
- package/corpus/templates/design/agent-native.app-skill.json +4 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +7 -3
- package/corpus/templates/design/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/design/app/i18n-data.ts +10 -4
- package/corpus/templates/design/app/routes/agent.tsx +2 -1
- package/corpus/templates/design/app/routes/settings.tsx +3 -0
- package/corpus/templates/design/changelog/2026-07-16-creative-context-library.md +6 -0
- package/corpus/templates/design/changelog/2026-07-16-design-agent-chat-no-longer-shows-a-separate-workspace-header.md +6 -0
- package/corpus/templates/design/package.json +1 -0
- package/corpus/templates/design/server/lib/figma-design-context.ts +5 -335
- package/corpus/templates/design/server/lib/figma-node-to-html.ts +1 -1859
- package/corpus/templates/design/server/lib/import-design-files.ts +6 -8
- package/corpus/templates/design/server/plugins/creative-context.ts +31 -0
- package/corpus/templates/design/shared/generation-session.ts +7 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +3 -3
- package/corpus/templates/forms/app/i18n/en-US.ts +3 -3
- package/corpus/templates/macros/app/i18n/en-US.ts +3 -3
- package/corpus/templates/mail/app/components/email/EmailThread.tsx +35 -5
- package/corpus/templates/mail/app/i18n/en-US.ts +3 -3
- package/corpus/templates/mail/changelog/2026-07-16-mail-previews-now-expand-to-show-the-full-message-without-an.md +6 -0
- package/corpus/templates/plan/.agents/skills/visual-plan/SKILL.md +30 -11
- package/corpus/templates/plan/AGENTS.md +21 -1
- package/corpus/templates/plan/actions/get-visual-plan.ts +1 -1
- package/corpus/templates/plan/actions/patch-visual-plan-source.ts +161 -0
- package/corpus/templates/plan/actions/read-visual-plan-source.ts +1 -1
- package/corpus/templates/plan/actions/update-visual-plan.ts +126 -10
- package/corpus/templates/plan/app/hooks/use-plans.ts +2 -0
- package/corpus/templates/plan/app/i18n/en-US.ts +3 -3
- package/corpus/templates/plan/app/pages/PlansPage.tsx +65 -62
- package/corpus/templates/plan/changelog/2026-07-16-local-plan-previews-now-load-annotations-containing-html-lik.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-16-plan-agents-now-prevent-stale-edits-from-overwriting-newer-p.md +6 -0
- package/corpus/templates/plan/server/plan-mdx.ts +75 -2
- package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +21 -4
- package/corpus/templates/slides/.agents/skills/creative-context/SKILL.md +122 -0
- package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +11 -0
- package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +12 -3
- package/corpus/templates/slides/AGENTS.md +6 -0
- package/corpus/templates/slides/actions/add-slide.ts +230 -14
- package/corpus/templates/slides/actions/clone-context-slide.ts +302 -0
- package/corpus/templates/slides/actions/create-deck.ts +130 -0
- package/corpus/templates/slides/actions/extract-pdf.ts +6 -2
- package/corpus/templates/slides/actions/import-file.ts +5 -4
- package/corpus/templates/slides/actions/patch-deck.ts +200 -10
- package/corpus/templates/slides/actions/update-slide.ts +208 -15
- package/corpus/templates/slides/app/components/layout/Layout.tsx +2 -0
- package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +16 -1
- package/corpus/templates/slides/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/slides/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +6 -3
- package/corpus/templates/slides/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/slides/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/slides/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/slides/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/slides/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/slides/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/slides/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/slides/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/slides/app/lib/validate-native-slide-html.ts +176 -0
- package/corpus/templates/slides/app/routes/agent.tsx +7 -1
- package/corpus/templates/slides/app/routes/settings.tsx +3 -0
- package/corpus/templates/slides/changelog/2026-07-16-creative-context-library.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-16-google-slides-native-cloning.md +6 -0
- package/corpus/templates/slides/package.json +1 -0
- package/corpus/templates/slides/server/handlers/import/docx-parser.ts +4 -85
- package/corpus/templates/slides/server/handlers/import/pptx-parser.ts +7 -421
- package/corpus/templates/slides/server/plugins/creative-context.ts +166 -0
- package/dist/agent/engine/credential-errors.d.ts +1 -1
- package/dist/agent/engine/credential-errors.d.ts.map +1 -1
- package/dist/agent/engine/credential-errors.js +2 -2
- package/dist/agent/engine/credential-errors.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +25 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +12 -2
- package/dist/agent/run-store.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +1 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/skills-content/visual-plan-skill.d.ts +1 -1
- package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -1
- package/dist/cli/skills-content/visual-plan-skill.js +30 -11
- package/dist/cli/skills-content/visual-plan-skill.js.map +1 -1
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +4 -3
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/AgentAskPopover.d.ts +11 -0
- package/dist/client/AgentAskPopover.d.ts.map +1 -0
- package/dist/client/AgentAskPopover.js +30 -0
- package/dist/client/AgentAskPopover.js.map +1 -0
- package/dist/client/AgentChatHome.d.ts +1 -1
- package/dist/client/AgentChatHome.d.ts.map +1 -1
- package/dist/client/AgentChatHome.js +2 -2
- package/dist/client/AgentChatHome.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +9 -19
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +119 -80
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +4 -4
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts +3 -9
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +49 -189
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +12 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-page/AgentContextTab.d.ts.map +1 -1
- package/dist/client/agent-page/AgentContextTab.js +26 -28
- package/dist/client/agent-page/AgentContextTab.js.map +1 -1
- package/dist/client/agent-page/AgentEmptyState.d.ts +13 -0
- package/dist/client/agent-page/AgentEmptyState.d.ts.map +1 -0
- package/dist/client/agent-page/AgentEmptyState.js +6 -0
- package/dist/client/agent-page/AgentEmptyState.js.map +1 -0
- package/dist/client/agent-page/AgentJobsTab.d.ts +1 -1
- package/dist/client/agent-page/AgentJobsTab.d.ts.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.js +90 -58
- package/dist/client/agent-page/AgentJobsTab.js.map +1 -1
- package/dist/client/agent-page/AgentTabFrame.d.ts +12 -0
- package/dist/client/agent-page/AgentTabFrame.d.ts.map +1 -0
- package/dist/client/agent-page/AgentTabFrame.js +7 -0
- package/dist/client/agent-page/AgentTabFrame.js.map +1 -0
- package/dist/client/agent-page/AgentTabsPage.d.ts +9 -1
- package/dist/client/agent-page/AgentTabsPage.d.ts.map +1 -1
- package/dist/client/agent-page/AgentTabsPage.js +135 -99
- package/dist/client/agent-page/AgentTabsPage.js.map +1 -1
- package/dist/client/agent-page/types.d.ts +1 -1
- package/dist/client/agent-page/types.d.ts.map +1 -1
- package/dist/client/agent-page/types.js.map +1 -1
- package/dist/client/analytics.d.ts +10 -3
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +37 -2
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +10 -3
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/composer/PromptComposer.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.js +2 -2
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +15 -3
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/dynamic-suggestions.js +3 -3
- package/dist/client/dynamic-suggestions.js.map +1 -1
- package/dist/client/index.d.ts +4 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/resources/ResourceTree.d.ts +5 -1
- package/dist/client/resources/ResourceTree.d.ts.map +1 -1
- package/dist/client/resources/ResourceTree.js +74 -5
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts +11 -2
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +105 -31
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/session-replay.d.ts +28 -0
- package/dist/client/session-replay.d.ts.map +1 -1
- package/dist/client/session-replay.js +122 -8
- package/dist/client/session-replay.js.map +1 -1
- package/dist/client/settings/AutomationsSection.d.ts +3 -1
- package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
- package/dist/client/settings/AutomationsSection.js +16 -6
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +3 -3
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts +2 -0
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- package/dist/client/settings/agent-settings-search.js +2 -2
- package/dist/client/settings/agent-settings-search.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts +2 -0
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/connections/catalog.d.ts +41 -7
- package/dist/connections/catalog.d.ts.map +1 -1
- package/dist/connections/catalog.js +40 -7
- package/dist/connections/catalog.js.map +1 -1
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +2 -2
- package/dist/db/index.js.map +1 -1
- package/dist/extensions/actions.d.ts.map +1 -1
- package/dist/extensions/actions.js +85 -15
- package/dist/extensions/actions.js.map +1 -1
- package/dist/extensions/content-patch.d.ts +4 -0
- package/dist/extensions/content-patch.d.ts.map +1 -1
- package/dist/extensions/content-patch.js +18 -0
- package/dist/extensions/content-patch.js.map +1 -1
- package/dist/extensions/routes.d.ts.map +1 -1
- package/dist/extensions/routes.js +14 -0
- package/dist/extensions/routes.js.map +1 -1
- package/dist/extensions/store.d.ts +1 -0
- package/dist/extensions/store.d.ts.map +1 -1
- package/dist/extensions/store.js +4 -1
- package/dist/extensions/store.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ingestion/docx.d.ts +16 -0
- package/dist/ingestion/docx.d.ts.map +1 -0
- package/dist/ingestion/docx.js +129 -0
- package/dist/ingestion/docx.js.map +1 -0
- package/dist/ingestion/figma-node-to-html.d.ts +304 -0
- package/dist/ingestion/figma-node-to-html.d.ts.map +1 -0
- package/dist/ingestion/figma-node-to-html.js +1292 -0
- package/dist/ingestion/figma-node-to-html.js.map +1 -0
- package/dist/ingestion/figma.d.ts +115 -0
- package/dist/ingestion/figma.d.ts.map +1 -0
- package/dist/ingestion/figma.js +399 -0
- package/dist/ingestion/figma.js.map +1 -0
- package/dist/ingestion/index.d.ts +11 -0
- package/dist/ingestion/index.d.ts.map +1 -0
- package/dist/ingestion/index.js +11 -0
- package/dist/ingestion/index.js.map +1 -0
- package/dist/ingestion/media.d.ts +36 -0
- package/dist/ingestion/media.d.ts.map +1 -0
- package/dist/ingestion/media.js +178 -0
- package/dist/ingestion/media.js.map +1 -0
- package/dist/ingestion/notion.d.ts +12 -0
- package/dist/ingestion/notion.d.ts.map +1 -0
- package/dist/ingestion/notion.js +104 -0
- package/dist/ingestion/notion.js.map +1 -0
- package/dist/ingestion/office.d.ts +45 -0
- package/dist/ingestion/office.d.ts.map +1 -0
- package/dist/ingestion/office.js +141 -0
- package/dist/ingestion/office.js.map +1 -0
- package/dist/ingestion/orchestration.d.ts +52 -0
- package/dist/ingestion/orchestration.d.ts.map +1 -0
- package/dist/ingestion/orchestration.js +89 -0
- package/dist/ingestion/orchestration.js.map +1 -0
- package/dist/ingestion/pptx.d.ts +28 -0
- package/dist/ingestion/pptx.d.ts.map +1 -0
- package/dist/ingestion/pptx.js +255 -0
- package/dist/ingestion/pptx.js.map +1 -0
- package/dist/ingestion/selection.d.ts +20 -0
- package/dist/ingestion/selection.d.ts.map +1 -0
- package/dist/ingestion/selection.js +52 -0
- package/dist/ingestion/selection.js.map +1 -0
- package/dist/ingestion/website.d.ts +27 -0
- package/dist/ingestion/website.d.ts.map +1 -0
- package/dist/ingestion/website.js +100 -0
- package/dist/ingestion/website.js.map +1 -0
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +32 -27
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/localization/default-messages.d.ts +22 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +31 -9
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/observability/hosted-model-experiment.d.ts +39 -0
- package/dist/observability/hosted-model-experiment.d.ts.map +1 -0
- package/dist/observability/hosted-model-experiment.js +90 -0
- package/dist/observability/hosted-model-experiment.js.map +1 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +5 -3
- package/dist/observability/traces.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/index.d.ts +35 -4
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +339 -8
- package/dist/provider-api/index.js.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +18 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/search-utils/index.d.ts +12 -0
- package/dist/search-utils/index.d.ts.map +1 -0
- package/dist/search-utils/index.js +95 -0
- package/dist/search-utils/index.js.map +1 -0
- package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
- package/dist/secrets/register-framework-secrets.js +57 -0
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/server/action-discovery.d.ts +8 -0
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +26 -9
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat/framework-prompts.js +2 -2
- package/dist/server/agent-chat/framework-prompts.js.map +1 -1
- package/dist/server/agent-chat/prompt-resources.d.ts +19 -0
- package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -1
- package/dist/server/agent-chat/prompt-resources.js +95 -0
- package/dist/server/agent-chat/prompt-resources.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +7 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +5 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/index.d.ts +5 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +5 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/workspace-provider-oauth.d.ts +48 -0
- package/dist/server/workspace-provider-oauth.d.ts.map +1 -0
- package/dist/server/workspace-provider-oauth.js +415 -0
- package/dist/server/workspace-provider-oauth.js.map +1 -0
- package/dist/styles/agent-native.css +9 -0
- package/dist/templates/chat/app/i18n/en-US.ts +3 -3
- package/dist/templates/chat/app/lib/agent-page.tsx +10 -1
- package/dist/templates/default/app/i18n/en-US.ts +3 -3
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +14 -5
- package/dist/templates/workspace-root/.env.example +12 -0
- package/dist/workspace-connections/index.d.ts +1 -0
- package/dist/workspace-connections/index.d.ts.map +1 -1
- package/dist/workspace-connections/index.js +1 -0
- package/dist/workspace-connections/index.js.map +1 -1
- package/dist/workspace-connections/lifecycle.d.ts +16 -0
- package/dist/workspace-connections/lifecycle.d.ts.map +1 -0
- package/dist/workspace-connections/lifecycle.js +14 -0
- package/dist/workspace-connections/lifecycle.js.map +1 -0
- package/dist/workspace-connections/store.d.ts.map +1 -1
- package/dist/workspace-connections/store.js +16 -0
- package/dist/workspace-connections/store.js.map +1 -1
- package/package.json +10 -3
- package/src/templates/chat/app/i18n/en-US.ts +3 -3
- package/src/templates/chat/app/lib/agent-page.spec.tsx +10 -1
- package/src/templates/chat/app/lib/agent-page.tsx +10 -1
- package/src/templates/default/app/i18n/en-US.ts +3 -3
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +14 -5
- package/src/templates/workspace-root/.env.example +12 -0
package/corpus/README.md
CHANGED
package/corpus/core/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @agent-native/core
|
|
2
2
|
|
|
3
|
+
## 0.104.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2625de5: Add the Creative Context package for importing, versioning, searching, and reusing workspace decks, designs, assets, websites, and content across creative apps.
|
|
8
|
+
|
|
9
|
+
Expose reusable ingestion, prompt-context provider, and search utility seams from core for package-driven creative context.
|
|
10
|
+
|
|
11
|
+
Includes bounded image-region cropping for durable localized creative-context fallbacks.
|
|
12
|
+
|
|
13
|
+
- 2625de5: Redesign the agent workspace with plain files first, dedicated resource collections, and a snapshots view for recent context inspection.
|
|
14
|
+
- 2625de5: Add public session replay context and timestamped Analytics links, support host-owned tracking identity, and allow Analytics replay pages to open at a requested timeline offset.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 2625de5: Disable app-shell transitions across the shared AgentSidebar subtree while the sidebar is being resized.
|
|
19
|
+
- 2625de5: Count explicitly failed action tool events as errors in observability traces and summaries even when their result text does not start with `Error`.
|
|
20
|
+
- 2625de5: Fix managed Slack OAuth to resolve scoped app credentials within the signed-in request context.
|
|
21
|
+
- 2625de5: Render dashboard, form, and other resource context as a normal composer chip instead of a scoped-chat badge and history partition.
|
|
22
|
+
- 2625de5: Protect existing extension visual design during data-only repairs by requiring explicit intent for full-body replacements, stop deterministic edit failures before the agent retries the same arguments, and resume cleanly when a provider closes while an action input is still being assembled.
|
|
23
|
+
- 2625de5: Teach Plan agents to fence destructive edits against fresh plan revisions and verify persisted content before closing feedback.
|
|
24
|
+
- 2625de5: Inline `AgentChatSurface` and `AgentChatHome` instances now hide the legacy Chat/Workspace header and chat tab row by default.
|
|
25
|
+
- 2625de5: Share package-registered actions across runtime module instances and mount them alongside explicit app action registries.
|
|
26
|
+
- 2625de5: Keep sidebar chat tabs visible in the header and place them beside the new-chat, options, and close controls.
|
|
27
|
+
- 2625de5: Re-enable the sticky 80/20 Sonnet 5 versus GPT-5.6 Luna default-model experiment across first-party hosted templates.
|
|
28
|
+
- 2625de5: Avoid repeated desktop sidebar width transitions while the agent sidebar is being resized.
|
|
29
|
+
- 2625de5: Prevent duplicate recovery submissions and reject late worker events after an agent run has already reached a terminal state.
|
|
30
|
+
- Updated dependencies [2625de5]
|
|
31
|
+
- @agent-native/recap-cli@0.4.2
|
|
32
|
+
|
|
3
33
|
## 0.103.1
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/corpus/core/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.104.0",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -48,6 +48,8 @@
|
|
|
48
48
|
"./server/request-context": "./dist/server/request-context.js",
|
|
49
49
|
"./server/design-token-utils": "./dist/server/design-token-utils.js",
|
|
50
50
|
"./integrations": "./dist/integrations/index.js",
|
|
51
|
+
"./ingestion": "./dist/ingestion/index.js",
|
|
52
|
+
"./search-utils": "./dist/search-utils/index.js",
|
|
51
53
|
"./automation": "./dist/automation/index.js",
|
|
52
54
|
"./brand-kit": "./dist/brand-kit/index.js",
|
|
53
55
|
"./brand-kit/fig": "./dist/brand-kit/fig/index.js",
|
|
@@ -520,7 +522,12 @@
|
|
|
520
522
|
},
|
|
521
523
|
"optionalDependencies": {
|
|
522
524
|
"@opentelemetry/api": "^1.9.1",
|
|
523
|
-
"
|
|
525
|
+
"fast-xml-parser": "^5.10.1",
|
|
526
|
+
"jszip": "^3.10.1",
|
|
527
|
+
"mammoth": "^1.12.0",
|
|
528
|
+
"officeparser": "^7.3.0",
|
|
529
|
+
"playwright": "^1.61.1",
|
|
530
|
+
"sharp": "^0.35.3"
|
|
524
531
|
},
|
|
525
532
|
"engines": {
|
|
526
533
|
"node": ">=22.22.0"
|
|
@@ -3,7 +3,7 @@ import { PROVIDER_ENV_VARS } from "./provider-env-vars.js";
|
|
|
3
3
|
export const LLM_MISSING_CREDENTIALS_ERROR_CODE = "missing_credentials";
|
|
4
4
|
|
|
5
5
|
export const LLM_MISSING_CREDENTIALS_MESSAGE =
|
|
6
|
-
"No LLM provider is connected. Open this app's Agent
|
|
6
|
+
"No LLM provider is connected. Open this app's Agent workspace > LLM, then connect Builder.io or add a provider key.";
|
|
7
7
|
|
|
8
8
|
const LLM_CREDENTIAL_KEYS = new Set([
|
|
9
9
|
...PROVIDER_ENV_VARS,
|
|
@@ -45,7 +45,7 @@ export function formatLlmCredentialErrorMessage(options?: {
|
|
|
45
45
|
}): string {
|
|
46
46
|
const agentName = options?.agentName?.trim();
|
|
47
47
|
if (agentName) {
|
|
48
|
-
return `The ${agentName} agent could not finish this request because that app needs an LLM connection. Open ${agentName}'s Agent
|
|
48
|
+
return `The ${agentName} agent could not finish this request because that app needs an LLM connection. Open ${agentName}'s Agent workspace > LLM, then connect Builder.io or add a provider key.`;
|
|
49
49
|
}
|
|
50
50
|
return LLM_MISSING_CREDENTIALS_MESSAGE;
|
|
51
51
|
}
|
|
@@ -3772,6 +3772,20 @@ export async function runAgentLoop(opts: {
|
|
|
3772
3772
|
return usage;
|
|
3773
3773
|
}
|
|
3774
3774
|
|
|
3775
|
+
// A provider can close cleanly after streaming only a partial tool
|
|
3776
|
+
// input. Do not treat that as a completed turn or execute guessed args.
|
|
3777
|
+
const hasEmptyAssistantContent =
|
|
3778
|
+
assistantContent === undefined || assistantContent.length === 0;
|
|
3779
|
+
const hasUnfinishedToolInput =
|
|
3780
|
+
activeToolInputs.size > 0 &&
|
|
3781
|
+
hasEmptyAssistantContent &&
|
|
3782
|
+
streamedAssistantToolCalls.length === 0 &&
|
|
3783
|
+
toolCallErrors.size === 0;
|
|
3784
|
+
if (hasUnfinishedToolInput) {
|
|
3785
|
+
send({ type: "auto_continue", reason: "stream_ended" });
|
|
3786
|
+
return usage;
|
|
3787
|
+
}
|
|
3788
|
+
|
|
3775
3789
|
break;
|
|
3776
3790
|
} catch (err: unknown) {
|
|
3777
3791
|
if (signal.aborted) throw err;
|
|
@@ -6527,6 +6541,22 @@ export function createProductionAgentHandler(
|
|
|
6527
6541
|
modelSelectionSource = "experiment";
|
|
6528
6542
|
}
|
|
6529
6543
|
}
|
|
6544
|
+
|
|
6545
|
+
if (modelSelectionSource === "default") {
|
|
6546
|
+
const { resolveHostedDefaultModelExperiment } =
|
|
6547
|
+
await import("../observability/hosted-model-experiment.js");
|
|
6548
|
+
const hostedExperiment = resolveHostedDefaultModelExperiment({
|
|
6549
|
+
userId: ownerEmail,
|
|
6550
|
+
engineName: engine.name,
|
|
6551
|
+
isDefaultModelSelection: true,
|
|
6552
|
+
supportedModels: engine.supportedModels,
|
|
6553
|
+
});
|
|
6554
|
+
if (hostedExperiment) {
|
|
6555
|
+
effectiveModel = hostedExperiment.model;
|
|
6556
|
+
experimentAssignments.push(hostedExperiment.assignment);
|
|
6557
|
+
modelSelectionSource = "experiment";
|
|
6558
|
+
}
|
|
6559
|
+
}
|
|
6530
6560
|
}
|
|
6531
6561
|
} catch {
|
|
6532
6562
|
// Experiments are best-effort. Model resolution must keep working if the
|
|
@@ -1794,9 +1794,19 @@ export async function insertRunEvent(
|
|
|
1794
1794
|
// It can also race with `appendTerminalRunEvent` (max-seq + 1) when a
|
|
1795
1795
|
// run aborts at the same time the producer emits its final event.
|
|
1796
1796
|
// Treat the second write as a no-op so the run completes cleanly.
|
|
1797
|
+
// A producer can also outlive a stale-run reap or explicit abort. Reject
|
|
1798
|
+
// those zombie writes atomically once the run row is terminal. Allowing a
|
|
1799
|
+
// missing run row preserves the existing startRun race where the producer
|
|
1800
|
+
// may emit before the non-blocking run-row insert has landed.
|
|
1797
1801
|
await client.execute({
|
|
1798
|
-
sql: `INSERT INTO agent_run_events (run_id, seq, event_at, event_data)
|
|
1799
|
-
|
|
1802
|
+
sql: `INSERT INTO agent_run_events (run_id, seq, event_at, event_data)
|
|
1803
|
+
SELECT ?, ?, ?, ?
|
|
1804
|
+
WHERE NOT EXISTS (
|
|
1805
|
+
SELECT 1 FROM agent_runs
|
|
1806
|
+
WHERE id = ? AND status <> 'running'
|
|
1807
|
+
)
|
|
1808
|
+
ON CONFLICT (run_id, seq) DO NOTHING`,
|
|
1809
|
+
args: [runId, seq, Date.now(), eventData, runId],
|
|
1800
1810
|
});
|
|
1801
1811
|
}
|
|
1802
1812
|
|
|
@@ -191,12 +191,22 @@ forward only the code-research and plan-composition guidance here.
|
|
|
191
191
|
targeted \`contentPatches\`.
|
|
192
192
|
Treat the top-level \`content\` payload as a full replacement, not a merge; do
|
|
193
193
|
not send a partial \`content\` object to add a canvas or one block. If a full
|
|
194
|
-
replacement is unavoidable,
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
194
|
+
replacement or \`replace-blocks\` is unavoidable, call \`get-visual-plan\`
|
|
195
|
+
immediately before the write, pass its \`plan.updatedAt\` as
|
|
196
|
+
\`expectedUpdatedAt\`, and carry forward every existing block and visual
|
|
197
|
+
surface. Never reuse a revision from an earlier read or feedback payload.
|
|
198
|
+
For source-control friendly edits, use granular \`patch-visual-plan-source\`
|
|
199
|
+
operations against the MDX files instead of regenerating the plan;
|
|
200
|
+
\`replace-file\` is also destructive and requires the same fresh
|
|
201
|
+
\`expectedUpdatedAt\` fence.
|
|
202
|
+
7. After every hosted-plan write, call \`get-visual-plan\` again and compare the
|
|
203
|
+
persisted text, block IDs/counts, canvas frames, and prototype with the
|
|
204
|
+
intended result. A successful mutation response is not proof that unrelated
|
|
205
|
+
content survived. If the edit addressed agent-targeted feedback, only after
|
|
206
|
+
this verification call \`resolve-plan-comment\` for the thread and
|
|
207
|
+
\`consume-plan-feedback\` for its comments; do both so addressed feedback is
|
|
208
|
+
neither visibly open nor returned as pending work.
|
|
209
|
+
8. For hosted plans, export with \`export-visual-plan\` only when the user wants a
|
|
200
210
|
shareable receipt or repo-check-in artifacts.
|
|
201
211
|
|
|
202
212
|
## Self-Review Before Handoff
|
|
@@ -345,14 +355,20 @@ directory before authoring a plan.
|
|
|
345
355
|
- \`create-visual-questions\`: use only when the user explicitly asks for a visual
|
|
346
356
|
intake questionnaire, not as \`/visual-plan\` preflight.
|
|
347
357
|
- \`update-visual-plan\`: revise content, status, or comments with targeted
|
|
348
|
-
\`contentPatches\` (see Core Workflow
|
|
358
|
+
\`contentPatches\` (see Core Workflow steps 6-7). \`replace-blocks\` and full
|
|
359
|
+
\`content\` replacement require \`expectedUpdatedAt\` from a fresh
|
|
360
|
+
\`get-visual-plan\` call.
|
|
349
361
|
- \`read-visual-plan-source\`: read the normalized plan as \`plan.mdx\`,
|
|
350
362
|
optional \`canvas.mdx\`, optional \`.plan-state.json\`, and JSON.
|
|
351
363
|
- \`patch-visual-plan-source\`: apply granular MDX AST patches by stable block,
|
|
352
|
-
artboard, annotation, component, or wireframe-node id.
|
|
364
|
+
artboard, annotation, component, or wireframe-node id. Prefer those targeted
|
|
365
|
+
operations; \`replace-file\` requires \`expectedUpdatedAt\` from a fresh
|
|
366
|
+
\`get-visual-plan\` call.
|
|
353
367
|
- \`import-visual-plan-source\`: create or replace a plan from an MDX folder.
|
|
354
|
-
- \`get-visual-plan\`: read the current structured plan, exported HTML,
|
|
355
|
-
annotations
|
|
368
|
+
- \`get-visual-plan\`: read the current structured plan, exported HTML,
|
|
369
|
+
annotations, and \`plan.updatedAt\`; it also returns the MDX folder for source
|
|
370
|
+
workflows. Re-read immediately before a destructive write for its concurrency
|
|
371
|
+
fence and again after every write to verify persisted state.
|
|
356
372
|
- \`get-plan-feedback\`: read unconsumed human feedback. Use it frequently; it
|
|
357
373
|
returns grouped threads, exact anchor details, expected resolver, and recent
|
|
358
374
|
review-event payloads so agents can act only on the comments meant for them.
|
|
@@ -411,7 +427,10 @@ local bridge check/serve/verify command, and report the new local URL.
|
|
|
411
427
|
- **Two-axis state.** Mark every ingested comment as consumed
|
|
412
428
|
(\`consumedCommentIds\` on \`update-visual-plan\`). Set \`status=resolved\` only on
|
|
413
429
|
agent-targeted comments you actually addressed; leave human-targeted comments
|
|
414
|
-
open.
|
|
430
|
+
open. When an edit addresses feedback, first re-read the persisted plan and
|
|
431
|
+
verify the requested change. Only then call \`resolve-plan-comment\` for the
|
|
432
|
+
addressed thread and \`consume-plan-feedback\` for its comments; never mark
|
|
433
|
+
addressed feedback along only one axis.
|
|
415
434
|
|
|
416
435
|
## Visibility & Sharing
|
|
417
436
|
|
|
@@ -74,6 +74,7 @@ export const TEMPLATES: TemplateMeta[] = [
|
|
|
74
74
|
devPort: 8083,
|
|
75
75
|
prodUrl: "https://content.agent-native.com",
|
|
76
76
|
defaultMode: "prod",
|
|
77
|
+
requiredPackages: ["creative-context"],
|
|
77
78
|
core: true,
|
|
78
79
|
},
|
|
79
80
|
{
|
|
@@ -98,7 +99,7 @@ export const TEMPLATES: TemplateMeta[] = [
|
|
|
98
99
|
devPort: 8086,
|
|
99
100
|
prodUrl: "https://slides.agent-native.com",
|
|
100
101
|
defaultMode: "prod",
|
|
101
|
-
requiredPackages: ["pinpoint"],
|
|
102
|
+
requiredPackages: ["pinpoint", "creative-context"],
|
|
102
103
|
core: true,
|
|
103
104
|
},
|
|
104
105
|
{
|
|
@@ -197,7 +198,7 @@ export const TEMPLATES: TemplateMeta[] = [
|
|
|
197
198
|
devPort: 8099,
|
|
198
199
|
prodUrl: "https://design.agent-native.com",
|
|
199
200
|
defaultMode: "prod",
|
|
200
|
-
requiredPackages: ["pinpoint", "embedding"],
|
|
201
|
+
requiredPackages: ["pinpoint", "embedding", "creative-context"],
|
|
201
202
|
core: true,
|
|
202
203
|
},
|
|
203
204
|
{
|
|
@@ -211,7 +212,7 @@ export const TEMPLATES: TemplateMeta[] = [
|
|
|
211
212
|
prodUrl: "https://assets.agent-native.com",
|
|
212
213
|
defaultMode: "prod",
|
|
213
214
|
defaultAgent: true,
|
|
214
|
-
requiredPackages: ["embedding"],
|
|
215
|
+
requiredPackages: ["embedding", "creative-context"],
|
|
215
216
|
core: true,
|
|
216
217
|
},
|
|
217
218
|
{
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Button } from "@agent-native/toolkit/ui/button";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
|
|
4
|
+
import { sendToAgentChat } from "./agent-chat.js";
|
|
5
|
+
import {
|
|
6
|
+
Popover,
|
|
7
|
+
PopoverContent,
|
|
8
|
+
PopoverTrigger,
|
|
9
|
+
} from "./components/ui/popover.js";
|
|
10
|
+
import { PromptComposer } from "./composer/PromptComposer.js";
|
|
11
|
+
import { useT } from "./i18n.js";
|
|
12
|
+
|
|
13
|
+
export interface AgentAskPopoverProps {
|
|
14
|
+
prompt: string;
|
|
15
|
+
title?: string;
|
|
16
|
+
label?: string;
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
context?: string;
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** A low-emphasis entry point for asking the agent without losing the current surface. */
|
|
23
|
+
export function AgentAskPopover({
|
|
24
|
+
prompt,
|
|
25
|
+
title,
|
|
26
|
+
label,
|
|
27
|
+
placeholder,
|
|
28
|
+
context,
|
|
29
|
+
className,
|
|
30
|
+
}: AgentAskPopoverProps) {
|
|
31
|
+
const t = useT();
|
|
32
|
+
const [open, setOpen] = useState(false);
|
|
33
|
+
const handleSubmit = useCallback(
|
|
34
|
+
(text: string) => {
|
|
35
|
+
const trimmed = text.trim();
|
|
36
|
+
if (!trimmed) return;
|
|
37
|
+
sendToAgentChat({
|
|
38
|
+
message: trimmed,
|
|
39
|
+
context,
|
|
40
|
+
submit: true,
|
|
41
|
+
newTab: true,
|
|
42
|
+
});
|
|
43
|
+
setOpen(false);
|
|
44
|
+
},
|
|
45
|
+
[context],
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<Popover open={open} onOpenChange={setOpen}>
|
|
50
|
+
<PopoverTrigger asChild>
|
|
51
|
+
<Button
|
|
52
|
+
type="button"
|
|
53
|
+
variant="outline"
|
|
54
|
+
size="sm"
|
|
55
|
+
className={className ?? "cursor-pointer"}
|
|
56
|
+
>
|
|
57
|
+
{label ?? t("agentPanel.askAgent", { defaultValue: "Ask the agent" })}
|
|
58
|
+
</Button>
|
|
59
|
+
</PopoverTrigger>
|
|
60
|
+
<PopoverContent
|
|
61
|
+
align="end"
|
|
62
|
+
sideOffset={8}
|
|
63
|
+
collisionPadding={12}
|
|
64
|
+
className="z-[260] w-[calc(100vw-32px)] max-w-[420px] p-3"
|
|
65
|
+
>
|
|
66
|
+
<p className="px-1 pb-2 text-sm font-semibold text-foreground">
|
|
67
|
+
{title ??
|
|
68
|
+
t("agentPanel.askAgentTitle", { defaultValue: "Ask the agent" })}
|
|
69
|
+
</p>
|
|
70
|
+
<PromptComposer
|
|
71
|
+
autoFocus
|
|
72
|
+
attachmentsEnabled={false}
|
|
73
|
+
initialText={prompt}
|
|
74
|
+
initialTextKey={prompt}
|
|
75
|
+
layoutVariant="compact"
|
|
76
|
+
placeholder={
|
|
77
|
+
placeholder ??
|
|
78
|
+
t("agentPanel.askAgentPlaceholder", {
|
|
79
|
+
defaultValue: "Tell the agent what you want to do…",
|
|
80
|
+
})
|
|
81
|
+
}
|
|
82
|
+
showModelSelector={false}
|
|
83
|
+
voiceEnabled={false}
|
|
84
|
+
onSubmit={handleSubmit}
|
|
85
|
+
/>
|
|
86
|
+
</PopoverContent>
|
|
87
|
+
</Popover>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
@@ -31,6 +31,8 @@ export function AgentChatHome({
|
|
|
31
31
|
surfaceClassName,
|
|
32
32
|
chatViewTransition = true,
|
|
33
33
|
defaultMode = "chat",
|
|
34
|
+
showHeader = false,
|
|
35
|
+
showTabBar = false,
|
|
34
36
|
...props
|
|
35
37
|
}: AgentChatHomeProps) {
|
|
36
38
|
return (
|
|
@@ -50,6 +52,8 @@ export function AgentChatHome({
|
|
|
50
52
|
{...props}
|
|
51
53
|
mode="page"
|
|
52
54
|
defaultMode={defaultMode}
|
|
55
|
+
showHeader={showHeader}
|
|
56
|
+
showTabBar={showTabBar}
|
|
53
57
|
chatViewTransition={chatViewTransition}
|
|
54
58
|
className={cn(
|
|
55
59
|
"min-h-0 flex-1 rounded-lg border border-border shadow-sm",
|