@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
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
// Apollo.io contact & company enrichment API helper
|
|
2
|
-
// Search people, enrich contacts, search/enrich organizations
|
|
3
|
-
|
|
4
|
-
import { resolveCredential } from "./credentials";
|
|
5
|
-
import {
|
|
6
|
-
requireRequestCredentialContext,
|
|
7
|
-
scopedCredentialCacheKey,
|
|
8
|
-
} from "./credentials-context";
|
|
9
|
-
|
|
10
|
-
const API_BASE = "https://api.apollo.io";
|
|
11
|
-
|
|
12
|
-
const cache = new Map<string, { data: unknown; ts: number }>();
|
|
13
|
-
const CACHE_TTL_MS = 10 * 60 * 1000;
|
|
14
|
-
const MAX_CACHE = 120;
|
|
15
|
-
|
|
16
|
-
async function getApiKey(): Promise<string> {
|
|
17
|
-
const ctx = requireRequestCredentialContext("APOLLO_API_KEY");
|
|
18
|
-
const key = await resolveCredential("APOLLO_API_KEY", ctx);
|
|
19
|
-
if (!key) throw new Error("APOLLO_API_KEY not configured");
|
|
20
|
-
return key;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async function apiPost<T>(
|
|
24
|
-
path: string,
|
|
25
|
-
body: Record<string, unknown>,
|
|
26
|
-
cacheKey?: string,
|
|
27
|
-
): Promise<T> {
|
|
28
|
-
const key = scopedCredentialCacheKey(
|
|
29
|
-
cacheKey ?? `POST:${path}:${JSON.stringify(body)}`,
|
|
30
|
-
"APOLLO_API_KEY",
|
|
31
|
-
);
|
|
32
|
-
const cached = cache.get(key);
|
|
33
|
-
if (cached && Date.now() - cached.ts < CACHE_TTL_MS) {
|
|
34
|
-
return cached.data as T;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const res = await fetch(`${API_BASE}${path}`, {
|
|
38
|
-
method: "POST",
|
|
39
|
-
headers: {
|
|
40
|
-
"Content-Type": "application/json",
|
|
41
|
-
"x-api-key": await getApiKey(),
|
|
42
|
-
},
|
|
43
|
-
body: JSON.stringify(body),
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
if (!res.ok) {
|
|
47
|
-
const text = await res.text();
|
|
48
|
-
throw new Error(`Apollo API error ${res.status}: ${text}`);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const data = await res.json();
|
|
52
|
-
|
|
53
|
-
if (cache.size >= MAX_CACHE) {
|
|
54
|
-
const oldest = cache.keys().next().value;
|
|
55
|
-
if (oldest) cache.delete(oldest);
|
|
56
|
-
}
|
|
57
|
-
cache.set(key, { data, ts: Date.now() });
|
|
58
|
-
|
|
59
|
-
return data as T;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export interface ApolloPerson {
|
|
63
|
-
id: string;
|
|
64
|
-
first_name?: string;
|
|
65
|
-
last_name?: string;
|
|
66
|
-
name?: string;
|
|
67
|
-
email?: string;
|
|
68
|
-
title?: string;
|
|
69
|
-
organization_name?: string;
|
|
70
|
-
linkedin_url?: string;
|
|
71
|
-
city?: string;
|
|
72
|
-
state?: string;
|
|
73
|
-
country?: string;
|
|
74
|
-
[key: string]: unknown;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface ApolloOrganization {
|
|
78
|
-
id: string;
|
|
79
|
-
name?: string;
|
|
80
|
-
domain?: string;
|
|
81
|
-
industry?: string;
|
|
82
|
-
estimated_num_employees?: number;
|
|
83
|
-
linkedin_url?: string;
|
|
84
|
-
founded_year?: number;
|
|
85
|
-
[key: string]: unknown;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export async function searchPeople(params: {
|
|
89
|
-
q_person_name?: string;
|
|
90
|
-
q_organization_name?: string;
|
|
91
|
-
person_titles?: string[];
|
|
92
|
-
person_locations?: string[];
|
|
93
|
-
per_page?: number;
|
|
94
|
-
page?: number;
|
|
95
|
-
}): Promise<{ people: ApolloPerson[]; total: number }> {
|
|
96
|
-
const body: Record<string, unknown> = {
|
|
97
|
-
per_page: params.per_page ?? 25,
|
|
98
|
-
page: params.page ?? 1,
|
|
99
|
-
};
|
|
100
|
-
if (params.q_person_name) body.q_person_name = params.q_person_name;
|
|
101
|
-
if (params.q_organization_name)
|
|
102
|
-
body.q_organization_name = params.q_organization_name;
|
|
103
|
-
if (params.person_titles) body.person_titles = params.person_titles;
|
|
104
|
-
if (params.person_locations) body.person_locations = params.person_locations;
|
|
105
|
-
|
|
106
|
-
const data = await apiPost<{
|
|
107
|
-
people?: ApolloPerson[];
|
|
108
|
-
pagination?: { total_entries?: number };
|
|
109
|
-
}>("/v1/mixed_people/search", body);
|
|
110
|
-
return {
|
|
111
|
-
people: data.people ?? [],
|
|
112
|
-
total: data.pagination?.total_entries ?? 0,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export async function enrichPerson(
|
|
117
|
-
email: string,
|
|
118
|
-
): Promise<ApolloPerson | null> {
|
|
119
|
-
try {
|
|
120
|
-
const data = await apiPost<{ person?: ApolloPerson }>(
|
|
121
|
-
"/v1/people/match",
|
|
122
|
-
{ email },
|
|
123
|
-
`enrich:person:${email}`,
|
|
124
|
-
);
|
|
125
|
-
return data.person ?? null;
|
|
126
|
-
} catch {
|
|
127
|
-
return null;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export async function searchOrganizations(
|
|
132
|
-
query: string,
|
|
133
|
-
params?: {
|
|
134
|
-
per_page?: number;
|
|
135
|
-
page?: number;
|
|
136
|
-
},
|
|
137
|
-
): Promise<{ organizations: ApolloOrganization[]; total: number }> {
|
|
138
|
-
const body: Record<string, unknown> = {
|
|
139
|
-
q_organization_name: query,
|
|
140
|
-
per_page: params?.per_page ?? 25,
|
|
141
|
-
page: params?.page ?? 1,
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
const data = await apiPost<{
|
|
145
|
-
organizations?: ApolloOrganization[];
|
|
146
|
-
pagination?: { total_entries?: number };
|
|
147
|
-
}>("/v1/mixed_companies/search", body);
|
|
148
|
-
return {
|
|
149
|
-
organizations: data.organizations ?? [],
|
|
150
|
-
total: data.pagination?.total_entries ?? 0,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export async function enrichOrganization(
|
|
155
|
-
domain: string,
|
|
156
|
-
): Promise<ApolloOrganization | null> {
|
|
157
|
-
try {
|
|
158
|
-
const data = await apiPost<{ organization?: ApolloOrganization }>(
|
|
159
|
-
"/v1/organizations/enrich",
|
|
160
|
-
{ domain },
|
|
161
|
-
`enrich:org:${domain}`,
|
|
162
|
-
);
|
|
163
|
-
return data.organization ?? null;
|
|
164
|
-
} catch {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
// Common Room community platform API helper
|
|
2
|
-
// Fetches community members, activities, and segments
|
|
3
|
-
|
|
4
|
-
import { resolveCredential } from "./credentials";
|
|
5
|
-
import {
|
|
6
|
-
requireRequestCredentialContext,
|
|
7
|
-
scopedCredentialCacheKey,
|
|
8
|
-
} from "./credentials-context";
|
|
9
|
-
|
|
10
|
-
const API_BASE = "https://api.commonroom.io/community/v1";
|
|
11
|
-
|
|
12
|
-
const cache = new Map<string, { data: unknown; ts: number }>();
|
|
13
|
-
const CACHE_TTL_MS = 10 * 60 * 1000;
|
|
14
|
-
const MAX_CACHE = 120;
|
|
15
|
-
|
|
16
|
-
async function getToken(): Promise<string> {
|
|
17
|
-
const ctx = requireRequestCredentialContext("COMMONROOM_API_TOKEN");
|
|
18
|
-
const token = await resolveCredential("COMMONROOM_API_TOKEN", ctx);
|
|
19
|
-
if (!token) throw new Error("COMMONROOM_API_TOKEN not configured");
|
|
20
|
-
return token;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async function apiGet<T>(path: string, cacheKey?: string): Promise<T> {
|
|
24
|
-
const key = scopedCredentialCacheKey(
|
|
25
|
-
cacheKey ?? path,
|
|
26
|
-
"COMMONROOM_API_TOKEN",
|
|
27
|
-
);
|
|
28
|
-
const cached = cache.get(key);
|
|
29
|
-
if (cached && Date.now() - cached.ts < CACHE_TTL_MS) {
|
|
30
|
-
return cached.data as T;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const res = await fetch(`${API_BASE}${path}`, {
|
|
34
|
-
headers: {
|
|
35
|
-
Authorization: `Bearer ${await getToken()}`,
|
|
36
|
-
"Content-Type": "application/json",
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
if (!res.ok) {
|
|
41
|
-
const text = await res.text();
|
|
42
|
-
throw new Error(`Common Room API error ${res.status}: ${text}`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const data = await res.json();
|
|
46
|
-
|
|
47
|
-
if (cache.size >= MAX_CACHE) {
|
|
48
|
-
const oldest = cache.keys().next().value;
|
|
49
|
-
if (oldest) cache.delete(oldest);
|
|
50
|
-
}
|
|
51
|
-
cache.set(key, { data, ts: Date.now() });
|
|
52
|
-
|
|
53
|
-
return data as T;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async function apiPost<T>(
|
|
57
|
-
path: string,
|
|
58
|
-
body: unknown,
|
|
59
|
-
cacheKey?: string,
|
|
60
|
-
): Promise<T> {
|
|
61
|
-
const key = scopedCredentialCacheKey(
|
|
62
|
-
cacheKey ?? `POST:${path}:${JSON.stringify(body)}`,
|
|
63
|
-
"COMMONROOM_API_TOKEN",
|
|
64
|
-
);
|
|
65
|
-
const cached = cache.get(key);
|
|
66
|
-
if (cached && Date.now() - cached.ts < CACHE_TTL_MS) {
|
|
67
|
-
return cached.data as T;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const res = await fetch(`${API_BASE}${path}`, {
|
|
71
|
-
method: "POST",
|
|
72
|
-
headers: {
|
|
73
|
-
Authorization: `Bearer ${await getToken()}`,
|
|
74
|
-
"Content-Type": "application/json",
|
|
75
|
-
},
|
|
76
|
-
body: JSON.stringify(body),
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
if (!res.ok) {
|
|
80
|
-
const text = await res.text();
|
|
81
|
-
throw new Error(`Common Room API error ${res.status}: ${text}`);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const data = await res.json();
|
|
85
|
-
|
|
86
|
-
if (cache.size >= MAX_CACHE) {
|
|
87
|
-
const oldest = cache.keys().next().value;
|
|
88
|
-
if (oldest) cache.delete(oldest);
|
|
89
|
-
}
|
|
90
|
-
cache.set(key, { data, ts: Date.now() });
|
|
91
|
-
|
|
92
|
-
return data as T;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export interface CommunityMember {
|
|
96
|
-
id: string;
|
|
97
|
-
fullName?: string;
|
|
98
|
-
email?: string;
|
|
99
|
-
organization?: string;
|
|
100
|
-
socialProfiles?: Record<string, string>;
|
|
101
|
-
lastActivityAt?: string;
|
|
102
|
-
[key: string]: unknown;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export async function getTokenStatus(): Promise<unknown> {
|
|
106
|
-
return apiGet("/status");
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export async function getMemberByEmail(
|
|
110
|
-
email: string,
|
|
111
|
-
): Promise<CommunityMember | null> {
|
|
112
|
-
try {
|
|
113
|
-
const data = await apiPost<CommunityMember>(
|
|
114
|
-
"/members/search",
|
|
115
|
-
{ email },
|
|
116
|
-
`member:${email}`,
|
|
117
|
-
);
|
|
118
|
-
return data;
|
|
119
|
-
} catch {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export async function getMembers(params?: {
|
|
125
|
-
query?: string;
|
|
126
|
-
cursor?: string;
|
|
127
|
-
limit?: number;
|
|
128
|
-
}): Promise<{ items: CommunityMember[]; cursor?: string }> {
|
|
129
|
-
const body: Record<string, unknown> = {};
|
|
130
|
-
if (params?.query) body.query = params.query;
|
|
131
|
-
if (params?.cursor) body.cursor = params.cursor;
|
|
132
|
-
if (params?.limit) body.limit = params.limit;
|
|
133
|
-
|
|
134
|
-
return apiPost("/members/search", body);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export async function getActivityForMember(
|
|
138
|
-
memberId: string,
|
|
139
|
-
): Promise<unknown[]> {
|
|
140
|
-
const data = await apiGet<{ items?: unknown[] }>(
|
|
141
|
-
`/members/${memberId}/activities`,
|
|
142
|
-
);
|
|
143
|
-
return data.items ?? (data as any);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export async function getSegments(): Promise<unknown[]> {
|
|
147
|
-
const data = await apiGet<{ items?: unknown[] }>("/segments");
|
|
148
|
-
return data.items ?? (data as any);
|
|
149
|
-
}
|