@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
|
@@ -117,20 +117,29 @@ event_name = '$ai_sentiment'
|
|
|
117
117
|
|
|
118
118
|
Useful query fields live in `properties`:
|
|
119
119
|
|
|
120
|
-
| Property | Description
|
|
121
|
-
| ------------------------------------------------ |
|
|
122
|
-
| `$ai_trace_id`, `run_id` | Agent run id
|
|
123
|
-
| `$ai_session_id`, `thread_id` | Chat/thread id, when available
|
|
124
|
-
| `$ai_model`, `model` | Model used
|
|
125
|
-
| `$ai_provider`, `provider` | Engine/provider name
|
|
126
|
-
| `$ai_input_tokens`, `input_tokens` | Input tokens
|
|
127
|
-
| `$ai_output_tokens`, `output_tokens` | Output tokens
|
|
128
|
-
| `cache_read_tokens`, `cache_write_tokens` | Prompt-cache token counts
|
|
129
|
-
| `$ai_total_cost_usd`, `cost_usd` | Estimated run cost in USD
|
|
130
|
-
| `cost_cents_x100` | Estimated run cost in centicents
|
|
131
|
-
| `$ai_latency`, `duration_ms` | Run duration in seconds / milliseconds
|
|
132
|
-
| `tool_calls`, `successful_tools`, `failed_tools` |
|
|
133
|
-
|
|
|
120
|
+
| Property | Description |
|
|
121
|
+
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
|
|
122
|
+
| `$ai_trace_id`, `run_id` | Agent run id |
|
|
123
|
+
| `$ai_session_id`, `thread_id` | Chat/thread id, when available |
|
|
124
|
+
| `$ai_model`, `model` | Model used |
|
|
125
|
+
| `$ai_provider`, `provider` | Engine/provider name |
|
|
126
|
+
| `$ai_input_tokens`, `input_tokens` | Input tokens |
|
|
127
|
+
| `$ai_output_tokens`, `output_tokens` | Output tokens |
|
|
128
|
+
| `cache_read_tokens`, `cache_write_tokens` | Prompt-cache token counts |
|
|
129
|
+
| `$ai_total_cost_usd`, `cost_usd` | Estimated run cost in USD |
|
|
130
|
+
| `cost_cents_x100` | Estimated run cost in centicents |
|
|
131
|
+
| `$ai_latency`, `duration_ms` | Run duration in seconds / milliseconds |
|
|
132
|
+
| `tool_calls`, `successful_tools`, `failed_tools` | Complete tool-call counts |
|
|
133
|
+
| `tools`, `tools_truncated` | First 50 tool names, offsets, durations, statuses, and error classes, including interrupted calls |
|
|
134
|
+
| `delegated`, `delegation_protocol`, `caller_app` | Delegated-run attribution |
|
|
135
|
+
| `a2a_task_id`, `parent_run_id`, `parent_turn_id` | Cross-app trace linkage, when available |
|
|
136
|
+
| `$ai_is_error`, `status`, `$ai_error` | Error status and message, when applicable |
|
|
137
|
+
|
|
138
|
+
The `tools` array never includes tool arguments, results, or error messages.
|
|
139
|
+
Use `tools_truncated` with the complete `tool_calls` count when a run exceeds
|
|
140
|
+
the 50-entry detail cap.
|
|
141
|
+
Failed runs still emit a generation row with zero or known usage so delegated
|
|
142
|
+
timeouts and setup failures remain visible.
|
|
134
143
|
|
|
135
144
|
Explicit thumbs feedback is content-free and uses these `$ai_feedback`
|
|
136
145
|
properties:
|
|
@@ -29,7 +29,11 @@ Events tracked by application instrumentation and stored in the configured appli
|
|
|
29
29
|
`$ai_model`, `$ai_provider`, `$ai_input_tokens`, `$ai_output_tokens`,
|
|
30
30
|
`$ai_latency`, `$ai_total_cost_usd`, `run_id`, `thread_id`,
|
|
31
31
|
`cost_cents_x100`, `duration_ms`, `tool_calls`, `status`, and error fields.
|
|
32
|
-
|
|
32
|
+
A bounded `tools` array records only tool names, relative start times,
|
|
33
|
+
durations, statuses, and coarse error classes; interrupted tools and failed
|
|
34
|
+
runs remain visible, and `tools_truncated` marks runs above the 50-entry cap.
|
|
35
|
+
Delegated runs also include protocol, caller, task, parent-run, and
|
|
36
|
+
parent-turn linkage. Prompt, argument, result, and response content are excluded.
|
|
33
37
|
|
|
34
38
|
### Content Editing
|
|
35
39
|
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
defineEventHandler,
|
|
3
|
+
getQuery,
|
|
4
|
+
getRouterParam,
|
|
5
|
+
setResponseStatus,
|
|
6
|
+
} from "h3";
|
|
2
7
|
|
|
3
8
|
import {
|
|
4
9
|
requireCredential,
|
|
@@ -16,7 +21,10 @@ export const handleContentCalendar = defineEventHandler(async (event) => {
|
|
|
16
21
|
const missing = await requireCredential(event, "NOTION_API_KEY", "Notion");
|
|
17
22
|
if (missing) return missing;
|
|
18
23
|
try {
|
|
19
|
-
const
|
|
24
|
+
const { databaseId } = getQuery(event);
|
|
25
|
+
const entries = await getContentCalendar(
|
|
26
|
+
databaseId as string | undefined,
|
|
27
|
+
);
|
|
20
28
|
return { entries, total: entries.length };
|
|
21
29
|
} catch (err: any) {
|
|
22
30
|
console.error("Notion content-calendar error:", err.message);
|
|
@@ -32,7 +40,10 @@ export const handleContentCalendarSchema = defineEventHandler(async (event) => {
|
|
|
32
40
|
const missing = await requireCredential(event, "NOTION_API_KEY", "Notion");
|
|
33
41
|
if (missing) return missing;
|
|
34
42
|
try {
|
|
35
|
-
const
|
|
43
|
+
const { databaseId } = getQuery(event);
|
|
44
|
+
const schema = await getContentCalendarSchema(
|
|
45
|
+
databaseId as string | undefined,
|
|
46
|
+
);
|
|
36
47
|
return { schema };
|
|
37
48
|
} catch (err: any) {
|
|
38
49
|
console.error("Notion schema error:", err.message);
|
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
runApiHandlerWithContext,
|
|
11
11
|
} from "../lib/credentials";
|
|
12
12
|
import {
|
|
13
|
-
listChannels,
|
|
14
13
|
getChannelHistory,
|
|
15
|
-
searchMessages,
|
|
16
|
-
resolveUsers,
|
|
17
14
|
getTeamInfo,
|
|
15
|
+
listChannelsWithCoverage,
|
|
16
|
+
resolveUsersWithCoverage,
|
|
17
|
+
searchMessages,
|
|
18
18
|
type Workspace,
|
|
19
19
|
type SlackMessage,
|
|
20
20
|
} from "../lib/slack";
|
|
@@ -49,12 +49,21 @@ export const handleSlackTeam = defineEventHandler((event) =>
|
|
|
49
49
|
export const handleSlackChannels = defineEventHandler((event) =>
|
|
50
50
|
runApiHandlerWithContext(event, async () => {
|
|
51
51
|
try {
|
|
52
|
-
const { workspace: workspaceParam } = getQuery(event);
|
|
52
|
+
const { workspace: workspaceParam, cursor } = getQuery(event);
|
|
53
53
|
const workspace = parseWorkspace(workspaceParam as string);
|
|
54
54
|
const missing = await requireSlackCredential(event, workspace);
|
|
55
55
|
if (missing) return missing;
|
|
56
|
-
const
|
|
57
|
-
|
|
56
|
+
const result = await listChannelsWithCoverage(
|
|
57
|
+
workspace,
|
|
58
|
+
cursor as string | undefined,
|
|
59
|
+
);
|
|
60
|
+
return {
|
|
61
|
+
channels: result.channels,
|
|
62
|
+
total: result.total,
|
|
63
|
+
truncated: result.truncated,
|
|
64
|
+
pagination: result.pagination,
|
|
65
|
+
coverage: result.coverage,
|
|
66
|
+
};
|
|
58
67
|
} catch (err: any) {
|
|
59
68
|
console.error("Slack channels error:", err.message);
|
|
60
69
|
setResponseStatus(event, 500);
|
|
@@ -112,15 +121,33 @@ export const handleSlackHistory = defineEventHandler((event) =>
|
|
|
112
121
|
const userIds = result.messages
|
|
113
122
|
.map((m) => m.user)
|
|
114
123
|
.filter((id): id is string => !!id);
|
|
115
|
-
const
|
|
124
|
+
const resolution = await resolveUsersWithCoverage(
|
|
125
|
+
workspace,
|
|
126
|
+
userIds,
|
|
127
|
+
result.messages,
|
|
128
|
+
);
|
|
116
129
|
|
|
117
130
|
const enrichedMessages = enrichMessages(result.messages);
|
|
118
131
|
|
|
119
132
|
return {
|
|
120
133
|
messages: enrichedMessages,
|
|
121
|
-
users,
|
|
134
|
+
users: resolution.users,
|
|
122
135
|
has_more: result.has_more,
|
|
123
136
|
next_cursor: result.next_cursor,
|
|
137
|
+
truncated: result.truncated,
|
|
138
|
+
pagination: result.pagination,
|
|
139
|
+
coverage: {
|
|
140
|
+
...result.coverage,
|
|
141
|
+
coverage_complete:
|
|
142
|
+
result.coverage.coverage_complete &&
|
|
143
|
+
resolution.coverage.coverage_complete,
|
|
144
|
+
truncated: result.coverage.truncated || resolution.coverage.truncated,
|
|
145
|
+
truncation_reasons: [
|
|
146
|
+
...result.coverage.truncation_reasons,
|
|
147
|
+
...resolution.coverage.truncation_reasons,
|
|
148
|
+
],
|
|
149
|
+
authors: resolution.coverage,
|
|
150
|
+
},
|
|
124
151
|
};
|
|
125
152
|
} catch (err: any) {
|
|
126
153
|
console.error("Slack history error:", err.message);
|
|
@@ -165,29 +192,45 @@ export const handleSlackMultiHistory = defineEventHandler((event) =>
|
|
|
165
192
|
? JSON.parse(cursorsParam as string)
|
|
166
193
|
: {};
|
|
167
194
|
|
|
168
|
-
// Fetch pageSize messages from each channel in parallel
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
195
|
+
// Fetch pageSize messages from each channel in parallel while preserving
|
|
196
|
+
// partial results when the bot is not invited to one of the channels.
|
|
197
|
+
const channelResults = await Promise.allSettled(
|
|
198
|
+
channelIds.map((channelId) =>
|
|
199
|
+
getChannelHistory(workspace, channelId, pageSize, cursors[channelId]),
|
|
172
200
|
),
|
|
173
201
|
);
|
|
202
|
+
const successfulResults = channelResults.flatMap((entry, index) =>
|
|
203
|
+
entry.status === "fulfilled"
|
|
204
|
+
? [{ channelId: channelIds[index], result: entry.value }]
|
|
205
|
+
: [],
|
|
206
|
+
);
|
|
207
|
+
const failedChannelIds = channelResults.flatMap((entry, index) =>
|
|
208
|
+
entry.status === "rejected" ? [channelIds[index]] : [],
|
|
209
|
+
);
|
|
174
210
|
|
|
175
211
|
// Tag messages with channel name and merge
|
|
176
|
-
const allMessages: (SlackMessage & {
|
|
212
|
+
const allMessages: (SlackMessage & {
|
|
213
|
+
channel_id: string;
|
|
214
|
+
channel_name: string;
|
|
215
|
+
})[] = [];
|
|
177
216
|
const perChannelHasMore: Record<string, boolean> = {};
|
|
178
217
|
const nextCursors: Record<string, string> = {};
|
|
179
218
|
|
|
180
|
-
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
perChannelHasMore[
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
219
|
+
successfulResults.forEach(({ channelId, result }) => {
|
|
220
|
+
const chName =
|
|
221
|
+
channelNamesList[channelIds.indexOf(channelId)] || channelId;
|
|
222
|
+
perChannelHasMore[channelId] = result.has_more;
|
|
223
|
+
for (const message of result.messages) {
|
|
224
|
+
allMessages.push({
|
|
225
|
+
...message,
|
|
226
|
+
channel_id: channelId,
|
|
227
|
+
channel_name: chName,
|
|
228
|
+
});
|
|
189
229
|
}
|
|
190
230
|
});
|
|
231
|
+
failedChannelIds.forEach((channelId) => {
|
|
232
|
+
perChannelHasMore[channelId] = true;
|
|
233
|
+
});
|
|
191
234
|
|
|
192
235
|
// Sort merged by timestamp (newest first)
|
|
193
236
|
allMessages.sort((a, b) => parseFloat(b.ts) - parseFloat(a.ts));
|
|
@@ -195,26 +238,112 @@ export const handleSlackMultiHistory = defineEventHandler((event) =>
|
|
|
195
238
|
// Take top pageSize
|
|
196
239
|
const pageMessages = allMessages.slice(0, pageSize);
|
|
197
240
|
|
|
241
|
+
const emittedByChannel = new Map<string, SlackMessage[]>();
|
|
242
|
+
for (const message of pageMessages) {
|
|
243
|
+
const emitted = emittedByChannel.get(message.channel_id) ?? [];
|
|
244
|
+
emitted.push(message);
|
|
245
|
+
emittedByChannel.set(message.channel_id, emitted);
|
|
246
|
+
}
|
|
247
|
+
for (const channelId of channelIds) {
|
|
248
|
+
const emitted = emittedByChannel.get(channelId);
|
|
249
|
+
const nextCursor = emitted?.[emitted.length - 1]?.ts;
|
|
250
|
+
if (nextCursor) nextCursors[channelId] = nextCursor;
|
|
251
|
+
else if (cursors[channelId])
|
|
252
|
+
nextCursors[channelId] = cursors[channelId];
|
|
253
|
+
}
|
|
254
|
+
|
|
198
255
|
// Enrich text from blocks
|
|
199
|
-
const enrichedMessages =
|
|
256
|
+
const enrichedMessages = pageMessages.map((message) => {
|
|
257
|
+
const enriched = enrichMessages([message])[0] ?? message;
|
|
258
|
+
const { channel_id: _channelId, ...rest } = enriched as typeof message;
|
|
259
|
+
return rest;
|
|
260
|
+
});
|
|
200
261
|
|
|
201
262
|
// Resolve users
|
|
202
263
|
const userIds = enrichedMessages
|
|
203
264
|
.map((m) => m.user)
|
|
204
265
|
.filter((id): id is string => !!id);
|
|
205
|
-
const
|
|
266
|
+
const resolution = await resolveUsersWithCoverage(
|
|
267
|
+
workspace,
|
|
268
|
+
userIds,
|
|
269
|
+
enrichedMessages,
|
|
270
|
+
);
|
|
206
271
|
|
|
207
272
|
// has_more is true if any channel has more messages
|
|
273
|
+
const providerTruncated = successfulResults.some(
|
|
274
|
+
({ result }) => result.truncated,
|
|
275
|
+
);
|
|
276
|
+
const mergedResultTruncated = allMessages.length > pageSize;
|
|
208
277
|
const hasMore =
|
|
209
|
-
|
|
210
|
-
|
|
278
|
+
providerTruncated ||
|
|
279
|
+
mergedResultTruncated ||
|
|
280
|
+
failedChannelIds.length > 0;
|
|
281
|
+
const truncationReasons = [
|
|
282
|
+
...(providerTruncated ? ["provider_has_more"] : []),
|
|
283
|
+
...(mergedResultTruncated ? ["merged_result_limit"] : []),
|
|
284
|
+
...failedChannelIds.map(
|
|
285
|
+
(channelId) => `channel_fetch_failed:${channelId}`,
|
|
286
|
+
),
|
|
287
|
+
];
|
|
288
|
+
const channelPagination = Object.fromEntries(
|
|
289
|
+
channelResults.map((entry, index) => [
|
|
290
|
+
channelIds[index],
|
|
291
|
+
entry.status === "fulfilled"
|
|
292
|
+
? entry.value.pagination
|
|
293
|
+
: {
|
|
294
|
+
cursor_type: "latest_ts" as const,
|
|
295
|
+
...(cursors[channelIds[index]]
|
|
296
|
+
? { request_cursor: cursors[channelIds[index]] }
|
|
297
|
+
: {}),
|
|
298
|
+
},
|
|
299
|
+
]),
|
|
300
|
+
);
|
|
301
|
+
const channelCoverage = Object.fromEntries(
|
|
302
|
+
channelResults.map((entry, index) => [
|
|
303
|
+
channelIds[index],
|
|
304
|
+
entry.status === "fulfilled"
|
|
305
|
+
? entry.value.coverage
|
|
306
|
+
: {
|
|
307
|
+
requested: pageSize,
|
|
308
|
+
fetched: 0,
|
|
309
|
+
returned: 0,
|
|
310
|
+
pages_fetched: 0,
|
|
311
|
+
coverage_complete: false,
|
|
312
|
+
truncated: true,
|
|
313
|
+
truncation_reasons: [
|
|
314
|
+
`channel_fetch_failed:${channelIds[index]}`,
|
|
315
|
+
],
|
|
316
|
+
},
|
|
317
|
+
]),
|
|
318
|
+
);
|
|
211
319
|
|
|
212
320
|
return {
|
|
213
321
|
messages: enrichedMessages,
|
|
214
|
-
users,
|
|
322
|
+
users: resolution.users,
|
|
215
323
|
has_more: hasMore,
|
|
216
324
|
next_cursors: nextCursors,
|
|
217
325
|
total: allMessages.length,
|
|
326
|
+
truncated: hasMore,
|
|
327
|
+
pagination: {
|
|
328
|
+
cursor_type: "per_channel_latest_ts",
|
|
329
|
+
request_cursors: cursors,
|
|
330
|
+
next_cursors: nextCursors,
|
|
331
|
+
channels: channelPagination,
|
|
332
|
+
},
|
|
333
|
+
coverage: {
|
|
334
|
+
requested: channelIds.length * pageSize,
|
|
335
|
+
fetched: allMessages.length,
|
|
336
|
+
returned: enrichedMessages.length,
|
|
337
|
+
pages_fetched: successfulResults.length,
|
|
338
|
+
coverage_complete: !hasMore && resolution.coverage.coverage_complete,
|
|
339
|
+
truncated: hasMore || resolution.coverage.truncated,
|
|
340
|
+
truncation_reasons: [
|
|
341
|
+
...truncationReasons,
|
|
342
|
+
...resolution.coverage.truncation_reasons,
|
|
343
|
+
],
|
|
344
|
+
channels: channelCoverage,
|
|
345
|
+
authors: resolution.coverage,
|
|
346
|
+
},
|
|
218
347
|
};
|
|
219
348
|
} catch (err: any) {
|
|
220
349
|
console.error("Slack multi-history error:", err.message);
|
|
@@ -242,9 +371,33 @@ export const handleSlackSearch = defineEventHandler((event) =>
|
|
|
242
371
|
const userIds = result.messages
|
|
243
372
|
.map((m) => m.user)
|
|
244
373
|
.filter((id): id is string => !!id);
|
|
245
|
-
const
|
|
374
|
+
const resolution = await resolveUsersWithCoverage(
|
|
375
|
+
workspace,
|
|
376
|
+
userIds,
|
|
377
|
+
result.messages,
|
|
378
|
+
);
|
|
246
379
|
|
|
247
|
-
return {
|
|
380
|
+
return {
|
|
381
|
+
messages: result.messages,
|
|
382
|
+
users: resolution.users,
|
|
383
|
+
total: result.total,
|
|
384
|
+
unsupported: result.unsupported,
|
|
385
|
+
guidance: result.guidance,
|
|
386
|
+
truncated: result.truncated,
|
|
387
|
+
pagination: result.pagination,
|
|
388
|
+
coverage: {
|
|
389
|
+
...result.coverage,
|
|
390
|
+
coverage_complete:
|
|
391
|
+
result.coverage.coverage_complete &&
|
|
392
|
+
resolution.coverage.coverage_complete,
|
|
393
|
+
truncated: result.coverage.truncated || resolution.coverage.truncated,
|
|
394
|
+
truncation_reasons: [
|
|
395
|
+
...result.coverage.truncation_reasons,
|
|
396
|
+
...resolution.coverage.truncation_reasons,
|
|
397
|
+
],
|
|
398
|
+
authors: resolution.coverage,
|
|
399
|
+
},
|
|
400
|
+
};
|
|
248
401
|
} catch (err: any) {
|
|
249
402
|
console.error("Slack search error:", err.message);
|
|
250
403
|
setResponseStatus(event, 500);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
claimAnalyticsAlertRuleEvaluation,
|
|
3
|
-
|
|
3
|
+
ensureDefaultAnalyticsAlertRules,
|
|
4
4
|
evaluateAndNotifyAnalyticsAlertRule,
|
|
5
5
|
listEnabledAnalyticsAlertRules,
|
|
6
6
|
markAnalyticsAlertRuleError,
|
|
@@ -45,8 +45,8 @@ export async function runAnalyticsAlertsOnce(
|
|
|
45
45
|
|
|
46
46
|
try {
|
|
47
47
|
const sweepLimit = maxRulesPerSweep(options.limit);
|
|
48
|
-
await
|
|
49
|
-
console.error("[analytics-alerts] Default
|
|
48
|
+
await ensureDefaultAnalyticsAlertRules().catch((err) => {
|
|
49
|
+
console.error("[analytics-alerts] Default alert seed failed:", err);
|
|
50
50
|
});
|
|
51
51
|
let rules: Awaited<ReturnType<typeof listEnabledAnalyticsAlertRules>>;
|
|
52
52
|
try {
|
|
@@ -43,14 +43,9 @@ export const INITIAL_TOOL_NAMES = [
|
|
|
43
43
|
"query-staged-dataset",
|
|
44
44
|
"list-staged-datasets",
|
|
45
45
|
"account-deep-dive",
|
|
46
|
-
"hubspot-deals",
|
|
47
|
-
"hubspot-records",
|
|
48
|
-
"hubspot-pipelines",
|
|
49
46
|
"gong-calls",
|
|
47
|
+
"gong-native-insights",
|
|
50
48
|
"github-repo-files",
|
|
51
|
-
"jira-search",
|
|
52
|
-
"slack-messages",
|
|
53
|
-
"sentry",
|
|
54
49
|
"list-data-dictionary",
|
|
55
50
|
"navigate",
|
|
56
51
|
];
|
|
@@ -66,6 +61,7 @@ export const PLAN_MODE_ACT_ONLY_TOOLS = new Set([
|
|
|
66
61
|
"hubspot-records",
|
|
67
62
|
"hubspot-pipelines",
|
|
68
63
|
"gong-calls",
|
|
64
|
+
"gong-native-insights",
|
|
69
65
|
"github-repo-files",
|
|
70
66
|
"jira-search",
|
|
71
67
|
"slack-messages",
|