@agent-native/core 0.46.0 → 0.48.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 (837) hide show
  1. package/bin/agent-native.js +41 -0
  2. package/dist/a2a/handlers.js +2 -2
  3. package/dist/a2a/handlers.js.map +1 -1
  4. package/dist/a2a/server.js +2 -2
  5. package/dist/a2a/server.js.map +1 -1
  6. package/dist/action.d.ts +43 -2
  7. package/dist/action.d.ts.map +1 -1
  8. package/dist/action.js.map +1 -1
  9. package/dist/agent/context-xray/actions/context-evict.d.ts +7 -1
  10. package/dist/agent/context-xray/actions/context-evict.d.ts.map +1 -1
  11. package/dist/agent/context-xray/actions/context-manifest-get.d.ts +4 -1
  12. package/dist/agent/context-xray/actions/context-manifest-get.d.ts.map +1 -1
  13. package/dist/agent/context-xray/actions/context-pin.d.ts +7 -1
  14. package/dist/agent/context-xray/actions/context-pin.d.ts.map +1 -1
  15. package/dist/agent/context-xray/actions/context-report.d.ts +12 -1
  16. package/dist/agent/context-xray/actions/context-report.d.ts.map +1 -1
  17. package/dist/agent/context-xray/actions/context-restore.d.ts +7 -1
  18. package/dist/agent/context-xray/actions/context-restore.d.ts.map +1 -1
  19. package/dist/agent/context-xray/apply-directives.d.ts.map +1 -1
  20. package/dist/agent/context-xray/apply-directives.js.map +1 -1
  21. package/dist/agent/context-xray/schema.d.ts +10 -10
  22. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  23. package/dist/agent/engine/ai-sdk-engine.js +26 -3
  24. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  25. package/dist/agent/engine/anthropic-engine.d.ts +1 -1
  26. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  27. package/dist/agent/engine/builder-engine.d.ts +1 -1
  28. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  29. package/dist/agent/engine/builder-engine.js +47 -8
  30. package/dist/agent/engine/builder-engine.js.map +1 -1
  31. package/dist/agent/engine/builtin.js +1 -1
  32. package/dist/agent/engine/builtin.js.map +1 -1
  33. package/dist/agent/engine/output-tokens.d.ts +1 -1
  34. package/dist/agent/engine/output-tokens.d.ts.map +1 -1
  35. package/dist/agent/engine/output-tokens.js +6 -2
  36. package/dist/agent/engine/output-tokens.js.map +1 -1
  37. package/dist/agent/engine/registry.d.ts.map +1 -1
  38. package/dist/agent/engine/registry.js +7 -4
  39. package/dist/agent/engine/registry.js.map +1 -1
  40. package/dist/agent/engine/types.d.ts +19 -0
  41. package/dist/agent/engine/types.d.ts.map +1 -1
  42. package/dist/agent/engine/types.js +6 -0
  43. package/dist/agent/engine/types.js.map +1 -1
  44. package/dist/agent/model-config.d.ts +22 -14
  45. package/dist/agent/model-config.d.ts.map +1 -1
  46. package/dist/agent/model-config.js +113 -8
  47. package/dist/agent/model-config.js.map +1 -1
  48. package/dist/agent/production-agent.d.ts +47 -1
  49. package/dist/agent/production-agent.d.ts.map +1 -1
  50. package/dist/agent/production-agent.js +267 -46
  51. package/dist/agent/production-agent.js.map +1 -1
  52. package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
  53. package/dist/agent/run-loop-with-resume.js +10 -0
  54. package/dist/agent/run-loop-with-resume.js.map +1 -1
  55. package/dist/agent/run-manager.d.ts +1 -0
  56. package/dist/agent/run-manager.d.ts.map +1 -1
  57. package/dist/agent/run-manager.js +36 -9
  58. package/dist/agent/run-manager.js.map +1 -1
  59. package/dist/agent/run-store.d.ts +47 -4
  60. package/dist/agent/run-store.d.ts.map +1 -1
  61. package/dist/agent/run-store.js +154 -4
  62. package/dist/agent/run-store.js.map +1 -1
  63. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  64. package/dist/agent/thread-data-builder.js +57 -2
  65. package/dist/agent/thread-data-builder.js.map +1 -1
  66. package/dist/agent/types.d.ts +3 -0
  67. package/dist/agent/types.d.ts.map +1 -1
  68. package/dist/agent/types.js.map +1 -1
  69. package/dist/agent-web/generator.d.ts +3 -3
  70. package/dist/appearance/actions/change-appearance.d.ts +6 -1
  71. package/dist/appearance/actions/change-appearance.d.ts.map +1 -1
  72. package/dist/application-state/handlers.d.ts +2 -2
  73. package/dist/application-state/handlers.d.ts.map +1 -1
  74. package/dist/application-state/store.d.ts.map +1 -1
  75. package/dist/application-state/store.js +17 -0
  76. package/dist/application-state/store.js.map +1 -1
  77. package/dist/catalog.json +2 -1
  78. package/dist/cli/code-agent-commands.d.ts.map +1 -1
  79. package/dist/cli/code-agent-commands.js +2 -0
  80. package/dist/cli/code-agent-commands.js.map +1 -1
  81. package/dist/cli/code-agent-connector.js +7 -13
  82. package/dist/cli/code-agent-connector.js.map +1 -1
  83. package/dist/cli/code-agent-executor.d.ts +54 -2
  84. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  85. package/dist/cli/code-agent-executor.js +504 -48
  86. package/dist/cli/code-agent-executor.js.map +1 -1
  87. package/dist/cli/code-agent-runs.d.ts +13 -0
  88. package/dist/cli/code-agent-runs.d.ts.map +1 -1
  89. package/dist/cli/code-agent-runs.js +36 -0
  90. package/dist/cli/code-agent-runs.js.map +1 -1
  91. package/dist/cli/code.js +59 -5
  92. package/dist/cli/code.js.map +1 -1
  93. package/dist/cli/connect.js +141 -3
  94. package/dist/cli/connect.js.map +1 -1
  95. package/dist/cli/index.js +0 -0
  96. package/dist/cli/pr-visual-recap-workflow.js +1 -1
  97. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  98. package/dist/cli/recap.js +476 -46
  99. package/dist/cli/recap.js.map +1 -1
  100. package/dist/cli/skills.js +331 -179
  101. package/dist/cli/skills.js.map +1 -1
  102. package/dist/client/AgentPanel.d.ts.map +1 -1
  103. package/dist/client/AgentPanel.js +29 -2
  104. package/dist/client/AgentPanel.js.map +1 -1
  105. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  106. package/dist/client/AgentTaskCard.js +17 -2
  107. package/dist/client/AgentTaskCard.js.map +1 -1
  108. package/dist/client/AssistantChat.d.ts +1 -1
  109. package/dist/client/AssistantChat.d.ts.map +1 -1
  110. package/dist/client/AssistantChat.js +310 -1732
  111. package/dist/client/AssistantChat.js.map +1 -1
  112. package/dist/client/CommandMenu.d.ts +1 -1
  113. package/dist/client/CommandMenu.d.ts.map +1 -1
  114. package/dist/client/CommandMenu.js +1 -1
  115. package/dist/client/CommandMenu.js.map +1 -1
  116. package/dist/client/HighlightedCodeBlock.d.ts +40 -0
  117. package/dist/client/HighlightedCodeBlock.d.ts.map +1 -0
  118. package/dist/client/HighlightedCodeBlock.js +110 -0
  119. package/dist/client/HighlightedCodeBlock.js.map +1 -0
  120. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  121. package/dist/client/MultiTabAssistantChat.js +8 -1
  122. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  123. package/dist/client/PoweredByBadge.d.ts +2 -2
  124. package/dist/client/PoweredByBadge.d.ts.map +1 -1
  125. package/dist/client/RunStuckBanner.d.ts +1 -1
  126. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  127. package/dist/client/StarfieldBackground.d.ts.map +1 -1
  128. package/dist/client/StarfieldBackground.js +10 -5
  129. package/dist/client/StarfieldBackground.js.map +1 -1
  130. package/dist/client/Turnstile.d.ts +1 -1
  131. package/dist/client/Turnstile.d.ts.map +1 -1
  132. package/dist/client/agent-chat-adapter.d.ts +3 -2
  133. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  134. package/dist/client/agent-chat-adapter.js +13 -9
  135. package/dist/client/agent-chat-adapter.js.map +1 -1
  136. package/dist/client/app-providers.d.ts +99 -0
  137. package/dist/client/app-providers.d.ts.map +1 -0
  138. package/dist/client/app-providers.js +19 -0
  139. package/dist/client/app-providers.js.map +1 -0
  140. package/dist/client/assistant-ui-recovery.d.ts +1 -1
  141. package/dist/client/auth-redirect-url.d.ts +1 -1
  142. package/dist/client/auth-redirect-url.d.ts.map +1 -1
  143. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts +0 -19
  144. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
  145. package/dist/client/blocks/library/AnnotatedCodeBlock.js +141 -55
  146. package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
  147. package/dist/client/blocks/library/DiffBlock.js +1 -1
  148. package/dist/client/blocks/library/DiffBlock.js.map +1 -1
  149. package/dist/client/blocks/library/FileTreeBlock.d.ts.map +1 -1
  150. package/dist/client/blocks/library/FileTreeBlock.js +1 -1
  151. package/dist/client/blocks/library/FileTreeBlock.js.map +1 -1
  152. package/dist/client/blocks/library/HighlightedCode.d.ts.map +1 -1
  153. package/dist/client/blocks/library/HighlightedCode.js +5 -3
  154. package/dist/client/blocks/library/HighlightedCode.js.map +1 -1
  155. package/dist/client/blocks/library/annotation-rail.d.ts +5 -4
  156. package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
  157. package/dist/client/blocks/library/annotation-rail.js +22 -3
  158. package/dist/client/blocks/library/annotation-rail.js.map +1 -1
  159. package/dist/client/blocks/library/diagram.js +1 -1
  160. package/dist/client/blocks/library/diagram.js.map +1 -1
  161. package/dist/client/blocks/library/diff.config.d.ts +3 -2
  162. package/dist/client/blocks/library/diff.config.d.ts.map +1 -1
  163. package/dist/client/blocks/library/diff.config.js +4 -3
  164. package/dist/client/blocks/library/diff.config.js.map +1 -1
  165. package/dist/client/blocks/library/question-form.d.ts.map +1 -1
  166. package/dist/client/blocks/library/question-form.js +2 -1
  167. package/dist/client/blocks/library/question-form.js.map +1 -1
  168. package/dist/client/blocks/library/wireframe-kit.d.ts +1 -1
  169. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  170. package/dist/client/blocks/library/wireframe.js +1 -1
  171. package/dist/client/blocks/library/wireframe.js.map +1 -1
  172. package/dist/client/chat/attachment-adapters.d.ts +58 -0
  173. package/dist/client/chat/attachment-adapters.d.ts.map +1 -0
  174. package/dist/client/chat/attachment-adapters.js +331 -0
  175. package/dist/client/chat/attachment-adapters.js.map +1 -0
  176. package/dist/client/chat/index.d.ts +13 -0
  177. package/dist/client/chat/index.d.ts.map +1 -0
  178. package/dist/client/chat/index.js +13 -0
  179. package/dist/client/chat/index.js.map +1 -0
  180. package/dist/client/chat/markdown-renderer.d.ts +49 -0
  181. package/dist/client/chat/markdown-renderer.d.ts.map +1 -0
  182. package/dist/client/chat/markdown-renderer.js +391 -0
  183. package/dist/client/chat/markdown-renderer.js.map +1 -0
  184. package/dist/client/chat/message-components.d.ts +35 -0
  185. package/dist/client/chat/message-components.d.ts.map +1 -0
  186. package/dist/client/chat/message-components.js +452 -0
  187. package/dist/client/chat/message-components.js.map +1 -0
  188. package/dist/client/chat/repo-helpers.d.ts +41 -0
  189. package/dist/client/chat/repo-helpers.d.ts.map +1 -0
  190. package/dist/client/chat/repo-helpers.js +61 -0
  191. package/dist/client/chat/repo-helpers.js.map +1 -0
  192. package/dist/client/chat/run-recovery.d.ts +41 -0
  193. package/dist/client/chat/run-recovery.d.ts.map +1 -0
  194. package/dist/client/chat/run-recovery.js +348 -0
  195. package/dist/client/chat/run-recovery.js.map +1 -0
  196. package/dist/client/chat/tool-call-display.d.ts +34 -0
  197. package/dist/client/chat/tool-call-display.d.ts.map +1 -0
  198. package/dist/client/chat/tool-call-display.js +284 -0
  199. package/dist/client/chat/tool-call-display.js.map +1 -0
  200. package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
  201. package/dist/client/code-agent-chat-adapter.js +20 -0
  202. package/dist/client/code-agent-chat-adapter.js.map +1 -1
  203. package/dist/client/collab/index.d.ts +10 -0
  204. package/dist/client/collab/index.d.ts.map +1 -0
  205. package/dist/client/collab/index.js +10 -0
  206. package/dist/client/collab/index.js.map +1 -0
  207. package/dist/client/components/AgentPresenceChip.d.ts +1 -1
  208. package/dist/client/components/AgentPresenceChip.d.ts.map +1 -1
  209. package/dist/client/components/ApiKeySettings.d.ts +1 -1
  210. package/dist/client/components/ApiKeySettings.d.ts.map +1 -1
  211. package/dist/client/components/CodeAgentIndicator.d.ts +1 -1
  212. package/dist/client/components/CodeAgentIndicator.d.ts.map +1 -1
  213. package/dist/client/components/CodeRequiredDialog.d.ts +1 -1
  214. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  215. package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
  216. package/dist/client/components/LiveCursorOverlay.js.map +1 -1
  217. package/dist/client/components/PresenceBar.d.ts +1 -1
  218. package/dist/client/components/PresenceBar.d.ts.map +1 -1
  219. package/dist/client/composer/PromptComposer.d.ts.map +1 -1
  220. package/dist/client/composer/PromptComposer.js +6 -26
  221. package/dist/client/composer/PromptComposer.js.map +1 -1
  222. package/dist/client/composer/TiptapComposer.d.ts +8 -2
  223. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  224. package/dist/client/composer/TiptapComposer.js +21 -9
  225. package/dist/client/composer/TiptapComposer.js.map +1 -1
  226. package/dist/client/composer/VoiceButton.d.ts +2 -2
  227. package/dist/client/composer/VoiceButton.d.ts.map +1 -1
  228. package/dist/client/composer/index.d.ts +1 -1
  229. package/dist/client/composer/index.d.ts.map +1 -1
  230. package/dist/client/composer/index.js +1 -1
  231. package/dist/client/composer/index.js.map +1 -1
  232. package/dist/client/composer/use-skills.d.ts +1 -1
  233. package/dist/client/context-xray/ContextMeter.d.ts +1 -1
  234. package/dist/client/context-xray/ContextMeter.d.ts.map +1 -1
  235. package/dist/client/context-xray/ContextMeter.js +3 -3
  236. package/dist/client/context-xray/ContextMeter.js.map +1 -1
  237. package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
  238. package/dist/client/context-xray/ContextXRayPanel.js +4 -3
  239. package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
  240. package/dist/client/context-xray/format.d.ts +11 -0
  241. package/dist/client/context-xray/format.d.ts.map +1 -1
  242. package/dist/client/context-xray/format.js +16 -0
  243. package/dist/client/context-xray/format.js.map +1 -1
  244. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  245. package/dist/client/conversation/AgentConversation.js +8 -53
  246. package/dist/client/conversation/AgentConversation.js.map +1 -1
  247. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +1 -1
  248. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts.map +1 -1
  249. package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -1
  250. package/dist/client/conversation/use-near-bottom-autoscroll.js.map +1 -1
  251. package/dist/client/create-query-client.d.ts +28 -0
  252. package/dist/client/create-query-client.d.ts.map +1 -0
  253. package/dist/client/create-query-client.js +78 -0
  254. package/dist/client/create-query-client.js.map +1 -0
  255. package/dist/client/db-admin/DevDatabaseLink.d.ts +1 -1
  256. package/dist/client/db-admin/DevDatabaseLink.d.ts.map +1 -1
  257. package/dist/client/db-admin/RowSidePanel.d.ts +1 -1
  258. package/dist/client/db-admin/RowSidePanel.d.ts.map +1 -1
  259. package/dist/client/db-admin/RowSidePanel.js +2 -2
  260. package/dist/client/db-admin/RowSidePanel.js.map +1 -1
  261. package/dist/client/db-admin/TableEditor.d.ts +1 -1
  262. package/dist/client/db-admin/TableEditor.d.ts.map +1 -1
  263. package/dist/client/db-admin/TableEditor.js +1 -1
  264. package/dist/client/db-admin/TableEditor.js.map +1 -1
  265. package/dist/client/db-admin/cell-format.d.ts +1 -1
  266. package/dist/client/db-admin/cell-format.d.ts.map +1 -1
  267. package/dist/client/dev-overlay/DevOverlay.d.ts +1 -1
  268. package/dist/client/dev-overlay/DevOverlay.d.ts.map +1 -1
  269. package/dist/client/editor/index.d.ts +2 -0
  270. package/dist/client/editor/index.d.ts.map +1 -0
  271. package/dist/client/editor/index.js +2 -0
  272. package/dist/client/editor/index.js.map +1 -0
  273. package/dist/client/error-format.d.ts.map +1 -1
  274. package/dist/client/error-format.js +4 -0
  275. package/dist/client/error-format.js.map +1 -1
  276. package/dist/client/extensions/AgentNativeExtensionFrame.d.ts +1 -1
  277. package/dist/client/extensions/AgentNativeExtensionFrame.d.ts.map +1 -1
  278. package/dist/client/extensions/EmbeddedExtension.d.ts +1 -1
  279. package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
  280. package/dist/client/extensions/ExtensionSlot.d.ts +1 -1
  281. package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
  282. package/dist/client/extensions/ExtensionViewerPage.d.ts +1 -1
  283. package/dist/client/extensions/ExtensionViewerPage.d.ts.map +1 -1
  284. package/dist/client/guided-questions.d.ts +6 -6
  285. package/dist/client/host-bridge.d.ts.map +1 -1
  286. package/dist/client/host-bridge.js +2 -0
  287. package/dist/client/host-bridge.js.map +1 -1
  288. package/dist/client/index.d.ts +7 -6
  289. package/dist/client/index.d.ts.map +1 -1
  290. package/dist/client/index.js +5 -3
  291. package/dist/client/index.js.map +1 -1
  292. package/dist/client/onboarding/OnboardingBanner.d.ts +1 -1
  293. package/dist/client/onboarding/OnboardingBanner.d.ts.map +1 -1
  294. package/dist/client/onboarding/OnboardingPanel.d.ts +1 -1
  295. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  296. package/dist/client/onboarding/SetupButton.d.ts +1 -1
  297. package/dist/client/onboarding/SetupButton.d.ts.map +1 -1
  298. package/dist/client/org/InvitationBanner.d.ts +1 -1
  299. package/dist/client/org/InvitationBanner.d.ts.map +1 -1
  300. package/dist/client/org/OrgSwitcher.d.ts +1 -1
  301. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  302. package/dist/client/org/RequireActiveOrg.d.ts +1 -1
  303. package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
  304. package/dist/client/org/hooks.d.ts +3 -3
  305. package/dist/client/org/hooks.d.ts.map +1 -1
  306. package/dist/client/progress/RunsTray.d.ts +2 -2
  307. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  308. package/dist/client/progress/RunsTray.js +34 -9
  309. package/dist/client/progress/RunsTray.js.map +1 -1
  310. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  311. package/dist/client/resources/ResourceEditor.js +1 -1
  312. package/dist/client/resources/ResourceEditor.js.map +1 -1
  313. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  314. package/dist/client/resources/ResourcesPanel.js +2 -0
  315. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  316. package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts +1 -1
  317. package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts.map +1 -1
  318. package/dist/client/rich-markdown-editor/CodeBlockNode.d.ts.map +1 -1
  319. package/dist/client/rich-markdown-editor/CodeBlockNode.js +2 -1
  320. package/dist/client/rich-markdown-editor/CodeBlockNode.js.map +1 -1
  321. package/dist/client/rich-markdown-editor/ImageExtension.d.ts.map +1 -1
  322. package/dist/client/rich-markdown-editor/ImageExtension.js +2 -1
  323. package/dist/client/rich-markdown-editor/ImageExtension.js.map +1 -1
  324. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts +1 -1
  325. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts.map +1 -1
  326. package/dist/client/rich-markdown-editor/RegistryBlockNode.js +1 -1
  327. package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
  328. package/dist/client/rich-markdown-editor/RichMarkdownEditor.d.ts +1 -1
  329. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -1
  330. package/dist/client/rich-markdown-editor/SharedRichEditor.js +2 -3
  331. package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -1
  332. package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts +1 -1
  333. package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts.map +1 -1
  334. package/dist/client/route-state.d.ts +12 -2
  335. package/dist/client/route-state.d.ts.map +1 -1
  336. package/dist/client/route-state.js +1 -1
  337. package/dist/client/route-state.js.map +1 -1
  338. package/dist/client/route-warmup.d.ts +1 -1
  339. package/dist/client/route-warmup.d.ts.map +1 -1
  340. package/dist/client/settings/VoiceTranscriptionSection.js +1 -1
  341. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  342. package/dist/client/settings/useBuilderStatus.d.ts +2 -2
  343. package/dist/client/sharing/ShareDialog.d.ts +1 -1
  344. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  345. package/dist/client/sse-event-processor.d.ts +8 -0
  346. package/dist/client/sse-event-processor.d.ts.map +1 -1
  347. package/dist/client/sse-event-processor.js +33 -10
  348. package/dist/client/sse-event-processor.js.map +1 -1
  349. package/dist/client/terminal/AgentTerminal.d.ts +1 -1
  350. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  351. package/dist/client/terminal/AgentTerminal.js +4 -2
  352. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  353. package/dist/client/tool-cells/BashCell.d.ts +25 -0
  354. package/dist/client/tool-cells/BashCell.d.ts.map +1 -0
  355. package/dist/client/tool-cells/BashCell.js +49 -0
  356. package/dist/client/tool-cells/BashCell.js.map +1 -0
  357. package/dist/client/tool-cells/EditCell.d.ts +24 -0
  358. package/dist/client/tool-cells/EditCell.d.ts.map +1 -0
  359. package/dist/client/tool-cells/EditCell.js +126 -0
  360. package/dist/client/tool-cells/EditCell.js.map +1 -0
  361. package/dist/client/tool-cells/FilesChangedSummary.d.ts +13 -0
  362. package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -0
  363. package/dist/client/tool-cells/FilesChangedSummary.js +98 -0
  364. package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -0
  365. package/dist/client/tool-cells/WriteCell.d.ts +17 -0
  366. package/dist/client/tool-cells/WriteCell.d.ts.map +1 -0
  367. package/dist/client/tool-cells/WriteCell.js +26 -0
  368. package/dist/client/tool-cells/WriteCell.js.map +1 -0
  369. package/dist/client/tool-cells/index.d.ts +8 -0
  370. package/dist/client/tool-cells/index.d.ts.map +1 -0
  371. package/dist/client/tool-cells/index.js +5 -0
  372. package/dist/client/tool-cells/index.js.map +1 -0
  373. package/dist/client/transcription/BuilderTranscriptionCta.d.ts +1 -1
  374. package/dist/client/transcription/BuilderTranscriptionCta.d.ts.map +1 -1
  375. package/dist/client/use-chat-threads.d.ts +1 -1
  376. package/dist/client/use-chat-threads.d.ts.map +1 -1
  377. package/dist/client/use-chat-threads.js +11 -8
  378. package/dist/client/use-chat-threads.js.map +1 -1
  379. package/dist/client/use-db-sync.d.ts +2 -0
  380. package/dist/client/use-db-sync.d.ts.map +1 -1
  381. package/dist/client/use-db-sync.js +329 -302
  382. package/dist/client/use-db-sync.js.map +1 -1
  383. package/dist/code-agents/transcript-normalizer.d.ts +15 -1
  384. package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
  385. package/dist/code-agents/transcript-normalizer.js +47 -0
  386. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  387. package/dist/coding-tools/index.d.ts +75 -0
  388. package/dist/coding-tools/index.d.ts.map +1 -1
  389. package/dist/coding-tools/index.js +137 -10
  390. package/dist/coding-tools/index.js.map +1 -1
  391. package/dist/coding-tools/run-code.d.ts +40 -0
  392. package/dist/coding-tools/run-code.d.ts.map +1 -0
  393. package/dist/coding-tools/run-code.js +511 -0
  394. package/dist/coding-tools/run-code.js.map +1 -0
  395. package/dist/collab/client.d.ts.map +1 -1
  396. package/dist/collab/client.js +15 -9
  397. package/dist/collab/client.js.map +1 -1
  398. package/dist/collab/ydoc-manager.d.ts +1 -1
  399. package/dist/collab/ydoc-manager.d.ts.map +1 -1
  400. package/dist/collab/ydoc-manager.js +1 -1
  401. package/dist/collab/ydoc-manager.js.map +1 -1
  402. package/dist/db/client.d.ts +9 -1
  403. package/dist/db/client.d.ts.map +1 -1
  404. package/dist/db/client.js +204 -48
  405. package/dist/db/client.js.map +1 -1
  406. package/dist/db/create-get-db.d.ts +38 -0
  407. package/dist/db/create-get-db.d.ts.map +1 -1
  408. package/dist/db/create-get-db.js +204 -4
  409. package/dist/db/create-get-db.js.map +1 -1
  410. package/dist/db/migrations.d.ts.map +1 -1
  411. package/dist/db/migrations.js +159 -67
  412. package/dist/db/migrations.js.map +1 -1
  413. package/dist/demo/actions/toggle-demo-mode.d.ts +6 -1
  414. package/dist/demo/actions/toggle-demo-mode.d.ts.map +1 -1
  415. package/dist/deploy/build.d.ts.map +1 -1
  416. package/dist/deploy/build.js +80 -39
  417. package/dist/deploy/build.js.map +1 -1
  418. package/dist/deploy/workspace-deploy.js +20 -10
  419. package/dist/deploy/workspace-deploy.js.map +1 -1
  420. package/dist/extensions/fetch-tool.d.ts.map +1 -1
  421. package/dist/extensions/fetch-tool.js +62 -7
  422. package/dist/extensions/fetch-tool.js.map +1 -1
  423. package/dist/extensions/schema.d.ts +51 -51
  424. package/dist/extensions/slots/schema.d.ts +13 -13
  425. package/dist/extensions/web-search-tool.d.ts +41 -0
  426. package/dist/extensions/web-search-tool.d.ts.map +1 -0
  427. package/dist/extensions/web-search-tool.js +200 -0
  428. package/dist/extensions/web-search-tool.js.map +1 -0
  429. package/dist/file-upload/actions/upload-image.d.ts +26 -1
  430. package/dist/file-upload/actions/upload-image.d.ts.map +1 -1
  431. package/dist/file-upload/index.d.ts +1 -1
  432. package/dist/file-upload/index.d.ts.map +1 -1
  433. package/dist/file-upload/index.js +1 -1
  434. package/dist/file-upload/index.js.map +1 -1
  435. package/dist/file-upload/pre-upload-attachments.d.ts +37 -0
  436. package/dist/file-upload/pre-upload-attachments.d.ts.map +1 -1
  437. package/dist/file-upload/pre-upload-attachments.js +79 -19
  438. package/dist/file-upload/pre-upload-attachments.js.map +1 -1
  439. package/dist/index.d.ts +1 -1
  440. package/dist/index.d.ts.map +1 -1
  441. package/dist/index.js.map +1 -1
  442. package/dist/integrations/adapters/slack.js +1 -1
  443. package/dist/integrations/adapters/slack.js.map +1 -1
  444. package/dist/integrations/plugin.js +1 -1
  445. package/dist/integrations/plugin.js.map +1 -1
  446. package/dist/jobs/scheduler.js +70 -21
  447. package/dist/jobs/scheduler.js.map +1 -1
  448. package/dist/mcp/actions/create-org-service-token.d.ts +14 -0
  449. package/dist/mcp/actions/create-org-service-token.d.ts.map +1 -0
  450. package/dist/mcp/actions/create-org-service-token.js +74 -0
  451. package/dist/mcp/actions/create-org-service-token.js.map +1 -0
  452. package/dist/mcp/actions/list-org-service-tokens.d.ts +17 -0
  453. package/dist/mcp/actions/list-org-service-tokens.d.ts.map +1 -0
  454. package/dist/mcp/actions/list-org-service-tokens.js +42 -0
  455. package/dist/mcp/actions/list-org-service-tokens.js.map +1 -0
  456. package/dist/mcp/actions/revoke-org-service-token.d.ts +7 -0
  457. package/dist/mcp/actions/revoke-org-service-token.d.ts.map +1 -0
  458. package/dist/mcp/actions/revoke-org-service-token.js +28 -0
  459. package/dist/mcp/actions/revoke-org-service-token.js.map +1 -0
  460. package/dist/mcp/actions/service-token-access.d.ts +24 -0
  461. package/dist/mcp/actions/service-token-access.d.ts.map +1 -0
  462. package/dist/mcp/actions/service-token-access.js +63 -0
  463. package/dist/mcp/actions/service-token-access.js.map +1 -0
  464. package/dist/mcp/build-server.d.ts +42 -11
  465. package/dist/mcp/build-server.d.ts.map +1 -1
  466. package/dist/mcp/build-server.js +53 -3
  467. package/dist/mcp/build-server.js.map +1 -1
  468. package/dist/mcp/connect-route.d.ts +35 -0
  469. package/dist/mcp/connect-route.d.ts.map +1 -1
  470. package/dist/mcp/connect-route.js +57 -2
  471. package/dist/mcp/connect-route.js.map +1 -1
  472. package/dist/mcp/connect-store.d.ts +43 -0
  473. package/dist/mcp/connect-store.d.ts.map +1 -1
  474. package/dist/mcp/connect-store.js +129 -12
  475. package/dist/mcp/connect-store.js.map +1 -1
  476. package/dist/mcp/oauth-token.d.ts +10 -0
  477. package/dist/mcp/oauth-token.d.ts.map +1 -1
  478. package/dist/mcp/oauth-token.js +2 -0
  479. package/dist/mcp/oauth-token.js.map +1 -1
  480. package/dist/mcp/server.d.ts.map +1 -1
  481. package/dist/mcp/server.js +3 -0
  482. package/dist/mcp/server.js.map +1 -1
  483. package/dist/mcp-client/routes.js +1 -1
  484. package/dist/mcp-client/routes.js.map +1 -1
  485. package/dist/org/context.d.ts +4 -0
  486. package/dist/org/context.d.ts.map +1 -1
  487. package/dist/org/context.js +10 -0
  488. package/dist/org/context.js.map +1 -1
  489. package/dist/org/handlers.d.ts +11 -7
  490. package/dist/org/handlers.d.ts.map +1 -1
  491. package/dist/org/handlers.js +0 -8
  492. package/dist/org/handlers.js.map +1 -1
  493. package/dist/org/migrations.d.ts.map +1 -1
  494. package/dist/org/migrations.js +8 -0
  495. package/dist/org/migrations.js.map +1 -1
  496. package/dist/org/schema.d.ts +15 -15
  497. package/dist/progress/actions.d.ts.map +1 -1
  498. package/dist/progress/actions.js +13 -5
  499. package/dist/progress/actions.js.map +1 -1
  500. package/dist/provider-api/actions/delete-staged-dataset.d.ts +9 -0
  501. package/dist/provider-api/actions/delete-staged-dataset.d.ts.map +1 -0
  502. package/dist/provider-api/actions/delete-staged-dataset.js +35 -0
  503. package/dist/provider-api/actions/delete-staged-dataset.js.map +1 -0
  504. package/dist/provider-api/actions/list-staged-datasets.d.ts +15 -0
  505. package/dist/provider-api/actions/list-staged-datasets.d.ts.map +1 -0
  506. package/dist/provider-api/actions/list-staged-datasets.js +41 -0
  507. package/dist/provider-api/actions/list-staged-datasets.js.map +1 -0
  508. package/dist/provider-api/actions/query-staged-dataset.d.ts +29 -0
  509. package/dist/provider-api/actions/query-staged-dataset.d.ts.map +1 -0
  510. package/dist/provider-api/actions/query-staged-dataset.js +116 -0
  511. package/dist/provider-api/actions/query-staged-dataset.js.map +1 -0
  512. package/dist/provider-api/custom-registry.d.ts +92 -0
  513. package/dist/provider-api/custom-registry.d.ts.map +1 -0
  514. package/dist/provider-api/custom-registry.js +289 -0
  515. package/dist/provider-api/custom-registry.js.map +1 -0
  516. package/dist/provider-api/index.d.ts +88 -52
  517. package/dist/provider-api/index.d.ts.map +1 -1
  518. package/dist/provider-api/index.js +569 -23
  519. package/dist/provider-api/index.js.map +1 -1
  520. package/dist/provider-api/staged-datasets-aggregate.d.ts +46 -0
  521. package/dist/provider-api/staged-datasets-aggregate.d.ts.map +1 -0
  522. package/dist/provider-api/staged-datasets-aggregate.js +209 -0
  523. package/dist/provider-api/staged-datasets-aggregate.js.map +1 -0
  524. package/dist/provider-api/staged-datasets-store.d.ts +76 -0
  525. package/dist/provider-api/staged-datasets-store.d.ts.map +1 -0
  526. package/dist/provider-api/staged-datasets-store.js +319 -0
  527. package/dist/provider-api/staged-datasets-store.js.map +1 -0
  528. package/dist/provider-api/staging.d.ts +100 -0
  529. package/dist/provider-api/staging.d.ts.map +1 -0
  530. package/dist/provider-api/staging.js +281 -0
  531. package/dist/provider-api/staging.js.map +1 -0
  532. package/dist/resources/handlers.d.ts.map +1 -1
  533. package/dist/resources/handlers.js +13 -1
  534. package/dist/resources/handlers.js.map +1 -1
  535. package/dist/scripts/call-agent.d.ts.map +1 -1
  536. package/dist/scripts/call-agent.js +1 -2
  537. package/dist/scripts/call-agent.js.map +1 -1
  538. package/dist/scripts/resources/migrate-learnings.d.ts +1 -1
  539. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
  540. package/dist/scripts/resources/migrate-learnings.js +1 -1
  541. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  542. package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
  543. package/dist/secrets/register-framework-secrets.js +36 -3
  544. package/dist/secrets/register-framework-secrets.js.map +1 -1
  545. package/dist/secrets/schema.d.ts +7 -7
  546. package/dist/server/action-discovery.d.ts.map +1 -1
  547. package/dist/server/action-discovery.js +14 -0
  548. package/dist/server/action-discovery.js.map +1 -1
  549. package/dist/server/action-routes.d.ts.map +1 -1
  550. package/dist/server/action-routes.js +3 -2
  551. package/dist/server/action-routes.js.map +1 -1
  552. package/dist/server/agent-chat-plugin.d.ts +69 -0
  553. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  554. package/dist/server/agent-chat-plugin.js +369 -179
  555. package/dist/server/agent-chat-plugin.js.map +1 -1
  556. package/dist/server/agent-discovery.d.ts.map +1 -1
  557. package/dist/server/agent-discovery.js +13 -16
  558. package/dist/server/agent-discovery.js.map +1 -1
  559. package/dist/server/agent-teams-run-queue.d.ts +31 -8
  560. package/dist/server/agent-teams-run-queue.d.ts.map +1 -1
  561. package/dist/server/agent-teams-run-queue.js +61 -18
  562. package/dist/server/agent-teams-run-queue.js.map +1 -1
  563. package/dist/server/agent-teams.d.ts +27 -1
  564. package/dist/server/agent-teams.d.ts.map +1 -1
  565. package/dist/server/agent-teams.js +214 -14
  566. package/dist/server/agent-teams.js.map +1 -1
  567. package/dist/server/app-base-path.d.ts +20 -0
  568. package/dist/server/app-base-path.d.ts.map +1 -1
  569. package/dist/server/app-base-path.js +36 -0
  570. package/dist/server/app-base-path.js.map +1 -1
  571. package/dist/server/attachment-actions.d.ts +43 -0
  572. package/dist/server/attachment-actions.d.ts.map +1 -0
  573. package/dist/server/attachment-actions.js +214 -0
  574. package/dist/server/attachment-actions.js.map +1 -0
  575. package/dist/server/auth.js +1 -1
  576. package/dist/server/auth.js.map +1 -1
  577. package/dist/server/complete-text.d.ts +56 -0
  578. package/dist/server/complete-text.d.ts.map +1 -0
  579. package/dist/server/complete-text.js +147 -0
  580. package/dist/server/complete-text.js.map +1 -0
  581. package/dist/server/core-routes-plugin.d.ts +1 -0
  582. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  583. package/dist/server/core-routes-plugin.js +37 -27
  584. package/dist/server/core-routes-plugin.js.map +1 -1
  585. package/dist/server/cors-origins.d.ts.map +1 -1
  586. package/dist/server/cors-origins.js +6 -1
  587. package/dist/server/cors-origins.js.map +1 -1
  588. package/dist/server/create-server.d.ts.map +1 -1
  589. package/dist/server/create-server.js +2 -1
  590. package/dist/server/create-server.js.map +1 -1
  591. package/dist/server/csrf.d.ts +1 -1
  592. package/dist/server/csrf.d.ts.map +1 -1
  593. package/dist/server/email-actions.d.ts +19 -0
  594. package/dist/server/email-actions.d.ts.map +1 -0
  595. package/dist/server/email-actions.js +191 -0
  596. package/dist/server/email-actions.js.map +1 -0
  597. package/dist/server/embed-route.js +1 -1
  598. package/dist/server/embed-route.js.map +1 -1
  599. package/dist/server/embed-session.d.ts.map +1 -1
  600. package/dist/server/embed-session.js +5 -1
  601. package/dist/server/embed-session.js.map +1 -1
  602. package/dist/server/entry-server.d.ts +24 -0
  603. package/dist/server/entry-server.d.ts.map +1 -0
  604. package/dist/server/entry-server.js +54 -0
  605. package/dist/server/entry-server.js.map +1 -0
  606. package/dist/server/framework-request-handler.d.ts.map +1 -1
  607. package/dist/server/framework-request-handler.js +2 -10
  608. package/dist/server/framework-request-handler.js.map +1 -1
  609. package/dist/server/google-oauth.d.ts.map +1 -1
  610. package/dist/server/google-oauth.js +2 -9
  611. package/dist/server/google-oauth.js.map +1 -1
  612. package/dist/server/google-realtime-session.d.ts.map +1 -1
  613. package/dist/server/google-realtime-session.js +6 -4
  614. package/dist/server/google-realtime-session.js.map +1 -1
  615. package/dist/server/h3-helpers.d.ts +39 -0
  616. package/dist/server/h3-helpers.d.ts.map +1 -1
  617. package/dist/server/h3-helpers.js +104 -1
  618. package/dist/server/h3-helpers.js.map +1 -1
  619. package/dist/server/index.d.ts +2 -1
  620. package/dist/server/index.d.ts.map +1 -1
  621. package/dist/server/index.js +2 -1
  622. package/dist/server/index.js.map +1 -1
  623. package/dist/server/onboarding-html.d.ts.map +1 -1
  624. package/dist/server/onboarding-html.js +1 -8
  625. package/dist/server/onboarding-html.js.map +1 -1
  626. package/dist/server/open-route.d.ts.map +1 -1
  627. package/dist/server/open-route.js +1 -0
  628. package/dist/server/open-route.js.map +1 -1
  629. package/dist/server/prompts/framework-core-compact.d.ts +19 -0
  630. package/dist/server/prompts/framework-core-compact.d.ts.map +1 -0
  631. package/dist/server/prompts/framework-core-compact.js +69 -0
  632. package/dist/server/prompts/framework-core-compact.js.map +1 -0
  633. package/dist/server/prompts/framework-core.d.ts +26 -0
  634. package/dist/server/prompts/framework-core.d.ts.map +1 -0
  635. package/dist/server/prompts/framework-core.js +130 -0
  636. package/dist/server/prompts/framework-core.js.map +1 -0
  637. package/dist/server/prompts/index.d.ts +9 -0
  638. package/dist/server/prompts/index.d.ts.map +1 -0
  639. package/dist/server/prompts/index.js +9 -0
  640. package/dist/server/prompts/index.js.map +1 -0
  641. package/dist/server/prompts/model-overlays.d.ts +18 -0
  642. package/dist/server/prompts/model-overlays.d.ts.map +1 -0
  643. package/dist/server/prompts/model-overlays.js +46 -0
  644. package/dist/server/prompts/model-overlays.js.map +1 -0
  645. package/dist/server/prompts/shared-rules.d.ts +29 -0
  646. package/dist/server/prompts/shared-rules.d.ts.map +1 -0
  647. package/dist/server/prompts/shared-rules.js +54 -0
  648. package/dist/server/prompts/shared-rules.js.map +1 -0
  649. package/dist/server/security-headers.d.ts +7 -1
  650. package/dist/server/security-headers.d.ts.map +1 -1
  651. package/dist/server/security-headers.js +11 -0
  652. package/dist/server/security-headers.js.map +1 -1
  653. package/dist/server/ssr-handler.d.ts.map +1 -1
  654. package/dist/server/ssr-handler.js +135 -46
  655. package/dist/server/ssr-handler.js.map +1 -1
  656. package/dist/server/transcribe-voice.d.ts.map +1 -1
  657. package/dist/server/transcribe-voice.js +7 -4
  658. package/dist/server/transcribe-voice.js.map +1 -1
  659. package/dist/settings/store.d.ts.map +1 -1
  660. package/dist/settings/store.js +9 -0
  661. package/dist/settings/store.js.map +1 -1
  662. package/dist/shared/markdown-block-split.d.ts +39 -0
  663. package/dist/shared/markdown-block-split.d.ts.map +1 -0
  664. package/dist/shared/markdown-block-split.js +97 -0
  665. package/dist/shared/markdown-block-split.js.map +1 -0
  666. package/dist/shared/reasoning-effort.js +13 -1
  667. package/dist/shared/reasoning-effort.js.map +1 -1
  668. package/dist/shared/streaming-text-smoothing.d.ts +18 -0
  669. package/dist/shared/streaming-text-smoothing.d.ts.map +1 -1
  670. package/dist/shared/streaming-text-smoothing.js +70 -4
  671. package/dist/shared/streaming-text-smoothing.js.map +1 -1
  672. package/dist/sharing/actions/list-resource-shares.d.ts +24 -1
  673. package/dist/sharing/actions/list-resource-shares.d.ts.map +1 -1
  674. package/dist/sharing/actions/set-resource-visibility.d.ts +8 -1
  675. package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -1
  676. package/dist/sharing/actions/share-resource.d.ts +12 -1
  677. package/dist/sharing/actions/share-resource.d.ts.map +1 -1
  678. package/dist/sharing/actions/unshare-resource.d.ts +8 -1
  679. package/dist/sharing/actions/unshare-resource.d.ts.map +1 -1
  680. package/dist/sharing/schema.d.ts +10 -10
  681. package/dist/styles/agent-conversation.css +239 -0
  682. package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  683. package/dist/templates/default/AGENTS.md +1 -1
  684. package/dist/templates/default/DEVELOPING.md +19 -0
  685. package/dist/templates/default/app/entry.client.tsx +4 -1
  686. package/dist/templates/default/app/entry.server.tsx +4 -56
  687. package/dist/templates/default/app/global.css +3 -2
  688. package/dist/templates/default/app/root.tsx +8 -24
  689. package/dist/templates/default/app/routes/_index.tsx +0 -13
  690. package/dist/templates/default/package.json +6 -5
  691. package/dist/templates/default/tsconfig.json +2 -1
  692. package/dist/templates/starter-shell-sync.spec.ts +118 -0
  693. package/dist/templates/ui-primitives-sync.spec.ts +399 -0
  694. package/dist/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  695. package/dist/terminal/pty-server.js +1 -1
  696. package/dist/terminal/pty-server.js.map +1 -1
  697. package/dist/triggers/dispatcher.js +1 -1
  698. package/dist/triggers/dispatcher.js.map +1 -1
  699. package/dist/usage/store.d.ts.map +1 -1
  700. package/dist/usage/store.js +60 -7
  701. package/dist/usage/store.js.map +1 -1
  702. package/dist/vite/client.d.ts.map +1 -1
  703. package/dist/vite/client.js +44 -12
  704. package/dist/vite/client.js.map +1 -1
  705. package/dist/workspace-files/index.d.ts +4 -0
  706. package/dist/workspace-files/index.d.ts.map +1 -0
  707. package/dist/workspace-files/index.js +4 -0
  708. package/dist/workspace-files/index.js.map +1 -0
  709. package/dist/workspace-files/schema.d.ts +195 -0
  710. package/dist/workspace-files/schema.d.ts.map +1 -0
  711. package/dist/workspace-files/schema.js +48 -0
  712. package/dist/workspace-files/schema.js.map +1 -0
  713. package/dist/workspace-files/store.d.ts +89 -0
  714. package/dist/workspace-files/store.d.ts.map +1 -0
  715. package/dist/workspace-files/store.js +298 -0
  716. package/dist/workspace-files/store.js.map +1 -0
  717. package/dist/workspace-files/tool.d.ts +15 -0
  718. package/dist/workspace-files/tool.d.ts.map +1 -0
  719. package/dist/workspace-files/tool.js +225 -0
  720. package/dist/workspace-files/tool.js.map +1 -0
  721. package/docs/content/a2a-protocol.md +18 -12
  722. package/docs/content/actions.md +42 -10
  723. package/docs/content/agent-mentions.md +7 -8
  724. package/docs/content/agent-teams.md +23 -37
  725. package/docs/content/agent-web-surfaces.md +18 -9
  726. package/docs/content/authentication.md +6 -17
  727. package/docs/content/automations.md +43 -15
  728. package/docs/content/cli-adapters.md +25 -24
  729. package/docs/content/client.md +66 -17
  730. package/docs/content/cloneable-saas.md +19 -23
  731. package/docs/content/code-agents-ui.md +3 -31
  732. package/docs/content/components.md +308 -0
  733. package/docs/content/context-awareness.md +4 -0
  734. package/docs/content/creating-templates.md +4 -2
  735. package/docs/content/cross-app-sso.md +45 -19
  736. package/docs/content/database.md +26 -1
  737. package/docs/content/deployment.md +3 -1
  738. package/docs/content/dispatch.md +9 -37
  739. package/docs/content/drop-in-agent.md +123 -2
  740. package/docs/content/embedding-sdk.md +35 -0
  741. package/docs/content/extensions.md +2 -2
  742. package/docs/content/external-agents.md +86 -171
  743. package/docs/content/faq.md +6 -27
  744. package/docs/content/frames.md +9 -12
  745. package/docs/content/getting-started.md +80 -77
  746. package/docs/content/key-concepts.md +29 -19
  747. package/docs/content/mcp-apps.md +103 -0
  748. package/docs/content/mcp-clients.md +2 -2
  749. package/docs/content/mcp-protocol.md +40 -17
  750. package/docs/content/messaging.md +11 -4
  751. package/docs/content/migration-workbench.md +4 -47
  752. package/docs/content/multi-app-workspace.md +48 -17
  753. package/docs/content/multi-tenancy.md +1 -1
  754. package/docs/content/notifications.md +8 -6
  755. package/docs/content/observability.md +26 -15
  756. package/docs/content/onboarding.md +7 -1
  757. package/docs/content/pr-visual-recap.md +203 -23
  758. package/docs/content/progress.md +5 -5
  759. package/docs/content/pure-agent-apps.md +3 -1
  760. package/docs/content/real-time-collaboration.md +106 -0
  761. package/docs/content/recurring-jobs.md +17 -1
  762. package/docs/content/security.md +17 -3
  763. package/docs/content/server.md +39 -3
  764. package/docs/content/sharing.md +20 -1
  765. package/docs/content/skills-guide.md +151 -125
  766. package/docs/content/template-analytics.md +8 -0
  767. package/docs/content/template-assets.md +2 -0
  768. package/docs/content/template-brain.md +59 -3
  769. package/docs/content/template-calendar.md +8 -0
  770. package/docs/content/template-clips.md +11 -2
  771. package/docs/content/template-content.md +24 -4
  772. package/docs/content/template-design.md +19 -17
  773. package/docs/content/template-dispatch.md +2 -0
  774. package/docs/content/template-forms.md +28 -1
  775. package/docs/content/template-mail.md +17 -0
  776. package/docs/content/template-plan.md +177 -10
  777. package/docs/content/template-slides.md +51 -12
  778. package/docs/content/template-videos.md +17 -0
  779. package/docs/content/tracking.md +17 -13
  780. package/docs/content/using-your-agent.md +15 -5
  781. package/docs/content/voice-input.md +1 -1
  782. package/docs/content/what-is-agent-native.md +5 -6
  783. package/docs/content/workspace-connections.md +138 -424
  784. package/docs/content/workspace-management.md +12 -128
  785. package/docs/content/workspace.md +125 -199
  786. package/docs/content/writing-agent-instructions.md +17 -1
  787. package/package.json +26 -6
  788. package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  789. package/src/templates/default/AGENTS.md +1 -1
  790. package/src/templates/default/DEVELOPING.md +19 -0
  791. package/src/templates/default/app/entry.client.tsx +4 -1
  792. package/src/templates/default/app/entry.server.tsx +4 -56
  793. package/src/templates/default/app/global.css +3 -2
  794. package/src/templates/default/app/root.tsx +8 -24
  795. package/src/templates/default/app/routes/_index.tsx +0 -13
  796. package/src/templates/default/package.json +6 -5
  797. package/src/templates/default/tsconfig.json +2 -1
  798. package/src/templates/starter-shell-sync.spec.ts +118 -0
  799. package/src/templates/ui-primitives-sync.spec.ts +399 -0
  800. package/src/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  801. package/tsconfig.base.json +2 -10
  802. package/dist/cli/app-skill.d.ts +0 -157
  803. package/dist/cli/app-skill.d.ts.map +0 -1
  804. package/dist/cli/audit-agent-web.d.ts +0 -2
  805. package/dist/cli/audit-agent-web.d.ts.map +0 -1
  806. package/dist/cli/code-agent-connector.d.ts +0 -17
  807. package/dist/cli/code-agent-connector.d.ts.map +0 -1
  808. package/dist/cli/code.d.ts +0 -66
  809. package/dist/cli/code.d.ts.map +0 -1
  810. package/dist/cli/connect.d.ts +0 -140
  811. package/dist/cli/connect.d.ts.map +0 -1
  812. package/dist/cli/context-xray-local.d.ts +0 -16
  813. package/dist/cli/context-xray-local.d.ts.map +0 -1
  814. package/dist/cli/create-workspace.d.ts +0 -8
  815. package/dist/cli/create-workspace.d.ts.map +0 -1
  816. package/dist/cli/index.d.ts +0 -3
  817. package/dist/cli/index.d.ts.map +0 -1
  818. package/dist/cli/info.d.ts +0 -2
  819. package/dist/cli/info.d.ts.map +0 -1
  820. package/dist/cli/mcp-config-writers.d.ts +0 -82
  821. package/dist/cli/mcp-config-writers.d.ts.map +0 -1
  822. package/dist/cli/mcp.d.ts +0 -16
  823. package/dist/cli/mcp.d.ts.map +0 -1
  824. package/dist/cli/migrate.d.ts +0 -38
  825. package/dist/cli/migrate.d.ts.map +0 -1
  826. package/dist/cli/plan-local.d.ts +0 -43
  827. package/dist/cli/plan-local.d.ts.map +0 -1
  828. package/dist/cli/plan-publish-store.d.ts +0 -62
  829. package/dist/cli/plan-publish-store.d.ts.map +0 -1
  830. package/dist/cli/pr-visual-recap-workflow.d.ts +0 -11
  831. package/dist/cli/pr-visual-recap-workflow.d.ts.map +0 -1
  832. package/dist/cli/recap.d.ts +0 -297
  833. package/dist/cli/recap.d.ts.map +0 -1
  834. package/dist/cli/skills.d.ts +0 -162
  835. package/dist/cli/skills.d.ts.map +0 -1
  836. package/dist/cli/workspace-dev.d.ts +0 -96
  837. package/dist/cli/workspace-dev.d.ts.map +0 -1
@@ -19,7 +19,7 @@ export declare const organizations: import("drizzle-orm/sqlite-core").SQLiteTabl
19
19
  identity: undefined;
20
20
  generated: undefined;
21
21
  }, {}, {
22
- length: number;
22
+ length: number | undefined;
23
23
  }>;
24
24
  name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
25
  name: "name";
@@ -38,7 +38,7 @@ export declare const organizations: import("drizzle-orm/sqlite-core").SQLiteTabl
38
38
  identity: undefined;
39
39
  generated: undefined;
40
40
  }, {}, {
41
- length: number;
41
+ length: number | undefined;
42
42
  }>;
43
43
  createdBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
44
  name: "created_by";
@@ -57,7 +57,7 @@ export declare const organizations: import("drizzle-orm/sqlite-core").SQLiteTabl
57
57
  identity: undefined;
58
58
  generated: undefined;
59
59
  }, {}, {
60
- length: number;
60
+ length: number | undefined;
61
61
  }>;
62
62
  createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
63
  name: "created_at";
@@ -93,7 +93,7 @@ export declare const organizations: import("drizzle-orm/sqlite-core").SQLiteTabl
93
93
  identity: undefined;
94
94
  generated: undefined;
95
95
  }, {}, {
96
- length: number;
96
+ length: number | undefined;
97
97
  }>;
98
98
  a2aSecret: import("drizzle-orm/sqlite-core").SQLiteColumn<{
99
99
  name: "a2a_secret";
@@ -112,7 +112,7 @@ export declare const organizations: import("drizzle-orm/sqlite-core").SQLiteTabl
112
112
  identity: undefined;
113
113
  generated: undefined;
114
114
  }, {}, {
115
- length: number;
115
+ length: number | undefined;
116
116
  }>;
117
117
  };
118
118
  dialect: "sqlite";
@@ -138,7 +138,7 @@ export declare const orgMembers: import("drizzle-orm/sqlite-core").SQLiteTableWi
138
138
  identity: undefined;
139
139
  generated: undefined;
140
140
  }, {}, {
141
- length: number;
141
+ length: number | undefined;
142
142
  }>;
143
143
  orgId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
144
144
  name: "org_id";
@@ -157,7 +157,7 @@ export declare const orgMembers: import("drizzle-orm/sqlite-core").SQLiteTableWi
157
157
  identity: undefined;
158
158
  generated: undefined;
159
159
  }, {}, {
160
- length: number;
160
+ length: number | undefined;
161
161
  }>;
162
162
  email: import("drizzle-orm/sqlite-core").SQLiteColumn<{
163
163
  name: "email";
@@ -176,7 +176,7 @@ export declare const orgMembers: import("drizzle-orm/sqlite-core").SQLiteTableWi
176
176
  identity: undefined;
177
177
  generated: undefined;
178
178
  }, {}, {
179
- length: number;
179
+ length: number | undefined;
180
180
  }>;
181
181
  role: import("drizzle-orm/sqlite-core").SQLiteColumn<{
182
182
  name: "role";
@@ -195,7 +195,7 @@ export declare const orgMembers: import("drizzle-orm/sqlite-core").SQLiteTableWi
195
195
  identity: undefined;
196
196
  generated: undefined;
197
197
  }, {}, {
198
- length: number;
198
+ length: number | undefined;
199
199
  }>;
200
200
  joinedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
201
201
  name: "joined_at";
@@ -238,7 +238,7 @@ export declare const orgInvitations: import("drizzle-orm/sqlite-core").SQLiteTab
238
238
  identity: undefined;
239
239
  generated: undefined;
240
240
  }, {}, {
241
- length: number;
241
+ length: number | undefined;
242
242
  }>;
243
243
  orgId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
244
244
  name: "org_id";
@@ -257,7 +257,7 @@ export declare const orgInvitations: import("drizzle-orm/sqlite-core").SQLiteTab
257
257
  identity: undefined;
258
258
  generated: undefined;
259
259
  }, {}, {
260
- length: number;
260
+ length: number | undefined;
261
261
  }>;
262
262
  email: import("drizzle-orm/sqlite-core").SQLiteColumn<{
263
263
  name: "email";
@@ -276,7 +276,7 @@ export declare const orgInvitations: import("drizzle-orm/sqlite-core").SQLiteTab
276
276
  identity: undefined;
277
277
  generated: undefined;
278
278
  }, {}, {
279
- length: number;
279
+ length: number | undefined;
280
280
  }>;
281
281
  invitedBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
282
282
  name: "invited_by";
@@ -295,7 +295,7 @@ export declare const orgInvitations: import("drizzle-orm/sqlite-core").SQLiteTab
295
295
  identity: undefined;
296
296
  generated: undefined;
297
297
  }, {}, {
298
- length: number;
298
+ length: number | undefined;
299
299
  }>;
300
300
  createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
301
301
  name: "created_at";
@@ -331,7 +331,7 @@ export declare const orgInvitations: import("drizzle-orm/sqlite-core").SQLiteTab
331
331
  identity: undefined;
332
332
  generated: undefined;
333
333
  }, {}, {
334
- length: number;
334
+ length: number | undefined;
335
335
  }>;
336
336
  role: import("drizzle-orm/sqlite-core").SQLiteColumn<{
337
337
  name: "role";
@@ -350,7 +350,7 @@ export declare const orgInvitations: import("drizzle-orm/sqlite-core").SQLiteTab
350
350
  identity: undefined;
351
351
  generated: undefined;
352
352
  }, {}, {
353
- length: number;
353
+ length: number | undefined;
354
354
  }>;
355
355
  };
356
356
  dialect: "sqlite";
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/progress/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAchE,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,MAAM,GAC3B,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CA+I7B"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/progress/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAchE,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,MAAM,GAC3B,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAuJ7B"}
@@ -17,13 +17,21 @@ export function createProgressToolEntries(getCurrentUser) {
17
17
  return {
18
18
  "manage-progress": {
19
19
  tool: {
20
- description: `Manage long-running task progress visible to the user. Use this whenever a task will take more than a few seconds so the user can watch status in the runs tray.
20
+ description: `Track multi-step task progress visible to the user in the runs tray.
21
+
22
+ Use for non-trivial work with multiple real steps (not single-action lookups). Do NOT create single-step plans. Skip for trivial tasks that finish in one tool call.
23
+
24
+ **Discipline:**
25
+ - Exactly one task in progress at a time; never batch-complete steps after the fact — update as you go.
26
+ - Always transition pending → in_progress before completing a step.
27
+ - If the task pivots (scope change, unexpected blocker), update the current step to reflect it before continuing.
28
+ - End every run with "complete" (succeeded / failed / cancelled). Never leave a run open indefinitely.
21
29
 
22
30
  Actions:
23
- • "start" — Begin tracking a new task. Returns a runId to pass to subsequent calls. Params: title (required), step (optional initial step text), metadataJson (optional JSON string with link/thread/artifact info).
24
- • "update" — Report progress on a running task. Call frequently during long loops. Params: runId (required), percent (optional 0–100), step (optional current step text). Omitted fields stay unchanged.
25
- • "complete" — Mark a task as finished. Params: runId (required), status (required: "succeeded" | "failed" | "cancelled"), step (optional final step text). Pairs well with \`notify\` to tell the user the outcome.
26
- • "list" — List the user's recent runs. Use when the user asks "what is still running" or "what did you do earlier". Params: active (optional boolean, filter to in-progress only), limit (optional number, default 20, max 200).`,
31
+ • "start" — Begin tracking. Returns a runId for subsequent calls. Params: title (required, short human description e.g. "Triage 42 emails"), step (optional initial step), metadataJson (optional JSON with link/thread/artifact info).
32
+ • "update" — Report progress. Call after each meaningful milestone. Params: runId (required), percent (optional 0–100 when a bound is known), step (optional current step text). Omitted fields stay unchanged.
33
+ • "complete" — Mark finished. Params: runId (required), status (required: "succeeded" | "failed" | "cancelled"), step (optional final step text). Pair with \`notify\` when the user should be alerted.
34
+ • "list" — List recent runs. Use when the user asks "what is still running" or "what did you do earlier". Params: active (optional boolean, filter to in-progress only), limit (optional number, default 20, max 200).`,
27
35
  parameters: {
28
36
  type: "object",
29
37
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/progress/actions.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Framework-level agent tools for the progress primitive. Registered as\n * native tools so every template exposes them. Use from long agent loops\n * to communicate status to the user while work is still in-flight.\n *\n * All operations are consolidated into a single `manage-progress` tool\n * with an `action` discriminator.\n */\n\nimport type { ActionEntry } from \"../agent/production-agent.js\";\nimport {\n startRun,\n updateRunProgress,\n completeRun,\n listRuns,\n} from \"./registry.js\";\n\nfunction parseLimit(value: unknown, fallback = 20): number {\n const n = Number(value ?? fallback);\n if (!Number.isFinite(n) || n <= 0) return fallback;\n return Math.min(Math.floor(n), 200);\n}\n\nexport function createProgressToolEntries(\n getCurrentUser: () => string,\n): Record<string, ActionEntry> {\n return {\n \"manage-progress\": {\n tool: {\n description: `Manage long-running task progress visible to the user. Use this whenever a task will take more than a few seconds so the user can watch status in the runs tray.\n\nActions:\n• \"start\" — Begin tracking a new task. Returns a runId to pass to subsequent calls. Params: title (required), step (optional initial step text), metadataJson (optional JSON string with link/thread/artifact info).\n• \"update\" — Report progress on a running task. Call frequently during long loops. Params: runId (required), percent (optional 0–100), step (optional current step text). Omitted fields stay unchanged.\n• \"complete\" — Mark a task as finished. Params: runId (required), status (required: \"succeeded\" | \"failed\" | \"cancelled\"), step (optional final step text). Pairs well with \\`notify\\` to tell the user the outcome.\n• \"list\" — List the user's recent runs. Use when the user asks \"what is still running\" or \"what did you do earlier\". Params: active (optional boolean, filter to in-progress only), limit (optional number, default 20, max 200).`,\n parameters: {\n type: \"object\" as const,\n properties: {\n action: {\n type: \"string\",\n enum: [\"start\", \"update\", \"complete\", \"list\"],\n description:\n 'The operation to perform: \"start\" a new run, \"update\" progress, \"complete\" a run, or \"list\" recent runs.',\n },\n title: {\n type: \"string\",\n description:\n '[start] Short human-readable title, e.g. \"Triage 128 unread emails\".',\n },\n step: {\n type: \"string\",\n description:\n '[start/update/complete] Step description, e.g. \"Fetching inbox\" or \"Drafting reply 23/100\".',\n },\n metadataJson: {\n type: \"string\",\n description:\n \"[start] Optional JSON metadata: link, thread id, artifact path, etc.\",\n },\n runId: {\n type: \"string\",\n description:\n '[update/complete] The id returned by a \"start\" action.',\n },\n percent: {\n type: \"number\",\n description:\n \"[update] Progress 0–100. Omit if the task has no known upper bound.\",\n },\n status: {\n type: \"string\",\n enum: [\"succeeded\", \"failed\", \"cancelled\"],\n description: \"[complete] Terminal status for the run.\",\n },\n active: {\n type: \"boolean\",\n description:\n \"[list] When true, only return runs still in progress.\",\n },\n limit: {\n type: \"number\",\n description: \"[list] Max rows (default 20, max 200).\",\n },\n },\n required: [\"action\"],\n },\n },\n run: async (args: Record<string, unknown>) => {\n const owner = getCurrentUser();\n const action = String(args.action ?? \"\");\n\n switch (action) {\n case \"start\": {\n const title = args.title ? String(args.title) : \"\";\n if (!title) return \"Error: title is required for the start action.\";\n let metadata: Record<string, unknown> | undefined;\n if (args.metadataJson) {\n try {\n metadata = JSON.parse(String(args.metadataJson));\n } catch {\n return \"Error: metadataJson must be valid JSON.\";\n }\n }\n const run = await startRun({\n owner,\n title,\n step: args.step ? String(args.step) : undefined,\n metadata,\n });\n return `Run started. runId=${run.id}`;\n }\n\n case \"update\": {\n const runId = String(args.runId ?? \"\");\n if (!runId)\n return \"Error: runId is required for the update action.\";\n const percent =\n args.percent == null ? undefined : Number(args.percent);\n const run = await updateRunProgress(runId, owner, {\n percent,\n step: args.step ? String(args.step) : undefined,\n });\n if (!run) return `Error: run ${runId} not found.`;\n return `Run updated (percent=${run.percent ?? \"?\"}, step=${run.step ?? \"\"}).`;\n }\n\n case \"complete\": {\n const runId = String(args.runId ?? \"\");\n const status = String(args.status ?? \"\");\n if (!runId || !status) {\n return \"Error: runId and status are required for the complete action.\";\n }\n if (![\"succeeded\", \"failed\", \"cancelled\"].includes(status)) {\n return 'Error: status must be \"succeeded\", \"failed\", or \"cancelled\".';\n }\n const run = await completeRun(\n runId,\n owner,\n status as \"succeeded\" | \"failed\" | \"cancelled\",\n args.step ? { step: String(args.step) } : undefined,\n );\n if (!run) return `Error: run ${runId} not found.`;\n return `Run ${run.id} completed with status=${run.status}.`;\n }\n\n case \"list\": {\n const rows = await listRuns(owner, {\n activeOnly: args.active === true || args.active === \"true\",\n limit: parseLimit(args.limit),\n });\n if (rows.length === 0) {\n return args.active ? \"No active runs.\" : \"No runs.\";\n }\n return rows\n .map(\n (r) =>\n `[${r.status}] ${r.title}${r.percent != null ? ` · ${r.percent}%` : \"\"}${r.step ? ` — ${r.step}` : \"\"} · ${r.startedAt}`,\n )\n .join(\"\\n\");\n }\n\n default:\n return `Error: unknown action \"${action}\". Use one of: start, update, complete, list.`;\n }\n },\n },\n };\n}\n"]}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/progress/actions.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Framework-level agent tools for the progress primitive. Registered as\n * native tools so every template exposes them. Use from long agent loops\n * to communicate status to the user while work is still in-flight.\n *\n * All operations are consolidated into a single `manage-progress` tool\n * with an `action` discriminator.\n */\n\nimport type { ActionEntry } from \"../agent/production-agent.js\";\nimport {\n startRun,\n updateRunProgress,\n completeRun,\n listRuns,\n} from \"./registry.js\";\n\nfunction parseLimit(value: unknown, fallback = 20): number {\n const n = Number(value ?? fallback);\n if (!Number.isFinite(n) || n <= 0) return fallback;\n return Math.min(Math.floor(n), 200);\n}\n\nexport function createProgressToolEntries(\n getCurrentUser: () => string,\n): Record<string, ActionEntry> {\n return {\n \"manage-progress\": {\n tool: {\n description: `Track multi-step task progress visible to the user in the runs tray.\n\nUse for non-trivial work with multiple real steps (not single-action lookups). Do NOT create single-step plans. Skip for trivial tasks that finish in one tool call.\n\n**Discipline:**\n- Exactly one task in progress at a time; never batch-complete steps after the fact — update as you go.\n- Always transition pending → in_progress before completing a step.\n- If the task pivots (scope change, unexpected blocker), update the current step to reflect it before continuing.\n- End every run with \"complete\" (succeeded / failed / cancelled). Never leave a run open indefinitely.\n\nActions:\n• \"start\" — Begin tracking. Returns a runId for subsequent calls. Params: title (required, short human description e.g. \"Triage 42 emails\"), step (optional initial step), metadataJson (optional JSON with link/thread/artifact info).\n• \"update\" — Report progress. Call after each meaningful milestone. Params: runId (required), percent (optional 0–100 when a bound is known), step (optional current step text). Omitted fields stay unchanged.\n• \"complete\" — Mark finished. Params: runId (required), status (required: \"succeeded\" | \"failed\" | \"cancelled\"), step (optional final step text). Pair with \\`notify\\` when the user should be alerted.\n• \"list\" — List recent runs. Use when the user asks \"what is still running\" or \"what did you do earlier\". Params: active (optional boolean, filter to in-progress only), limit (optional number, default 20, max 200).`,\n parameters: {\n type: \"object\" as const,\n properties: {\n action: {\n type: \"string\",\n enum: [\"start\", \"update\", \"complete\", \"list\"],\n description:\n 'The operation to perform: \"start\" a new run, \"update\" progress, \"complete\" a run, or \"list\" recent runs.',\n },\n title: {\n type: \"string\",\n description:\n '[start] Short human-readable title, e.g. \"Triage 128 unread emails\".',\n },\n step: {\n type: \"string\",\n description:\n '[start/update/complete] Step description, e.g. \"Fetching inbox\" or \"Drafting reply 23/100\".',\n },\n metadataJson: {\n type: \"string\",\n description:\n \"[start] Optional JSON metadata: link, thread id, artifact path, etc.\",\n },\n runId: {\n type: \"string\",\n description:\n '[update/complete] The id returned by a \"start\" action.',\n },\n percent: {\n type: \"number\",\n description:\n \"[update] Progress 0–100. Omit if the task has no known upper bound.\",\n },\n status: {\n type: \"string\",\n enum: [\"succeeded\", \"failed\", \"cancelled\"],\n description: \"[complete] Terminal status for the run.\",\n },\n active: {\n type: \"boolean\",\n description:\n \"[list] When true, only return runs still in progress.\",\n },\n limit: {\n type: \"number\",\n description: \"[list] Max rows (default 20, max 200).\",\n },\n },\n required: [\"action\"],\n },\n },\n run: async (args: Record<string, unknown>) => {\n const owner = getCurrentUser();\n const action = String(args.action ?? \"\");\n\n switch (action) {\n case \"start\": {\n const title = args.title ? String(args.title) : \"\";\n if (!title) return \"Error: title is required for the start action.\";\n let metadata: Record<string, unknown> | undefined;\n if (args.metadataJson) {\n try {\n metadata = JSON.parse(String(args.metadataJson));\n } catch {\n return \"Error: metadataJson must be valid JSON.\";\n }\n }\n const run = await startRun({\n owner,\n title,\n step: args.step ? String(args.step) : undefined,\n metadata,\n });\n return `Run started. runId=${run.id}`;\n }\n\n case \"update\": {\n const runId = String(args.runId ?? \"\");\n if (!runId)\n return \"Error: runId is required for the update action.\";\n const percent =\n args.percent == null ? undefined : Number(args.percent);\n const run = await updateRunProgress(runId, owner, {\n percent,\n step: args.step ? String(args.step) : undefined,\n });\n if (!run) return `Error: run ${runId} not found.`;\n return `Run updated (percent=${run.percent ?? \"?\"}, step=${run.step ?? \"\"}).`;\n }\n\n case \"complete\": {\n const runId = String(args.runId ?? \"\");\n const status = String(args.status ?? \"\");\n if (!runId || !status) {\n return \"Error: runId and status are required for the complete action.\";\n }\n if (![\"succeeded\", \"failed\", \"cancelled\"].includes(status)) {\n return 'Error: status must be \"succeeded\", \"failed\", or \"cancelled\".';\n }\n const run = await completeRun(\n runId,\n owner,\n status as \"succeeded\" | \"failed\" | \"cancelled\",\n args.step ? { step: String(args.step) } : undefined,\n );\n if (!run) return `Error: run ${runId} not found.`;\n return `Run ${run.id} completed with status=${run.status}.`;\n }\n\n case \"list\": {\n const rows = await listRuns(owner, {\n activeOnly: args.active === true || args.active === \"true\",\n limit: parseLimit(args.limit),\n });\n if (rows.length === 0) {\n return args.active ? \"No active runs.\" : \"No runs.\";\n }\n return rows\n .map(\n (r) =>\n `[${r.status}] ${r.title}${r.percent != null ? ` · ${r.percent}%` : \"\"}${r.step ? ` — ${r.step}` : \"\"} · ${r.startedAt}`,\n )\n .join(\"\\n\");\n }\n\n default:\n return `Error: unknown action \"${action}\". Use one of: start, update, complete, list.`;\n }\n },\n },\n };\n}\n"]}
@@ -0,0 +1,9 @@
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ datasetId: string;
3
+ appId: string;
4
+ }, {
5
+ deleted: boolean;
6
+ datasetId: string;
7
+ }>;
8
+ export default _default;
9
+ //# sourceMappingURL=delete-staged-dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-staged-dataset.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/delete-staged-dataset.ts"],"names":[],"mappings":";;;;;;;AAQA,wBAkCG"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * delete-staged-dataset — remove a staged dataset and free its storage.
3
+ */
4
+ import { defineAction } from "../../action.js";
5
+ import { z } from "zod";
6
+ import { getCredentialContext } from "../../server/request-context.js";
7
+ import { deleteStagedDataset } from "../staged-datasets-store.js";
8
+ export default defineAction({
9
+ description: "Delete a staged dataset by id, freeing its scratch storage. " +
10
+ "Use after analysis is complete or before re-staging a large dataset under the same name. " +
11
+ "Only the owner who staged the dataset can delete it.",
12
+ schema: z.object({
13
+ datasetId: z
14
+ .string()
15
+ .min(1)
16
+ .describe("Dataset id to delete (from list-staged-datasets or provider-api-request stageAs result)."),
17
+ appId: z.string().min(1).describe("App id that owns the dataset."),
18
+ }),
19
+ http: false,
20
+ run: async (args) => {
21
+ const ctx = getCredentialContext();
22
+ if (!ctx)
23
+ throw new Error("No authenticated context for delete-staged-dataset.");
24
+ const deleted = await deleteStagedDataset({
25
+ id: args.datasetId,
26
+ appId: args.appId,
27
+ ownerEmail: ctx.userEmail,
28
+ });
29
+ if (!deleted) {
30
+ throw new Error(`Dataset ${args.datasetId} not found (or belongs to a different owner/app).`);
31
+ }
32
+ return { deleted: true, datasetId: args.datasetId };
33
+ },
34
+ });
35
+ //# sourceMappingURL=delete-staged-dataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-staged-dataset.js","sourceRoot":"","sources":["../../../src/provider-api/actions/delete-staged-dataset.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,8DAA8D;QAC9D,2FAA2F;QAC3F,sDAAsD;IACxD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,0FAA0F,CAC3F;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KACnE,CAAC;IACF,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG;YACN,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;YACxC,EAAE,EAAE,IAAI,CAAC,SAAS;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,GAAG,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,CAAC,SAAS,mDAAmD,CAC7E,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;CACF,CAAC,CAAC","sourcesContent":["/**\n * delete-staged-dataset — remove a staged dataset and free its storage.\n */\nimport { defineAction } from \"../../action.js\";\nimport { z } from \"zod\";\nimport { getCredentialContext } from \"../../server/request-context.js\";\nimport { deleteStagedDataset } from \"../staged-datasets-store.js\";\n\nexport default defineAction({\n description:\n \"Delete a staged dataset by id, freeing its scratch storage. \" +\n \"Use after analysis is complete or before re-staging a large dataset under the same name. \" +\n \"Only the owner who staged the dataset can delete it.\",\n schema: z.object({\n datasetId: z\n .string()\n .min(1)\n .describe(\n \"Dataset id to delete (from list-staged-datasets or provider-api-request stageAs result).\",\n ),\n appId: z.string().min(1).describe(\"App id that owns the dataset.\"),\n }),\n http: false,\n run: async (args) => {\n const ctx = getCredentialContext();\n if (!ctx)\n throw new Error(\"No authenticated context for delete-staged-dataset.\");\n\n const deleted = await deleteStagedDataset({\n id: args.datasetId,\n appId: args.appId,\n ownerEmail: ctx.userEmail,\n });\n\n if (!deleted) {\n throw new Error(\n `Dataset ${args.datasetId} not found (or belongs to a different owner/app).`,\n );\n }\n\n return { deleted: true, datasetId: args.datasetId };\n },\n});\n"]}
@@ -0,0 +1,15 @@
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ appId: string;
3
+ }, {
4
+ datasets: {
5
+ id: string;
6
+ name: string;
7
+ rowCount: number;
8
+ columns: string[];
9
+ byteSize: number;
10
+ updatedAt: string;
11
+ }[];
12
+ total: number;
13
+ }>;
14
+ export default _default;
15
+ //# sourceMappingURL=list-staged-datasets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-staged-datasets.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/list-staged-datasets.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAQA,wBAqCG"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * list-staged-datasets — enumerate scratch datasets staged by the current user.
3
+ */
4
+ import { defineAction } from "../../action.js";
5
+ import { z } from "zod";
6
+ import { getCredentialContext } from "../../server/request-context.js";
7
+ import { listStagedDatasets } from "../staged-datasets-store.js";
8
+ export default defineAction({
9
+ description: "List staged datasets stored by provider-api-request (stageAs) for the current user and app. " +
10
+ "Returns dataset ids, names, row counts, columns, and sizes. " +
11
+ "Use these ids with query-staged-dataset to run aggregations, or with delete-staged-dataset to free space.",
12
+ schema: z.object({
13
+ appId: z
14
+ .string()
15
+ .min(1)
16
+ .describe("App id that owns the datasets (must match the staging context)."),
17
+ }),
18
+ http: { method: "GET" },
19
+ readOnly: true,
20
+ run: async (args) => {
21
+ const ctx = getCredentialContext();
22
+ if (!ctx)
23
+ throw new Error("No authenticated context for list-staged-datasets.");
24
+ const datasets = await listStagedDatasets({
25
+ appId: args.appId,
26
+ ownerEmail: ctx.userEmail,
27
+ });
28
+ return {
29
+ datasets: datasets.map((d) => ({
30
+ id: d.id,
31
+ name: d.name,
32
+ rowCount: d.rowCount,
33
+ columns: d.columns,
34
+ byteSize: d.byteSize,
35
+ updatedAt: new Date(d.updatedAt).toISOString(),
36
+ })),
37
+ total: datasets.length,
38
+ };
39
+ },
40
+ });
41
+ //# sourceMappingURL=list-staged-datasets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-staged-datasets.js","sourceRoot":"","sources":["../../../src/provider-api/actions/list-staged-datasets.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,8FAA8F;QAC9F,8DAA8D;QAC9D,2GAA2G;IAC7G,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IACF,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,QAAQ,EAAE,IAAI;IACd,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG;YACN,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,GAAG,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;aAC/C,CAAC,CAAC;YACH,KAAK,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC","sourcesContent":["/**\n * list-staged-datasets — enumerate scratch datasets staged by the current user.\n */\nimport { defineAction } from \"../../action.js\";\nimport { z } from \"zod\";\nimport { getCredentialContext } from \"../../server/request-context.js\";\nimport { listStagedDatasets } from \"../staged-datasets-store.js\";\n\nexport default defineAction({\n description:\n \"List staged datasets stored by provider-api-request (stageAs) for the current user and app. \" +\n \"Returns dataset ids, names, row counts, columns, and sizes. \" +\n \"Use these ids with query-staged-dataset to run aggregations, or with delete-staged-dataset to free space.\",\n schema: z.object({\n appId: z\n .string()\n .min(1)\n .describe(\n \"App id that owns the datasets (must match the staging context).\",\n ),\n }),\n http: { method: \"GET\" },\n readOnly: true,\n run: async (args) => {\n const ctx = getCredentialContext();\n if (!ctx)\n throw new Error(\"No authenticated context for list-staged-datasets.\");\n\n const datasets = await listStagedDatasets({\n appId: args.appId,\n ownerEmail: ctx.userEmail,\n });\n\n return {\n datasets: datasets.map((d) => ({\n id: d.id,\n name: d.name,\n rowCount: d.rowCount,\n columns: d.columns,\n byteSize: d.byteSize,\n updatedAt: new Date(d.updatedAt).toISOString(),\n })),\n total: datasets.length,\n };\n },\n});\n"]}
@@ -0,0 +1,29 @@
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ datasetId: string;
3
+ appId: string;
4
+ where?: {
5
+ column: string;
6
+ op: "equals" | "lt" | "lte" | "gt" | "gte" | "not_equals" | "contains" | "not_contains" | "exists" | "not_exists";
7
+ value?: unknown;
8
+ }[] | undefined;
9
+ groupBy?: string[] | undefined;
10
+ aggregate?: {
11
+ column: string;
12
+ op: "max" | "min" | "count" | "sum" | "avg" | "count_distinct";
13
+ as?: string | undefined;
14
+ }[] | undefined;
15
+ select?: string[] | undefined;
16
+ orderBy?: string | undefined;
17
+ orderDir?: "desc" | "asc" | undefined;
18
+ limit?: unknown;
19
+ }, {
20
+ dataset: {
21
+ id: string;
22
+ name: string;
23
+ totalRows: number;
24
+ };
25
+ rowCount: number;
26
+ rows: Record<string, unknown>[];
27
+ }>;
28
+ export default _default;
29
+ //# sourceMappingURL=query-staged-dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-staged-dataset.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/query-staged-dataset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,wBAgGG"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * query-staged-dataset — run an in-memory aggregation over a staged dataset.
3
+ *
4
+ * All aggregation is done in TypeScript (no SQL JSON functions) so the action
5
+ * works identically on Postgres and SQLite.
6
+ */
7
+ import { defineAction } from "../../action.js";
8
+ import { z } from "zod";
9
+ import { getCredentialContext } from "../../server/request-context.js";
10
+ import { getStagedDatasetRows, getStagedDatasetMeta, } from "../staged-datasets-store.js";
11
+ import { runAggregateQuery } from "../staged-datasets-aggregate.js";
12
+ const WhereSchema = z.object({
13
+ column: z.string().min(1),
14
+ op: z.enum([
15
+ "equals",
16
+ "not_equals",
17
+ "contains",
18
+ "not_contains",
19
+ "gt",
20
+ "gte",
21
+ "lt",
22
+ "lte",
23
+ "exists",
24
+ "not_exists",
25
+ ]),
26
+ value: z.unknown().optional(),
27
+ });
28
+ const AggregateFieldSchema = z.object({
29
+ column: z.string().min(1).describe("Column to aggregate."),
30
+ op: z
31
+ .enum(["sum", "avg", "count", "min", "max", "count_distinct"])
32
+ .describe("Aggregation function."),
33
+ as: z
34
+ .string()
35
+ .optional()
36
+ .describe("Output column name. Default: {op}_{column}."),
37
+ });
38
+ export default defineAction({
39
+ description: "Run a filter/aggregate/project query over a staged dataset stored by provider-api-request (stageAs). " +
40
+ "All aggregation is done in-process — no SQL dialect differences. " +
41
+ "Use this after staging to compute counts, sums, averages, min/max, or to filter/project rows without re-fetching the provider API.",
42
+ schema: z.object({
43
+ datasetId: z
44
+ .string()
45
+ .min(1)
46
+ .describe("Dataset id returned by provider-api-request when stageAs was set, or from list-staged-datasets."),
47
+ appId: z
48
+ .string()
49
+ .min(1)
50
+ .describe("App id that owns the dataset (must match the staging context)."),
51
+ where: z
52
+ .array(WhereSchema)
53
+ .optional()
54
+ .describe("Optional row-level filters. All clauses must match (AND). " +
55
+ "Ops: equals, not_equals, contains, not_contains, gt, gte, lt, lte, exists, not_exists."),
56
+ groupBy: z
57
+ .array(z.string().min(1))
58
+ .optional()
59
+ .describe("Column(s) to group by. Omit for a single aggregate over all rows."),
60
+ aggregate: z
61
+ .array(AggregateFieldSchema)
62
+ .optional()
63
+ .describe("Aggregation fields. When set, non-group columns are aggregated. " +
64
+ "When omitted, rows are returned as-is (after where + select)."),
65
+ select: z
66
+ .array(z.string().min(1))
67
+ .optional()
68
+ .describe("Column projection when aggregate is empty. Omit to return all columns."),
69
+ orderBy: z.string().optional().describe("Sort output by this column."),
70
+ orderDir: z
71
+ .enum(["asc", "desc"])
72
+ .optional()
73
+ .describe("Sort direction (default asc)."),
74
+ limit: z.coerce
75
+ .number()
76
+ .int()
77
+ .min(1)
78
+ .max(10_000)
79
+ .optional()
80
+ .describe("Maximum rows to return (default all, max 10000)."),
81
+ }),
82
+ http: false,
83
+ run: async (args) => {
84
+ const ctx = getCredentialContext();
85
+ if (!ctx)
86
+ throw new Error("No authenticated context for query-staged-dataset.");
87
+ const meta = await getStagedDatasetMeta({
88
+ id: args.datasetId,
89
+ appId: args.appId,
90
+ ownerEmail: ctx.userEmail,
91
+ });
92
+ if (!meta) {
93
+ throw new Error(`Dataset ${args.datasetId} not found (or belongs to a different owner/app).`);
94
+ }
95
+ const rows = await getStagedDatasetRows({
96
+ id: args.datasetId,
97
+ appId: args.appId,
98
+ ownerEmail: ctx.userEmail,
99
+ });
100
+ const result = runAggregateQuery(rows, {
101
+ where: args.where,
102
+ groupBy: args.groupBy,
103
+ aggregate: args.aggregate,
104
+ select: args.select,
105
+ orderBy: args.orderBy,
106
+ orderDir: args.orderDir,
107
+ limit: args.limit,
108
+ });
109
+ return {
110
+ dataset: { id: meta.id, name: meta.name, totalRows: meta.rowCount },
111
+ rowCount: result.length,
112
+ rows: result,
113
+ };
114
+ },
115
+ });
116
+ //# sourceMappingURL=query-staged-dataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-staged-dataset.js","sourceRoot":"","sources":["../../../src/provider-api/actions/query-staged-dataset.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * query-staged-dataset — run an in-memory aggregation over a staged dataset.\n *\n * All aggregation is done in TypeScript (no SQL JSON functions) so the action\n * works identically on Postgres and SQLite.\n */\nimport { defineAction } from \"../../action.js\";\nimport { z } from \"zod\";\nimport { getCredentialContext } from \"../../server/request-context.js\";\nimport {\n getStagedDatasetRows,\n getStagedDatasetMeta,\n} from \"../staged-datasets-store.js\";\nimport { runAggregateQuery } from \"../staged-datasets-aggregate.js\";\n\nconst WhereSchema = z.object({\n column: z.string().min(1),\n op: z.enum([\n \"equals\",\n \"not_equals\",\n \"contains\",\n \"not_contains\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"exists\",\n \"not_exists\",\n ]),\n value: z.unknown().optional(),\n});\n\nconst AggregateFieldSchema = z.object({\n column: z.string().min(1).describe(\"Column to aggregate.\"),\n op: z\n .enum([\"sum\", \"avg\", \"count\", \"min\", \"max\", \"count_distinct\"])\n .describe(\"Aggregation function.\"),\n as: z\n .string()\n .optional()\n .describe(\"Output column name. Default: {op}_{column}.\"),\n});\n\nexport default defineAction({\n description:\n \"Run a filter/aggregate/project query over a staged dataset stored by provider-api-request (stageAs). \" +\n \"All aggregation is done in-process — no SQL dialect differences. \" +\n \"Use this after staging to compute counts, sums, averages, min/max, or to filter/project rows without re-fetching the provider API.\",\n schema: z.object({\n datasetId: z\n .string()\n .min(1)\n .describe(\n \"Dataset id returned by provider-api-request when stageAs was set, or from list-staged-datasets.\",\n ),\n appId: z\n .string()\n .min(1)\n .describe(\n \"App id that owns the dataset (must match the staging context).\",\n ),\n where: z\n .array(WhereSchema)\n .optional()\n .describe(\n \"Optional row-level filters. All clauses must match (AND). \" +\n \"Ops: equals, not_equals, contains, not_contains, gt, gte, lt, lte, exists, not_exists.\",\n ),\n groupBy: z\n .array(z.string().min(1))\n .optional()\n .describe(\n \"Column(s) to group by. Omit for a single aggregate over all rows.\",\n ),\n aggregate: z\n .array(AggregateFieldSchema)\n .optional()\n .describe(\n \"Aggregation fields. When set, non-group columns are aggregated. \" +\n \"When omitted, rows are returned as-is (after where + select).\",\n ),\n select: z\n .array(z.string().min(1))\n .optional()\n .describe(\n \"Column projection when aggregate is empty. Omit to return all columns.\",\n ),\n orderBy: z.string().optional().describe(\"Sort output by this column.\"),\n orderDir: z\n .enum([\"asc\", \"desc\"])\n .optional()\n .describe(\"Sort direction (default asc).\"),\n limit: z.coerce\n .number()\n .int()\n .min(1)\n .max(10_000)\n .optional()\n .describe(\"Maximum rows to return (default all, max 10000).\"),\n }),\n http: false,\n run: async (args) => {\n const ctx = getCredentialContext();\n if (!ctx)\n throw new Error(\"No authenticated context for query-staged-dataset.\");\n\n const meta = await getStagedDatasetMeta({\n id: args.datasetId,\n appId: args.appId,\n ownerEmail: ctx.userEmail,\n });\n if (!meta) {\n throw new Error(\n `Dataset ${args.datasetId} not found (or belongs to a different owner/app).`,\n );\n }\n\n const rows = await getStagedDatasetRows({\n id: args.datasetId,\n appId: args.appId,\n ownerEmail: ctx.userEmail,\n });\n\n const result = runAggregateQuery(rows, {\n where: args.where,\n groupBy: args.groupBy,\n aggregate: args.aggregate,\n select: args.select,\n orderBy: args.orderBy,\n orderDir: args.orderDir,\n limit: args.limit,\n });\n\n return {\n dataset: { id: meta.id, name: meta.name, totalRows: meta.rowCount },\n rowCount: result.length,\n rows: result,\n };\n },\n});\n"]}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Custom provider registry — runtime storage and resolution.
3
+ *
4
+ * Lets apps register arbitrary HTTP API providers at runtime without touching
5
+ * the static PROVIDER_CONFIGS list. Provider rows live in the
6
+ * `custom_api_providers` SQL table (created on first use). Credentials
7
+ * referenced in the provider row continue to live in the existing secrets /
8
+ * credentials store — this table stores only key NAMES, never values.
9
+ *
10
+ * Scoping mirrors the `app_secrets` table: each row is scoped to a user
11
+ * (by email) or an organisation (by orgId).
12
+ *
13
+ * Supported auth kinds for custom providers:
14
+ * - bearer → Authorization: Bearer <credential>
15
+ * - basic → Authorization: Basic base64(user:pass)
16
+ * - api-key-header → custom header: <credential>
17
+ *
18
+ * google-service-account and oauth-bearer are intentionally unsupported for
19
+ * custom providers because they require additional out-of-band setup that
20
+ * cannot be expressed in the simple header/key model.
21
+ */
22
+ export type CustomProviderScope = "user" | "org";
23
+ export type CustomProviderAuthKind = {
24
+ type: "bearer";
25
+ credentialKey: string;
26
+ } | {
27
+ type: "basic";
28
+ usernameKey: string;
29
+ passwordKey: string;
30
+ } | {
31
+ type: "api-key-header";
32
+ credentialKey: string;
33
+ headerName: string;
34
+ } | {
35
+ type: "none";
36
+ };
37
+ export interface CustomProviderConfig {
38
+ id: string;
39
+ scope: CustomProviderScope;
40
+ scopeId: string;
41
+ label: string;
42
+ baseUrl: string;
43
+ auth: CustomProviderAuthKind;
44
+ docsUrls: string[];
45
+ allowedHostSuffixes: string[];
46
+ defaultHeaders: Record<string, string>;
47
+ notes: string;
48
+ createdAt: number;
49
+ updatedAt: number;
50
+ }
51
+ export interface UpsertCustomProviderArgs {
52
+ scope: CustomProviderScope;
53
+ scopeId: string;
54
+ /** Slug used as the provider id (e.g. "my-api"). Must be lowercase, letters/digits/hyphens. */
55
+ id: string;
56
+ label: string;
57
+ baseUrl: string;
58
+ auth: CustomProviderAuthKind;
59
+ docsUrls?: string[];
60
+ allowedHostSuffixes?: string[];
61
+ defaultHeaders?: Record<string, string>;
62
+ notes?: string;
63
+ }
64
+ /**
65
+ * Validate and normalise a custom provider base URL. Throws when the URL is
66
+ * invalid, uses a non-http(s) scheme, or resolves to a private/internal host.
67
+ */
68
+ export declare function validateCustomBaseUrl(rawUrl: string): Promise<URL>;
69
+ /**
70
+ * Validate user-supplied allowed host suffixes. Each suffix must look like a
71
+ * real registrable domain (at least two labels) and must not be a bare TLD or
72
+ * shared-hosting public suffix where unrelated parties control subdomains.
73
+ */
74
+ export declare function validateAllowedHostSuffixes(suffixes: string[]): string[];
75
+ /**
76
+ * Create or update a custom provider. Validates the base URL against SSRF
77
+ * rules at write time. Returns the provider id.
78
+ */
79
+ export declare function upsertCustomProvider(args: UpsertCustomProviderArgs): Promise<string>;
80
+ /**
81
+ * Delete a custom provider. Returns true if a row was deleted.
82
+ */
83
+ export declare function deleteCustomProvider(scope: CustomProviderScope, scopeId: string, id: string): Promise<boolean>;
84
+ /**
85
+ * List all custom providers visible to a given (scope, scopeId) pair.
86
+ */
87
+ export declare function listCustomProviders(scope: CustomProviderScope, scopeId: string): Promise<CustomProviderConfig[]>;
88
+ /**
89
+ * Look up one custom provider. Returns null when not found.
90
+ */
91
+ export declare function getCustomProvider(scope: CustomProviderScope, scopeId: string, id: string): Promise<CustomProviderConfig | null>;
92
+ //# sourceMappingURL=custom-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-registry.d.ts","sourceRoot":"","sources":["../../src/provider-api/custom-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AASH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,mBAAmB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+CD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAkBxE;AAmFD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAkBxE;AAMD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAwDjB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAQjC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAStC"}