@agent-native/core 0.108.0 → 0.109.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +25 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/client.ts +162 -17
- package/corpus/core/src/a2a/correlation.ts +50 -0
- package/corpus/core/src/a2a/handlers.ts +200 -14
- package/corpus/core/src/a2a/index.ts +7 -1
- package/corpus/core/src/a2a/invoke.ts +77 -1
- package/corpus/core/src/a2a/server.ts +13 -1
- package/corpus/core/src/a2a/task-store.ts +146 -6
- package/corpus/core/src/a2a/types.ts +32 -0
- package/corpus/core/src/action.ts +5 -2
- package/corpus/core/src/agent/production-agent.ts +33 -4
- package/corpus/core/src/client/AssistantChat.tsx +648 -603
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +31 -4
- package/corpus/core/src/client/agent-chat-adapter.ts +23 -37
- package/corpus/core/src/client/agent-sidebar-state.ts +4 -0
- package/corpus/core/src/client/analytics.ts +84 -0
- package/corpus/core/src/client/chat/message-components.tsx +94 -22
- package/corpus/core/src/client/chat/tool-call-display.tsx +170 -47
- package/corpus/core/src/client/chat/use-agent-chat-lifecycle-tracking.ts +74 -0
- package/corpus/core/src/client/chat-thread-url.ts +11 -0
- package/corpus/core/src/client/error-capture.ts +12 -0
- package/corpus/core/src/client/extensions/ExtensionSlot.tsx +37 -1
- package/corpus/core/src/client/index.ts +2 -0
- package/corpus/core/src/client/route-chunk-recovery.ts +20 -8
- package/corpus/core/src/client/session-replay.ts +31 -0
- package/corpus/core/src/client/use-run-stuck-detection.ts +27 -1
- package/corpus/core/src/db/client.ts +55 -0
- package/corpus/core/src/extensions/actions.ts +2 -14
- package/corpus/core/src/extensions/store.ts +1 -1
- package/corpus/core/src/localization/default-messages.ts +3 -0
- package/corpus/core/src/mcp/build-server.ts +2 -2
- package/corpus/core/src/observability/traces.ts +172 -19
- package/corpus/core/src/progress/actions.ts +4 -2
- package/corpus/core/src/provider-api/index.ts +205 -105
- package/corpus/core/src/scripts/call-agent.ts +190 -19
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +112 -25
- package/corpus/core/src/server/agent-chat-plugin.ts +136 -4
- package/corpus/core/src/styles/agent-conversation.css +7 -0
- package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +20 -0
- package/corpus/core/src/templates/default/app/i18n/de-DE.ts +20 -0
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +20 -0
- package/corpus/core/src/templates/default/app/i18n/es-ES.ts +20 -0
- package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +21 -0
- package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +19 -0
- package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +20 -0
- package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +19 -0
- package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +20 -0
- package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +19 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +19 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +49 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +29 -10
- package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +54 -23
- package/corpus/templates/analytics/.builder/skills/apollo/SKILL.md +19 -41
- package/corpus/templates/analytics/.builder/skills/commonroom/SKILL.md +20 -35
- package/corpus/templates/analytics/.builder/skills/github/SKILL.md +23 -67
- package/corpus/templates/analytics/.builder/skills/pylon/SKILL.md +25 -43
- package/corpus/templates/analytics/AGENTS.md +22 -13
- package/corpus/templates/analytics/actions/account-deep-dive.ts +1 -0
- package/corpus/templates/analytics/actions/configure-gong-native-insights.ts +29 -0
- package/corpus/templates/analytics/actions/content-calendar-schema.ts +8 -4
- package/corpus/templates/analytics/actions/content-calendar.ts +12 -4
- package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +2 -1
- package/corpus/templates/analytics/actions/gong-calls.ts +113 -22
- package/corpus/templates/analytics/actions/gong-native-insights.ts +166 -0
- package/corpus/templates/analytics/actions/hubspot-deals.ts +190 -46
- package/corpus/templates/analytics/actions/pylon-issues.ts +123 -0
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +1 -1
- package/corpus/templates/analytics/actions/slack-messages.ts +179 -27
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +48 -152
- package/corpus/templates/analytics/app/components/ui/chart.tsx +1 -1
- package/corpus/templates/analytics/app/hooks/use-chart-tooltip-flip.ts +21 -6
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +13 -0
- package/corpus/templates/analytics/app/i18n-data.ts +134 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +181 -30
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +6 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +4 -3
- package/corpus/templates/analytics/changelog/2026-07-17-analytics-now-includes-a-default-alert-for-spikes-in-stuck-agent-chats.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-dashboard-editors-can-add-shared-extensions-or-opt-into-per-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-dashboard-extensions-show-a-loading-skeleton.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-errors-now-group-repeat-failures-consistently-and-keep-priva.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-gong-transcript-reviews-now-batch-bounded-call-windows-for-f.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-hubspot-deal-filters-now-run-in-hubspot-before-paging-result.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-notion-content-calendars-now-discover-the-matching-database-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-pylon-dashboard-reads-now-use-the-paginated-issue-search-api.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-17-slack-reads-no-longer-join-channels-and-report-pagination-coverage.md +6 -0
- package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +23 -14
- package/corpus/templates/analytics/docs/schemas/tracked-events.md +5 -1
- package/corpus/templates/analytics/server/handlers/notion.ts +14 -3
- package/corpus/templates/analytics/server/handlers/slack.ts +182 -29
- package/corpus/templates/analytics/server/jobs/analytics-alerts.ts +3 -3
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +2 -6
- package/corpus/templates/analytics/server/lib/analytics-alerts.ts +209 -87
- package/corpus/templates/analytics/server/lib/analytics-connector-catalog.ts +6 -2
- package/corpus/templates/analytics/server/lib/error-capture.ts +75 -8
- package/corpus/templates/analytics/server/lib/gong-native-policy.ts +72 -0
- package/corpus/templates/analytics/server/lib/gong.ts +54 -66
- package/corpus/templates/analytics/server/lib/hubspot.ts +40 -3
- package/corpus/templates/analytics/server/lib/notion.ts +83 -8
- package/corpus/templates/analytics/server/lib/real-data-actions.ts +4 -0
- package/corpus/templates/analytics/server/lib/slack.ts +242 -90
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +3 -3
- package/corpus/templates/analytics/server/routes/api/pylon/accounts.get.ts +42 -1
- package/corpus/templates/analytics/server/routes/api/pylon/issues.get.ts +71 -1
- package/corpus/templates/analytics/server/routes/api/test-connection.post.ts +44 -4
- package/corpus/templates/clips/actions/finalize-recording.ts +541 -62
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +19 -1
- package/corpus/templates/clips/app/components/library/create-folder-dialog.tsx +123 -0
- package/corpus/templates/clips/app/components/library/library-grid.tsx +42 -4
- package/corpus/templates/clips/app/components/library/recording-card.tsx +30 -0
- package/corpus/templates/clips/app/components/player/playback-comment-overlay.tsx +17 -2
- package/corpus/templates/clips/app/components/player/video-player.tsx +14 -2
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +2 -2
- package/corpus/templates/clips/app/entry.client.tsx +6 -1
- package/corpus/templates/clips/app/i18n/ar-SA.ts +12 -1
- package/corpus/templates/clips/app/i18n/de-DE.ts +12 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +12 -1
- package/corpus/templates/clips/app/i18n/es-ES.ts +11 -1
- package/corpus/templates/clips/app/i18n/fr-FR.ts +11 -1
- package/corpus/templates/clips/app/i18n/hi-IN.ts +10 -1
- package/corpus/templates/clips/app/i18n/ja-JP.ts +12 -1
- package/corpus/templates/clips/app/i18n/ko-KR.ts +11 -1
- package/corpus/templates/clips/app/i18n/pt-BR.ts +11 -1
- package/corpus/templates/clips/app/i18n/zh-CN.ts +11 -1
- package/corpus/templates/clips/app/i18n/zh-TW.ts +11 -1
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +72 -1
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +1 -1
- package/corpus/templates/clips/app/routes/record.tsx +3 -3
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +6 -3
- package/corpus/templates/clips/changelog/2026-07-17-choose-which-workspace-receives-new-clips-recordings-and-des.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-clips-now-retries-storage-verification-in-the-background-ins.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-create-folders-directly-from-the-move-menu.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-failed-desktop-uploads-now-offer-a-direct-way-to-reopen-clip.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-fixed-broken-thumbnail-icons-appearing-over-playable-clip-em.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-playback-comments-stay-readable-at-faster-playback-speeds.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/finalize-recovery.ts +3 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +3 -3
- package/corpus/templates/clips/desktop/src/app.tsx +19 -7
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +111 -13
- package/corpus/templates/clips/desktop/src/lib/upload-verification.ts +16 -7
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +2 -4
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/live_upload.rs +32 -15
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +45 -18
- package/corpus/templates/clips/server/jobs/media-verification.ts +130 -0
- package/corpus/templates/clips/server/lib/builder-media-compression.ts +15 -0
- package/corpus/templates/clips/server/lib/media-verification-state.ts +38 -0
- package/corpus/templates/clips/server/lib/player-thumbnail-url.ts +31 -0
- package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +10 -3
- package/corpus/templates/clips/server/plugins/auth.ts +5 -5
- package/corpus/templates/clips/server/plugins/calendar-jobs.ts +2 -0
- package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +12 -2
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +6 -1
- package/corpus/templates/clips/server/routes/api/thumbnail/[recordingId].get.ts +340 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +24 -7
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +91 -7
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/status.get.ts +14 -0
- package/corpus/templates/clips/shared/finalize-recovery.ts +61 -2
- package/corpus/templates/clips/shared/share-meta.ts +1 -1
- package/corpus/templates/content/app/entry.client.tsx +6 -1
- package/corpus/templates/dispatch/AGENTS.md +5 -0
- package/corpus/templates/dispatch/changelog/2026-07-17-apps-page-links-to-other-available-apps.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-17-curated-template-remixes.md +6 -0
- package/corpus/templates/mail/app/entry.client.tsx +6 -1
- package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +11 -7
- package/corpus/templates/slides/.env.example +0 -1
- package/corpus/templates/slides/AGENTS.md +4 -0
- package/corpus/templates/slides/DEVELOPING.md +2 -2
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +1 -1
- package/corpus/templates/slides/actions/logo-config.ts +6 -7
- package/corpus/templates/slides/actions/search-images.ts +11 -39
- package/corpus/templates/slides/actions/search-logos.ts +5 -52
- package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/LogoSearchPanel.tsx +16 -26
- package/corpus/templates/slides/app/entry.client.tsx +6 -1
- package/corpus/templates/slides/server/lib/media-search-providers.ts +216 -0
- package/corpus/templates/slides/server/register-secrets.ts +30 -0
- package/dist/a2a/client.d.ts +47 -1
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +94 -12
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/correlation.d.ts +10 -0
- package/dist/a2a/correlation.d.ts.map +1 -0
- package/dist/a2a/correlation.js +40 -0
- package/dist/a2a/correlation.js.map +1 -0
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +147 -15
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/index.d.ts +4 -4
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js +2 -2
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/invoke.d.ts +29 -2
- package/dist/a2a/invoke.d.ts.map +1 -1
- package/dist/a2a/invoke.js +33 -1
- package/dist/a2a/invoke.js.map +1 -1
- package/dist/a2a/server.d.ts.map +1 -1
- package/dist/a2a/server.js +14 -1
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/task-store.d.ts +12 -1
- package/dist/a2a/task-store.d.ts.map +1 -1
- package/dist/a2a/task-store.js +96 -6
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/a2a/types.d.ts +27 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/action.d.ts +5 -2
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/agent/production-agent.d.ts +14 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +19 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +14 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +158 -136
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +27 -4
- 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 +21 -39
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-sidebar-state.d.ts +1 -0
- package/dist/client/agent-sidebar-state.d.ts.map +1 -1
- package/dist/client/agent-sidebar-state.js +4 -0
- package/dist/client/agent-sidebar-state.js.map +1 -1
- package/dist/client/analytics.d.ts +14 -0
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +67 -0
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +8 -0
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +62 -19
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +6 -0
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +83 -14
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/chat/use-agent-chat-lifecycle-tracking.d.ts +8 -0
- package/dist/client/chat/use-agent-chat-lifecycle-tracking.d.ts.map +1 -0
- package/dist/client/chat/use-agent-chat-lifecycle-tracking.js +51 -0
- package/dist/client/chat/use-agent-chat-lifecycle-tracking.js.map +1 -0
- package/dist/client/chat-thread-url.d.ts +2 -0
- package/dist/client/chat-thread-url.d.ts.map +1 -0
- package/dist/client/chat-thread-url.js +12 -0
- package/dist/client/chat-thread-url.js.map +1 -0
- package/dist/client/error-capture.d.ts.map +1 -1
- package/dist/client/error-capture.js +7 -0
- package/dist/client/error-capture.js.map +1 -1
- package/dist/client/extensions/ExtensionSlot.d.ts +3 -1
- package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionSlot.js +28 -3
- package/dist/client/extensions/ExtensionSlot.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/route-chunk-recovery.d.ts.map +1 -1
- package/dist/client/route-chunk-recovery.js +14 -9
- package/dist/client/route-chunk-recovery.js.map +1 -1
- package/dist/client/session-replay.d.ts +15 -0
- package/dist/client/session-replay.d.ts.map +1 -1
- package/dist/client/session-replay.js +20 -0
- package/dist/client/session-replay.js.map +1 -1
- package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
- package/dist/client/use-run-stuck-detection.js +25 -1
- package/dist/client/use-run-stuck-detection.js.map +1 -1
- package/dist/db/client.d.ts +7 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +33 -0
- package/dist/db/client.js.map +1 -1
- package/dist/extensions/actions.d.ts.map +1 -1
- package/dist/extensions/actions.js +2 -10
- package/dist/extensions/actions.js.map +1 -1
- package/dist/extensions/store.js +1 -1
- package/dist/extensions/store.js.map +1 -1
- package/dist/localization/default-messages.d.ts +3 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +3 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/build-server.d.ts +2 -0
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +2 -2
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +5 -5
- package/dist/observability/traces.d.ts +9 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +137 -19
- package/dist/observability/traces.js.map +1 -1
- package/dist/progress/actions.d.ts.map +1 -1
- package/dist/progress/actions.js +3 -2
- package/dist/progress/actions.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +91 -8
- package/dist/provider-api/index.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +140 -17
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/action-filters-a2a.d.ts +24 -2
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.js +62 -7
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +118 -5
- 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/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-conversation.css +7 -0
- package/dist/templates/default/app/i18n/ar-SA.ts +20 -0
- package/dist/templates/default/app/i18n/de-DE.ts +20 -0
- package/dist/templates/default/app/i18n/en-US.ts +20 -0
- package/dist/templates/default/app/i18n/es-ES.ts +20 -0
- package/dist/templates/default/app/i18n/fr-FR.ts +21 -0
- package/dist/templates/default/app/i18n/hi-IN.ts +19 -0
- package/dist/templates/default/app/i18n/ja-JP.ts +20 -0
- package/dist/templates/default/app/i18n/ko-KR.ts +19 -0
- package/dist/templates/default/app/i18n/pt-BR.ts +20 -0
- package/dist/templates/default/app/i18n/zh-CN.ts +19 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +19 -0
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +49 -0
- package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
- package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
- package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
- package/package.json +1 -1
- package/src/templates/default/app/i18n/ar-SA.ts +20 -0
- package/src/templates/default/app/i18n/de-DE.ts +20 -0
- package/src/templates/default/app/i18n/en-US.ts +20 -0
- package/src/templates/default/app/i18n/es-ES.ts +20 -0
- package/src/templates/default/app/i18n/fr-FR.ts +21 -0
- package/src/templates/default/app/i18n/hi-IN.ts +19 -0
- package/src/templates/default/app/i18n/ja-JP.ts +20 -0
- package/src/templates/default/app/i18n/ko-KR.ts +19 -0
- package/src/templates/default/app/i18n/pt-BR.ts +20 -0
- package/src/templates/default/app/i18n/zh-CN.ts +19 -0
- package/src/templates/default/app/i18n/zh-TW.ts +19 -0
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +49 -0
- package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
- package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
- package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
- package/corpus/templates/analytics/server/handlers/github.ts +0 -200
- package/corpus/templates/analytics/server/handlers/pylon.ts +0 -43
- package/corpus/templates/analytics/server/lib/apollo.ts +0 -167
- package/corpus/templates/analytics/server/lib/commonroom.ts +0 -149
- package/corpus/templates/analytics/server/lib/github.ts +0 -660
- package/corpus/templates/analytics/server/lib/mixpanel.ts +0 -156
- package/corpus/templates/analytics/server/lib/posthog.ts +0 -194
- package/corpus/templates/analytics/server/lib/pylon.ts +0 -109
- package/corpus/templates/analytics/server/routes/api/github/graphql.post.ts +0 -1
- package/corpus/templates/analytics/server/routes/api/github/issue.get.ts +0 -1
- package/corpus/templates/analytics/server/routes/api/github/org-prs.get.ts +0 -1
- package/corpus/templates/analytics/server/routes/api/github/pr.get.ts +0 -1
- package/corpus/templates/analytics/server/routes/api/github/prs.get.ts +0 -1
- package/corpus/templates/analytics/server/routes/api/github/search.get.ts +0 -1
- package/corpus/templates/slides/actions/fetch-logos.ts +0 -90
- package/corpus/templates/slides/actions/image-search.ts +0 -64
- package/corpus/templates/slides/actions/import-github.ts +0 -182
- package/corpus/templates/slides/actions/logo-lookup.ts +0 -113
|
@@ -1284,6 +1284,35 @@ const PROVIDER_CONFIGS: Record<ProviderApiId, ProviderApiConfig> = {
|
|
|
1284
1284
|
defaultHeaders: { "Notion-Version": "2026-03-11" },
|
|
1285
1285
|
templateUses: ["analytics", "brain", "content", "dispatch"],
|
|
1286
1286
|
examples: [{ label: "Search", method: "POST", path: "/search", body: {} }],
|
|
1287
|
+
corpusRecipes: [
|
|
1288
|
+
{
|
|
1289
|
+
label: "Search a Notion data source with complete cursor coverage",
|
|
1290
|
+
useWhen:
|
|
1291
|
+
"Use for coverage-sensitive searches across one known Notion data source's page properties. This does not search page block bodies.",
|
|
1292
|
+
workflow: [
|
|
1293
|
+
"Resolve the exact data source id and apply the narrowest provider-side filter and filter_properties projection first.",
|
|
1294
|
+
"Start provider-corpus-job with mode=paginated-search and pass next_cursor back as start_cursor in the POST body.",
|
|
1295
|
+
"Search only the returned properties and report the 10,000-result API ceiling plus any incomplete request_status.",
|
|
1296
|
+
"For page body text, stage page ids and fetch block children through a separate bounded data program; property search is not body search.",
|
|
1297
|
+
],
|
|
1298
|
+
request: {
|
|
1299
|
+
method: "POST",
|
|
1300
|
+
path: "/data_sources/<data-source-id>/query",
|
|
1301
|
+
body: { page_size: 100 },
|
|
1302
|
+
},
|
|
1303
|
+
pagination: {
|
|
1304
|
+
itemsPath: "results",
|
|
1305
|
+
nextCursorPath: "next_cursor",
|
|
1306
|
+
cursorBodyPath: "start_cursor",
|
|
1307
|
+
maxPages: 100,
|
|
1308
|
+
},
|
|
1309
|
+
search: {
|
|
1310
|
+
textPaths: ["properties"],
|
|
1311
|
+
idPaths: ["id"],
|
|
1312
|
+
metadataPaths: ["id", "url", "created_time", "last_edited_time"],
|
|
1313
|
+
},
|
|
1314
|
+
},
|
|
1315
|
+
],
|
|
1287
1316
|
},
|
|
1288
1317
|
posthog: {
|
|
1289
1318
|
id: "posthog",
|
|
@@ -1306,11 +1335,21 @@ const PROVIDER_CONFIGS: Record<ProviderApiId, ProviderApiConfig> = {
|
|
|
1306
1335
|
],
|
|
1307
1336
|
examples: [
|
|
1308
1337
|
{
|
|
1309
|
-
label: "
|
|
1310
|
-
method: "
|
|
1311
|
-
path: "/api/projects/{projectId}/
|
|
1338
|
+
label: "Aggregate events with HogQL",
|
|
1339
|
+
method: "POST",
|
|
1340
|
+
path: "/api/projects/{projectId}/query/",
|
|
1341
|
+
body: {
|
|
1342
|
+
query: {
|
|
1343
|
+
kind: "HogQLQuery",
|
|
1344
|
+
query:
|
|
1345
|
+
"SELECT event, count() AS events FROM events WHERE timestamp >= now() - INTERVAL 7 DAY GROUP BY event ORDER BY events DESC LIMIT 100",
|
|
1346
|
+
},
|
|
1347
|
+
},
|
|
1312
1348
|
},
|
|
1313
1349
|
],
|
|
1350
|
+
notes: [
|
|
1351
|
+
"Prefer the query endpoint with a bounded HogQL projection or server-side aggregation over paging raw events into the agent context.",
|
|
1352
|
+
],
|
|
1314
1353
|
},
|
|
1315
1354
|
prometheus: {
|
|
1316
1355
|
id: "prometheus",
|
|
@@ -1400,6 +1439,39 @@ const PROVIDER_CONFIGS: Record<ProviderApiId, ProviderApiConfig> = {
|
|
|
1400
1439
|
{ label: "Search messages", method: "GET", path: "/search.messages" },
|
|
1401
1440
|
{ label: "Post message", method: "POST", path: "/chat.postMessage" },
|
|
1402
1441
|
],
|
|
1442
|
+
notes: [
|
|
1443
|
+
"Bot-token reads must not call conversations.join implicitly. A bot can read only conversations it is already a member of with the required history scope.",
|
|
1444
|
+
"search.messages requires a compatible user token; do not assume a bot token can use it. Use conversations.history for channel-scoped bot reads.",
|
|
1445
|
+
],
|
|
1446
|
+
corpusRecipes: [
|
|
1447
|
+
{
|
|
1448
|
+
label: "Search complete Slack channel history",
|
|
1449
|
+
useWhen:
|
|
1450
|
+
"Use for all-message, mention, phrase, or absence-sensitive searches in one known Slack conversation without one agent turn per cursor page.",
|
|
1451
|
+
workflow: [
|
|
1452
|
+
"Resolve the exact channel id without joining or mutating membership.",
|
|
1453
|
+
"Start provider-corpus-job with mode=paginated-search against conversations.history, bounded by oldest/latest when possible.",
|
|
1454
|
+
"Pass response_metadata.next_cursor back as cursor and let quota_wait pause/resume rate-limited installations.",
|
|
1455
|
+
"Report channel id, time bounds, pages, messages searched, matches, and is_limited or access gaps.",
|
|
1456
|
+
],
|
|
1457
|
+
request: {
|
|
1458
|
+
method: "GET",
|
|
1459
|
+
path: "/conversations.history",
|
|
1460
|
+
query: { channel: "<channel-id>" },
|
|
1461
|
+
},
|
|
1462
|
+
pagination: {
|
|
1463
|
+
itemsPath: "messages",
|
|
1464
|
+
nextCursorPath: "response_metadata.next_cursor",
|
|
1465
|
+
cursorParam: "cursor",
|
|
1466
|
+
maxPages: 500,
|
|
1467
|
+
},
|
|
1468
|
+
search: {
|
|
1469
|
+
textPaths: ["text", "blocks", "attachments"],
|
|
1470
|
+
idPaths: ["ts", "client_msg_id"],
|
|
1471
|
+
metadataPaths: ["ts", "user", "thread_ts", "type", "subtype"],
|
|
1472
|
+
},
|
|
1473
|
+
},
|
|
1474
|
+
],
|
|
1403
1475
|
},
|
|
1404
1476
|
stripe: {
|
|
1405
1477
|
id: "stripe",
|
|
@@ -1690,60 +1762,66 @@ export async function executeProviderApiRequest(
|
|
|
1690
1762
|
// --- fetchAllPages mode ---
|
|
1691
1763
|
if (args.fetchAllPages) {
|
|
1692
1764
|
const pageCfg = args.fetchAllPages;
|
|
1693
|
-
const {
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1765
|
+
const {
|
|
1766
|
+
items,
|
|
1767
|
+
pageCount,
|
|
1768
|
+
lastStatus,
|
|
1769
|
+
lastContentType,
|
|
1770
|
+
truncated,
|
|
1771
|
+
nextCursor,
|
|
1772
|
+
} = await fetchAllPages(pageCfg, async (extra) => {
|
|
1773
|
+
const queryWithCursor = extra?.query
|
|
1774
|
+
? mergeQueryObjects(
|
|
1775
|
+
substituteUnknown(args.query, placeholders),
|
|
1776
|
+
extra.query,
|
|
1777
|
+
)
|
|
1778
|
+
: substituteUnknown(args.query, placeholders);
|
|
1779
|
+
const pageUrl = buildProviderUrl({
|
|
1780
|
+
config,
|
|
1781
|
+
baseUrl,
|
|
1782
|
+
rawPath: substituteString(args.path, placeholders),
|
|
1783
|
+
query: queryWithCursor,
|
|
1784
|
+
});
|
|
1785
|
+
const bodyWithCursor = extra?.bodyCursor
|
|
1786
|
+
? setValueAtPath(
|
|
1787
|
+
substituteUnknown(args.body, placeholders),
|
|
1788
|
+
extra.bodyCursor.path,
|
|
1789
|
+
extra.bodyCursor.value,
|
|
1790
|
+
)
|
|
1791
|
+
: substituteUnknown(args.body, placeholders);
|
|
1792
|
+
const pageBody = prepareBody(bodyWithCursor, headers);
|
|
1793
|
+
const requestKey = createProviderRequestDedupeKey({
|
|
1794
|
+
method,
|
|
1795
|
+
url: pageUrl.href,
|
|
1796
|
+
body: pageBody,
|
|
1797
|
+
headers,
|
|
1798
|
+
});
|
|
1799
|
+
const resp = await fetchWithTimeout(pageUrl.href, {
|
|
1800
|
+
method,
|
|
1801
|
+
headers,
|
|
1802
|
+
body: pageBody,
|
|
1803
|
+
maxBytes: effectiveMaxBytes,
|
|
1804
|
+
timeoutMs: clampTimeout(args.timeoutMs),
|
|
1805
|
+
secretValues: auth.secretValues,
|
|
1806
|
+
quota: {
|
|
1807
|
+
identity: quotaIdentity,
|
|
1722
1808
|
method,
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
identity: quotaIdentity,
|
|
1730
|
-
method,
|
|
1731
|
-
target: describeProviderRequestTarget(
|
|
1732
|
-
pageUrl.href,
|
|
1733
|
-
auth.secretValues,
|
|
1734
|
-
),
|
|
1735
|
-
requestKey,
|
|
1736
|
-
},
|
|
1737
|
-
});
|
|
1738
|
-
return {
|
|
1739
|
-
text:
|
|
1740
|
-
resp.text ??
|
|
1741
|
-
(resp.json !== undefined ? JSON.stringify(resp.json) : ""),
|
|
1742
|
-
contentType: resp.contentType,
|
|
1743
|
-
status: resp.status,
|
|
1744
|
-
ok: resp.ok,
|
|
1745
|
-
};
|
|
1809
|
+
target: describeProviderRequestTarget(
|
|
1810
|
+
pageUrl.href,
|
|
1811
|
+
auth.secretValues,
|
|
1812
|
+
),
|
|
1813
|
+
requestKey,
|
|
1814
|
+
},
|
|
1746
1815
|
});
|
|
1816
|
+
return {
|
|
1817
|
+
text:
|
|
1818
|
+
resp.text ??
|
|
1819
|
+
(resp.json !== undefined ? JSON.stringify(resp.json) : ""),
|
|
1820
|
+
contentType: resp.contentType,
|
|
1821
|
+
status: resp.status,
|
|
1822
|
+
ok: resp.ok,
|
|
1823
|
+
};
|
|
1824
|
+
});
|
|
1747
1825
|
|
|
1748
1826
|
const allItemsJson = JSON.stringify(items, null, 2);
|
|
1749
1827
|
const metadata = {
|
|
@@ -1751,6 +1829,8 @@ export async function executeProviderApiRequest(
|
|
|
1751
1829
|
pagesRead: pageCount,
|
|
1752
1830
|
totalItems: Array.isArray(items) ? items.length : 0,
|
|
1753
1831
|
lastStatus,
|
|
1832
|
+
truncated,
|
|
1833
|
+
nextCursor,
|
|
1754
1834
|
};
|
|
1755
1835
|
|
|
1756
1836
|
if (args.saveToFile) {
|
|
@@ -2642,57 +2722,63 @@ async function executeCustomProviderApiRequest(
|
|
|
2642
2722
|
// --- fetchAllPages mode (same cursor pagination as built-in providers) ---
|
|
2643
2723
|
if (args.fetchAllPages) {
|
|
2644
2724
|
const pageCfg = args.fetchAllPages;
|
|
2645
|
-
const {
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2725
|
+
const {
|
|
2726
|
+
items,
|
|
2727
|
+
pageCount,
|
|
2728
|
+
lastStatus,
|
|
2729
|
+
lastContentType,
|
|
2730
|
+
truncated,
|
|
2731
|
+
nextCursor,
|
|
2732
|
+
} = await fetchAllPages(pageCfg, async (extra) => {
|
|
2733
|
+
const queryWithCursor = extra?.query
|
|
2734
|
+
? mergeQueryObjects(args.query, extra.query)
|
|
2735
|
+
: args.query;
|
|
2736
|
+
const pageUrl = buildProviderUrl({
|
|
2737
|
+
config: syntheticConfig,
|
|
2738
|
+
baseUrl,
|
|
2739
|
+
rawPath: args.path,
|
|
2740
|
+
query: queryWithCursor,
|
|
2741
|
+
});
|
|
2742
|
+
const bodyWithCursor = extra?.bodyCursor
|
|
2743
|
+
? setValueAtPath(
|
|
2744
|
+
args.body,
|
|
2745
|
+
extra.bodyCursor.path,
|
|
2746
|
+
extra.bodyCursor.value,
|
|
2747
|
+
)
|
|
2748
|
+
: args.body;
|
|
2749
|
+
const pageBody = prepareBody(bodyWithCursor, headers);
|
|
2750
|
+
const requestKey = createProviderRequestDedupeKey({
|
|
2751
|
+
method,
|
|
2752
|
+
url: pageUrl.href,
|
|
2753
|
+
body: pageBody,
|
|
2754
|
+
headers,
|
|
2755
|
+
});
|
|
2756
|
+
const resp = await fetchWithTimeout(pageUrl.href, {
|
|
2757
|
+
method,
|
|
2758
|
+
headers,
|
|
2759
|
+
body: pageBody,
|
|
2760
|
+
maxBytes: effectiveMaxBytes,
|
|
2761
|
+
timeoutMs: clampTimeout(args.timeoutMs),
|
|
2762
|
+
secretValues: auth.secretValues,
|
|
2763
|
+
quota: {
|
|
2764
|
+
identity: quotaIdentity,
|
|
2671
2765
|
method,
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
identity: quotaIdentity,
|
|
2679
|
-
method,
|
|
2680
|
-
target: describeProviderRequestTarget(
|
|
2681
|
-
pageUrl.href,
|
|
2682
|
-
auth.secretValues,
|
|
2683
|
-
),
|
|
2684
|
-
requestKey,
|
|
2685
|
-
},
|
|
2686
|
-
});
|
|
2687
|
-
return {
|
|
2688
|
-
text:
|
|
2689
|
-
resp.text ??
|
|
2690
|
-
(resp.json !== undefined ? JSON.stringify(resp.json) : ""),
|
|
2691
|
-
contentType: resp.contentType,
|
|
2692
|
-
status: resp.status,
|
|
2693
|
-
ok: resp.ok,
|
|
2694
|
-
};
|
|
2766
|
+
target: describeProviderRequestTarget(
|
|
2767
|
+
pageUrl.href,
|
|
2768
|
+
auth.secretValues,
|
|
2769
|
+
),
|
|
2770
|
+
requestKey,
|
|
2771
|
+
},
|
|
2695
2772
|
});
|
|
2773
|
+
return {
|
|
2774
|
+
text:
|
|
2775
|
+
resp.text ??
|
|
2776
|
+
(resp.json !== undefined ? JSON.stringify(resp.json) : ""),
|
|
2777
|
+
contentType: resp.contentType,
|
|
2778
|
+
status: resp.status,
|
|
2779
|
+
ok: resp.ok,
|
|
2780
|
+
};
|
|
2781
|
+
});
|
|
2696
2782
|
|
|
2697
2783
|
const allItemsJson = JSON.stringify(items, null, 2);
|
|
2698
2784
|
const metadata = {
|
|
@@ -2704,6 +2790,8 @@ async function executeCustomProviderApiRequest(
|
|
|
2704
2790
|
pagesRead: pageCount,
|
|
2705
2791
|
totalItems: Array.isArray(items) ? items.length : 0,
|
|
2706
2792
|
lastStatus,
|
|
2793
|
+
truncated,
|
|
2794
|
+
nextCursor,
|
|
2707
2795
|
};
|
|
2708
2796
|
|
|
2709
2797
|
if (args.saveToFile) {
|
|
@@ -5146,6 +5234,8 @@ async function fetchAllPages(
|
|
|
5146
5234
|
pageCount: number;
|
|
5147
5235
|
lastStatus: number;
|
|
5148
5236
|
lastContentType: string | null;
|
|
5237
|
+
truncated: boolean;
|
|
5238
|
+
nextCursor: string | null;
|
|
5149
5239
|
}> {
|
|
5150
5240
|
const maxPages = Math.min(
|
|
5151
5241
|
Number.isFinite(config.maxPages) && config.maxPages! > 0
|
|
@@ -5159,6 +5249,7 @@ async function fetchAllPages(
|
|
|
5159
5249
|
let pageCount = 0;
|
|
5160
5250
|
let lastStatus = 0;
|
|
5161
5251
|
let lastContentType: string | null = null;
|
|
5252
|
+
let truncated = false;
|
|
5162
5253
|
|
|
5163
5254
|
if (!config.cursorParam && !config.cursorBodyPath) {
|
|
5164
5255
|
throw new Error(
|
|
@@ -5224,12 +5315,21 @@ async function fetchAllPages(
|
|
|
5224
5315
|
nextCursor === null ||
|
|
5225
5316
|
nextCursor === cursor
|
|
5226
5317
|
) {
|
|
5318
|
+
truncated = false;
|
|
5227
5319
|
break;
|
|
5228
5320
|
}
|
|
5229
5321
|
cursor = String(nextCursor);
|
|
5322
|
+
truncated = pageCount >= maxPages;
|
|
5230
5323
|
}
|
|
5231
5324
|
|
|
5232
|
-
return {
|
|
5325
|
+
return {
|
|
5326
|
+
items,
|
|
5327
|
+
pageCount,
|
|
5328
|
+
lastStatus,
|
|
5329
|
+
lastContentType,
|
|
5330
|
+
truncated,
|
|
5331
|
+
nextCursor: truncated ? (cursor ?? null) : null,
|
|
5332
|
+
};
|
|
5233
5333
|
}
|
|
5234
5334
|
|
|
5235
5335
|
function fingerprint(value: string): string {
|