@agent-native/core 0.121.2 → 0.122.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/README.md +4 -12
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +148 -0
- package/corpus/core/docs/content/actions.mdx +2 -2
- package/corpus/core/docs/content/agent-surfaces.mdx +1 -1
- package/corpus/core/docs/content/authentication.mdx +2 -0
- package/corpus/core/docs/content/deployment.mdx +36 -0
- package/corpus/core/docs/content/http-api.mdx +266 -0
- package/corpus/core/docs/content/syncing-template-changes.mdx +159 -0
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/a2a/activity.ts +38 -27
- package/corpus/core/src/a2a/client.ts +57 -4
- package/corpus/core/src/agent/engine/builder-engine.ts +35 -4
- package/corpus/core/src/agent/run-manager.ts +20 -1
- package/corpus/core/src/agent/run-store.ts +4 -1
- package/corpus/core/src/agent/types.ts +28 -8
- package/corpus/core/src/chat-threads/store.ts +45 -0
- package/corpus/core/src/checkpoints/index.ts +2 -0
- package/corpus/core/src/checkpoints/route-match.ts +13 -0
- package/corpus/core/src/cli/create.ts +105 -17
- package/corpus/core/src/cli/index.ts +20 -0
- package/corpus/core/src/cli/template-baseline.ts +410 -0
- package/corpus/core/src/cli/template-sync.ts +1004 -0
- package/corpus/core/src/cli/templates-meta.ts +1 -0
- package/corpus/core/src/client/AssistantChat.tsx +38 -12
- package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +75 -10
- package/corpus/core/src/client/chat/message-components.tsx +127 -66
- package/corpus/core/src/client/chat/tool-call-display.tsx +29 -5
- package/corpus/core/src/client/error-format.ts +18 -0
- package/corpus/core/src/client/org/OrgSwitcher.tsx +30 -8
- package/corpus/core/src/client/org/TeamPage.tsx +7 -6
- package/corpus/core/src/client/settings/SettingsPanel.tsx +9 -9
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +12 -2
- package/corpus/core/src/client/sse-event-processor.ts +3 -0
- package/corpus/core/src/data-widgets/index.ts +41 -0
- package/corpus/core/src/deploy/build.ts +11 -9
- package/corpus/core/src/extensions/url-safety.ts +67 -4
- package/corpus/core/src/integrations/webhook-handler.ts +63 -9
- package/corpus/core/src/org/auto-join-domain.ts +4 -3
- package/corpus/core/src/org/context.ts +108 -39
- package/corpus/core/src/org/index.ts +5 -0
- package/corpus/core/src/org/service-identity.ts +60 -0
- package/corpus/core/src/provider-api/index.ts +22 -1
- package/corpus/core/src/scripts/docs/search.ts +12 -1
- package/corpus/core/src/server/agent-chat/context-tools.ts +9 -4
- package/corpus/core/src/server/agent-chat/framework-prompts.ts +38 -66
- package/corpus/core/src/server/agent-chat-plugin.ts +17 -10
- package/corpus/core/src/server/agents-bundle.ts +84 -5
- package/corpus/core/src/server/auth.ts +4 -3
- package/corpus/core/src/server/builder-browser.ts +47 -19
- package/corpus/core/src/server/core-routes-plugin.ts +2 -2
- package/corpus/core/src/server/credential-provider.ts +209 -68
- package/corpus/core/src/server/index.ts +3 -0
- package/corpus/core/src/server/prompts/framework-core-compact.ts +6 -13
- package/corpus/core/src/server/prompts/framework-core.ts +9 -21
- package/corpus/core/src/server/prompts/index.ts +0 -1
- package/corpus/core/src/server/prompts/shared-rules.ts +19 -11
- package/corpus/core/src/server/ssr-handler.ts +13 -2
- package/corpus/core/src/settings/user-settings.ts +13 -1
- package/corpus/core/src/shared/cache-control.ts +141 -0
- package/corpus/core/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/core/src/templates/chat/_gitignore +1 -0
- package/corpus/core/src/templates/chat/app/components/layout/Sidebar.tsx +0 -7
- package/corpus/core/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/core/src/templates/default/app/root.tsx +1 -1
- package/corpus/core/src/templates/default/public/manifest.json +2 -2
- package/corpus/core/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/core/src/templates/workspace-core/.agents/skills/performance/SKILL.md +19 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/core/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +1 -0
- package/corpus/core/src/vite/agents-bundle-plugin.ts +7 -6
- package/corpus/core/src/vite/client.ts +69 -3
- package/corpus/templates/analytics/.agents/skills/adhoc-analysis/SKILL.md +4 -5
- package/corpus/templates/analytics/.agents/skills/admin-surfaces/SKILL.md +55 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +10 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/references/template-catalog-and-demo.md +62 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-ops/SKILL.md +85 -0
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +27 -2
- package/corpus/templates/analytics/.agents/skills/data-querying/references/inline-chart-embeds.md +139 -0
- package/corpus/templates/analytics/.agents/skills/monitoring/SKILL.md +77 -0
- package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/analytics/AGENTS.md +91 -563
- package/corpus/templates/analytics/_gitignore +1 -0
- package/corpus/templates/analytics/actions/bigquery.ts +12 -4
- package/corpus/templates/analytics/actions/generate-chart.ts +5 -5
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +30 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -23
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +3 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
- package/corpus/templates/analytics/app/routes/_index.tsx +1 -1
- package/corpus/templates/analytics/changelog/2026-07-24-analytics-finds-saved-dashboards-and-queries-far-more-reliab.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-24-notion-access-errors-now-explain-that-a-page-needs-sharing-w.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/analytics/package.json +1 -1
- package/corpus/templates/analytics/public/manifest.json +1 -1
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +7 -0
- package/corpus/templates/analytics/server/lib/analytics-query-catalog.ts +191 -30
- package/corpus/templates/analytics/server/lib/bigquery.ts +11 -1
- package/corpus/templates/analytics/server/lib/notion.ts +15 -4
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +10 -0
- package/corpus/templates/analytics/server/plugins/auth.ts +1 -1
- package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +0 -2
- package/corpus/templates/assets/app/routes/_index.tsx +1 -1
- package/corpus/templates/assets/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/assets/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/assets/server/plugins/auth.ts +1 -1
- package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/brain/_gitignore +1 -0
- package/corpus/templates/brain/app/lib/brain.ts +0 -7
- package/corpus/templates/brain/app/routes/_index.tsx +1 -2
- package/corpus/templates/brain/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/brain/package.json +1 -1
- package/corpus/templates/brain/public/manifest.json +1 -1
- package/corpus/templates/brain/server/plugins/auth.ts +1 -1
- package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/calendar/_gitignore +1 -0
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +0 -6
- package/corpus/templates/calendar/app/routes/_app._index.tsx +1 -1
- package/corpus/templates/calendar/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/calendar/package.json +1 -1
- package/corpus/templates/calendar/public/manifest.json +1 -1
- package/corpus/templates/calendar/server/plugins/auth.ts +1 -1
- package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/chat/_gitignore +1 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +0 -7
- package/corpus/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +34 -0
- package/corpus/templates/clips/AGENTS.md +5 -4
- package/corpus/templates/clips/_gitignore +1 -0
- package/corpus/templates/clips/actions/cleanup-transcript.ts +5 -0
- package/corpus/templates/clips/actions/get-recording-insights.ts +44 -8
- package/corpus/templates/clips/actions/get-recording-player-data.ts +39 -70
- package/corpus/templates/clips/actions/import-loom-recording.ts +53 -98
- package/corpus/templates/clips/actions/lib/loom-import-job.ts +260 -0
- package/corpus/templates/clips/actions/list-clip-views.ts +2 -4
- package/corpus/templates/clips/actions/list-recordings.ts +69 -19
- package/corpus/templates/clips/actions/list-viewers.ts +5 -2
- package/corpus/templates/clips/actions/regenerate-summary.ts +5 -1
- package/corpus/templates/clips/actions/request-transcript.ts +28 -1
- package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +21 -1
- package/corpus/templates/clips/app/components/library/library-layout.tsx +0 -7
- package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +14 -1
- package/corpus/templates/clips/app/components/player/insights-panel.tsx +8 -20
- package/corpus/templates/clips/app/components/player/recording-views-badge.tsx +335 -0
- package/corpus/templates/clips/app/components/player/video-player.tsx +13 -8
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +13 -2
- package/corpus/templates/clips/app/lib/capture-permissions.ts +110 -0
- package/corpus/templates/clips/app/lib/recording-link.ts +32 -0
- package/corpus/templates/clips/app/routes/_app.library._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +27 -0
- package/corpus/templates/clips/app/routes/_index.tsx +1 -1
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +52 -15
- package/corpus/templates/clips/app/routes/record.tsx +82 -31
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +42 -31
- package/corpus/templates/clips/changelog/2026-07-24-clip-pages-now-show-a-view-count-with-viewer-avatars-next-to.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-clip-summaries-read-like-a-description-you-d-write-yourself-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-clip-view-counts-now-separate-human-views-from-agent-views-s.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-clips-actions-can-now-be-called-by-org-service-tokens-so-ext.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-clips-no-longer-briefly-shows-a-dock-icon-while-launching.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-fixed-owner-and-editor-share-links-redirecting-to-the-record.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-meeting-and-note-recordings-now-start-as-a-compact-pill-on-t.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-new-clips-now-copy-a-shareable-link-instead-of-the-owner-onl.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-opening-a-share-link-as-the-clip-s-owner-now-goes-straight-t.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-permissions-and-rewind-controls-now-use-compact-consistent-h.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-quitting-the-desktop-app-no-longer-shows-a-false-macos-crash.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-screen-recording-permission-errors-now-name-the-exact-app-to.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-the-desktop-app-now-copies-a-new-clip-s-share-link-to-your-c.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-the-recording-toolbar-now-stays-above-other-apps-including-o.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-transcript-captions-now-use-real-speech-timings-instead-of-a.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-24-video-playback-no-longer-stutters-and-replays-the-last-momen.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/background.ts +17 -1
- package/corpus/templates/clips/desktop/package.json +2 -0
- package/corpus/templates/clips/desktop/src/app.tsx +89 -0
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +9 -3
- package/corpus/templates/clips/desktop/src/lib/audio-meter.ts +51 -0
- package/corpus/templates/clips/desktop/src/lib/native-notification.ts +44 -0
- package/corpus/templates/clips/desktop/src/lib/recording-link.ts +67 -0
- package/corpus/templates/clips/desktop/src/overlays/live-audio-bars.tsx +35 -35
- package/corpus/templates/clips/desktop/src/overlays/live-transcript.tsx +3 -2
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +47 -46
- package/corpus/templates/clips/desktop/src/styles.css +127 -78
- package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +7 -0
- package/corpus/templates/clips/desktop/src-tauri/Info.plist +6 -0
- package/corpus/templates/clips/desktop/src-tauri/capabilities/default.json +1 -0
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +7 -3
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +4 -1
- package/corpus/templates/clips/desktop/src-tauri/src/main.rs +8 -0
- package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +21 -10
- package/corpus/templates/clips/desktop/src-tauri/src/util.rs +40 -0
- package/corpus/templates/clips/server/db/schema.ts +27 -0
- package/corpus/templates/clips/server/lib/agent-views.ts +145 -0
- package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +2 -1
- package/corpus/templates/clips/server/lib/public-agent-context.ts +7 -0
- package/corpus/templates/clips/server/lib/recording-share-grant.ts +79 -0
- package/corpus/templates/clips/server/lib/recordings.ts +51 -3
- package/corpus/templates/clips/server/plugins/auth.ts +1 -1
- package/corpus/templates/clips/server/plugins/db.ts +31 -0
- package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +56 -3
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +49 -17
- package/corpus/templates/clips/shared/recording-link.ts +43 -0
- package/corpus/templates/clips/shared/share-attribution.ts +4 -0
- package/corpus/templates/clips/shared/share-dashboard-redirect.ts +42 -0
- package/corpus/templates/clips/shared/view-analytics.ts +26 -0
- package/corpus/templates/content/.agents/skills/content/SKILL.md +5 -0
- package/corpus/templates/content/.agents/skills/content/references/local-file-mode.md +135 -0
- package/corpus/templates/content/.agents/skills/document-editing/SKILL.md +12 -0
- package/corpus/templates/content/.agents/skills/document-editing/references/databases.md +238 -0
- package/corpus/templates/content/.agents/skills/document-editing/references/document-behavior.md +91 -0
- package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/content/AGENTS.md +62 -583
- package/corpus/templates/content/_gitignore +1 -0
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -39
- package/corpus/templates/content/app/routes/_app._index.tsx +1 -2
- package/corpus/templates/content/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/content/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/content/package.json +1 -1
- package/corpus/templates/content/public/manifest.json +1 -1
- package/corpus/templates/content/server/plugins/auth.ts +1 -1
- package/corpus/templates/design/.agents/skills/creative-context/SKILL.md +11 -0
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +50 -8
- package/corpus/templates/design/.agents/skills/design-generation/references/code-layers.md +81 -0
- package/corpus/templates/design/.agents/skills/design-generation/references/code-workspace.md +42 -0
- package/corpus/templates/design/.agents/skills/design-generation/references/editor-extensions.md +34 -0
- package/corpus/templates/design/.agents/skills/responsive-breakpoints/SKILL.md +4 -1
- package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +17 -0
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +8196 -0
- package/corpus/templates/design/.generated/bridge/embedded-wheel.generated.ts +265 -0
- package/corpus/templates/design/.generated/bridge/hit-test.generated.ts +642 -0
- package/corpus/templates/design/.generated/bridge/motion-preview.generated.ts +571 -0
- package/corpus/templates/design/.generated/bridge/nav.generated.ts +91 -0
- package/corpus/templates/design/.generated/bridge/sample.generated.ts +23 -0
- package/corpus/templates/design/.generated/bridge/shader-fill-preview.generated.ts +263 -0
- package/corpus/templates/design/.generated/bridge/shader-runtime.generated.ts +518 -0
- package/corpus/templates/design/.generated/bridge/tweak.generated.ts +20 -0
- package/corpus/templates/design/.generated/bridge/zoom.generated.ts +32 -0
- package/corpus/templates/design/AGENTS.md +88 -503
- package/corpus/templates/design/_gitignore +1 -0
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +0 -2
- package/corpus/templates/design/app/routes/_index.tsx +1 -1
- package/corpus/templates/design/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/design/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/design/server/plugins/auth.ts +1 -1
- package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/dispatch/_gitignore +1 -0
- package/corpus/templates/dispatch/app/dispatch-extensions.tsx +1 -10
- package/corpus/templates/dispatch/app/routes/overview.tsx +1 -1
- package/corpus/templates/dispatch/changelog/2026-07-24-signing-in-now-puts-you-in-your-companys-workspace.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/dispatch/package.json +1 -1
- package/corpus/templates/dispatch/public/manifest.json +1 -1
- package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/forms/_gitignore +1 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +0 -35
- package/corpus/templates/forms/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/forms/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/forms/package.json +1 -1
- package/corpus/templates/forms/public/manifest.json +1 -1
- package/corpus/templates/forms/server/lib/public-form-ssr.ts +2 -2
- package/corpus/templates/forms/server/plugins/auth.ts +1 -1
- package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/macros/_gitignore +1 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +0 -2
- package/corpus/templates/macros/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/macros/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/macros/package.json +1 -1
- package/corpus/templates/macros/server/plugins/auth.ts +2 -2
- package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/mail/_gitignore +1 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +0 -39
- package/corpus/templates/mail/app/routes/$view.$threadId.tsx +1 -1
- package/corpus/templates/mail/app/routes/$view.tsx +1 -1
- package/corpus/templates/mail/app/routes/_index.tsx +1 -1
- package/corpus/templates/mail/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/mail/package.json +1 -1
- package/corpus/templates/mail/public/manifest.json +1 -1
- package/corpus/templates/mail/server/plugins/auth.ts +1 -1
- package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/plan/_gitignore +1 -0
- package/corpus/templates/plan/agent-native.app-skill.json +1 -1
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +4 -9
- package/corpus/templates/plan/app/lib/app-config.ts +1 -1
- package/corpus/templates/plan/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/plan/package.json +1 -1
- package/corpus/templates/plan/public/manifest.json +1 -1
- package/corpus/templates/plan/server/plugins/auth.ts +1 -1
- package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/slides/_gitignore +1 -0
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +0 -2
- package/corpus/templates/slides/app/routes/_index.tsx +1 -1
- package/corpus/templates/slides/changelog/2026-07-25-app-branding-now-uses-the-product-name-without-the-agent-nat.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/corpus/templates/slides/package.json +1 -1
- package/corpus/templates/slides/public/manifest.json +1 -1
- package/corpus/templates/slides/server/plugins/auth.ts +1 -1
- package/corpus/templates/slides/server/plugins/db.ts +4 -0
- package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/corpus/templates/tasks/AGENTS.md +1 -1
- package/corpus/templates/tasks/_gitignore +1 -0
- package/dist/a2a/activity.d.ts +4 -1
- package/dist/a2a/activity.d.ts.map +1 -1
- package/dist/a2a/activity.js +27 -16
- package/dist/a2a/activity.js.map +1 -1
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +58 -4
- package/dist/a2a/client.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts +1 -0
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +31 -4
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +18 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +1 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +2 -1
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/types.d.ts +12 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +21 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/chat-threads/store.d.ts +10 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +41 -0
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/checkpoints/index.d.ts +1 -0
- package/dist/checkpoints/index.d.ts.map +1 -1
- package/dist/checkpoints/index.js +1 -0
- package/dist/checkpoints/index.js.map +1 -1
- package/dist/checkpoints/route-match.d.ts +8 -0
- package/dist/checkpoints/route-match.d.ts.map +1 -0
- package/dist/checkpoints/route-match.js +13 -0
- package/dist/checkpoints/route-match.js.map +1 -0
- package/dist/cli/create.d.ts +35 -4
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +69 -19
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +19 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/template-baseline.d.ts +54 -0
- package/dist/cli/template-baseline.d.ts.map +1 -0
- package/dist/cli/template-baseline.js +334 -0
- package/dist/cli/template-baseline.js.map +1 -0
- package/dist/cli/template-sync.d.ts +57 -0
- package/dist/cli/template-sync.d.ts.map +1 -0
- package/dist/cli/template-sync.js +787 -0
- package/dist/cli/template-sync.js.map +1 -0
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +1 -0
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +2 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +38 -10
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/NewWorkspaceAppFlow.d.ts.map +1 -1
- package/dist/client/NewWorkspaceAppFlow.js +32 -2
- package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +20 -0
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +81 -46
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +14 -6
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/error-format.d.ts.map +1 -1
- package/dist/client/error-format.js +13 -0
- package/dist/client/error-format.js.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts +8 -1
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.js +3 -2
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/TeamPage.d.ts.map +1 -1
- package/dist/client/org/TeamPage.js +1 -1
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/settings/SettingsPanel.js +9 -9
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js +7 -4
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +3 -0
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/data-widgets/index.d.ts +3 -0
- package/dist/data-widgets/index.d.ts.map +1 -1
- package/dist/data-widgets/index.js +33 -0
- package/dist/data-widgets/index.js.map +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +11 -7
- package/dist/deploy/build.js.map +1 -1
- package/dist/eject/provider-api-definitions.d.ts +1 -0
- package/dist/eject/provider-api-definitions.d.ts.map +1 -1
- package/dist/extensions/url-safety.d.ts +9 -16
- package/dist/extensions/url-safety.d.ts.map +1 -1
- package/dist/extensions/url-safety.js +48 -4
- package/dist/extensions/url-safety.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +46 -9
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +3 -3
- package/dist/org/auto-join-domain.d.ts +3 -2
- package/dist/org/auto-join-domain.d.ts.map +1 -1
- package/dist/org/auto-join-domain.js +1 -1
- package/dist/org/auto-join-domain.js.map +1 -1
- package/dist/org/context.d.ts.map +1 -1
- package/dist/org/context.js +84 -28
- package/dist/org/context.js.map +1 -1
- package/dist/org/index.d.ts +1 -0
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +1 -0
- package/dist/org/index.js.map +1 -1
- package/dist/org/service-identity.d.ts +43 -0
- package/dist/org/service-identity.d.ts.map +1 -0
- package/dist/org/service-identity.js +34 -0
- package/dist/org/service-identity.js.map +1 -0
- package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
- package/dist/provider-api/actions/provider-api.d.ts +13 -11
- package/dist/provider-api/actions/provider-api.d.ts.map +1 -1
- package/dist/provider-api/index.d.ts +4 -0
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +17 -1
- package/dist/provider-api/index.js.map +1 -1
- package/dist/scripts/docs/search.d.ts.map +1 -1
- package/dist/scripts/docs/search.js +12 -1
- package/dist/scripts/docs/search.js.map +1 -1
- package/dist/server/agent-chat/context-tools.d.ts.map +1 -1
- package/dist/server/agent-chat/context-tools.js +3 -3
- package/dist/server/agent-chat/context-tools.js.map +1 -1
- package/dist/server/agent-chat/framework-prompts.d.ts +8 -3
- package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -1
- package/dist/server/agent-chat/framework-prompts.js +33 -62
- package/dist/server/agent-chat/framework-prompts.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +16 -10
- 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/agents-bundle.d.ts +18 -0
- package/dist/server/agents-bundle.d.ts.map +1 -1
- package/dist/server/agents-bundle.js +70 -4
- package/dist/server/agents-bundle.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +4 -3
- package/dist/server/auth.js.map +1 -1
- package/dist/server/builder-browser.d.ts.map +1 -1
- package/dist/server/builder-browser.js +43 -19
- package/dist/server/builder-browser.js.map +1 -1
- package/dist/server/core-routes-plugin.js +2 -2
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/credential-provider.d.ts +38 -2
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +142 -64
- package/dist/server/credential-provider.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/prompts/framework-core-compact.d.ts +1 -1
- package/dist/server/prompts/framework-core-compact.d.ts.map +1 -1
- package/dist/server/prompts/framework-core-compact.js +7 -13
- package/dist/server/prompts/framework-core-compact.js.map +1 -1
- package/dist/server/prompts/framework-core.d.ts +1 -1
- package/dist/server/prompts/framework-core.d.ts.map +1 -1
- package/dist/server/prompts/framework-core.js +10 -21
- package/dist/server/prompts/framework-core.js.map +1 -1
- package/dist/server/prompts/index.d.ts +1 -1
- package/dist/server/prompts/index.d.ts.map +1 -1
- package/dist/server/prompts/index.js +1 -1
- package/dist/server/prompts/index.js.map +1 -1
- package/dist/server/prompts/shared-rules.d.ts +16 -10
- package/dist/server/prompts/shared-rules.d.ts.map +1 -1
- package/dist/server/prompts/shared-rules.js +19 -10
- package/dist/server/prompts/shared-rules.js.map +1 -1
- package/dist/server/ssr-handler.d.ts +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +10 -3
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/settings/user-settings.d.ts.map +1 -1
- package/dist/settings/user-settings.js +13 -1
- package/dist/settings/user-settings.js.map +1 -1
- package/dist/shared/cache-control.d.ts +52 -0
- package/dist/shared/cache-control.d.ts.map +1 -1
- package/dist/shared/cache-control.js +107 -0
- package/dist/shared/cache-control.js.map +1 -1
- package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/dist/templates/chat/_gitignore +1 -0
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +0 -7
- package/dist/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/dist/templates/default/app/root.tsx +1 -1
- package/dist/templates/default/public/manifest.json +2 -2
- package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +19 -0
- package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +1 -0
- package/dist/vite/agents-bundle-plugin.d.ts.map +1 -1
- package/dist/vite/agents-bundle-plugin.js +8 -7
- package/dist/vite/agents-bundle-plugin.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +66 -1
- package/dist/vite/client.js.map +1 -1
- package/docs/content/actions.mdx +2 -2
- package/docs/content/agent-surfaces.mdx +1 -1
- package/docs/content/authentication.mdx +2 -0
- package/docs/content/deployment.mdx +36 -0
- package/docs/content/http-api.mdx +266 -0
- package/docs/content/syncing-template-changes.mdx +159 -0
- package/package.json +4 -3
- package/src/a2a/activity.ts +38 -27
- package/src/a2a/client.ts +57 -4
- package/src/agent/engine/builder-engine.ts +35 -4
- package/src/agent/run-manager.ts +20 -1
- package/src/agent/run-store.ts +4 -1
- package/src/agent/types.ts +28 -8
- package/src/chat-threads/store.ts +45 -0
- package/src/checkpoints/index.ts +2 -0
- package/src/checkpoints/route-match.ts +13 -0
- package/src/cli/create.ts +105 -17
- package/src/cli/index.ts +20 -0
- package/src/cli/template-baseline.ts +410 -0
- package/src/cli/template-sync.ts +1004 -0
- package/src/cli/templates-meta.ts +1 -0
- package/src/client/AssistantChat.tsx +38 -12
- package/src/client/NewWorkspaceAppFlow.tsx +75 -10
- package/src/client/chat/message-components.tsx +127 -66
- package/src/client/chat/tool-call-display.tsx +29 -5
- package/src/client/error-format.ts +18 -0
- package/src/client/org/OrgSwitcher.tsx +30 -8
- package/src/client/org/TeamPage.tsx +7 -6
- package/src/client/settings/SettingsPanel.tsx +9 -9
- package/src/client/settings/SettingsTabsPage.tsx +12 -2
- package/src/client/sse-event-processor.ts +3 -0
- package/src/data-widgets/index.ts +41 -0
- package/src/deploy/build.ts +11 -9
- package/src/extensions/url-safety.ts +67 -4
- package/src/integrations/webhook-handler.ts +63 -9
- package/src/org/auto-join-domain.ts +4 -3
- package/src/org/context.ts +108 -39
- package/src/org/index.ts +5 -0
- package/src/org/service-identity.ts +60 -0
- package/src/provider-api/index.ts +22 -1
- package/src/scripts/docs/search.ts +12 -1
- package/src/server/__snapshots__/agent-chat-plugin.surface.spec.ts.snap +25 -36
- package/src/server/agent-chat/context-tools.ts +9 -4
- package/src/server/agent-chat/framework-prompts.ts +38 -66
- package/src/server/agent-chat-plugin.ts +17 -10
- package/src/server/agents-bundle.ts +84 -5
- package/src/server/auth.ts +4 -3
- package/src/server/builder-browser.ts +47 -19
- package/src/server/core-routes-plugin.ts +2 -2
- package/src/server/credential-provider.ts +209 -68
- package/src/server/index.ts +3 -0
- package/src/server/prompts/framework-core-compact.ts +6 -13
- package/src/server/prompts/framework-core.ts +9 -21
- package/src/server/prompts/index.ts +0 -1
- package/src/server/prompts/shared-rules.ts +19 -11
- package/src/server/ssr-handler.ts +13 -2
- package/src/settings/user-settings.ts +13 -1
- package/src/shared/cache-control.ts +141 -0
- package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/src/templates/chat/_gitignore +1 -0
- package/src/templates/chat/app/components/layout/Sidebar.tsx +0 -7
- package/src/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
- package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/src/templates/default/app/root.tsx +1 -1
- package/src/templates/default/public/manifest.json +2 -2
- package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +19 -0
- package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
- package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +1 -0
- package/src/vite/agents-bundle-plugin.ts +7 -6
- package/src/vite/client.ts +69 -3
|
@@ -56,7 +56,29 @@ install → refresh scaffold skills → verify, then fix **app** code only.
|
|
|
56
56
|
- Runs `skills update scaffold --project`
|
|
57
57
|
- Runs `typecheck` when the project has that script
|
|
58
58
|
|
|
59
|
-
3. **
|
|
59
|
+
3. **Pull upstream template changes (optional, separate from the bump)**
|
|
60
|
+
|
|
61
|
+
`agent-native upgrade` moves package versions. It never touches files that
|
|
62
|
+
were copied out of a template at scaffold time, so template fixes and
|
|
63
|
+
improvements do not arrive with a bump.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
agent-native template status # recorded ref vs latest, drift counts
|
|
67
|
+
agent-native template diff # what upstream changed, read-only
|
|
68
|
+
agent-native template sync # 3-way merge it into the app
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`sync` defaults to the ref matching the installed `@agent-native/core`, so
|
|
72
|
+
run it after `upgrade`. It merges per file against a pristine baseline
|
|
73
|
+
stored in `refs/agent-native/template-baseline/<app-path>`; files upstream
|
|
74
|
+
did not touch are left alone, and real collisions get conflict markers.
|
|
75
|
+
After resolving markers, run `agent-native template accept` — the baseline
|
|
76
|
+
deliberately does not advance past an unresolved merge.
|
|
77
|
+
|
|
78
|
+
Apps scaffolded before provenance existed have no baseline. Create one
|
|
79
|
+
with `agent-native template baseline` before the first sync.
|
|
80
|
+
|
|
81
|
+
4. **If upgrade or typecheck fails**
|
|
60
82
|
|
|
61
83
|
- Read the concrete error
|
|
62
84
|
- Fix **app** source, actions, config, or env — not framework packages
|
|
@@ -68,7 +90,7 @@ install → refresh scaffold skills → verify, then fix **app** code only.
|
|
|
68
90
|
copied component; do not use that path to reproduce framework runtime
|
|
69
91
|
behavior or hide version skew.
|
|
70
92
|
|
|
71
|
-
|
|
93
|
+
5. **Dry-run / partial runs**
|
|
72
94
|
|
|
73
95
|
```bash
|
|
74
96
|
agent-native upgrade --dry-run
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"id": "plans",
|
|
4
|
-
"displayName": "
|
|
4
|
+
"displayName": "Plan",
|
|
5
5
|
"description": "Generate and review coding-agent plans as structured visual documents with diagrams, wireframes, prototypes, annotations, share links, feedback, and HTML export.",
|
|
6
6
|
"hosted": {
|
|
7
7
|
"url": "https://plan.agent-native.com",
|
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
type ChatHistoryItem,
|
|
21
21
|
} from "@agent-native/toolkit/chat-history";
|
|
22
22
|
import {
|
|
23
|
-
IconHierarchy2,
|
|
24
23
|
IconClipboardCheck,
|
|
25
24
|
IconEdit,
|
|
26
25
|
IconLayoutSidebarLeftCollapse,
|
|
@@ -57,19 +56,16 @@ const PLAN_CHAT_STORAGE_KEY = "plans";
|
|
|
57
56
|
|
|
58
57
|
const PLAN_BRANDING_CODE_CONTEXT = [
|
|
59
58
|
"The user is using the Plan app branding customization popover.",
|
|
60
|
-
"Make source-code changes for
|
|
59
|
+
"Make source-code changes for Plan branding in templates/plan.",
|
|
61
60
|
"Inspect the current brand surfaces first: app/lib/app-config.ts, app/components/layout/Sidebar.tsx, app/root.tsx metadata/icons, public brand assets, and app/global.css theme tokens.",
|
|
62
61
|
"Keep runtime plan data, stored plans, recaps, comments, and generated plan content unchanged unless the user explicitly asks for those data changes.",
|
|
63
62
|
"Use existing Plan styling, shadcn primitives, Tabler icons, and repo patterns. Keep changes tightly scoped.",
|
|
64
63
|
].join("\n");
|
|
65
64
|
|
|
66
65
|
function buildBrandingCustomizationMessage(request: string) {
|
|
67
|
-
return [
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
"Request:",
|
|
71
|
-
request,
|
|
72
|
-
].join("\n");
|
|
66
|
+
return ["Customize the Plan app branding.", "", "Request:", request].join(
|
|
67
|
+
"\n",
|
|
68
|
+
);
|
|
73
69
|
}
|
|
74
70
|
|
|
75
71
|
const navItems = [
|
|
@@ -78,7 +74,6 @@ const navItems = [
|
|
|
78
74
|
];
|
|
79
75
|
|
|
80
76
|
const bottomNavItems = [
|
|
81
|
-
{ icon: IconHierarchy2, labelKey: "settings.agentTitle", href: "/agent" },
|
|
82
77
|
{ icon: IconSettings, labelKey: "navigation.settings", href: "/settings" },
|
|
83
78
|
];
|
|
84
79
|
|
|
@@ -56,7 +56,29 @@ install → refresh scaffold skills → verify, then fix **app** code only.
|
|
|
56
56
|
- Runs `skills update scaffold --project`
|
|
57
57
|
- Runs `typecheck` when the project has that script
|
|
58
58
|
|
|
59
|
-
3. **
|
|
59
|
+
3. **Pull upstream template changes (optional, separate from the bump)**
|
|
60
|
+
|
|
61
|
+
`agent-native upgrade` moves package versions. It never touches files that
|
|
62
|
+
were copied out of a template at scaffold time, so template fixes and
|
|
63
|
+
improvements do not arrive with a bump.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
agent-native template status # recorded ref vs latest, drift counts
|
|
67
|
+
agent-native template diff # what upstream changed, read-only
|
|
68
|
+
agent-native template sync # 3-way merge it into the app
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`sync` defaults to the ref matching the installed `@agent-native/core`, so
|
|
72
|
+
run it after `upgrade`. It merges per file against a pristine baseline
|
|
73
|
+
stored in `refs/agent-native/template-baseline/<app-path>`; files upstream
|
|
74
|
+
did not touch are left alone, and real collisions get conflict markers.
|
|
75
|
+
After resolving markers, run `agent-native template accept` — the baseline
|
|
76
|
+
deliberately does not advance past an unresolved merge.
|
|
77
|
+
|
|
78
|
+
Apps scaffolded before provenance existed have no baseline. Create one
|
|
79
|
+
with `agent-native template baseline` before the first sync.
|
|
80
|
+
|
|
81
|
+
4. **If upgrade or typecheck fails**
|
|
60
82
|
|
|
61
83
|
- Read the concrete error
|
|
62
84
|
- Fix **app** source, actions, config, or env — not framework packages
|
|
@@ -68,7 +90,7 @@ install → refresh scaffold skills → verify, then fix **app** code only.
|
|
|
68
90
|
copied component; do not use that path to reproduce framework runtime
|
|
69
91
|
behavior or hide version skew.
|
|
70
92
|
|
|
71
|
-
|
|
93
|
+
5. **Dry-run / partial runs**
|
|
72
94
|
|
|
73
95
|
```bash
|
|
74
96
|
agent-native upgrade --dry-run
|
|
@@ -7,7 +7,6 @@ import { FeedbackButton } from "@agent-native/core/client/ui";
|
|
|
7
7
|
import { SidebarFooterActions } from "@agent-native/toolkit/app-shell";
|
|
8
8
|
import {
|
|
9
9
|
IconStack2,
|
|
10
|
-
IconHierarchy2,
|
|
11
10
|
IconPalette,
|
|
12
11
|
IconSettings,
|
|
13
12
|
IconLayoutSidebarLeftCollapse,
|
|
@@ -33,7 +32,6 @@ const navItems = [
|
|
|
33
32
|
];
|
|
34
33
|
|
|
35
34
|
const bottomNavItems = [
|
|
36
|
-
{ icon: IconHierarchy2, labelKey: "settings.agentTitle", href: "/agent" },
|
|
37
35
|
{ icon: IconSettings, labelKey: "navigation.settings", href: "/settings" },
|
|
38
36
|
];
|
|
39
37
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Index from "@/pages/Index";
|
|
2
2
|
|
|
3
3
|
const SEO_TITLE =
|
|
4
|
-
"
|
|
4
|
+
"Slides - Open Source AI presentation builder and Google Slides alternative";
|
|
5
5
|
const SEO_DESCRIPTION =
|
|
6
6
|
"Open Source AI presentation builder for generating, editing, refining, and exporting React decks as Google Slides-ready presentations.";
|
|
7
7
|
|
|
@@ -2,7 +2,7 @@ import { createAuthPlugin } from "@agent-native/core/server";
|
|
|
2
2
|
|
|
3
3
|
export default createAuthPlugin({
|
|
4
4
|
marketing: {
|
|
5
|
-
appName: "
|
|
5
|
+
appName: "Slides",
|
|
6
6
|
tagline:
|
|
7
7
|
"Your AI agent builds, edits, and refines presentations alongside you.",
|
|
8
8
|
features: [
|
|
@@ -265,6 +265,10 @@ export default (nitroApp: any): void => {
|
|
|
265
265
|
setResponseHeader(event, "retry-after", "5");
|
|
266
266
|
return { error: "Slides database is temporarily unavailable" };
|
|
267
267
|
};
|
|
268
|
+
// The CLI action/agent runner invokes this plugin with a stand-in object to
|
|
269
|
+
// get migrations only, so there is no h3 app to gate — and no HTTP traffic to
|
|
270
|
+
// gate either. Registering unconditionally broke every `pnpm action` here.
|
|
271
|
+
if (!nitroApp?.h3) return;
|
|
268
272
|
const app = getH3App(nitroApp);
|
|
269
273
|
for (const path of ["/", "/p", "/share", "/api"]) {
|
|
270
274
|
app.use(path, waitForReady);
|
|
@@ -56,7 +56,29 @@ install → refresh scaffold skills → verify, then fix **app** code only.
|
|
|
56
56
|
- Runs `skills update scaffold --project`
|
|
57
57
|
- Runs `typecheck` when the project has that script
|
|
58
58
|
|
|
59
|
-
3. **
|
|
59
|
+
3. **Pull upstream template changes (optional, separate from the bump)**
|
|
60
|
+
|
|
61
|
+
`agent-native upgrade` moves package versions. It never touches files that
|
|
62
|
+
were copied out of a template at scaffold time, so template fixes and
|
|
63
|
+
improvements do not arrive with a bump.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
agent-native template status # recorded ref vs latest, drift counts
|
|
67
|
+
agent-native template diff # what upstream changed, read-only
|
|
68
|
+
agent-native template sync # 3-way merge it into the app
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`sync` defaults to the ref matching the installed `@agent-native/core`, so
|
|
72
|
+
run it after `upgrade`. It merges per file against a pristine baseline
|
|
73
|
+
stored in `refs/agent-native/template-baseline/<app-path>`; files upstream
|
|
74
|
+
did not touch are left alone, and real collisions get conflict markers.
|
|
75
|
+
After resolving markers, run `agent-native template accept` — the baseline
|
|
76
|
+
deliberately does not advance past an unresolved merge.
|
|
77
|
+
|
|
78
|
+
Apps scaffolded before provenance existed have no baseline. Create one
|
|
79
|
+
with `agent-native template baseline` before the first sync.
|
|
80
|
+
|
|
81
|
+
4. **If upgrade or typecheck fails**
|
|
60
82
|
|
|
61
83
|
- Read the concrete error
|
|
62
84
|
- Fix **app** source, actions, config, or env — not framework packages
|
|
@@ -68,7 +90,7 @@ install → refresh scaffold skills → verify, then fix **app** code only.
|
|
|
68
90
|
copied component; do not use that path to reproduce framework runtime
|
|
69
91
|
behavior or hide version skew.
|
|
70
92
|
|
|
71
|
-
|
|
93
|
+
5. **Dry-run / partial runs**
|
|
72
94
|
|
|
73
95
|
```bash
|
|
74
96
|
agent-native upgrade --dry-run
|
|
@@ -18,7 +18,7 @@ ladder.
|
|
|
18
18
|
- Follow the root framework contract: data in SQL, actions first, application state for navigation/selection, and shared agent chat for AI work.
|
|
19
19
|
- Use actions for app operations and keep frontend/API parity.
|
|
20
20
|
- Prefer improving the action surface before adding new pages. The task list is the primary durable UI for MVP.
|
|
21
|
-
- Keep the action surface
|
|
21
|
+
- Keep the action surface deliberate: it already covers task and inbox-item CRUD/bulk operations, custom field definitions and visibility prefs, reordering, `view-screen`, `navigate`, and `render-task-list-inline` (25 actions total — see the table below). Extend it thoughtfully rather than adding new pages.
|
|
22
22
|
- Do not use `db-query` for normal task operations.
|
|
23
23
|
- Call `view-screen` first when the user's visible task context matters (especially on `/tasks`).
|
|
24
24
|
- Tasks are private to each user. Preserve `ownerEmail` scoping unless intentionally implementing sharing.
|
package/dist/a2a/activity.d.ts
CHANGED
|
@@ -26,6 +26,9 @@ export interface A2AAgentActivitySnapshot extends Record<string, unknown> {
|
|
|
26
26
|
activePhase: A2AAgentActivityPhase;
|
|
27
27
|
reasoning: string[];
|
|
28
28
|
toolCalls: A2AAgentActivityToolCall[];
|
|
29
|
+
/** Response text segments, indexed by how many tool calls preceded them. */
|
|
30
|
+
response?: string[];
|
|
31
|
+
/** Tail segment only. Kept so peers predating `response` still render. */
|
|
29
32
|
responseText?: string;
|
|
30
33
|
}
|
|
31
34
|
export interface A2AAgentActivityState {
|
|
@@ -35,7 +38,7 @@ export interface A2AAgentActivityState {
|
|
|
35
38
|
activePhase: A2AAgentActivityPhase;
|
|
36
39
|
reasoning: string[];
|
|
37
40
|
toolCalls: A2AAgentActivityToolCall[];
|
|
38
|
-
|
|
41
|
+
response: string[];
|
|
39
42
|
}
|
|
40
43
|
export declare function createA2AAgentActivityState(startedAt?: number): A2AAgentActivityState;
|
|
41
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/a2a/activity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AACrE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,eAAO,MAAM,4BAA4B,QAAS,CAAC;AACnD,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,IAAI,EAAE,OAAO,uBAAuB,CAAC;IACrC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,qBAAqB,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,qBAAqB,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/a2a/activity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AACrE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,eAAO,MAAM,4BAA4B,QAAS,CAAC;AACnD,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,IAAI,EAAE,OAAO,uBAAuB,CAAC;IACrC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,qBAAqB,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,qBAAqB,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,SAAa,GACrB,qBAAqB,CAUvB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,cAAc,EACrB,SAAS,SAAa,GACrB,qBAAqB,CAkDvB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,GAC3B,wBAAwB,CAc1B;AAMD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,qBAAqB,GAC3B,QAAQ,CAEV;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,GAAG,OAAO,GACnB,wBAAwB,GAAG,IAAI,CA2BjC"}
|
package/dist/a2a/activity.js
CHANGED
|
@@ -16,7 +16,7 @@ export function createA2AAgentActivityState(startedAt = Date.now()) {
|
|
|
16
16
|
activePhase: "reasoning",
|
|
17
17
|
reasoning: [],
|
|
18
18
|
toolCalls: [],
|
|
19
|
-
|
|
19
|
+
response: [],
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
@@ -35,7 +35,6 @@ export function applyA2AAgentActivityEvent(state, event, updatedAt = Date.now())
|
|
|
35
35
|
break;
|
|
36
36
|
case "tool_start":
|
|
37
37
|
next.activePhase = "tool";
|
|
38
|
-
next.responseText = "";
|
|
39
38
|
next.toolCalls = appendToolCall(next.toolCalls, toolFromEvent(event));
|
|
40
39
|
changed = true;
|
|
41
40
|
break;
|
|
@@ -46,7 +45,7 @@ export function applyA2AAgentActivityEvent(state, event, updatedAt = Date.now())
|
|
|
46
45
|
break;
|
|
47
46
|
case "text":
|
|
48
47
|
next.activePhase = "responding";
|
|
49
|
-
next.
|
|
48
|
+
next.response = appendBoundedSegment(next.response, event.text, MAX_A2A_ACTIVITY_RESPONSE_CHARS, next.toolCalls.length);
|
|
50
49
|
changed = true;
|
|
51
50
|
break;
|
|
52
51
|
case "done":
|
|
@@ -58,7 +57,7 @@ export function applyA2AAgentActivityEvent(state, event, updatedAt = Date.now())
|
|
|
58
57
|
changed = true;
|
|
59
58
|
break;
|
|
60
59
|
case "clear":
|
|
61
|
-
next.
|
|
60
|
+
next.response = [];
|
|
62
61
|
changed = true;
|
|
63
62
|
break;
|
|
64
63
|
}
|
|
@@ -75,9 +74,13 @@ export function buildA2AAgentActivitySnapshot(state) {
|
|
|
75
74
|
activePhase: state.activePhase,
|
|
76
75
|
reasoning: state.reasoning,
|
|
77
76
|
toolCalls: state.toolCalls,
|
|
78
|
-
...(state.
|
|
77
|
+
...(state.response.length ? { response: state.response } : {}),
|
|
78
|
+
...(tailSegment(state) ? { responseText: tailSegment(state) } : {}),
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
+
function tailSegment(state) {
|
|
82
|
+
return state.response[state.toolCalls.length] ?? "";
|
|
83
|
+
}
|
|
81
84
|
export function buildA2AAgentActivityPart(state) {
|
|
82
85
|
return { type: "data", data: buildA2AAgentActivitySnapshot(state) };
|
|
83
86
|
}
|
|
@@ -97,8 +100,10 @@ export function parseA2AAgentActivityPart(part) {
|
|
|
97
100
|
!isPhase(data.activePhase) ||
|
|
98
101
|
data.updatedAt < data.startedAt ||
|
|
99
102
|
data.durationMs !== data.updatedAt - data.startedAt ||
|
|
100
|
-
!
|
|
103
|
+
!isSafeSegments(data.reasoning, MAX_A2A_ACTIVITY_REASONING_CHARS) ||
|
|
101
104
|
!isSafeToolCalls(data.toolCalls) ||
|
|
105
|
+
(data.response !== undefined &&
|
|
106
|
+
!isSafeSegments(data.response, MAX_A2A_ACTIVITY_RESPONSE_CHARS)) ||
|
|
102
107
|
(data.responseText !== undefined &&
|
|
103
108
|
!isSafeText(data.responseText, MAX_A2A_ACTIVITY_RESPONSE_CHARS)) ||
|
|
104
109
|
activityCharacterCount(data) > MAX_A2A_ACTIVITY_TOTAL_CHARS) {
|
|
@@ -118,9 +123,6 @@ function toolFromEvent(event) {
|
|
|
118
123
|
: "completed",
|
|
119
124
|
};
|
|
120
125
|
}
|
|
121
|
-
function appendBoundedText(current, addition, maxChars) {
|
|
122
|
-
return sanitizeText(`${current}${addition}`, maxChars);
|
|
123
|
-
}
|
|
124
126
|
function appendBoundedSegment(current, addition, maxChars, precedingToolCount) {
|
|
125
127
|
const used = current.reduce((total, text) => total + text.length, 0);
|
|
126
128
|
if (used >= maxChars ||
|
|
@@ -183,11 +185,11 @@ function isSafeInteger(value) {
|
|
|
183
185
|
function isPhase(value) {
|
|
184
186
|
return ["reasoning", "tool", "responding", "complete", "error"].includes(value);
|
|
185
187
|
}
|
|
186
|
-
function
|
|
188
|
+
function isSafeSegments(value, maxChars) {
|
|
187
189
|
return (Array.isArray(value) &&
|
|
188
190
|
value.length <= MAX_A2A_ACTIVITY_REASONING_SEGMENTS &&
|
|
189
|
-
value.reduce((total, text) => total + (typeof text === "string" ? text.length : Infinity), 0) <=
|
|
190
|
-
value.every((text) => isSafeText(text,
|
|
191
|
+
value.reduce((total, text) => total + (typeof text === "string" ? text.length : Infinity), 0) <= maxChars &&
|
|
192
|
+
value.every((text) => isSafeText(text, maxChars)));
|
|
191
193
|
}
|
|
192
194
|
function isSafeToolCalls(value) {
|
|
193
195
|
return (Array.isArray(value) &&
|
|
@@ -218,10 +220,14 @@ function isSafeToolId(value) {
|
|
|
218
220
|
value === sanitizeToolId(value));
|
|
219
221
|
}
|
|
220
222
|
function activityCharacterCount(data) {
|
|
221
|
-
const reasoning =
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
const response =
|
|
223
|
+
const reasoning = segmentCharacterCount(data.reasoning);
|
|
224
|
+
// `responseText` duplicates the tail of `response`; counting both would
|
|
225
|
+
// reject a snapshot that is within budget.
|
|
226
|
+
const response = Array.isArray(data.response)
|
|
227
|
+
? segmentCharacterCount(data.response)
|
|
228
|
+
: typeof data.responseText === "string"
|
|
229
|
+
? data.responseText.length
|
|
230
|
+
: 0;
|
|
225
231
|
const tools = Array.isArray(data.toolCalls)
|
|
226
232
|
? data.toolCalls.reduce((total, tool) => {
|
|
227
233
|
if (!isRecord(tool))
|
|
@@ -233,4 +239,9 @@ function activityCharacterCount(data) {
|
|
|
233
239
|
: 0;
|
|
234
240
|
return reasoning + response + tools;
|
|
235
241
|
}
|
|
242
|
+
function segmentCharacterCount(value) {
|
|
243
|
+
return Array.isArray(value)
|
|
244
|
+
? value.reduce((total, text) => total + (typeof text === "string" ? text.length : 0), 0)
|
|
245
|
+
: 0;
|
|
246
|
+
}
|
|
236
247
|
//# sourceMappingURL=activity.js.map
|
package/dist/a2a/activity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/a2a/activity.ts"],"names":[],"mappings":"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","sourcesContent":["import { sanitizeToolErrorText } from \"../agent/tool-error-redaction.js\";\nimport type { AgentChatEvent } from \"../agent/types.js\";\nimport type { DataPart, Part } from \"./types.js\";\n\nexport const A2A_AGENT_ACTIVITY_KIND = \"agent-native/agent-activity\";\nexport const A2A_AGENT_ACTIVITY_VERSION = 1;\nexport const MAX_A2A_ACTIVITY_REASONING_CHARS = 32_768;\nexport const MAX_A2A_ACTIVITY_RESPONSE_CHARS = 32_768;\nexport const MAX_A2A_ACTIVITY_TOTAL_CHARS = 98_304;\nexport const MAX_A2A_ACTIVITY_REASONING_SEGMENTS = 128;\nexport const MAX_A2A_ACTIVITY_TOOL_CALLS = 64;\nexport const MAX_A2A_ACTIVITY_TOOL_NAME_CHARS = 96;\nexport const MAX_A2A_ACTIVITY_TOOL_ID_CHARS = 128;\n\nexport type A2AAgentActivityPhase =\n | \"reasoning\"\n | \"tool\"\n | \"responding\"\n | \"complete\"\n | \"error\";\n\nexport type A2AAgentActivityToolStatus = \"running\" | \"completed\" | \"failed\";\n\nexport interface A2AAgentActivityToolCall {\n name: string;\n id?: string;\n status: A2AAgentActivityToolStatus;\n}\n\nexport interface A2AAgentActivitySnapshot extends Record<string, unknown> {\n kind: typeof A2A_AGENT_ACTIVITY_KIND;\n version: typeof A2A_AGENT_ACTIVITY_VERSION;\n sequence: number;\n startedAt: number;\n updatedAt: number;\n durationMs: number;\n activePhase: A2AAgentActivityPhase;\n reasoning: string[];\n toolCalls: A2AAgentActivityToolCall[];\n responseText?: string;\n}\n\nexport interface A2AAgentActivityState {\n sequence: number;\n startedAt: number;\n updatedAt: number;\n activePhase: A2AAgentActivityPhase;\n reasoning: string[];\n toolCalls: A2AAgentActivityToolCall[];\n responseText: string;\n}\n\nexport function createA2AAgentActivityState(\n startedAt = Date.now(),\n): A2AAgentActivityState {\n return {\n sequence: 0,\n startedAt,\n updatedAt: startedAt,\n activePhase: \"reasoning\",\n reasoning: [],\n toolCalls: [],\n responseText: \"\",\n };\n}\n\n/**\n * Converts internal loop events into a bounded activity snapshot. It carries\n * only reasoning text already emitted to the local chat, never tool inputs or\n * results.\n */\nexport function applyA2AAgentActivityEvent(\n state: A2AAgentActivityState,\n event: AgentChatEvent,\n updatedAt = Date.now(),\n): A2AAgentActivityState {\n const next = { ...state, updatedAt: normalizeTimestamp(updatedAt) };\n let changed = false;\n\n switch (event.type) {\n case \"thinking\":\n next.activePhase = \"reasoning\";\n next.reasoning = appendBoundedSegment(\n next.reasoning,\n event.text,\n MAX_A2A_ACTIVITY_REASONING_CHARS,\n next.toolCalls.length,\n );\n changed = true;\n break;\n case \"tool_start\":\n next.activePhase = \"tool\";\n next.responseText = \"\";\n next.toolCalls = appendToolCall(next.toolCalls, toolFromEvent(event));\n changed = true;\n break;\n case \"tool_done\":\n next.activePhase = \"tool\";\n next.toolCalls = settleToolCall(next.toolCalls, toolFromEvent(event));\n changed = true;\n break;\n case \"text\":\n next.activePhase = \"responding\";\n next.responseText = appendBoundedText(\n next.responseText,\n event.text,\n MAX_A2A_ACTIVITY_RESPONSE_CHARS,\n );\n changed = true;\n break;\n case \"done\":\n next.activePhase = \"complete\";\n changed = true;\n break;\n case \"error\":\n next.activePhase = \"error\";\n changed = true;\n break;\n case \"clear\":\n next.responseText = \"\";\n changed = true;\n break;\n }\n\n return changed ? { ...next, sequence: state.sequence + 1 } : state;\n}\n\nexport function buildA2AAgentActivitySnapshot(\n state: A2AAgentActivityState,\n): A2AAgentActivitySnapshot {\n return {\n kind: A2A_AGENT_ACTIVITY_KIND,\n version: A2A_AGENT_ACTIVITY_VERSION,\n sequence: state.sequence,\n startedAt: state.startedAt,\n updatedAt: state.updatedAt,\n durationMs: Math.max(0, state.updatedAt - state.startedAt),\n activePhase: state.activePhase,\n reasoning: state.reasoning,\n toolCalls: state.toolCalls,\n ...(state.responseText ? { responseText: state.responseText } : {}),\n };\n}\n\nexport function buildA2AAgentActivityPart(\n state: A2AAgentActivityState,\n): DataPart {\n return { type: \"data\", data: buildA2AAgentActivitySnapshot(state) };\n}\n\nexport function parseA2AAgentActivityPart(\n part: Part | unknown,\n): A2AAgentActivitySnapshot | null {\n if (!part || typeof part !== \"object\") return null;\n const candidate = part as { type?: unknown; data?: unknown };\n if (candidate.type !== \"data\" || !isRecord(candidate.data)) return null;\n const data = candidate.data;\n if (\n data.kind !== A2A_AGENT_ACTIVITY_KIND ||\n data.version !== A2A_AGENT_ACTIVITY_VERSION ||\n !isSafeInteger(data.sequence) ||\n !isSafeInteger(data.startedAt) ||\n !isSafeInteger(data.updatedAt) ||\n !isSafeInteger(data.durationMs) ||\n !isPhase(data.activePhase) ||\n data.updatedAt < data.startedAt ||\n data.durationMs !== data.updatedAt - data.startedAt ||\n !isSafeReasoning(data.reasoning) ||\n !isSafeToolCalls(data.toolCalls) ||\n (data.responseText !== undefined &&\n !isSafeText(data.responseText, MAX_A2A_ACTIVITY_RESPONSE_CHARS)) ||\n activityCharacterCount(data) > MAX_A2A_ACTIVITY_TOTAL_CHARS\n ) {\n return null;\n }\n\n return data as unknown as A2AAgentActivitySnapshot;\n}\n\nfunction toolFromEvent(\n event: Extract<AgentChatEvent, { type: \"tool_start\" | \"tool_done\" }>,\n): A2AAgentActivityToolCall {\n const id = sanitizeToolId(event.id);\n return {\n name: sanitizeToolName(event.tool),\n ...(id ? { id } : {}),\n status:\n event.type === \"tool_start\"\n ? \"running\"\n : event.isError\n ? \"failed\"\n : \"completed\",\n };\n}\n\nfunction appendBoundedText(\n current: string,\n addition: string,\n maxChars: number,\n) {\n return sanitizeText(`${current}${addition}`, maxChars);\n}\n\nfunction appendBoundedSegment(\n current: string[],\n addition: string,\n maxChars: number,\n precedingToolCount: number,\n): string[] {\n const used = current.reduce((total, text) => total + text.length, 0);\n if (\n used >= maxChars ||\n current.length >= MAX_A2A_ACTIVITY_REASONING_SEGMENTS\n ) {\n return current;\n }\n const text = sanitizeText(addition, maxChars - used);\n if (!text) return current;\n const next = [...current];\n while (\n next.length < precedingToolCount &&\n next.length < MAX_A2A_ACTIVITY_REASONING_SEGMENTS\n ) {\n next.push(\"\");\n }\n if (next.length === precedingToolCount) {\n return [...next, text];\n }\n next[precedingToolCount] = `${next[precedingToolCount] ?? \"\"}${text}`;\n return next;\n}\n\nfunction appendToolCall(\n current: A2AAgentActivityToolCall[],\n tool: A2AAgentActivityToolCall,\n): A2AAgentActivityToolCall[] {\n return current.length < MAX_A2A_ACTIVITY_TOOL_CALLS\n ? [...current, tool]\n : current;\n}\n\nfunction settleToolCall(\n current: A2AAgentActivityToolCall[],\n tool: A2AAgentActivityToolCall,\n): A2AAgentActivityToolCall[] {\n for (let index = current.length - 1; index >= 0; index -= 1) {\n const existing = current[index];\n if (\n (tool.id && tool.id === existing.id) ||\n (!tool.id && tool.name === existing.name)\n ) {\n return current.map((value, itemIndex) =>\n itemIndex === index ? tool : value,\n );\n }\n }\n return appendToolCall(current, tool);\n}\n\nfunction sanitizeText(value: string, maxChars: number): string {\n return sanitizeToolErrorText(value)\n .replace(/\\r\\n?/g, \"\\n\")\n .replace(/[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]/g, \"\")\n .slice(0, maxChars);\n}\n\nfunction sanitizeToolName(value: string): string {\n return sanitizeText(value, MAX_A2A_ACTIVITY_TOOL_NAME_CHARS) || \"tool\";\n}\n\nfunction sanitizeToolId(value: string | undefined): string | undefined {\n const sanitized = value\n ? sanitizeText(value, MAX_A2A_ACTIVITY_TOOL_ID_CHARS)\n : \"\";\n return sanitized || undefined;\n}\n\nfunction normalizeTimestamp(value: number): number {\n return isSafeInteger(value) ? value : Date.now();\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction isSafeInteger(value: unknown): value is number {\n return typeof value === \"number\" && Number.isSafeInteger(value) && value >= 0;\n}\n\nfunction isPhase(value: unknown): value is A2AAgentActivityPhase {\n return [\"reasoning\", \"tool\", \"responding\", \"complete\", \"error\"].includes(\n value as string,\n );\n}\n\nfunction isSafeReasoning(value: unknown): value is string[] {\n return (\n Array.isArray(value) &&\n value.length <= MAX_A2A_ACTIVITY_REASONING_SEGMENTS &&\n value.reduce(\n (total, text) =>\n total + (typeof text === \"string\" ? text.length : Infinity),\n 0,\n ) <= MAX_A2A_ACTIVITY_REASONING_CHARS &&\n value.every((text) => isSafeText(text, MAX_A2A_ACTIVITY_REASONING_CHARS))\n );\n}\n\nfunction isSafeToolCalls(value: unknown): value is A2AAgentActivityToolCall[] {\n return (\n Array.isArray(value) &&\n value.length <= MAX_A2A_ACTIVITY_TOOL_CALLS &&\n value.every(isSafeToolCall)\n );\n}\n\nfunction isSafeToolCall(value: unknown): value is A2AAgentActivityToolCall {\n if (!isRecord(value) || !isSafeToolName(value.name)) return false;\n return (\n (value.id === undefined || isSafeToolId(value.id)) &&\n (value.status === \"running\" ||\n value.status === \"completed\" ||\n value.status === \"failed\")\n );\n}\n\nfunction isSafeText(value: unknown, maxChars: number): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= maxChars &&\n value === sanitizeText(value, maxChars)\n );\n}\n\nfunction isSafeToolName(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= MAX_A2A_ACTIVITY_TOOL_NAME_CHARS &&\n value === sanitizeToolName(value)\n );\n}\n\nfunction isSafeToolId(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= MAX_A2A_ACTIVITY_TOOL_ID_CHARS &&\n value === sanitizeToolId(value)\n );\n}\n\nfunction activityCharacterCount(data: Record<string, unknown>): number {\n const reasoning = Array.isArray(data.reasoning)\n ? data.reasoning.reduce(\n (total, text) => total + (typeof text === \"string\" ? text.length : 0),\n 0,\n )\n : 0;\n const response =\n typeof data.responseText === \"string\" ? data.responseText.length : 0;\n const tools = Array.isArray(data.toolCalls)\n ? data.toolCalls.reduce((total, tool) => {\n if (!isRecord(tool)) return total;\n return (\n total +\n (typeof tool.name === \"string\" ? tool.name.length : 0) +\n (typeof tool.id === \"string\" ? tool.id.length : 0)\n );\n }, 0)\n : 0;\n return reasoning + response + tools;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/a2a/activity.ts"],"names":[],"mappings":"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","sourcesContent":["import { sanitizeToolErrorText } from \"../agent/tool-error-redaction.js\";\nimport type { AgentChatEvent } from \"../agent/types.js\";\nimport type { DataPart, Part } from \"./types.js\";\n\nexport const A2A_AGENT_ACTIVITY_KIND = \"agent-native/agent-activity\";\nexport const A2A_AGENT_ACTIVITY_VERSION = 1;\nexport const MAX_A2A_ACTIVITY_REASONING_CHARS = 32_768;\nexport const MAX_A2A_ACTIVITY_RESPONSE_CHARS = 32_768;\nexport const MAX_A2A_ACTIVITY_TOTAL_CHARS = 98_304;\nexport const MAX_A2A_ACTIVITY_REASONING_SEGMENTS = 128;\nexport const MAX_A2A_ACTIVITY_TOOL_CALLS = 64;\nexport const MAX_A2A_ACTIVITY_TOOL_NAME_CHARS = 96;\nexport const MAX_A2A_ACTIVITY_TOOL_ID_CHARS = 128;\n\nexport type A2AAgentActivityPhase =\n | \"reasoning\"\n | \"tool\"\n | \"responding\"\n | \"complete\"\n | \"error\";\n\nexport type A2AAgentActivityToolStatus = \"running\" | \"completed\" | \"failed\";\n\nexport interface A2AAgentActivityToolCall {\n name: string;\n id?: string;\n status: A2AAgentActivityToolStatus;\n}\n\nexport interface A2AAgentActivitySnapshot extends Record<string, unknown> {\n kind: typeof A2A_AGENT_ACTIVITY_KIND;\n version: typeof A2A_AGENT_ACTIVITY_VERSION;\n sequence: number;\n startedAt: number;\n updatedAt: number;\n durationMs: number;\n activePhase: A2AAgentActivityPhase;\n reasoning: string[];\n toolCalls: A2AAgentActivityToolCall[];\n /** Response text segments, indexed by how many tool calls preceded them. */\n response?: string[];\n /** Tail segment only. Kept so peers predating `response` still render. */\n responseText?: string;\n}\n\nexport interface A2AAgentActivityState {\n sequence: number;\n startedAt: number;\n updatedAt: number;\n activePhase: A2AAgentActivityPhase;\n reasoning: string[];\n toolCalls: A2AAgentActivityToolCall[];\n response: string[];\n}\n\nexport function createA2AAgentActivityState(\n startedAt = Date.now(),\n): A2AAgentActivityState {\n return {\n sequence: 0,\n startedAt,\n updatedAt: startedAt,\n activePhase: \"reasoning\",\n reasoning: [],\n toolCalls: [],\n response: [],\n };\n}\n\n/**\n * Converts internal loop events into a bounded activity snapshot. It carries\n * only reasoning text already emitted to the local chat, never tool inputs or\n * results.\n */\nexport function applyA2AAgentActivityEvent(\n state: A2AAgentActivityState,\n event: AgentChatEvent,\n updatedAt = Date.now(),\n): A2AAgentActivityState {\n const next = { ...state, updatedAt: normalizeTimestamp(updatedAt) };\n let changed = false;\n\n switch (event.type) {\n case \"thinking\":\n next.activePhase = \"reasoning\";\n next.reasoning = appendBoundedSegment(\n next.reasoning,\n event.text,\n MAX_A2A_ACTIVITY_REASONING_CHARS,\n next.toolCalls.length,\n );\n changed = true;\n break;\n case \"tool_start\":\n next.activePhase = \"tool\";\n next.toolCalls = appendToolCall(next.toolCalls, toolFromEvent(event));\n changed = true;\n break;\n case \"tool_done\":\n next.activePhase = \"tool\";\n next.toolCalls = settleToolCall(next.toolCalls, toolFromEvent(event));\n changed = true;\n break;\n case \"text\":\n next.activePhase = \"responding\";\n next.response = appendBoundedSegment(\n next.response,\n event.text,\n MAX_A2A_ACTIVITY_RESPONSE_CHARS,\n next.toolCalls.length,\n );\n changed = true;\n break;\n case \"done\":\n next.activePhase = \"complete\";\n changed = true;\n break;\n case \"error\":\n next.activePhase = \"error\";\n changed = true;\n break;\n case \"clear\":\n next.response = [];\n changed = true;\n break;\n }\n\n return changed ? { ...next, sequence: state.sequence + 1 } : state;\n}\n\nexport function buildA2AAgentActivitySnapshot(\n state: A2AAgentActivityState,\n): A2AAgentActivitySnapshot {\n return {\n kind: A2A_AGENT_ACTIVITY_KIND,\n version: A2A_AGENT_ACTIVITY_VERSION,\n sequence: state.sequence,\n startedAt: state.startedAt,\n updatedAt: state.updatedAt,\n durationMs: Math.max(0, state.updatedAt - state.startedAt),\n activePhase: state.activePhase,\n reasoning: state.reasoning,\n toolCalls: state.toolCalls,\n ...(state.response.length ? { response: state.response } : {}),\n ...(tailSegment(state) ? { responseText: tailSegment(state) } : {}),\n };\n}\n\nfunction tailSegment(state: A2AAgentActivityState): string {\n return state.response[state.toolCalls.length] ?? \"\";\n}\n\nexport function buildA2AAgentActivityPart(\n state: A2AAgentActivityState,\n): DataPart {\n return { type: \"data\", data: buildA2AAgentActivitySnapshot(state) };\n}\n\nexport function parseA2AAgentActivityPart(\n part: Part | unknown,\n): A2AAgentActivitySnapshot | null {\n if (!part || typeof part !== \"object\") return null;\n const candidate = part as { type?: unknown; data?: unknown };\n if (candidate.type !== \"data\" || !isRecord(candidate.data)) return null;\n const data = candidate.data;\n if (\n data.kind !== A2A_AGENT_ACTIVITY_KIND ||\n data.version !== A2A_AGENT_ACTIVITY_VERSION ||\n !isSafeInteger(data.sequence) ||\n !isSafeInteger(data.startedAt) ||\n !isSafeInteger(data.updatedAt) ||\n !isSafeInteger(data.durationMs) ||\n !isPhase(data.activePhase) ||\n data.updatedAt < data.startedAt ||\n data.durationMs !== data.updatedAt - data.startedAt ||\n !isSafeSegments(data.reasoning, MAX_A2A_ACTIVITY_REASONING_CHARS) ||\n !isSafeToolCalls(data.toolCalls) ||\n (data.response !== undefined &&\n !isSafeSegments(data.response, MAX_A2A_ACTIVITY_RESPONSE_CHARS)) ||\n (data.responseText !== undefined &&\n !isSafeText(data.responseText, MAX_A2A_ACTIVITY_RESPONSE_CHARS)) ||\n activityCharacterCount(data) > MAX_A2A_ACTIVITY_TOTAL_CHARS\n ) {\n return null;\n }\n\n return data as unknown as A2AAgentActivitySnapshot;\n}\n\nfunction toolFromEvent(\n event: Extract<AgentChatEvent, { type: \"tool_start\" | \"tool_done\" }>,\n): A2AAgentActivityToolCall {\n const id = sanitizeToolId(event.id);\n return {\n name: sanitizeToolName(event.tool),\n ...(id ? { id } : {}),\n status:\n event.type === \"tool_start\"\n ? \"running\"\n : event.isError\n ? \"failed\"\n : \"completed\",\n };\n}\n\nfunction appendBoundedSegment(\n current: string[],\n addition: string,\n maxChars: number,\n precedingToolCount: number,\n): string[] {\n const used = current.reduce((total, text) => total + text.length, 0);\n if (\n used >= maxChars ||\n current.length >= MAX_A2A_ACTIVITY_REASONING_SEGMENTS\n ) {\n return current;\n }\n const text = sanitizeText(addition, maxChars - used);\n if (!text) return current;\n const next = [...current];\n while (\n next.length < precedingToolCount &&\n next.length < MAX_A2A_ACTIVITY_REASONING_SEGMENTS\n ) {\n next.push(\"\");\n }\n if (next.length === precedingToolCount) {\n return [...next, text];\n }\n next[precedingToolCount] = `${next[precedingToolCount] ?? \"\"}${text}`;\n return next;\n}\n\nfunction appendToolCall(\n current: A2AAgentActivityToolCall[],\n tool: A2AAgentActivityToolCall,\n): A2AAgentActivityToolCall[] {\n return current.length < MAX_A2A_ACTIVITY_TOOL_CALLS\n ? [...current, tool]\n : current;\n}\n\nfunction settleToolCall(\n current: A2AAgentActivityToolCall[],\n tool: A2AAgentActivityToolCall,\n): A2AAgentActivityToolCall[] {\n for (let index = current.length - 1; index >= 0; index -= 1) {\n const existing = current[index];\n if (\n (tool.id && tool.id === existing.id) ||\n (!tool.id && tool.name === existing.name)\n ) {\n return current.map((value, itemIndex) =>\n itemIndex === index ? tool : value,\n );\n }\n }\n return appendToolCall(current, tool);\n}\n\nfunction sanitizeText(value: string, maxChars: number): string {\n return sanitizeToolErrorText(value)\n .replace(/\\r\\n?/g, \"\\n\")\n .replace(/[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]/g, \"\")\n .slice(0, maxChars);\n}\n\nfunction sanitizeToolName(value: string): string {\n return sanitizeText(value, MAX_A2A_ACTIVITY_TOOL_NAME_CHARS) || \"tool\";\n}\n\nfunction sanitizeToolId(value: string | undefined): string | undefined {\n const sanitized = value\n ? sanitizeText(value, MAX_A2A_ACTIVITY_TOOL_ID_CHARS)\n : \"\";\n return sanitized || undefined;\n}\n\nfunction normalizeTimestamp(value: number): number {\n return isSafeInteger(value) ? value : Date.now();\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction isSafeInteger(value: unknown): value is number {\n return typeof value === \"number\" && Number.isSafeInteger(value) && value >= 0;\n}\n\nfunction isPhase(value: unknown): value is A2AAgentActivityPhase {\n return [\"reasoning\", \"tool\", \"responding\", \"complete\", \"error\"].includes(\n value as string,\n );\n}\n\nfunction isSafeSegments(value: unknown, maxChars: number): value is string[] {\n return (\n Array.isArray(value) &&\n value.length <= MAX_A2A_ACTIVITY_REASONING_SEGMENTS &&\n value.reduce(\n (total, text) =>\n total + (typeof text === \"string\" ? text.length : Infinity),\n 0,\n ) <= maxChars &&\n value.every((text) => isSafeText(text, maxChars))\n );\n}\n\nfunction isSafeToolCalls(value: unknown): value is A2AAgentActivityToolCall[] {\n return (\n Array.isArray(value) &&\n value.length <= MAX_A2A_ACTIVITY_TOOL_CALLS &&\n value.every(isSafeToolCall)\n );\n}\n\nfunction isSafeToolCall(value: unknown): value is A2AAgentActivityToolCall {\n if (!isRecord(value) || !isSafeToolName(value.name)) return false;\n return (\n (value.id === undefined || isSafeToolId(value.id)) &&\n (value.status === \"running\" ||\n value.status === \"completed\" ||\n value.status === \"failed\")\n );\n}\n\nfunction isSafeText(value: unknown, maxChars: number): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= maxChars &&\n value === sanitizeText(value, maxChars)\n );\n}\n\nfunction isSafeToolName(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= MAX_A2A_ACTIVITY_TOOL_NAME_CHARS &&\n value === sanitizeToolName(value)\n );\n}\n\nfunction isSafeToolId(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= MAX_A2A_ACTIVITY_TOOL_ID_CHARS &&\n value === sanitizeToolId(value)\n );\n}\n\nfunction activityCharacterCount(data: Record<string, unknown>): number {\n const reasoning = segmentCharacterCount(data.reasoning);\n // `responseText` duplicates the tail of `response`; counting both would\n // reject a snapshot that is within budget.\n const response = Array.isArray(data.response)\n ? segmentCharacterCount(data.response)\n : typeof data.responseText === \"string\"\n ? data.responseText.length\n : 0;\n const tools = Array.isArray(data.toolCalls)\n ? data.toolCalls.reduce((total, tool) => {\n if (!isRecord(tool)) return total;\n return (\n total +\n (typeof tool.name === \"string\" ? tool.name.length : 0) +\n (typeof tool.id === \"string\" ? tool.id.length : 0)\n );\n }, 0)\n : 0;\n return reasoning + response + tools;\n}\n\nfunction segmentCharacterCount(value: unknown): number {\n return Array.isArray(value)\n ? value.reduce(\n (total, text) => total + (typeof text === \"string\" ? text.length : 0),\n 0,\n )\n : 0;\n}\n"]}
|
package/dist/a2a/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"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"}
|