@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.
Files changed (368) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +25 -0
  3. package/corpus/core/package.json +1 -1
  4. package/corpus/core/src/a2a/client.ts +162 -17
  5. package/corpus/core/src/a2a/correlation.ts +50 -0
  6. package/corpus/core/src/a2a/handlers.ts +200 -14
  7. package/corpus/core/src/a2a/index.ts +7 -1
  8. package/corpus/core/src/a2a/invoke.ts +77 -1
  9. package/corpus/core/src/a2a/server.ts +13 -1
  10. package/corpus/core/src/a2a/task-store.ts +146 -6
  11. package/corpus/core/src/a2a/types.ts +32 -0
  12. package/corpus/core/src/action.ts +5 -2
  13. package/corpus/core/src/agent/production-agent.ts +33 -4
  14. package/corpus/core/src/client/AssistantChat.tsx +648 -603
  15. package/corpus/core/src/client/MultiTabAssistantChat.tsx +31 -4
  16. package/corpus/core/src/client/agent-chat-adapter.ts +23 -37
  17. package/corpus/core/src/client/agent-sidebar-state.ts +4 -0
  18. package/corpus/core/src/client/analytics.ts +84 -0
  19. package/corpus/core/src/client/chat/message-components.tsx +94 -22
  20. package/corpus/core/src/client/chat/tool-call-display.tsx +170 -47
  21. package/corpus/core/src/client/chat/use-agent-chat-lifecycle-tracking.ts +74 -0
  22. package/corpus/core/src/client/chat-thread-url.ts +11 -0
  23. package/corpus/core/src/client/error-capture.ts +12 -0
  24. package/corpus/core/src/client/extensions/ExtensionSlot.tsx +37 -1
  25. package/corpus/core/src/client/index.ts +2 -0
  26. package/corpus/core/src/client/route-chunk-recovery.ts +20 -8
  27. package/corpus/core/src/client/session-replay.ts +31 -0
  28. package/corpus/core/src/client/use-run-stuck-detection.ts +27 -1
  29. package/corpus/core/src/db/client.ts +55 -0
  30. package/corpus/core/src/extensions/actions.ts +2 -14
  31. package/corpus/core/src/extensions/store.ts +1 -1
  32. package/corpus/core/src/localization/default-messages.ts +3 -0
  33. package/corpus/core/src/mcp/build-server.ts +2 -2
  34. package/corpus/core/src/observability/traces.ts +172 -19
  35. package/corpus/core/src/progress/actions.ts +4 -2
  36. package/corpus/core/src/provider-api/index.ts +205 -105
  37. package/corpus/core/src/scripts/call-agent.ts +190 -19
  38. package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +112 -25
  39. package/corpus/core/src/server/agent-chat-plugin.ts +136 -4
  40. package/corpus/core/src/styles/agent-conversation.css +7 -0
  41. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +20 -0
  42. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +20 -0
  43. package/corpus/core/src/templates/default/app/i18n/en-US.ts +20 -0
  44. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +20 -0
  45. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +21 -0
  46. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +19 -0
  47. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +20 -0
  48. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +19 -0
  49. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +20 -0
  50. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +19 -0
  51. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +19 -0
  52. package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +49 -0
  53. package/corpus/core/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
  54. package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
  55. package/corpus/core/src/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
  56. package/corpus/core/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
  57. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +29 -10
  58. package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +54 -23
  59. package/corpus/templates/analytics/.builder/skills/apollo/SKILL.md +19 -41
  60. package/corpus/templates/analytics/.builder/skills/commonroom/SKILL.md +20 -35
  61. package/corpus/templates/analytics/.builder/skills/github/SKILL.md +23 -67
  62. package/corpus/templates/analytics/.builder/skills/pylon/SKILL.md +25 -43
  63. package/corpus/templates/analytics/AGENTS.md +22 -13
  64. package/corpus/templates/analytics/actions/account-deep-dive.ts +1 -0
  65. package/corpus/templates/analytics/actions/configure-gong-native-insights.ts +29 -0
  66. package/corpus/templates/analytics/actions/content-calendar-schema.ts +8 -4
  67. package/corpus/templates/analytics/actions/content-calendar.ts +12 -4
  68. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +2 -1
  69. package/corpus/templates/analytics/actions/gong-calls.ts +113 -22
  70. package/corpus/templates/analytics/actions/gong-native-insights.ts +166 -0
  71. package/corpus/templates/analytics/actions/hubspot-deals.ts +190 -46
  72. package/corpus/templates/analytics/actions/pylon-issues.ts +123 -0
  73. package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +1 -1
  74. package/corpus/templates/analytics/actions/slack-messages.ts +179 -27
  75. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +48 -152
  76. package/corpus/templates/analytics/app/components/ui/chart.tsx +1 -1
  77. package/corpus/templates/analytics/app/hooks/use-chart-tooltip-flip.ts +21 -6
  78. package/corpus/templates/analytics/app/i18n/zh-TW.ts +13 -0
  79. package/corpus/templates/analytics/app/i18n-data.ts +134 -0
  80. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +181 -30
  81. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +6 -0
  82. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +4 -3
  83. package/corpus/templates/analytics/changelog/2026-07-17-analytics-now-includes-a-default-alert-for-spikes-in-stuck-agent-chats.md +6 -0
  84. package/corpus/templates/analytics/changelog/2026-07-17-dashboard-editors-can-add-shared-extensions-or-opt-into-per-.md +6 -0
  85. package/corpus/templates/analytics/changelog/2026-07-17-dashboard-extensions-show-a-loading-skeleton.md +6 -0
  86. package/corpus/templates/analytics/changelog/2026-07-17-errors-now-group-repeat-failures-consistently-and-keep-priva.md +6 -0
  87. package/corpus/templates/analytics/changelog/2026-07-17-gong-transcript-reviews-now-batch-bounded-call-windows-for-f.md +6 -0
  88. package/corpus/templates/analytics/changelog/2026-07-17-hubspot-deal-filters-now-run-in-hubspot-before-paging-result.md +6 -0
  89. package/corpus/templates/analytics/changelog/2026-07-17-notion-content-calendars-now-discover-the-matching-database-.md +6 -0
  90. package/corpus/templates/analytics/changelog/2026-07-17-pylon-dashboard-reads-now-use-the-paginated-issue-search-api.md +6 -0
  91. package/corpus/templates/analytics/changelog/2026-07-17-slack-reads-no-longer-join-channels-and-report-pagination-coverage.md +6 -0
  92. package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +23 -14
  93. package/corpus/templates/analytics/docs/schemas/tracked-events.md +5 -1
  94. package/corpus/templates/analytics/server/handlers/notion.ts +14 -3
  95. package/corpus/templates/analytics/server/handlers/slack.ts +182 -29
  96. package/corpus/templates/analytics/server/jobs/analytics-alerts.ts +3 -3
  97. package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +2 -6
  98. package/corpus/templates/analytics/server/lib/analytics-alerts.ts +209 -87
  99. package/corpus/templates/analytics/server/lib/analytics-connector-catalog.ts +6 -2
  100. package/corpus/templates/analytics/server/lib/error-capture.ts +75 -8
  101. package/corpus/templates/analytics/server/lib/gong-native-policy.ts +72 -0
  102. package/corpus/templates/analytics/server/lib/gong.ts +54 -66
  103. package/corpus/templates/analytics/server/lib/hubspot.ts +40 -3
  104. package/corpus/templates/analytics/server/lib/notion.ts +83 -8
  105. package/corpus/templates/analytics/server/lib/real-data-actions.ts +4 -0
  106. package/corpus/templates/analytics/server/lib/slack.ts +242 -90
  107. package/corpus/templates/analytics/server/plugins/agent-chat.ts +3 -3
  108. package/corpus/templates/analytics/server/routes/api/pylon/accounts.get.ts +42 -1
  109. package/corpus/templates/analytics/server/routes/api/pylon/issues.get.ts +71 -1
  110. package/corpus/templates/analytics/server/routes/api/test-connection.post.ts +44 -4
  111. package/corpus/templates/clips/actions/finalize-recording.ts +541 -62
  112. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +19 -1
  113. package/corpus/templates/clips/app/components/library/create-folder-dialog.tsx +123 -0
  114. package/corpus/templates/clips/app/components/library/library-grid.tsx +42 -4
  115. package/corpus/templates/clips/app/components/library/recording-card.tsx +30 -0
  116. package/corpus/templates/clips/app/components/player/playback-comment-overlay.tsx +17 -2
  117. package/corpus/templates/clips/app/components/player/video-player.tsx +14 -2
  118. package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +2 -2
  119. package/corpus/templates/clips/app/entry.client.tsx +6 -1
  120. package/corpus/templates/clips/app/i18n/ar-SA.ts +12 -1
  121. package/corpus/templates/clips/app/i18n/de-DE.ts +12 -1
  122. package/corpus/templates/clips/app/i18n/en-US.ts +12 -1
  123. package/corpus/templates/clips/app/i18n/es-ES.ts +11 -1
  124. package/corpus/templates/clips/app/i18n/fr-FR.ts +11 -1
  125. package/corpus/templates/clips/app/i18n/hi-IN.ts +10 -1
  126. package/corpus/templates/clips/app/i18n/ja-JP.ts +12 -1
  127. package/corpus/templates/clips/app/i18n/ko-KR.ts +11 -1
  128. package/corpus/templates/clips/app/i18n/pt-BR.ts +11 -1
  129. package/corpus/templates/clips/app/i18n/zh-CN.ts +11 -1
  130. package/corpus/templates/clips/app/i18n/zh-TW.ts +11 -1
  131. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +72 -1
  132. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +1 -1
  133. package/corpus/templates/clips/app/routes/record.tsx +3 -3
  134. package/corpus/templates/clips/app/routes/share.$shareId.tsx +6 -3
  135. package/corpus/templates/clips/changelog/2026-07-17-choose-which-workspace-receives-new-clips-recordings-and-des.md +6 -0
  136. package/corpus/templates/clips/changelog/2026-07-17-clips-now-retries-storage-verification-in-the-background-ins.md +6 -0
  137. package/corpus/templates/clips/changelog/2026-07-17-create-folders-directly-from-the-move-menu.md +6 -0
  138. package/corpus/templates/clips/changelog/2026-07-17-failed-desktop-uploads-now-offer-a-direct-way-to-reopen-clip.md +6 -0
  139. package/corpus/templates/clips/changelog/2026-07-17-fixed-broken-thumbnail-icons-appearing-over-playable-clip-em.md +6 -0
  140. package/corpus/templates/clips/changelog/2026-07-17-playback-comments-stay-readable-at-faster-playback-speeds.md +6 -0
  141. package/corpus/templates/clips/chrome-extension/src/finalize-recovery.ts +3 -0
  142. package/corpus/templates/clips/chrome-extension/src/offscreen.ts +3 -3
  143. package/corpus/templates/clips/desktop/src/app.tsx +19 -7
  144. package/corpus/templates/clips/desktop/src/lib/recorder.ts +111 -13
  145. package/corpus/templates/clips/desktop/src/lib/upload-verification.ts +16 -7
  146. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +2 -4
  147. package/corpus/templates/clips/desktop/src-tauri/src/native_screen/live_upload.rs +32 -15
  148. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +45 -18
  149. package/corpus/templates/clips/server/jobs/media-verification.ts +130 -0
  150. package/corpus/templates/clips/server/lib/builder-media-compression.ts +15 -0
  151. package/corpus/templates/clips/server/lib/media-verification-state.ts +38 -0
  152. package/corpus/templates/clips/server/lib/player-thumbnail-url.ts +31 -0
  153. package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +10 -3
  154. package/corpus/templates/clips/server/plugins/auth.ts +5 -5
  155. package/corpus/templates/clips/server/plugins/calendar-jobs.ts +2 -0
  156. package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +12 -2
  157. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +6 -1
  158. package/corpus/templates/clips/server/routes/api/thumbnail/[recordingId].get.ts +340 -0
  159. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +24 -7
  160. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +91 -7
  161. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/status.get.ts +14 -0
  162. package/corpus/templates/clips/shared/finalize-recovery.ts +61 -2
  163. package/corpus/templates/clips/shared/share-meta.ts +1 -1
  164. package/corpus/templates/content/app/entry.client.tsx +6 -1
  165. package/corpus/templates/dispatch/AGENTS.md +5 -0
  166. package/corpus/templates/dispatch/changelog/2026-07-17-apps-page-links-to-other-available-apps.md +6 -0
  167. package/corpus/templates/dispatch/changelog/2026-07-17-curated-template-remixes.md +6 -0
  168. package/corpus/templates/mail/app/entry.client.tsx +6 -1
  169. package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +11 -7
  170. package/corpus/templates/slides/.env.example +0 -1
  171. package/corpus/templates/slides/AGENTS.md +4 -0
  172. package/corpus/templates/slides/DEVELOPING.md +2 -2
  173. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +1 -1
  174. package/corpus/templates/slides/actions/logo-config.ts +6 -7
  175. package/corpus/templates/slides/actions/search-images.ts +11 -39
  176. package/corpus/templates/slides/actions/search-logos.ts +5 -52
  177. package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +1 -1
  178. package/corpus/templates/slides/app/components/editor/LogoSearchPanel.tsx +16 -26
  179. package/corpus/templates/slides/app/entry.client.tsx +6 -1
  180. package/corpus/templates/slides/server/lib/media-search-providers.ts +216 -0
  181. package/corpus/templates/slides/server/register-secrets.ts +30 -0
  182. package/dist/a2a/client.d.ts +47 -1
  183. package/dist/a2a/client.d.ts.map +1 -1
  184. package/dist/a2a/client.js +94 -12
  185. package/dist/a2a/client.js.map +1 -1
  186. package/dist/a2a/correlation.d.ts +10 -0
  187. package/dist/a2a/correlation.d.ts.map +1 -0
  188. package/dist/a2a/correlation.js +40 -0
  189. package/dist/a2a/correlation.js.map +1 -0
  190. package/dist/a2a/handlers.d.ts.map +1 -1
  191. package/dist/a2a/handlers.js +147 -15
  192. package/dist/a2a/handlers.js.map +1 -1
  193. package/dist/a2a/index.d.ts +4 -4
  194. package/dist/a2a/index.d.ts.map +1 -1
  195. package/dist/a2a/index.js +2 -2
  196. package/dist/a2a/index.js.map +1 -1
  197. package/dist/a2a/invoke.d.ts +29 -2
  198. package/dist/a2a/invoke.d.ts.map +1 -1
  199. package/dist/a2a/invoke.js +33 -1
  200. package/dist/a2a/invoke.js.map +1 -1
  201. package/dist/a2a/server.d.ts.map +1 -1
  202. package/dist/a2a/server.js +14 -1
  203. package/dist/a2a/server.js.map +1 -1
  204. package/dist/a2a/task-store.d.ts +12 -1
  205. package/dist/a2a/task-store.d.ts.map +1 -1
  206. package/dist/a2a/task-store.js +96 -6
  207. package/dist/a2a/task-store.js.map +1 -1
  208. package/dist/a2a/types.d.ts +27 -0
  209. package/dist/a2a/types.d.ts.map +1 -1
  210. package/dist/a2a/types.js.map +1 -1
  211. package/dist/action.d.ts +5 -2
  212. package/dist/action.d.ts.map +1 -1
  213. package/dist/action.js.map +1 -1
  214. package/dist/agent/production-agent.d.ts +14 -0
  215. package/dist/agent/production-agent.d.ts.map +1 -1
  216. package/dist/agent/production-agent.js +19 -3
  217. package/dist/agent/production-agent.js.map +1 -1
  218. package/dist/client/AssistantChat.d.ts +14 -1
  219. package/dist/client/AssistantChat.d.ts.map +1 -1
  220. package/dist/client/AssistantChat.js +158 -136
  221. package/dist/client/AssistantChat.js.map +1 -1
  222. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  223. package/dist/client/MultiTabAssistantChat.js +27 -4
  224. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  225. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  226. package/dist/client/agent-chat-adapter.js +21 -39
  227. package/dist/client/agent-chat-adapter.js.map +1 -1
  228. package/dist/client/agent-sidebar-state.d.ts +1 -0
  229. package/dist/client/agent-sidebar-state.d.ts.map +1 -1
  230. package/dist/client/agent-sidebar-state.js +4 -0
  231. package/dist/client/agent-sidebar-state.js.map +1 -1
  232. package/dist/client/analytics.d.ts +14 -0
  233. package/dist/client/analytics.d.ts.map +1 -1
  234. package/dist/client/analytics.js +67 -0
  235. package/dist/client/analytics.js.map +1 -1
  236. package/dist/client/chat/message-components.d.ts +8 -0
  237. package/dist/client/chat/message-components.d.ts.map +1 -1
  238. package/dist/client/chat/message-components.js +62 -19
  239. package/dist/client/chat/message-components.js.map +1 -1
  240. package/dist/client/chat/tool-call-display.d.ts +6 -0
  241. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  242. package/dist/client/chat/tool-call-display.js +83 -14
  243. package/dist/client/chat/tool-call-display.js.map +1 -1
  244. package/dist/client/chat/use-agent-chat-lifecycle-tracking.d.ts +8 -0
  245. package/dist/client/chat/use-agent-chat-lifecycle-tracking.d.ts.map +1 -0
  246. package/dist/client/chat/use-agent-chat-lifecycle-tracking.js +51 -0
  247. package/dist/client/chat/use-agent-chat-lifecycle-tracking.js.map +1 -0
  248. package/dist/client/chat-thread-url.d.ts +2 -0
  249. package/dist/client/chat-thread-url.d.ts.map +1 -0
  250. package/dist/client/chat-thread-url.js +12 -0
  251. package/dist/client/chat-thread-url.js.map +1 -0
  252. package/dist/client/error-capture.d.ts.map +1 -1
  253. package/dist/client/error-capture.js +7 -0
  254. package/dist/client/error-capture.js.map +1 -1
  255. package/dist/client/extensions/ExtensionSlot.d.ts +3 -1
  256. package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
  257. package/dist/client/extensions/ExtensionSlot.js +28 -3
  258. package/dist/client/extensions/ExtensionSlot.js.map +1 -1
  259. package/dist/client/index.d.ts +1 -1
  260. package/dist/client/index.d.ts.map +1 -1
  261. package/dist/client/index.js +1 -1
  262. package/dist/client/index.js.map +1 -1
  263. package/dist/client/route-chunk-recovery.d.ts.map +1 -1
  264. package/dist/client/route-chunk-recovery.js +14 -9
  265. package/dist/client/route-chunk-recovery.js.map +1 -1
  266. package/dist/client/session-replay.d.ts +15 -0
  267. package/dist/client/session-replay.d.ts.map +1 -1
  268. package/dist/client/session-replay.js +20 -0
  269. package/dist/client/session-replay.js.map +1 -1
  270. package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
  271. package/dist/client/use-run-stuck-detection.js +25 -1
  272. package/dist/client/use-run-stuck-detection.js.map +1 -1
  273. package/dist/db/client.d.ts +7 -0
  274. package/dist/db/client.d.ts.map +1 -1
  275. package/dist/db/client.js +33 -0
  276. package/dist/db/client.js.map +1 -1
  277. package/dist/extensions/actions.d.ts.map +1 -1
  278. package/dist/extensions/actions.js +2 -10
  279. package/dist/extensions/actions.js.map +1 -1
  280. package/dist/extensions/store.js +1 -1
  281. package/dist/extensions/store.js.map +1 -1
  282. package/dist/localization/default-messages.d.ts +3 -0
  283. package/dist/localization/default-messages.d.ts.map +1 -1
  284. package/dist/localization/default-messages.js +3 -0
  285. package/dist/localization/default-messages.js.map +1 -1
  286. package/dist/mcp/build-server.d.ts +2 -0
  287. package/dist/mcp/build-server.d.ts.map +1 -1
  288. package/dist/mcp/build-server.js +2 -2
  289. package/dist/mcp/build-server.js.map +1 -1
  290. package/dist/notifications/routes.d.ts +2 -2
  291. package/dist/observability/routes.d.ts +5 -5
  292. package/dist/observability/traces.d.ts +9 -0
  293. package/dist/observability/traces.d.ts.map +1 -1
  294. package/dist/observability/traces.js +137 -19
  295. package/dist/observability/traces.js.map +1 -1
  296. package/dist/progress/actions.d.ts.map +1 -1
  297. package/dist/progress/actions.js +3 -2
  298. package/dist/progress/actions.js.map +1 -1
  299. package/dist/progress/routes.d.ts +1 -1
  300. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  301. package/dist/provider-api/index.d.ts.map +1 -1
  302. package/dist/provider-api/index.js +91 -8
  303. package/dist/provider-api/index.js.map +1 -1
  304. package/dist/scripts/call-agent.d.ts.map +1 -1
  305. package/dist/scripts/call-agent.js +140 -17
  306. package/dist/scripts/call-agent.js.map +1 -1
  307. package/dist/secrets/routes.d.ts +9 -9
  308. package/dist/server/agent-chat/action-filters-a2a.d.ts +24 -2
  309. package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
  310. package/dist/server/agent-chat/action-filters-a2a.js +62 -7
  311. package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
  312. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  313. package/dist/server/agent-chat-plugin.js +118 -5
  314. package/dist/server/agent-chat-plugin.js.map +1 -1
  315. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  316. package/dist/server/transcribe-voice.d.ts +1 -1
  317. package/dist/styles/agent-conversation.css +7 -0
  318. package/dist/templates/default/app/i18n/ar-SA.ts +20 -0
  319. package/dist/templates/default/app/i18n/de-DE.ts +20 -0
  320. package/dist/templates/default/app/i18n/en-US.ts +20 -0
  321. package/dist/templates/default/app/i18n/es-ES.ts +20 -0
  322. package/dist/templates/default/app/i18n/fr-FR.ts +21 -0
  323. package/dist/templates/default/app/i18n/hi-IN.ts +19 -0
  324. package/dist/templates/default/app/i18n/ja-JP.ts +20 -0
  325. package/dist/templates/default/app/i18n/ko-KR.ts +19 -0
  326. package/dist/templates/default/app/i18n/pt-BR.ts +20 -0
  327. package/dist/templates/default/app/i18n/zh-CN.ts +19 -0
  328. package/dist/templates/default/app/i18n/zh-TW.ts +19 -0
  329. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +49 -0
  330. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
  331. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
  332. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
  333. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
  334. package/package.json +1 -1
  335. package/src/templates/default/app/i18n/ar-SA.ts +20 -0
  336. package/src/templates/default/app/i18n/de-DE.ts +20 -0
  337. package/src/templates/default/app/i18n/en-US.ts +20 -0
  338. package/src/templates/default/app/i18n/es-ES.ts +20 -0
  339. package/src/templates/default/app/i18n/fr-FR.ts +21 -0
  340. package/src/templates/default/app/i18n/hi-IN.ts +19 -0
  341. package/src/templates/default/app/i18n/ja-JP.ts +20 -0
  342. package/src/templates/default/app/i18n/ko-KR.ts +19 -0
  343. package/src/templates/default/app/i18n/pt-BR.ts +20 -0
  344. package/src/templates/default/app/i18n/zh-CN.ts +19 -0
  345. package/src/templates/default/app/i18n/zh-TW.ts +19 -0
  346. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +49 -0
  347. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
  348. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
  349. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
  350. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
  351. package/corpus/templates/analytics/server/handlers/github.ts +0 -200
  352. package/corpus/templates/analytics/server/handlers/pylon.ts +0 -43
  353. package/corpus/templates/analytics/server/lib/apollo.ts +0 -167
  354. package/corpus/templates/analytics/server/lib/commonroom.ts +0 -149
  355. package/corpus/templates/analytics/server/lib/github.ts +0 -660
  356. package/corpus/templates/analytics/server/lib/mixpanel.ts +0 -156
  357. package/corpus/templates/analytics/server/lib/posthog.ts +0 -194
  358. package/corpus/templates/analytics/server/lib/pylon.ts +0 -109
  359. package/corpus/templates/analytics/server/routes/api/github/graphql.post.ts +0 -1
  360. package/corpus/templates/analytics/server/routes/api/github/issue.get.ts +0 -1
  361. package/corpus/templates/analytics/server/routes/api/github/org-prs.get.ts +0 -1
  362. package/corpus/templates/analytics/server/routes/api/github/pr.get.ts +0 -1
  363. package/corpus/templates/analytics/server/routes/api/github/prs.get.ts +0 -1
  364. package/corpus/templates/analytics/server/routes/api/github/search.get.ts +0 -1
  365. package/corpus/templates/slides/actions/fetch-logos.ts +0 -90
  366. package/corpus/templates/slides/actions/image-search.ts +0 -64
  367. package/corpus/templates/slides/actions/import-github.ts +0 -182
  368. package/corpus/templates/slides/actions/logo-lookup.ts +0 -113
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ Dashboard extensions now show a loading skeleton while their content loads.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ Errors now group repeat failures consistently and keep private replay links protected
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ Gong reviews now batch transcript evidence, use provider-native synthesis when connected, and support fast direct reads from sibling apps.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ HubSpot deal filters now run in HubSpot before paging results, avoiding full-corpus scans.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ Notion content calendars now discover the matching database by schema instead of relying on one workspace's database ID.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ Pylon dashboard reads now use the paginated issue search API while preserving existing dashboard compatibility.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-17
4
+ ---
5
+
6
+ Slack reads no longer join channels automatically, resolve message authors in bulk, and report pagination coverage explicitly.
@@ -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` | Tool-call counts |
133
- | `$ai_is_error`, `status`, `$ai_error` | Error status and message, when applicable |
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
- Prompt and response content are excluded by default.
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 { defineEventHandler, getRouterParam, setResponseStatus } from "h3";
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 entries = await getContentCalendar();
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 schema = await getContentCalendarSchema();
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 channels = await listChannels(workspace);
57
- return { channels, total: channels.length };
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 users = await resolveUsers(workspace, userIds, result.messages);
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
- const results = await Promise.all(
170
- channelIds.map((id) =>
171
- getChannelHistory(workspace, id, pageSize, cursors[id]),
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 & { channel_name: string })[] = [];
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
- results.forEach((result, idx) => {
181
- const chId = channelIds[idx];
182
- const chName = channelNamesList[idx] || chId;
183
- perChannelHasMore[chId] = result.has_more;
184
- if (result.next_cursor) {
185
- nextCursors[chId] = result.next_cursor;
186
- }
187
- for (const m of result.messages) {
188
- allMessages.push({ ...m, channel_name: chName });
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 = enrichMessages(pageMessages);
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 users = await resolveUsers(workspace, userIds, enrichedMessages);
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
- Object.values(perChannelHasMore).some(Boolean) ||
210
- allMessages.length > pageSize;
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 users = await resolveUsers(workspace, userIds, result.messages);
374
+ const resolution = await resolveUsersWithCoverage(
375
+ workspace,
376
+ userIds,
377
+ result.messages,
378
+ );
246
379
 
247
- return { messages: result.messages, users, total: result.total };
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
- ensureDefaultHttp5xxSpikeAlertRules,
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 ensureDefaultHttp5xxSpikeAlertRules().catch((err) => {
49
- console.error("[analytics-alerts] Default 5xx alert seed failed:", err);
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",