@agent-native/core 0.7.16 → 0.7.18

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 (466) hide show
  1. package/dist/a2a/agent-card.js.map +1 -1
  2. package/dist/a2a/client.js.map +1 -1
  3. package/dist/a2a/handlers.js.map +1 -1
  4. package/dist/a2a/index.js.map +1 -1
  5. package/dist/a2a/server.js.map +1 -1
  6. package/dist/a2a/task-store.js.map +1 -1
  7. package/dist/a2a/types.js.map +1 -1
  8. package/dist/action.js.map +1 -1
  9. package/dist/adapters/cli/index.js.map +1 -1
  10. package/dist/adapters/cli/registry.js.map +1 -1
  11. package/dist/adapters/cli/shell-adapter.js.map +1 -1
  12. package/dist/adapters/cli/types.js.map +1 -1
  13. package/dist/agent/default-model.js.map +1 -1
  14. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  15. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  16. package/dist/agent/engine/builder-engine.js.map +1 -1
  17. package/dist/agent/engine/builtin.js.map +1 -1
  18. package/dist/agent/engine/index.js.map +1 -1
  19. package/dist/agent/engine/provider-env-vars.js.map +1 -1
  20. package/dist/agent/engine/registry.d.ts +5 -3
  21. package/dist/agent/engine/registry.d.ts.map +1 -1
  22. package/dist/agent/engine/registry.js +6 -5
  23. package/dist/agent/engine/registry.js.map +1 -1
  24. package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
  25. package/dist/agent/engine/translate-anthropic.js.map +1 -1
  26. package/dist/agent/engine/types.js.map +1 -1
  27. package/dist/agent/index.js.map +1 -1
  28. package/dist/agent/production-agent.js.map +1 -1
  29. package/dist/agent/run-manager.js.map +1 -1
  30. package/dist/agent/run-store.js.map +1 -1
  31. package/dist/agent/thread-data-builder.js.map +1 -1
  32. package/dist/agent/types.js.map +1 -1
  33. package/dist/application-state/emitter.js.map +1 -1
  34. package/dist/application-state/handlers.js.map +1 -1
  35. package/dist/application-state/index.js.map +1 -1
  36. package/dist/application-state/script-helpers.js.map +1 -1
  37. package/dist/application-state/store.js.map +1 -1
  38. package/dist/chat-threads/emitter.js.map +1 -1
  39. package/dist/chat-threads/store.js.map +1 -1
  40. package/dist/checkpoints/index.js.map +1 -1
  41. package/dist/checkpoints/service.js.map +1 -1
  42. package/dist/checkpoints/store.js.map +1 -1
  43. package/dist/cli/create-workspace.js.map +1 -1
  44. package/dist/cli/create.d.ts.map +1 -1
  45. package/dist/cli/create.js +11 -0
  46. package/dist/cli/create.js.map +1 -1
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/info.js.map +1 -1
  49. package/dist/cli/setup-agents.js.map +1 -1
  50. package/dist/cli/templates-meta.js.map +1 -1
  51. package/dist/cli/workspacify.js.map +1 -1
  52. package/dist/client/AgentPanel.js.map +1 -1
  53. package/dist/client/AgentTaskCard.js.map +1 -1
  54. package/dist/client/AssistantChat.d.ts.map +1 -1
  55. package/dist/client/AssistantChat.js.map +1 -1
  56. package/dist/client/ClientOnly.js.map +1 -1
  57. package/dist/client/CommandMenu.js.map +1 -1
  58. package/dist/client/ConnectBuilderCard.js.map +1 -1
  59. package/dist/client/DefaultSpinner.js.map +1 -1
  60. package/dist/client/ErrorBoundary.js.map +1 -1
  61. package/dist/client/FeedbackButton.js.map +1 -1
  62. package/dist/client/IframeEmbed.js.map +1 -1
  63. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  64. package/dist/client/PoweredByBadge.js.map +1 -1
  65. package/dist/client/ProductionAgentPanel.js.map +1 -1
  66. package/dist/client/Turnstile.js.map +1 -1
  67. package/dist/client/active-run-state.js.map +1 -1
  68. package/dist/client/agent-chat-adapter.js.map +1 -1
  69. package/dist/client/agent-chat.js.map +1 -1
  70. package/dist/client/analytics.js.map +1 -1
  71. package/dist/client/api-path.js.map +1 -1
  72. package/dist/client/builder-mark.js.map +1 -1
  73. package/dist/client/components/AgentPresenceChip.js.map +1 -1
  74. package/dist/client/components/ApiKeySettings.js.map +1 -1
  75. package/dist/client/components/CodeAgentIndicator.js.map +1 -1
  76. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  77. package/dist/client/components/MissingKeyCard.js.map +1 -1
  78. package/dist/client/components/PresenceBar.js.map +1 -1
  79. package/dist/client/components/ui/popover.js.map +1 -1
  80. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  81. package/dist/client/composer/MentionPopover.js.map +1 -1
  82. package/dist/client/composer/TiptapComposer.js.map +1 -1
  83. package/dist/client/composer/VoiceButton.js.map +1 -1
  84. package/dist/client/composer/draft-key.js.map +1 -1
  85. package/dist/client/composer/extensions/FileReference.js.map +1 -1
  86. package/dist/client/composer/extensions/MentionReference.js.map +1 -1
  87. package/dist/client/composer/extensions/SkillReference.js.map +1 -1
  88. package/dist/client/composer/index.js.map +1 -1
  89. package/dist/client/composer/types.js.map +1 -1
  90. package/dist/client/composer/use-file-search.js.map +1 -1
  91. package/dist/client/composer/use-mention-search.js.map +1 -1
  92. package/dist/client/composer/use-skills.js.map +1 -1
  93. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  94. package/dist/client/dev-mode.js.map +1 -1
  95. package/dist/client/dev-overlay/DevOverlay.js.map +1 -1
  96. package/dist/client/dev-overlay/builtins.js.map +1 -1
  97. package/dist/client/dev-overlay/index.js.map +1 -1
  98. package/dist/client/dev-overlay/registry.js.map +1 -1
  99. package/dist/client/dev-overlay/types.js.map +1 -1
  100. package/dist/client/dev-overlay/use-dev-option.js.map +1 -1
  101. package/dist/client/dev-overlay/use-dev-overlay-shortcut.js.map +1 -1
  102. package/dist/client/embed.js.map +1 -1
  103. package/dist/client/error-format.js.map +1 -1
  104. package/dist/client/frame-protocol.js.map +1 -1
  105. package/dist/client/frame.js.map +1 -1
  106. package/dist/client/index.d.ts +0 -1
  107. package/dist/client/index.d.ts.map +1 -1
  108. package/dist/client/index.js +0 -1
  109. package/dist/client/index.js.map +1 -1
  110. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  111. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  112. package/dist/client/integrations/index.js.map +1 -1
  113. package/dist/client/integrations/useIntegrationStatus.js.map +1 -1
  114. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  115. package/dist/client/notifications/index.js.map +1 -1
  116. package/dist/client/observability/ObservabilityDashboard.js.map +1 -1
  117. package/dist/client/observability/ThumbsFeedback.js.map +1 -1
  118. package/dist/client/observability/index.js.map +1 -1
  119. package/dist/client/observability/useObservability.js.map +1 -1
  120. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  121. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  122. package/dist/client/onboarding/OnboardingPanel.js +6 -27
  123. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  124. package/dist/client/onboarding/SetupButton.js.map +1 -1
  125. package/dist/client/onboarding/index.js.map +1 -1
  126. package/dist/client/onboarding/use-onboarding.js.map +1 -1
  127. package/dist/client/onboarding/use-preview-mode.js.map +1 -1
  128. package/dist/client/org/InvitationBanner.js.map +1 -1
  129. package/dist/client/org/OrgSwitcher.js.map +1 -1
  130. package/dist/client/org/RequireActiveOrg.js.map +1 -1
  131. package/dist/client/org/TeamPage.js.map +1 -1
  132. package/dist/client/org/hooks.js.map +1 -1
  133. package/dist/client/org/index.js.map +1 -1
  134. package/dist/client/progress/RunsTray.js.map +1 -1
  135. package/dist/client/progress/index.js.map +1 -1
  136. package/dist/client/resources/McpServerDetail.js.map +1 -1
  137. package/dist/client/resources/ResourceEditor.js.map +1 -1
  138. package/dist/client/resources/ResourceTree.js.map +1 -1
  139. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  140. package/dist/client/resources/index.js.map +1 -1
  141. package/dist/client/resources/use-mcp-servers.js.map +1 -1
  142. package/dist/client/resources/use-resources.js.map +1 -1
  143. package/dist/client/settings/AgentsSection.js.map +1 -1
  144. package/dist/client/settings/AutomationsSection.js.map +1 -1
  145. package/dist/client/settings/BackgroundAgentSection.js.map +1 -1
  146. package/dist/client/settings/BrowserSection.js.map +1 -1
  147. package/dist/client/settings/SecretsSection.js.map +1 -1
  148. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  149. package/dist/client/settings/SettingsPanel.js +3 -19
  150. package/dist/client/settings/SettingsPanel.js.map +1 -1
  151. package/dist/client/settings/SettingsSection.js.map +1 -1
  152. package/dist/client/settings/UsageSection.js.map +1 -1
  153. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  154. package/dist/client/settings/index.js.map +1 -1
  155. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  156. package/dist/client/sharing/ShareButton.js.map +1 -1
  157. package/dist/client/sharing/ShareDialog.js.map +1 -1
  158. package/dist/client/sharing/VisibilityBadge.js.map +1 -1
  159. package/dist/client/sharing/index.js.map +1 -1
  160. package/dist/client/sse-event-processor.js.map +1 -1
  161. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  162. package/dist/client/terminal/index.js.map +1 -1
  163. package/dist/client/tools/EmbeddedTool.js.map +1 -1
  164. package/dist/client/tools/ExtensionSlot.js.map +1 -1
  165. package/dist/client/tools/ToolEditor.js.map +1 -1
  166. package/dist/client/tools/ToolViewer.js.map +1 -1
  167. package/dist/client/tools/ToolViewerPage.js.map +1 -1
  168. package/dist/client/tools/ToolsListPage.js.map +1 -1
  169. package/dist/client/tools/ToolsSidebarSection.js.map +1 -1
  170. package/dist/client/tools/iframe-bridge.js.map +1 -1
  171. package/dist/client/tools/index.js.map +1 -1
  172. package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -1
  173. package/dist/client/transcription/use-live-transcription.js.map +1 -1
  174. package/dist/client/use-action.js.map +1 -1
  175. package/dist/client/use-agent-chat.js.map +1 -1
  176. package/dist/client/use-avatar.js.map +1 -1
  177. package/dist/client/use-chat-threads.js.map +1 -1
  178. package/dist/client/use-db-sync.js.map +1 -1
  179. package/dist/client/use-dev-mode.js.map +1 -1
  180. package/dist/client/use-pausing-interval.js.map +1 -1
  181. package/dist/client/use-send-to-agent-chat.js.map +1 -1
  182. package/dist/client/use-session.js.map +1 -1
  183. package/dist/client/useProductionAgent.js.map +1 -1
  184. package/dist/client/utils.js.map +1 -1
  185. package/dist/collab/agent-identity.js.map +1 -1
  186. package/dist/collab/agent-presence.js.map +1 -1
  187. package/dist/collab/awareness.js.map +1 -1
  188. package/dist/collab/client-struct.js.map +1 -1
  189. package/dist/collab/client.js.map +1 -1
  190. package/dist/collab/emitter.js.map +1 -1
  191. package/dist/collab/index.js.map +1 -1
  192. package/dist/collab/json-to-yjs.js.map +1 -1
  193. package/dist/collab/routes.js.map +1 -1
  194. package/dist/collab/storage.js.map +1 -1
  195. package/dist/collab/struct-routes.js.map +1 -1
  196. package/dist/collab/text-to-yjs.js.map +1 -1
  197. package/dist/collab/xml-ops.js.map +1 -1
  198. package/dist/collab/ydoc-manager.js.map +1 -1
  199. package/dist/credentials/index.js.map +1 -1
  200. package/dist/db/client.js.map +1 -1
  201. package/dist/db/create-get-db.js.map +1 -1
  202. package/dist/db/drizzle-config.js.map +1 -1
  203. package/dist/db/index.js.map +1 -1
  204. package/dist/db/migrations.js.map +1 -1
  205. package/dist/db/schema.js.map +1 -1
  206. package/dist/deploy/build.js.map +1 -1
  207. package/dist/deploy/route-discovery.js.map +1 -1
  208. package/dist/deploy/workspace-core.js.map +1 -1
  209. package/dist/deploy/workspace-deploy.js.map +1 -1
  210. package/dist/event-bus/bus.js.map +1 -1
  211. package/dist/event-bus/index.js.map +1 -1
  212. package/dist/event-bus/registry.js.map +1 -1
  213. package/dist/event-bus/types.js.map +1 -1
  214. package/dist/file-upload/builder.js.map +1 -1
  215. package/dist/file-upload/index.js.map +1 -1
  216. package/dist/file-upload/registry.js.map +1 -1
  217. package/dist/file-upload/types.js.map +1 -1
  218. package/dist/index.browser.js.map +1 -1
  219. package/dist/index.js.map +1 -1
  220. package/dist/integrations/adapters/email.js.map +1 -1
  221. package/dist/integrations/adapters/google-docs.js.map +1 -1
  222. package/dist/integrations/adapters/slack.js.map +1 -1
  223. package/dist/integrations/adapters/telegram.js.map +1 -1
  224. package/dist/integrations/adapters/whatsapp.js.map +1 -1
  225. package/dist/integrations/config-store.js.map +1 -1
  226. package/dist/integrations/google-docs-poller.js.map +1 -1
  227. package/dist/integrations/index.js.map +1 -1
  228. package/dist/integrations/internal-token.js.map +1 -1
  229. package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
  230. package/dist/integrations/pending-tasks-store.js.map +1 -1
  231. package/dist/integrations/plugin.js.map +1 -1
  232. package/dist/integrations/task-queue-stats.js.map +1 -1
  233. package/dist/integrations/thread-mapping-store.js.map +1 -1
  234. package/dist/integrations/types.js.map +1 -1
  235. package/dist/integrations/webhook-handler.js.map +1 -1
  236. package/dist/jobs/cron.js.map +1 -1
  237. package/dist/jobs/index.js.map +1 -1
  238. package/dist/jobs/scheduler.js.map +1 -1
  239. package/dist/jobs/tools.js.map +1 -1
  240. package/dist/mcp/index.js.map +1 -1
  241. package/dist/mcp/server.js.map +1 -1
  242. package/dist/mcp-client/config.js.map +1 -1
  243. package/dist/mcp-client/hub-client.js.map +1 -1
  244. package/dist/mcp-client/hub-routes.js.map +1 -1
  245. package/dist/mcp-client/index.js.map +1 -1
  246. package/dist/mcp-client/manager.js.map +1 -1
  247. package/dist/mcp-client/remote-store.js.map +1 -1
  248. package/dist/mcp-client/routes.js.map +1 -1
  249. package/dist/mcp-client/visibility.js.map +1 -1
  250. package/dist/notifications/actions.js.map +1 -1
  251. package/dist/notifications/channels.js.map +1 -1
  252. package/dist/notifications/index.js.map +1 -1
  253. package/dist/notifications/registry.js.map +1 -1
  254. package/dist/notifications/routes.js.map +1 -1
  255. package/dist/notifications/store.js.map +1 -1
  256. package/dist/notifications/types.js.map +1 -1
  257. package/dist/oauth-tokens/google-refresh.js.map +1 -1
  258. package/dist/oauth-tokens/index.js.map +1 -1
  259. package/dist/oauth-tokens/store.js.map +1 -1
  260. package/dist/observability/cleanup-job.js.map +1 -1
  261. package/dist/observability/evals.js.map +1 -1
  262. package/dist/observability/experiments.js.map +1 -1
  263. package/dist/observability/feedback.js.map +1 -1
  264. package/dist/observability/index.js.map +1 -1
  265. package/dist/observability/plugin.js.map +1 -1
  266. package/dist/observability/routes.js.map +1 -1
  267. package/dist/observability/store.js.map +1 -1
  268. package/dist/observability/traces.js.map +1 -1
  269. package/dist/observability/types.js.map +1 -1
  270. package/dist/onboarding/default-steps.d.ts.map +1 -1
  271. package/dist/onboarding/default-steps.js +0 -1
  272. package/dist/onboarding/default-steps.js.map +1 -1
  273. package/dist/onboarding/index.js.map +1 -1
  274. package/dist/onboarding/plugin.js.map +1 -1
  275. package/dist/onboarding/registry.js.map +1 -1
  276. package/dist/onboarding/types.d.ts +0 -9
  277. package/dist/onboarding/types.d.ts.map +1 -1
  278. package/dist/onboarding/types.js.map +1 -1
  279. package/dist/org/accept-pending.js.map +1 -1
  280. package/dist/org/context.js.map +1 -1
  281. package/dist/org/handlers.js.map +1 -1
  282. package/dist/org/index.js.map +1 -1
  283. package/dist/org/migrations.js.map +1 -1
  284. package/dist/org/plugin.js.map +1 -1
  285. package/dist/org/schema.js.map +1 -1
  286. package/dist/org/types.js.map +1 -1
  287. package/dist/progress/actions.js.map +1 -1
  288. package/dist/progress/index.js.map +1 -1
  289. package/dist/progress/registry.js.map +1 -1
  290. package/dist/progress/routes.js.map +1 -1
  291. package/dist/progress/store.js.map +1 -1
  292. package/dist/progress/types.js.map +1 -1
  293. package/dist/resources/agents.js.map +1 -1
  294. package/dist/resources/emitter.js.map +1 -1
  295. package/dist/resources/handlers.js.map +1 -1
  296. package/dist/resources/index.js.map +1 -1
  297. package/dist/resources/metadata.js.map +1 -1
  298. package/dist/resources/script-helpers.js.map +1 -1
  299. package/dist/resources/store.js.map +1 -1
  300. package/dist/router/index.js.map +1 -1
  301. package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
  302. package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
  303. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
  304. package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -1
  305. package/dist/scripts/call-agent.js.map +1 -1
  306. package/dist/scripts/chat/index.js.map +1 -1
  307. package/dist/scripts/chat/open-chat.js.map +1 -1
  308. package/dist/scripts/chat/search-chats.js.map +1 -1
  309. package/dist/scripts/core-scripts.js.map +1 -1
  310. package/dist/scripts/db/check-scoping.js.map +1 -1
  311. package/dist/scripts/db/exec.js.map +1 -1
  312. package/dist/scripts/db/index.js.map +1 -1
  313. package/dist/scripts/db/migrate-user-api-keys.js.map +1 -1
  314. package/dist/scripts/db/patch.js.map +1 -1
  315. package/dist/scripts/db/query.js.map +1 -1
  316. package/dist/scripts/db/schema.js.map +1 -1
  317. package/dist/scripts/db/scoping.js.map +1 -1
  318. package/dist/scripts/db/wipe-leaked-builder-keys.js.map +1 -1
  319. package/dist/scripts/dev/index.js.map +1 -1
  320. package/dist/scripts/dev/list-files.js.map +1 -1
  321. package/dist/scripts/dev/read-file.js.map +1 -1
  322. package/dist/scripts/dev/search-files.js.map +1 -1
  323. package/dist/scripts/dev/shell.js.map +1 -1
  324. package/dist/scripts/dev/write-file.js.map +1 -1
  325. package/dist/scripts/docs/index.js.map +1 -1
  326. package/dist/scripts/docs/search.js.map +1 -1
  327. package/dist/scripts/index.js.map +1 -1
  328. package/dist/scripts/parse-args.js.map +1 -1
  329. package/dist/scripts/resources/delete-memory.js.map +1 -1
  330. package/dist/scripts/resources/delete.js.map +1 -1
  331. package/dist/scripts/resources/index.js.map +1 -1
  332. package/dist/scripts/resources/list.js.map +1 -1
  333. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  334. package/dist/scripts/resources/read.js.map +1 -1
  335. package/dist/scripts/resources/save-memory.js.map +1 -1
  336. package/dist/scripts/resources/write.js.map +1 -1
  337. package/dist/scripts/runner.js.map +1 -1
  338. package/dist/scripts/utils.d.ts.map +1 -1
  339. package/dist/scripts/utils.js +3 -2
  340. package/dist/scripts/utils.js.map +1 -1
  341. package/dist/secrets/index.js.map +1 -1
  342. package/dist/secrets/onboarding.js.map +1 -1
  343. package/dist/secrets/register-framework-secrets.js.map +1 -1
  344. package/dist/secrets/register.js.map +1 -1
  345. package/dist/secrets/routes.js.map +1 -1
  346. package/dist/secrets/schema.js.map +1 -1
  347. package/dist/secrets/storage.js.map +1 -1
  348. package/dist/secrets/substitution.js.map +1 -1
  349. package/dist/server/action-discovery.js.map +1 -1
  350. package/dist/server/action-routes.js.map +1 -1
  351. package/dist/server/agent-chat-plugin.js +1 -1
  352. package/dist/server/agent-chat-plugin.js.map +1 -1
  353. package/dist/server/agent-discovery.js.map +1 -1
  354. package/dist/server/agent-teams.js.map +1 -1
  355. package/dist/server/agents-bundle.js.map +1 -1
  356. package/dist/server/analytics.js.map +1 -1
  357. package/dist/server/app-base-path.js.map +1 -1
  358. package/dist/server/app-name.js.map +1 -1
  359. package/dist/server/app-url.js.map +1 -1
  360. package/dist/server/auth-plugin.js.map +1 -1
  361. package/dist/server/auth.js.map +1 -1
  362. package/dist/server/better-auth-instance.js.map +1 -1
  363. package/dist/server/builder-browser.js.map +1 -1
  364. package/dist/server/captcha.js.map +1 -1
  365. package/dist/server/cli-capture.js.map +1 -1
  366. package/dist/server/collab-plugin.js.map +1 -1
  367. package/dist/server/core-routes-plugin.js.map +1 -1
  368. package/dist/server/create-server.js.map +1 -1
  369. package/dist/server/credential-provider.js.map +1 -1
  370. package/dist/server/csrf.js.map +1 -1
  371. package/dist/server/date-utils.js.map +1 -1
  372. package/dist/server/design-token-utils.js.map +1 -1
  373. package/dist/server/desktop-sso.js.map +1 -1
  374. package/dist/server/email-template.js.map +1 -1
  375. package/dist/server/email-templates.js.map +1 -1
  376. package/dist/server/email.js.map +1 -1
  377. package/dist/server/framework-request-handler.js.map +1 -1
  378. package/dist/server/google-auth-plugin.js.map +1 -1
  379. package/dist/server/google-oauth.d.ts +1 -1
  380. package/dist/server/google-oauth.d.ts.map +1 -1
  381. package/dist/server/google-oauth.js +14 -6
  382. package/dist/server/google-oauth.js.map +1 -1
  383. package/dist/server/h3-helpers.js.map +1 -1
  384. package/dist/server/index.js.map +1 -1
  385. package/dist/server/local-migration.js.map +1 -1
  386. package/dist/server/missing-key.js.map +1 -1
  387. package/dist/server/oauth-helpers.js.map +1 -1
  388. package/dist/server/onboarding-html.js.map +1 -1
  389. package/dist/server/poll.js.map +1 -1
  390. package/dist/server/request-context.js.map +1 -1
  391. package/dist/server/resources-plugin.js.map +1 -1
  392. package/dist/server/schema-prompt.js.map +1 -1
  393. package/dist/server/script-discovery.js.map +1 -1
  394. package/dist/server/security-headers.js.map +1 -1
  395. package/dist/server/short-lived-token.js.map +1 -1
  396. package/dist/server/sse.js.map +1 -1
  397. package/dist/server/ssr-handler.js.map +1 -1
  398. package/dist/server/transcribe-voice.js.map +1 -1
  399. package/dist/server/voice-providers-status.js.map +1 -1
  400. package/dist/settings/handlers.js.map +1 -1
  401. package/dist/settings/index.js.map +1 -1
  402. package/dist/settings/org-settings.js.map +1 -1
  403. package/dist/settings/script-helpers.js.map +1 -1
  404. package/dist/settings/store.js.map +1 -1
  405. package/dist/settings/user-settings.js.map +1 -1
  406. package/dist/shared/agent-chat.js.map +1 -1
  407. package/dist/shared/agent-env.js.map +1 -1
  408. package/dist/shared/index.js.map +1 -1
  409. package/dist/shared/runtime.js.map +1 -1
  410. package/dist/shared/truncate.js.map +1 -1
  411. package/dist/sharing/access.d.ts +9 -1
  412. package/dist/sharing/access.d.ts.map +1 -1
  413. package/dist/sharing/access.js +11 -2
  414. package/dist/sharing/access.js.map +1 -1
  415. package/dist/sharing/actions/list-resource-shares.js.map +1 -1
  416. package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
  417. package/dist/sharing/actions/share-resource.js.map +1 -1
  418. package/dist/sharing/actions/unshare-resource.js.map +1 -1
  419. package/dist/sharing/index.js.map +1 -1
  420. package/dist/sharing/registry.js.map +1 -1
  421. package/dist/sharing/schema.js.map +1 -1
  422. package/dist/tailwind.preset.js.map +1 -1
  423. package/dist/terminal/cli-registry.js.map +1 -1
  424. package/dist/terminal/index.js.map +1 -1
  425. package/dist/terminal/pty-server.js.map +1 -1
  426. package/dist/terminal/terminal-plugin.d.ts.map +1 -1
  427. package/dist/terminal/terminal-plugin.js +19 -4
  428. package/dist/terminal/terminal-plugin.js.map +1 -1
  429. package/dist/tools/actions.js.map +1 -1
  430. package/dist/tools/fetch-tool.js.map +1 -1
  431. package/dist/tools/html-shell.js.map +1 -1
  432. package/dist/tools/proxy-security.js.map +1 -1
  433. package/dist/tools/routes.js.map +1 -1
  434. package/dist/tools/schema.js.map +1 -1
  435. package/dist/tools/slots/routes.js.map +1 -1
  436. package/dist/tools/slots/schema.js.map +1 -1
  437. package/dist/tools/slots/store.js.map +1 -1
  438. package/dist/tools/store.js.map +1 -1
  439. package/dist/tools/theme.js.map +1 -1
  440. package/dist/tools/url-safety.js.map +1 -1
  441. package/dist/tracking/index.js.map +1 -1
  442. package/dist/tracking/providers.js.map +1 -1
  443. package/dist/tracking/registry.js.map +1 -1
  444. package/dist/tracking/types.js.map +1 -1
  445. package/dist/transcription/builder-transcription.js.map +1 -1
  446. package/dist/triggers/actions.js.map +1 -1
  447. package/dist/triggers/condition-evaluator.js.map +1 -1
  448. package/dist/triggers/dispatcher.js.map +1 -1
  449. package/dist/triggers/index.js.map +1 -1
  450. package/dist/triggers/types.js.map +1 -1
  451. package/dist/usage/store.js.map +1 -1
  452. package/dist/vite/action-types-plugin.js.map +1 -1
  453. package/dist/vite/agents-bundle-plugin.js.map +1 -1
  454. package/dist/vite/client.d.ts.map +1 -1
  455. package/dist/vite/client.js +4 -0
  456. package/dist/vite/client.js.map +1 -1
  457. package/dist/vite/index.js.map +1 -1
  458. package/package.json +1 -1
  459. package/dist/client/settings/ComingSoonSection.d.ts +0 -13
  460. package/dist/client/settings/ComingSoonSection.d.ts.map +0 -1
  461. package/dist/client/settings/ComingSoonSection.js +0 -10
  462. package/dist/client/settings/ComingSoonSection.js.map +0 -1
  463. package/dist/client/use-builder-enabled.d.ts +0 -17
  464. package/dist/client/use-builder-enabled.d.ts.map +0 -1
  465. package/dist/client/use-builder-enabled.js +0 -37
  466. package/dist/client/use-builder-enabled.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/resources/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/resources/handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defineEventHandler,\n getQuery,\n getRouterParam,\n setResponseHeader,\n setResponseStatus,\n getMethod,\n readMultipartFormData,\n} from \"h3\";\nimport {\n resourceGet,\n resourceGetByPath,\n resourcePut,\n resourceDelete,\n resourceDeleteByPath,\n resourceList,\n resourceListAccessible,\n resourceMove,\n ensurePersonalDefaults,\n SHARED_OWNER,\n type Resource,\n type ResourceMeta,\n} from \"./store.js\";\nimport {\n getResourceKind,\n parseCustomAgentProfile,\n parseRemoteAgentManifest,\n parseSkillMetadata,\n type CustomAgentProfile,\n type RemoteAgentManifest,\n type SkillMetadata,\n} from \"./metadata.js\";\nimport { getSession } from \"../server/auth.js\";\nimport { readBody } from \"../server/h3-helpers.js\";\nimport { uploadFile } from \"../file-upload/index.js\";\nimport { runWithRequestContext } from \"../server/request-context.js\";\nimport { getOrgContext } from \"../org/context.js\";\nimport { createError } from \"h3\";\n\n// ---------------------------------------------------------------------------\n// Owner resolution\n// ---------------------------------------------------------------------------\n\nasync function resolveOwner(event: any, shared?: boolean): Promise<string> {\n if (shared) return SHARED_OWNER;\n const session = await getSession(event);\n if (!session?.email) {\n const { createError } = await import(\"h3\");\n throw createError({ statusCode: 401, statusMessage: \"Unauthenticated\" });\n }\n return session.email;\n}\n\nasync function resolveEmail(event: any): Promise<string> {\n const session = await getSession(event);\n if (!session?.email) {\n const { createError } = await import(\"h3\");\n throw createError({ statusCode: 401, statusMessage: \"Unauthenticated\" });\n }\n return session.email;\n}\n\n/**\n * Reject writes to organization-wide resources unless the user is the\n * organization owner/admin (or the deployment is solo — no org membership).\n * Read access remains open to every org member.\n */\nasync function assertCanEditShared(event: any): Promise<void> {\n const session = await getSession(event);\n if (!session?.email) {\n throw createError({ statusCode: 401, statusMessage: \"Unauthenticated\" });\n }\n const ctx = await getOrgContext(event);\n if (!ctx.orgId) return; // solo / dev mode — no org, treat as owner\n if (ctx.role === \"owner\" || ctx.role === \"admin\") return;\n throw createError({\n statusCode: 403,\n message: \"Only organization admins can edit organization files\",\n });\n}\n\n// ---------------------------------------------------------------------------\n// Tree building\n// ---------------------------------------------------------------------------\n\ninterface JobMetadata {\n schedule?: string;\n scheduleDescription?: string;\n enabled?: boolean;\n lastStatus?: string;\n lastRun?: string;\n nextRun?: string;\n}\n\ninterface TreeNode {\n name: string;\n path: string;\n type: \"file\" | \"folder\";\n kind?: \"file\" | \"skill\" | \"job\" | \"agent\" | \"remote-agent\";\n children?: TreeNode[];\n resource?: ResourceMeta;\n jobMeta?: JobMetadata;\n skillMeta?: SkillMetadata;\n agentMeta?: CustomAgentProfile;\n remoteAgentMeta?: RemoteAgentManifest;\n}\n\nfunction buildTree(resources: ResourceMeta[]): TreeNode[] {\n const root: TreeNode[] = [];\n\n for (const res of resources) {\n const parts = res.path.split(\"/\").filter(Boolean);\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isLast = i === parts.length - 1;\n const currentPath = \"/\" + parts.slice(0, i + 1).join(\"/\");\n\n if (isLast) {\n current.push({\n name: part,\n path: currentPath,\n type: \"file\",\n kind: getResourceKind(res.path),\n resource: res,\n });\n } else {\n let folder = current.find(\n (n) => n.name === part && n.type === \"folder\",\n );\n if (!folder) {\n folder = {\n name: part,\n path: currentPath,\n type: \"folder\",\n children: [],\n };\n current.push(folder);\n }\n current = folder.children!;\n }\n }\n }\n\n sortTree(root);\n return root;\n}\n\n/** Sort tree nodes: folders first, then files, alphabetically within each group */\nfunction sortTree(nodes: TreeNode[]): void {\n nodes.sort((a, b) => {\n if (a.type !== b.type) return a.type === \"folder\" ? -1 : 1;\n return a.name.localeCompare(b.name, undefined, { sensitivity: \"base\" });\n });\n for (const node of nodes) {\n if (node.children) sortTree(node.children);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Handlers\n// ---------------------------------------------------------------------------\n\n/** GET /_agent-native/resources — list resources */\nexport async function handleListResources(event: any) {\n const query = getQuery(event);\n const prefix = (query.prefix as string) || undefined;\n const scope = (query.scope as string) || \"all\";\n const email = await resolveEmail(event);\n\n // Seed personal AGENTS.md + LEARNINGS.md on first access\n await ensurePersonalDefaults(email);\n\n let resources: ResourceMeta[];\n\n if (scope === \"personal\") {\n resources = await resourceList(email, prefix);\n } else if (scope === \"shared\") {\n resources = await resourceList(SHARED_OWNER, prefix);\n } else {\n // \"all\" — personal + shared\n resources = await resourceListAccessible(email, prefix);\n }\n\n return { resources };\n}\n\n/** GET /_agent-native/resources/tree — build nested tree */\nexport async function handleGetResourceTree(event: any) {\n const query = getQuery(event);\n const scope = (query.scope as string) || \"all\";\n const email = await resolveEmail(event);\n\n // Seed personal AGENTS.md + LEARNINGS.md on first access\n await ensurePersonalDefaults(email);\n\n let resources: ResourceMeta[];\n\n if (scope === \"personal\") {\n resources = await resourceList(email);\n } else if (scope === \"shared\") {\n resources = await resourceList(SHARED_OWNER);\n } else {\n resources = await resourceListAccessible(email);\n }\n\n const tree = buildTree(resources);\n\n // Enrich typed resources with parsed metadata for richer UI\n await enrichTreeNodes(tree);\n\n return { tree };\n}\n\n/**\n * Walk the tree and add typed metadata for jobs, skills, and agents.\n */\nasync function enrichTreeNodes(nodes: TreeNode[]): Promise<void> {\n let parseFn: typeof import(\"../jobs/scheduler.js\").parseJobFrontmatter;\n let describeFn: typeof import(\"../jobs/cron.js\").describeCron;\n try {\n const scheduler = await import(\"../jobs/scheduler.js\");\n const cron = await import(\"../jobs/cron.js\");\n parseFn = scheduler.parseJobFrontmatter;\n describeFn = cron.describeCron;\n } catch {\n return; // Jobs module not available\n }\n\n for (const node of nodes) {\n if (node.type === \"folder\" && node.children) {\n await enrichTreeNodes(node.children);\n }\n if (node.type === \"file\" && node.resource) {\n try {\n const full = await resourceGet(node.resource.id);\n if (!full?.content) continue;\n\n if (\n node.resource.path.startsWith(\"jobs/\") &&\n node.resource.path.endsWith(\".md\")\n ) {\n const { meta } = parseFn(full.content);\n node.jobMeta = {\n schedule: meta.schedule,\n scheduleDescription: meta.schedule\n ? describeFn(meta.schedule)\n : undefined,\n enabled: meta.enabled,\n lastStatus: meta.lastStatus,\n lastRun: meta.lastRun,\n nextRun: meta.nextRun,\n };\n }\n\n if (\n node.resource.path.startsWith(\"skills/\") &&\n node.resource.path.endsWith(\".md\")\n ) {\n node.skillMeta =\n parseSkillMetadata(full.content, node.resource.path) ?? undefined;\n }\n\n if (\n node.resource.path.startsWith(\"agents/\") &&\n node.resource.path.endsWith(\".md\")\n ) {\n node.agentMeta =\n parseCustomAgentProfile(full.content, node.resource.path) ??\n undefined;\n }\n\n if (\n node.resource.path.startsWith(\"remote-agents/\") &&\n node.resource.path.endsWith(\".json\")\n ) {\n node.remoteAgentMeta =\n parseRemoteAgentManifest(full.content, node.resource.path) ??\n undefined;\n }\n } catch {\n // Skip individual file errors\n }\n }\n }\n}\n\n/** GET /_agent-native/resources/:id — get single resource with content.\n * If the request comes from an <img>/<video>/etc tag (Accept includes the\n * resource's mime type, or query param `?raw` is set), return the raw binary\n * with the correct Content-Type so the browser can render it inline. */\nexport async function handleGetResource(event: any) {\n const id = getRouterParam(event, \"id\") || event.context.params?.id;\n if (!id) {\n setResponseStatus(event, 400);\n return { error: \"Resource ID is required\" };\n }\n\n const resource = await resourceGet(id);\n if (!resource) {\n setResponseStatus(event, 404);\n return { error: \"Resource not found\" };\n }\n\n const email = await resolveEmail(event);\n if (resource.owner !== SHARED_OWNER && resource.owner !== email) {\n setResponseStatus(event, 404);\n return { error: \"Resource not found\" };\n }\n\n // Serve raw binary when ?raw query param is set (used by <img> tags etc.)\n const query = getQuery(event);\n const wantsRaw = query.raw !== undefined;\n\n if (wantsRaw && resource.content) {\n const isText =\n resource.mimeType.startsWith(\"text/\") ||\n resource.mimeType === \"application/json\";\n const buf = isText\n ? Buffer.from(resource.content, \"utf-8\")\n : Buffer.from(resource.content, \"base64\");\n\n setResponseHeader(event, \"Content-Type\", resource.mimeType);\n setResponseHeader(event, \"Content-Length\", String(buf.length));\n return new Response(buf);\n }\n\n // For binary resources (images, audio, video), omit the content field from\n // the JSON response — it can be megabytes of base64. The client fetches\n // the actual bytes via ?raw when it needs to display them.\n const isBinary =\n resource.mimeType.startsWith(\"image/\") ||\n resource.mimeType.startsWith(\"audio/\") ||\n resource.mimeType.startsWith(\"video/\") ||\n resource.mimeType === \"application/octet-stream\";\n\n if (isBinary) {\n const { content: _content, ...meta } = resource;\n return { ...meta, content: \"\" };\n }\n\n return resource;\n}\n\n/** POST /_agent-native/resources — create a resource */\nexport async function handleCreateResource(event: any) {\n const body = await readBody(event);\n\n if (!body?.path || typeof body.path !== \"string\") {\n setResponseStatus(event, 400);\n return { error: \"path is required\" };\n }\n\n if (body.shared) {\n await assertCanEditShared(event);\n }\n\n const owner = await resolveOwner(event, body.shared);\n\n // If ifNotExists is set, skip if the resource already exists\n if (body.ifNotExists) {\n const existing = await resourceGetByPath(owner, body.path);\n if (existing) {\n return existing;\n }\n }\n\n const resource = await resourcePut(\n owner,\n body.path,\n body.content ?? \"\",\n body.mimeType,\n );\n\n setResponseStatus(event, 201);\n return resource;\n}\n\n/** PUT /_agent-native/resources/:id — update an existing resource */\nexport async function handleUpdateResource(event: any) {\n const id = getRouterParam(event, \"id\") || event.context.params?.id;\n if (!id) {\n setResponseStatus(event, 400);\n return { error: \"Resource ID is required\" };\n }\n\n const existing = await resourceGet(id);\n if (!existing) {\n setResponseStatus(event, 404);\n return { error: \"Resource not found\" };\n }\n\n // Ownership check: only the owner (or shared resource editors) can update\n const email = await resolveEmail(event);\n if (existing.owner !== SHARED_OWNER && existing.owner !== email) {\n setResponseStatus(event, 404);\n return { error: \"Resource not found\" };\n }\n if (existing.owner === SHARED_OWNER) {\n await assertCanEditShared(event);\n }\n\n const body = await readBody(event);\n\n // If path changed, move it\n if (body.path && body.path !== existing.path) {\n await resourceMove(id, body.path);\n }\n\n // Update content/mimeType by re-putting\n const resource = await resourcePut(\n existing.owner,\n body.path ?? existing.path,\n body.content ?? existing.content,\n body.mimeType ?? existing.mimeType,\n );\n\n return resource;\n}\n\n/** DELETE /_agent-native/resources/:id — delete a resource */\nexport async function handleDeleteResource(event: any) {\n const id = getRouterParam(event, \"id\") || event.context.params?.id;\n if (!id) {\n setResponseStatus(event, 400);\n return { error: \"Resource ID is required\" };\n }\n\n const existing = await resourceGet(id);\n if (!existing) {\n setResponseStatus(event, 404);\n return { error: \"Resource not found\" };\n }\n\n // Ownership check: only the owner (or shared resource editors) can delete\n const email = await resolveEmail(event);\n if (existing.owner !== SHARED_OWNER && existing.owner !== email) {\n setResponseStatus(event, 404);\n return { error: \"Resource not found\" };\n }\n if (existing.owner === SHARED_OWNER) {\n await assertCanEditShared(event);\n }\n\n await resourceDelete(id);\n return { ok: true };\n}\n\n/** POST /_agent-native/resources/upload — upload a file as a resource */\nexport async function handleUploadResource(event: any) {\n const parts = await readMultipartFormData(event);\n\n if (!parts || parts.length === 0) {\n setResponseStatus(event, 400);\n return { error: \"No file uploaded\" };\n }\n\n const filePart = parts.find((p) => p.name === \"file\");\n const pathPart = parts.find((p) => p.name === \"path\");\n const sharedPart = parts.find((p) => p.name === \"shared\");\n\n if (!filePart || !filePart.data) {\n setResponseStatus(event, 400);\n return { error: \"No file data found\" };\n }\n\n const fileName = filePart.filename || \"upload\";\n const path = pathPart?.data?.toString() || `/${fileName}`;\n const shared = sharedPart?.data?.toString() === \"true\";\n const mimeType = filePart.type || \"application/octet-stream\";\n if (shared) {\n await assertCanEditShared(event);\n }\n const owner = await resolveOwner(event, shared);\n\n // Prefer a registered file upload provider (e.g. Builder.io) for binary\n // assets so we get a real CDN URL instead of a base64 blob in SQL.\n // Text resources still live in SQL — they're edited inline and benefit\n // from the resource store's metadata/search features.\n const isText =\n mimeType.startsWith(\"text/\") || mimeType === \"application/json\";\n\n if (!isText) {\n // Use the actual session user email for credential resolution — not `owner`,\n // which is \"__shared__\" for org-wide resources and would break the per-user\n // DB credential lookup (resolveBuilderCredential refuses env fallback for any\n // non-null non-local email, including the sentinel value).\n const credentialEmail =\n owner !== SHARED_OWNER\n ? owner\n : (await getSession(event).catch(() => null))?.email;\n const doUpload = () =>\n uploadFile({\n data: filePart.data,\n filename: fileName,\n mimeType,\n ownerEmail: owner,\n });\n const uploaded = credentialEmail\n ? await runWithRequestContext({ userEmail: credentialEmail }, doUpload)\n : await doUpload();\n if (uploaded) {\n const resource = await resourcePut(owner, path, uploaded.url, mimeType);\n setResponseStatus(event, 201);\n return { ...resource, url: uploaded.url, provider: uploaded.provider };\n }\n }\n\n // Fallback: store contents in SQL (base64 for binary, text as-is).\n const content = isText\n ? Buffer.from(filePart.data).toString(\"utf-8\")\n : Buffer.from(filePart.data).toString(\"base64\");\n\n const resource = await resourcePut(owner, path, content, mimeType);\n\n setResponseStatus(event, 201);\n return resource;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC","sourcesContent":["export * from \"./store.js\";\nexport * from \"./emitter.js\";\nexport * from \"./script-helpers.js\";\nexport * from \"./handlers.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/resources/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/resources/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["export type ResourceKind = \"file\" | \"skill\" | \"job\" | \"agent\" | \"remote-agent\";\n\nexport interface ParsedFrontmatter {\n raw: string;\n body: string;\n fields: Array<{ key: string; value: string }>;\n}\n\nexport interface SkillMetadata {\n name: string;\n description?: string;\n}\n\nexport interface CustomAgentProfile {\n id: string;\n path: string;\n name: string;\n description?: string;\n model?: string;\n tools?: string;\n color?: string;\n delegateDefault?: boolean;\n instructions: string;\n}\n\nexport interface RemoteAgentManifest {\n id: string;\n path: string;\n name: string;\n description?: string;\n url: string;\n color?: string;\n}\n\nfunction normalizeFrontmatterValue(value: string): string {\n const trimmed = value.trim();\n if (\n (trimmed.startsWith('\"') && trimmed.endsWith('\"')) ||\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\"))\n ) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n\nexport function parseFrontmatter(content: string): ParsedFrontmatter | null {\n const match = content.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n?/);\n if (!match) return null;\n\n const raw = match[0];\n const yamlBlock = match[1];\n const fields: Array<{ key: string; value: string }> = [];\n const lines = yamlBlock.split(\"\\n\");\n let i = 0;\n\n while (i < lines.length) {\n const line = lines[i];\n const kvMatch = line.match(/^(\\w[\\w-]*):\\s*(.*)/);\n if (!kvMatch) {\n i++;\n continue;\n }\n\n const key = kvMatch[1];\n let value = kvMatch[2].trim();\n if (value === \">-\" || value === \">\" || value === \"|\" || value === \"|-\") {\n const multiLines: string[] = [];\n i++;\n while (i < lines.length && /^\\s+/.test(lines[i])) {\n multiLines.push(lines[i].trim());\n i++;\n }\n value = multiLines.join(\" \");\n } else {\n i++;\n }\n\n fields.push({ key, value: normalizeFrontmatterValue(value) });\n }\n\n return {\n raw,\n body: content.slice(raw.length),\n fields,\n };\n}\n\nexport function serializeFrontmatter(\n fields: Array<{ key: string; value: string }>,\n): string {\n const lines = fields.map(({ key, value }) => {\n if (key === \"description\" && value.length > 60) {\n const words = value.split(\" \");\n const wrapped: string[] = [];\n let line = \"\";\n for (const word of words) {\n if (line && line.length + word.length + 1 > 72) {\n wrapped.push(` ${line}`);\n line = word;\n } else {\n line = line ? `${line} ${word}` : word;\n }\n }\n if (line) wrapped.push(` ${line}`);\n return `${key}: >-\\n${wrapped.join(\"\\n\")}`;\n }\n\n const needsQuotes =\n value.includes(\":\") || value.startsWith(\"[\") || value.startsWith(\"{\");\n return `${key}: ${needsQuotes ? JSON.stringify(value) : value}`;\n });\n\n return `---\\n${lines.join(\"\\n\")}\\n---\\n`;\n}\n\nexport function getFrontmatterValue(\n frontmatter: ParsedFrontmatter | null,\n key: string,\n): string | undefined {\n return frontmatter?.fields.find((field) => field.key === key)?.value;\n}\n\nexport function frontmatterFieldsToObject(\n frontmatter: ParsedFrontmatter | null,\n): Record<string, string> {\n return Object.fromEntries(\n frontmatter?.fields.map((f) => [f.key, f.value]) ?? [],\n );\n}\n\nexport function isSkillPath(path: string): boolean {\n return path.startsWith(\"skills/\") && path.endsWith(\".md\");\n}\n\nexport function isJobPath(path: string): boolean {\n return path.startsWith(\"jobs/\") && path.endsWith(\".md\");\n}\n\nexport function isCustomAgentPath(path: string): boolean {\n return path.startsWith(\"agents/\") && path.endsWith(\".md\");\n}\n\nexport function isRemoteAgentPath(path: string): boolean {\n return path.startsWith(\"remote-agents/\") && path.endsWith(\".json\");\n}\n\nexport function getResourceKind(path: string): ResourceKind {\n if (isSkillPath(path)) return \"skill\";\n if (isJobPath(path)) return \"job\";\n if (isCustomAgentPath(path)) return \"agent\";\n if (isRemoteAgentPath(path)) return \"remote-agent\";\n return \"file\";\n}\n\nexport function parseSkillMetadata(\n content: string,\n path: string,\n): SkillMetadata | null {\n if (!isSkillPath(path)) return null;\n const frontmatter = parseFrontmatter(content);\n return {\n name:\n getFrontmatterValue(frontmatter, \"name\") ||\n path.split(\"/\").pop()?.replace(/\\.md$/, \"\") ||\n path,\n description: getFrontmatterValue(frontmatter, \"description\"),\n };\n}\n\nexport function parseCustomAgentProfile(\n content: string,\n path: string,\n): CustomAgentProfile | null {\n if (!isCustomAgentPath(path)) return null;\n const frontmatter = parseFrontmatter(content);\n const values = frontmatterFieldsToObject(frontmatter);\n const id = path.replace(/^agents\\//, \"\").replace(/\\.md$/, \"\");\n return {\n id,\n path,\n name: values.name || id,\n description: values.description,\n model:\n values.model && values.model !== \"inherit\" ? values.model : undefined,\n tools: values.tools || undefined,\n color: values.color || undefined,\n delegateDefault: values[\"delegate-default\"] === \"true\",\n instructions: (frontmatter?.body ?? content).trim(),\n };\n}\n\nexport function parseRemoteAgentManifest(\n content: string,\n path: string,\n): RemoteAgentManifest | null {\n if (!isRemoteAgentPath(path)) return null;\n try {\n const data = JSON.parse(content);\n const id =\n data.id || path.replace(/^remote-agents\\//, \"\").replace(/\\.json$/, \"\");\n if (!data.url) return null;\n return {\n id,\n path,\n name: data.name || id,\n description: data.description || \"\",\n url: data.url,\n color: data.color || \"#6B7280\",\n };\n } catch {\n return null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"script-helpers.js","sourceRoot":"","sources":["../../src/resources/script-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,GAEvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,sEAAsE;AACtE,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,qDAAqD;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,SAAS,QAAQ,CAAC,MAAgB;IAChC,IAAI,MAAM;QAAE,OAAO,YAAY,CAAC;IAChC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,OAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,OAAe,EACf,OAAiD;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,OAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAe,EACf,OAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAe;IAEf,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"script-helpers.js","sourceRoot":"","sources":["../../src/resources/script-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,GAEvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,sEAAsE;AACtE,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,qDAAqD;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,SAAS,QAAQ,CAAC,MAAgB;IAChC,IAAI,MAAM;QAAE,OAAO,YAAY,CAAC;IAChC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,OAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,OAAe,EACf,OAAiD;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,OAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAe,EACf,OAA8B;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAe;IAEf,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC","sourcesContent":["/**\n * Resource helpers for use in scripts.\n *\n * Scripts run as standalone processes without HTTP context.\n * The owner is resolved from the AGENT_USER_EMAIL env var\n * (set by the agent runtime for multi-user apps), defaulting to\n * \"local@localhost\" for backward compatibility in dev mode.\n */\n\nimport {\n SHARED_OWNER,\n resourceGetByPath,\n resourcePut,\n resourceDeleteByPath,\n resourceList,\n resourceListAccessible,\n type ResourceMeta,\n} from \"./store.js\";\nimport {\n getRequestUserEmail,\n hasRequestContext,\n} from \"../server/request-context.js\";\n\n// Dev-mode fallback identity. Scripts run as standalone CLI processes\n// without HTTP context — when no AGENT_USER_EMAIL is set we fall back to\n// the dev-mode user so a developer running `pnpm action` locally without\n// signing in still gets a usable scope. Production multi-user deployments\n// always set AGENT_USER_EMAIL via the agent runtime.\nimport { DEV_MODE_USER_EMAIL } from \"../server/auth.js\";\n\nfunction getOwner(shared?: boolean): string {\n if (shared) return SHARED_OWNER;\n const userEmail = getRequestUserEmail();\n if (userEmail) return userEmail;\n if (hasRequestContext()) {\n throw new Error(\n \"Resource access requires an authenticated request context\",\n );\n }\n return DEV_MODE_USER_EMAIL;\n}\n\nexport async function readResource(\n path: string,\n options?: { shared?: boolean },\n): Promise<string | null> {\n const owner = getOwner(options?.shared);\n const resource = await resourceGetByPath(owner, path);\n return resource ? resource.content : null;\n}\n\nexport async function writeResource(\n path: string,\n content: string,\n options?: { shared?: boolean; mimeType?: string },\n): Promise<void> {\n const owner = getOwner(options?.shared);\n await resourcePut(owner, path, content, options?.mimeType);\n}\n\nexport async function deleteResource(\n path: string,\n options?: { shared?: boolean },\n): Promise<boolean> {\n const owner = getOwner(options?.shared);\n return resourceDeleteByPath(owner, path);\n}\n\nexport async function listResources(\n prefix?: string,\n options?: { shared?: boolean },\n): Promise<ResourceMeta[]> {\n const owner = getOwner(options?.shared);\n return resourceList(owner, prefix);\n}\n\nexport async function listAllResources(\n prefix?: string,\n): Promise<ResourceMeta[]> {\n const userEmail = getOwner(false);\n return resourceListAccessible(userEmail, prefix);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/resources/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/resources/store.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getDbExec,\n isPostgres,\n intType,\n retryOnDdlRace,\n type DbExec,\n} from \"../db/client.js\";\nimport { emitResourceChange, emitResourceDelete } from \"./emitter.js\";\nimport type { StoreWriteOptions } from \"../settings/store.js\";\nimport crypto from \"crypto\";\n\nexport const SHARED_OWNER = \"__shared__\";\n\nexport interface Resource {\n id: string;\n path: string;\n owner: string;\n content: string;\n mimeType: string;\n size: number;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface ResourceMeta {\n id: string;\n path: string;\n owner: string;\n mimeType: string;\n size: number;\n createdAt: number;\n updatedAt: number;\n}\n\nlet _initPromise: Promise<void> | undefined;\n\nconst DEFAULT_LEARNINGS_SHARED_MD = `# Learnings\n\nUser preferences, corrections, and patterns. The agent reads this at the start of every conversation.\n\nKeep this file tidy — revise, consolidate, and remove outdated entries. Don't just append forever.\n\n## Preferences\n\n## Corrections\n\n## Patterns\n`;\n\nconst DEFAULT_LEARNINGS_PERSONAL_MD = `# My Learnings\n\nPersonal preferences, corrections, and patterns — only visible to you.\n\n## Preferences\n\n## Corrections\n\n## Patterns\n`;\n\nconst DEFAULT_SKILL_LEARN_MD = `---\nname: learn\ndescription: >-\n Review the conversation and save structured memories for future sessions.\nuser-invocable: true\n---\n\n# Learn\n\nReview the current conversation and save anything worth remembering using the structured memory system.\n\n## Memory types\n\n- **user** — Preferences, role, personal context, contacts\n- **feedback** — Corrections (\"don't do X, do Y instead\"), confirmed approaches\n- **project** — Ongoing work context, decisions, status\n- **reference** — Pointers to external systems, URLs, API details\n\n## Steps\n\n1. Review the conversation for new insights\n2. Check your memory index: \\`resource-read --path memory/MEMORY.md\\`\n3. For each new insight, use \\`save-memory\\` with a descriptive name, type, and content\n4. If updating an existing memory, read it first with \\`resource-read --path memory/<name>.md\\`, then save with merged content\n\n## What NOT to capture\n\n- Things obvious from reading the code\n- Standard language/framework behavior\n- Temporary debugging notes\n- Anything already in AGENTS.md or other skills\n\nKeep one memory per logical topic. Descriptions should be concise — the index is loaded every conversation.\n`;\n\nconst DEFAULT_SKILL_LEARN_SHARED_MD = `---\nname: learn-shared\ndescription: >-\n Update the shared LEARNINGS.md with team-wide preferences, corrections, and\n patterns from this session.\nuser-invocable: true\n---\n\n# Learn (Shared)\n\nReview the current conversation and update the shared \\`LEARNINGS.md\\` resource with anything the whole team should know.\n\n## What to capture\n\n- **Team conventions** — agreed-upon approaches, code style decisions\n- **Technical learnings** — API quirks, library gotchas, surprising behavior\n- **Architectural decisions** — why something is done a certain way\n- **Corrections** — mistakes that any team member's agent should avoid\n\n## What NOT to capture\n\n- Personal preferences (use \\`/learn\\` for those)\n- Things obvious from reading the code\n- Standard language/framework behavior\n\n## Steps\n\n1. Read shared learnings: \\`pnpm action resource-read --path LEARNINGS.md --scope shared\\`\n2. Review the conversation for team-relevant insights\n3. Merge new learnings with existing ones — don't duplicate, refine existing entries\n4. Write back: \\`pnpm action resource-write --path LEARNINGS.md --scope shared --content \"...\"\\`\n\nKeep entries concise — one line per learning, grouped by category (Conventions, Technical, Patterns).\n`;\n\nconst DEFAULT_AGENTS_SHARED_MD = `# Agent Instructions\n\nThis file customizes how the AI agent behaves in this app. Edit it to add your own instructions, preferences, and context.\n\n## What to put here\n\n- **Preferences** — Tone, style, verbosity, response format\n- **Context** — Domain knowledge, terminology, team conventions\n- **Rules** — Things the agent should always/never do\n- **Skills** — Reference skill files for specialized tasks (create them in the \\`skills/\\` folder)\n\n## Skills\n\nYou can create skill files to give the agent specialized knowledge for specific tasks. Create resources under \\`skills/\\` (e.g., \\`skills/data-analysis.md\\`, \\`skills/code-review.md\\`) and reference them here:\n\n| Skill | Path | Description |\n|-------|------|-------------|\n| *(add your skills here)* | \\`skills/example.md\\` | What this skill teaches the agent |\n\nThe agent will read the relevant skill file when performing that type of task.\n\n## Example\n\n\\`\\`\\`markdown\n## Tone\nBe concise. Lead with the answer. Skip filler.\n\n## Code style\n- Use TypeScript, never JavaScript\n- Prefer named exports\n- Use early returns\n\n## Domain context\nWe sell B2B SaaS. Our customers are enterprise engineering teams.\n\\`\\`\\`\n`;\n\nconst DEFAULT_AGENTS_PERSONAL_MD = `# My Agent Instructions\n\nPersonal agent instructions — only visible to you. Use this for your own contacts, preferences, and context.\n\n## Contacts\n\nAdd people you frequently interact with so the agent can resolve names like \"email my wife\" or \"message John\":\n\n| Name | Email | Notes |\n|------|-------|-------|\n| *(add your contacts here)* | | |\n\n## Preferences\n\n## Context\n`;\n\nasync function ensureTable(): Promise<void> {\n if (!_initPromise) {\n _initPromise = _doEnsureTable().catch((err) => {\n // Don't cache the rejection — let the next caller retry a fresh init.\n _initPromise = undefined;\n throw err;\n });\n }\n return _initPromise;\n}\n\nasync function _doEnsureTable(): Promise<void> {\n const client = getDbExec();\n await retryOnDdlRace(() =>\n client.execute(`\n CREATE TABLE IF NOT EXISTS resources (\n id TEXT PRIMARY KEY,\n path TEXT NOT NULL,\n owner TEXT NOT NULL,\n content TEXT NOT NULL DEFAULT '',\n mime_type TEXT NOT NULL DEFAULT 'text/markdown',\n size ${intType()} NOT NULL DEFAULT 0,\n created_at ${intType()} NOT NULL,\n updated_at ${intType()} NOT NULL,\n UNIQUE(path, owner)\n )\n `),\n );\n\n // Seed default shared resources if they don't exist (INSERT OR IGNORE to avoid race conditions)\n const now = Date.now();\n const seedSql = isPostgres()\n ? `INSERT INTO resources (id, path, owner, content, mime_type, size, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (path, owner) DO NOTHING`\n : `INSERT OR IGNORE INTO resources (id, path, owner, content, mime_type, size, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`;\n\n // AGENTS.md — shared agent instructions\n const agentsSize = Buffer.byteLength(DEFAULT_AGENTS_SHARED_MD, \"utf8\");\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"AGENTS.md\",\n SHARED_OWNER,\n DEFAULT_AGENTS_SHARED_MD,\n \"text/markdown\",\n agentsSize,\n now,\n now,\n ],\n });\n\n // LEARNINGS.md — shared learnings (preferences, corrections, patterns)\n const learningsSize = Buffer.byteLength(DEFAULT_LEARNINGS_SHARED_MD, \"utf8\");\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"LEARNINGS.md\",\n SHARED_OWNER,\n DEFAULT_LEARNINGS_SHARED_MD,\n \"text/markdown\",\n learningsSize,\n now,\n now,\n ],\n });\n\n // skills/learn-shared.md — shared skill for updating shared LEARNINGS.md\n const learnSharedSize = Buffer.byteLength(\n DEFAULT_SKILL_LEARN_SHARED_MD,\n \"utf8\",\n );\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"skills/learn-shared.md\",\n SHARED_OWNER,\n DEFAULT_SKILL_LEARN_SHARED_MD,\n \"text/markdown\",\n learnSharedSize,\n now,\n now,\n ],\n });\n\n // Seed built-in agents as shared resources under remote-agents/. ALWAYS\n // use the production URL here, never the env-resolved devUrl. The seed\n // runs once per DB (ON CONFLICT DO NOTHING), so a localhost URL written\n // during a dev run sticks forever — including when that DB is later used\n // by a prod deploy and the override wins over the built-in's prod URL.\n // (Verified problem: `dispatch.agent-native.com` had every remote-agents\n // entry pointing at localhost from an early-seed run, breaking call-agent\n // outbound from Lambda for ~12h before this was caught.)\n try {\n const { getBuiltinAgents, BUILTIN_AGENTS_FOR_SEEDING } =\n await import(\"../server/agent-discovery.js\");\n void getBuiltinAgents; // referenced to keep type-only import alive\n const builtins = BUILTIN_AGENTS_FOR_SEEDING;\n for (const agent of builtins) {\n const agentJson = JSON.stringify(\n {\n id: agent.id,\n name: agent.name,\n description: agent.description,\n url: agent.url, // always prod\n color: agent.color,\n },\n null,\n 2,\n );\n const agentSize = Buffer.byteLength(agentJson, \"utf8\");\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n `remote-agents/${agent.id}.json`,\n SHARED_OWNER,\n agentJson,\n \"application/json\",\n agentSize,\n now,\n now,\n ],\n });\n }\n } catch {\n // Agent discovery not available — skip seeding\n }\n\n // One-time migration: rename legacy agents/*.json (A2A manifests) to\n // remote-agents/*.json so they live in their own folder, separate from\n // custom agents (agents/*.md).\n try {\n const legacy = await client.execute({\n sql: `SELECT id, path FROM resources WHERE path LIKE ? AND path LIKE ?`,\n args: [\"agents/%\", \"%.json\"],\n });\n const rows = (legacy.rows ?? []) as Array<{ id: string; path: string }>;\n for (const row of rows) {\n const newPath = row.path.replace(/^agents\\//, \"remote-agents/\");\n try {\n await client.execute({\n sql: `UPDATE resources SET path = ?, updated_at = ? WHERE id = ?`,\n args: [newPath, Date.now(), row.id],\n });\n } catch {\n // Skip if destination path already exists (unique constraint) —\n // we'll leave the old row in place; it'll be ignored by readers.\n }\n }\n } catch {\n // Migration best-effort\n }\n}\n\nconst _personalSeeded = new Set<string>();\n\n/**\n * Seed personal AGENTS.md and LEARNINGS.md for a user if they don't exist.\n * Called when listing resources or from the agent chat plugin.\n */\nexport async function ensurePersonalDefaults(owner: string): Promise<void> {\n if (owner === SHARED_OWNER || _personalSeeded.has(owner)) return;\n _personalSeeded.add(owner);\n await ensureTable();\n\n const client = getDbExec();\n const now = Date.now();\n const seedSql = isPostgres()\n ? `INSERT INTO resources (id, path, owner, content, mime_type, size, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (path, owner) DO NOTHING`\n : `INSERT OR IGNORE INTO resources (id, path, owner, content, mime_type, size, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`;\n\n const agentsSize = Buffer.byteLength(DEFAULT_AGENTS_PERSONAL_MD, \"utf8\");\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"AGENTS.md\",\n owner,\n DEFAULT_AGENTS_PERSONAL_MD,\n \"text/markdown\",\n agentsSize,\n now,\n now,\n ],\n });\n\n const learningsSize = Buffer.byteLength(\n DEFAULT_LEARNINGS_PERSONAL_MD,\n \"utf8\",\n );\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"LEARNINGS.md\",\n owner,\n DEFAULT_LEARNINGS_PERSONAL_MD,\n \"text/markdown\",\n learningsSize,\n now,\n now,\n ],\n });\n\n // memory/MEMORY.md — personal structured memory index\n const memoryIndexContent = \"# Memory Index\\n\";\n const memoryIndexSize = Buffer.byteLength(memoryIndexContent, \"utf8\");\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"memory/MEMORY.md\",\n owner,\n memoryIndexContent,\n \"text/markdown\",\n memoryIndexSize,\n now,\n now,\n ],\n });\n\n // skills/learn.md — personal skill for updating memory\n const learnSize = Buffer.byteLength(DEFAULT_SKILL_LEARN_MD, \"utf8\");\n await client.execute({\n sql: seedSql,\n args: [\n crypto.randomUUID(),\n \"skills/learn.md\",\n owner,\n DEFAULT_SKILL_LEARN_MD,\n \"text/markdown\",\n learnSize,\n now,\n now,\n ],\n });\n}\n\nfunction rowToResource(row: any): Resource {\n return {\n id: row.id as string,\n path: row.path as string,\n owner: row.owner as string,\n content: row.content as string,\n mimeType: row.mime_type as string,\n size: row.size as number,\n createdAt: row.created_at as number,\n updatedAt: row.updated_at as number,\n };\n}\n\nfunction rowToMeta(row: any): ResourceMeta {\n return {\n id: row.id as string,\n path: row.path as string,\n owner: row.owner as string,\n mimeType: row.mime_type as string,\n size: row.size as number,\n createdAt: row.created_at as number,\n updatedAt: row.updated_at as number,\n };\n}\n\nexport async function resourceGet(id: string): Promise<Resource | null> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT * FROM resources WHERE id = ?`,\n args: [id],\n });\n if (rows.length === 0) return null;\n return rowToResource(rows[0]);\n}\n\nexport async function resourceGetByPath(\n owner: string,\n path: string,\n): Promise<Resource | null> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT * FROM resources WHERE owner = ? AND path = ?`,\n args: [owner, path],\n });\n if (rows.length === 0) return null;\n return rowToResource(rows[0]);\n}\n\nexport async function resourcePut(\n owner: string,\n path: string,\n content: string,\n mimeType?: string,\n options?: StoreWriteOptions,\n): Promise<Resource> {\n await ensureTable();\n const client = getDbExec();\n const now = Date.now();\n const size = Buffer.byteLength(content, \"utf8\");\n const mime = mimeType || \"text/markdown\";\n\n // Check for existing resource to preserve ID on upsert\n const { rows: existing } = await client.execute({\n sql: `SELECT id, created_at FROM resources WHERE owner = ? AND path = ?`,\n args: [owner, path],\n });\n\n const id =\n existing.length > 0 ? (existing[0].id as string) : crypto.randomUUID();\n const createdAt =\n existing.length > 0 ? (existing[0].created_at as number) : now;\n\n await client.execute({\n sql: isPostgres()\n ? `INSERT INTO resources (id, path, owner, content, mime_type, size, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (path, owner) DO UPDATE SET id=EXCLUDED.id, content=EXCLUDED.content, mime_type=EXCLUDED.mime_type, size=EXCLUDED.size, updated_at=EXCLUDED.updated_at`\n : `INSERT OR REPLACE INTO resources (id, path, owner, content, mime_type, size, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,\n args: [id, path, owner, content, mime, size, createdAt, now],\n });\n\n emitResourceChange(id, path, owner, options?.requestSource);\n\n return {\n id,\n path,\n owner,\n content,\n mimeType: mime,\n size,\n createdAt,\n updatedAt: now,\n };\n}\n\nexport async function resourceDelete(id: string): Promise<boolean> {\n await ensureTable();\n const client = getDbExec();\n\n // Get resource info for emitter before deleting\n const { rows } = await client.execute({\n sql: `SELECT path, owner FROM resources WHERE id = ?`,\n args: [id],\n });\n if (rows.length === 0) return false;\n\n const result = await client.execute({\n sql: `DELETE FROM resources WHERE id = ?`,\n args: [id],\n });\n const deleted = result.rowsAffected > 0;\n if (deleted) {\n emitResourceDelete(id, rows[0].path as string, rows[0].owner as string);\n }\n return deleted;\n}\n\nexport async function resourceDeleteByPath(\n owner: string,\n path: string,\n): Promise<boolean> {\n await ensureTable();\n const client = getDbExec();\n\n // Get resource info for emitter before deleting\n const { rows } = await client.execute({\n sql: `SELECT id FROM resources WHERE owner = ? AND path = ?`,\n args: [owner, path],\n });\n if (rows.length === 0) return false;\n\n const result = await client.execute({\n sql: `DELETE FROM resources WHERE owner = ? AND path = ?`,\n args: [owner, path],\n });\n const deleted = result.rowsAffected > 0;\n if (deleted) {\n emitResourceDelete(rows[0].id as string, path, owner);\n }\n return deleted;\n}\n\nexport async function resourceList(\n owner: string,\n pathPrefix?: string,\n): Promise<ResourceMeta[]> {\n await ensureTable();\n const client = getDbExec();\n\n if (pathPrefix) {\n const { rows } = await client.execute({\n sql: `SELECT id, path, owner, mime_type, size, created_at, updated_at FROM resources WHERE owner = ? AND path LIKE ?`,\n args: [owner, pathPrefix + \"%\"],\n });\n return rows.map(rowToMeta);\n }\n\n const { rows } = await client.execute({\n sql: `SELECT id, path, owner, mime_type, size, created_at, updated_at FROM resources WHERE owner = ?`,\n args: [owner],\n });\n return rows.map(rowToMeta);\n}\n\nexport async function resourceListAccessible(\n userEmail: string,\n pathPrefix?: string,\n): Promise<ResourceMeta[]> {\n await ensureTable();\n const client = getDbExec();\n\n if (pathPrefix) {\n const { rows } = await client.execute({\n sql: `SELECT id, path, owner, mime_type, size, created_at, updated_at FROM resources WHERE owner = ? AND path LIKE ?\n UNION\n SELECT id, path, owner, mime_type, size, created_at, updated_at FROM resources WHERE owner = ? AND path LIKE ?`,\n args: [userEmail, pathPrefix + \"%\", SHARED_OWNER, pathPrefix + \"%\"],\n });\n return rows.map(rowToMeta);\n }\n\n const { rows } = await client.execute({\n sql: `SELECT id, path, owner, mime_type, size, created_at, updated_at FROM resources WHERE owner = ?\n UNION\n SELECT id, path, owner, mime_type, size, created_at, updated_at FROM resources WHERE owner = ?`,\n args: [userEmail, SHARED_OWNER],\n });\n return rows.map(rowToMeta);\n}\n\n/**\n * List all resources matching a path prefix across ALL owners.\n * Used by the recurring jobs scheduler to find all job resources.\n */\nexport async function resourceListAllOwners(\n pathPrefix: string,\n): Promise<Resource[]> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT * FROM resources WHERE path LIKE ?`,\n args: [pathPrefix + \"%\"],\n });\n return rows.map(rowToResource);\n}\n\nexport async function resourceMove(\n id: string,\n newPath: string,\n): Promise<boolean> {\n await ensureTable();\n const client = getDbExec();\n const now = Date.now();\n\n // Get current resource info\n const { rows } = await client.execute({\n sql: `SELECT path, owner FROM resources WHERE id = ?`,\n args: [id],\n });\n if (rows.length === 0) return false;\n\n const result = await client.execute({\n sql: `UPDATE resources SET path = ?, updated_at = ? WHERE id = ?`,\n args: [newPath, now, id],\n });\n const moved = result.rowsAffected > 0;\n if (moved) {\n emitResourceChange(id, newPath, rows[0].owner as string);\n }\n return moved;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,4DAA4D;AAE5D,OAAO,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,4DAA4D;AAE5D,OAAO,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["// Re-export React Router utilities for framework mode.\n// Import from \"@agent-native/core/router\" in route modules.\n\nexport {\n Link,\n NavLink,\n Outlet,\n useNavigate,\n useParams,\n useLoaderData,\n useActionData,\n useLocation,\n useSearchParams,\n redirect,\n data,\n Form,\n Links,\n Meta,\n Scripts,\n ScrollRestoration,\n isRouteErrorResponse,\n} from \"react-router\";\n\nexport { HydratedRouter } from \"react-router/dom\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"list-agent-engines.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/list-agent-engines.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,mNAAmN;IACrN,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,sBAAsB,EAAE,CAAC;IAEzB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAE,cAAsD;QACzD,CAAC,CAAC,IAAI,CAAC;IAET,4EAA4E;IAC5E,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,WAAW,GACf,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ;QACjC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,YAAY,GAChB,CAAC,CAAC,WAAW,IAAI,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE9D,MAAM,YAAY,GAChB,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACxC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY;YACvB,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,mBAAmB,EAAE;QACrB,SAAS,CAAC;IACZ,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,iBAAiB,GAAG,YAAY,EAAE,IAAI,IAAI,WAAW,CAAC;IAE5D,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,cAAc,EAAE,CAAC,CAAC,cAAc;SACjC,CAAC,CAAC;QACH,OAAO,EAAE;YACP,MAAM,EAAE,iBAAiB;YACzB,KAAK,EACH,YAAY;gBACZ,YAAY,EAAE,YAAY;gBAC1B,2BAA2B;SAC9B;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"list-agent-engines.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/list-agent-engines.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,mNAAmN;IACrN,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,sBAAsB,EAAE,CAAC;IAEzB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAE,cAAsD;QACzD,CAAC,CAAC,IAAI,CAAC;IAET,4EAA4E;IAC5E,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,WAAW,GACf,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ;QACjC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,YAAY,GAChB,CAAC,CAAC,WAAW,IAAI,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE9D,MAAM,YAAY,GAChB,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACxC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY;YACvB,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,mBAAmB,EAAE;QACrB,SAAS,CAAC;IACZ,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,iBAAiB,GAAG,YAAY,EAAE,IAAI,IAAI,WAAW,CAAC;IAE5D,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,cAAc,EAAE,CAAC,CAAC,cAAc;SACjC,CAAC,CAAC;QACH,OAAO,EAAE;YACP,MAAM,EAAE,iBAAiB;YACzB,KAAK,EACH,YAAY;gBACZ,YAAY,EAAE,YAAY;gBAC1B,2BAA2B;SAC9B;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC","sourcesContent":["/**\n * list-agent-engines — returns the registered engine registry and current selection.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport {\n listAgentEngines,\n registerBuiltinEngines,\n detectEngineFromEnv,\n getAgentEngineEntry,\n isStoredEngineUsable,\n} from \"../../agent/engine/index.js\";\nimport { getSetting } from \"../../settings/index.js\";\n\nexport const tool: ActionTool = {\n description:\n 'List all available AI agent engines (Anthropic, OpenAI, Gemini, Groq, etc.) and the currently selected engine. Use this to check what engines are available before calling manage-agent-engine with action=\"set\".',\n parameters: {\n type: \"object\",\n properties: {},\n required: [],\n },\n};\n\nexport async function run(): Promise<string> {\n registerBuiltinEngines();\n\n const engines = listAgentEngines();\n const currentSetting = await getSetting(\"agent-engine\");\n const current = currentSetting\n ? (currentSetting as { engine?: string; model?: string })\n : null;\n\n // Same priority chain resolveEngine uses: stored (if usable) → AGENT_ENGINE\n // → detect → anthropic. Gating stored on isStoredEngineUsable keeps this\n // in step with /agent-engine/status.\n const storedEntry =\n typeof current?.engine === \"string\"\n ? getAgentEngineEntry(current.engine)\n : undefined;\n const storedUsable =\n !!storedEntry && isStoredEngineUsable(current, storedEntry);\n\n const currentEntry =\n (storedUsable ? storedEntry : undefined) ??\n (process.env.AGENT_ENGINE\n ? getAgentEngineEntry(process.env.AGENT_ENGINE)\n : undefined) ??\n detectEngineFromEnv() ??\n undefined;\n const currentModel = storedUsable ? current?.model : undefined;\n const currentEngineName = currentEntry?.name ?? \"anthropic\";\n\n const result = {\n engines: engines.map((e) => ({\n name: e.name,\n label: e.label,\n description: e.description,\n defaultModel: e.defaultModel,\n supportedModels: e.supportedModels,\n capabilities: e.capabilities,\n requiredEnvVars: e.requiredEnvVars,\n installPackage: e.installPackage,\n })),\n current: {\n engine: currentEngineName,\n model:\n currentModel ??\n currentEntry?.defaultModel ??\n \"claude-haiku-4-5-20251001\",\n },\n };\n\n return JSON.stringify(result, null, 2);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"manage-agent-engine.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/manage-agent-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,mMAAmM;IACrM,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;gBAC7B,WAAW,EACT,uJAAuJ;aAC1J;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,sIAAsI;aACzI;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,2HAA2H;aAC9H;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAA4B;IACpD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,OAAO,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,mBAAmB,MAAM,qCAAqC;aACtE,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"manage-agent-engine.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/manage-agent-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,mMAAmM;IACrM,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;gBAC7B,WAAW,EACT,uJAAuJ;aAC1J;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,sIAAsI;aACzI;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,2HAA2H;aAC9H;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAA4B;IACpD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,OAAO,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,mBAAmB,MAAM,qCAAqC;aACtE,CAAC,CAAC;IACP,CAAC;AACH,CAAC","sourcesContent":["/**\n * manage-agent-engine — unified tool for listing, setting, and testing agent engines.\n *\n * Consolidates the former list-agent-engines, set-agent-engine, and test-agent-engine\n * tools into a single tool with an `action` discriminator.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport { run as runList } from \"./list-agent-engines.js\";\nimport { run as runSet } from \"./set-agent-engine.js\";\nimport { run as runTest } from \"./test-agent-engine.js\";\n\nexport const tool: ActionTool = {\n description:\n 'Manage AI agent engines: list available engines, set the active engine/model, or test an engine. Pass action=\"list\" to see options, action=\"set\" to change, action=\"test\" to verify connectivity.',\n parameters: {\n type: \"object\",\n properties: {\n action: {\n type: \"string\",\n enum: [\"list\", \"set\", \"test\"],\n description:\n '\"list\" — show available engines and current selection. \"set\" — change the active engine/model. \"test\" — send a trivial prompt to verify connectivity.',\n },\n engine: {\n type: \"string\",\n description:\n 'Engine name (e.g. \"anthropic\", \"ai-sdk:openai\", \"ai-sdk:google\"). Required for \"set\", optional for \"test\" (defaults to \"anthropic\").',\n },\n model: {\n type: \"string\",\n description:\n \"Model ID (e.g. 'claude-sonnet-4-6', 'gpt-4o'). Optional for \\\"set\\\" and \\\"test\\\"; defaults to the engine's default model.\",\n },\n },\n required: [\"action\"],\n },\n};\n\nexport async function run(args: Record<string, string>): Promise<string> {\n const { action } = args;\n\n switch (action) {\n case \"list\":\n return runList();\n case \"set\":\n return runSet(args);\n case \"test\":\n return runTest(args);\n default:\n return JSON.stringify({\n error: `Unknown action \"${action}\". Must be one of: list, set, test.`,\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"set-agent-engine.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/set-agent-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,oKAAoK;IACtK,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,kIAAkI;aACrI;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,2HAA2H;aAC9H;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAA4B;IACpD,sBAAsB,EAAE,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAE3C,IAAI,CAAC,UAAU;QAAE,OAAO,6BAA6B,CAAC;IAEtD,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,gBAAgB,EAAE;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,kBAAkB,UAAU,mCAAmC,SAAS,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC;IAElD,sEAAsE;IACtE,oEAAoE;IACpE,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAClC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,oBAAoB,UAAU,qEAAqE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC;IACvL,CAAC;IAED,MAAM,UAAU,CAAC,cAAc,EAAE;QAC/B,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,cAAc;QAC/B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,YAAY,aAAa,mCAAmC,KAAK,CAAC,KAAK,sEAAsE,CAAC;IAElJ,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,uBAAuB,KAAK,CAAC,KAAK,eAAe,aAAa,2CAA2C,UAAU,EAAE;KAC/H,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"set-agent-engine.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/set-agent-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,oKAAoK;IACtK,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,kIAAkI;aACrI;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,2HAA2H;aAC9H;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAA4B;IACpD,sBAAsB,EAAE,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAE3C,IAAI,CAAC,UAAU;QAAE,OAAO,6BAA6B,CAAC;IAEtD,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,gBAAgB,EAAE;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,kBAAkB,UAAU,mCAAmC,SAAS,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC;IAElD,sEAAsE;IACtE,oEAAoE;IACpE,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAClC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,oBAAoB,UAAU,qEAAqE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC;IACvL,CAAC;IAED,MAAM,UAAU,CAAC,cAAc,EAAE;QAC/B,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,cAAc;QAC/B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,YAAY,aAAa,mCAAmC,KAAK,CAAC,KAAK,sEAAsE,CAAC;IAElJ,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,uBAAuB,KAAK,CAAC,KAAK,eAAe,aAAa,2CAA2C,UAAU,EAAE;KAC/H,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * set-agent-engine — validates and writes agent engine selection to settings.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport {\n listAgentEngines,\n getAgentEngineEntry,\n registerBuiltinEngines,\n} from \"../../agent/engine/index.js\";\nimport { putSetting } from \"../../settings/index.js\";\n\nexport const tool: ActionTool = {\n description:\n 'Set the active AI agent engine and model. Changes take effect on the next conversation. Use manage-agent-engine with action=\"list\" first to see available options.',\n parameters: {\n type: \"object\",\n properties: {\n engine: {\n type: \"string\",\n description:\n 'Engine name (e.g. \"anthropic\", \"ai-sdk:openai\", \"ai-sdk:google\"). Use manage-agent-engine with action=\"list\" to see all options.',\n },\n model: {\n type: \"string\",\n description:\n \"Model ID to use with this engine (e.g. 'claude-sonnet-4-6', 'gpt-4o'). Defaults to the engine's default model if omitted.\",\n },\n },\n required: [\"engine\"],\n },\n};\n\nexport async function run(args: Record<string, string>): Promise<string> {\n registerBuiltinEngines();\n\n const { engine: engineName, model } = args;\n\n if (!engineName) return \"Error: --engine is required\";\n\n const entry = getAgentEngineEntry(engineName);\n if (!entry) {\n const available = listAgentEngines()\n .map((e) => e.name)\n .join(\", \");\n return `Error: Engine \"${engineName}\" not found. Available engines: ${available}`;\n }\n\n const resolvedModel = model ?? entry.defaultModel;\n\n // supportedModels is a suggestion list, not an allowlist — accept any\n // string (OpenRouter / Ollama / previews) and flag uncurated saves.\n const modelIsCurated =\n entry.supportedModels.length === 0 ||\n entry.supportedModels.includes(resolvedModel);\n\n const missingEnvVars = entry.requiredEnvVars.filter((v) => !process.env[v]);\n if (missingEnvVars.length > 0) {\n return `Warning: Engine \"${engineName}\" requires the following environment variables which are not set: ${missingEnvVars.join(\", \")}. The engine will fail at runtime without them.`;\n }\n\n await putSetting(\"agent-engine\", {\n engine: engineName,\n model: resolvedModel,\n });\n\n const customNote = modelIsCurated\n ? \"\"\n : ` (model \"${resolvedModel}\" isn't in the curated list for ${entry.label}; saved as a custom model — verify it's a real ID for this provider)`;\n\n return JSON.stringify({\n ok: true,\n engine: engineName,\n model: resolvedModel,\n message: `Agent engine set to ${entry.label} with model ${resolvedModel}. Takes effect on the next conversation.${customNote}`,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"test-agent-engine.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/test-agent-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-agent-engine.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/test-agent-engine.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * test-agent-engine — sends a trivial prompt to verify the engine is working.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport {\n getAgentEngineEntry,\n registerBuiltinEngines,\n} from \"../../agent/engine/index.js\";\n\nexport const tool: ActionTool = {\n description:\n \"Test an agent engine by sending a trivial prompt and measuring latency. Useful for verifying API keys and connectivity before switching engines.\",\n parameters: {\n type: \"object\",\n properties: {\n engine: {\n type: \"string\",\n description:\n 'Engine name to test (e.g. \"anthropic\", \"ai-sdk:openai\"). Defaults to \"anthropic\".',\n },\n model: {\n type: \"string\",\n description:\n \"Model to use for the test. Defaults to the engine's default model.\",\n },\n },\n required: [],\n },\n};\n\nexport async function run(args: Record<string, string>): Promise<string> {\n registerBuiltinEngines();\n\n const engineName = args.engine ?? \"anthropic\";\n const entry = getAgentEngineEntry(engineName);\n if (!entry) {\n return JSON.stringify({\n ok: false,\n error: `Engine \"${engineName}\" not found`,\n });\n }\n\n const model = args.model ?? entry.defaultModel;\n\n try {\n const engine = entry.create({\n apiKey:\n entry.requiredEnvVars.length > 0\n ? process.env[entry.requiredEnvVars[0]]\n : undefined,\n });\n\n const start = Date.now();\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 30_000);\n\n let responseText = \"\";\n let stopReason = \"\";\n\n let streamError: string | undefined;\n\n try {\n for await (const event of engine.stream({\n model,\n systemPrompt: \"You are a test agent. Reply concisely.\",\n messages: [\n {\n role: \"user\",\n content: [{ type: \"text\", text: \"Reply with exactly: OK\" }],\n },\n ],\n tools: [],\n abortSignal: controller.signal,\n })) {\n if (event.type === \"text-delta\") {\n responseText += event.text;\n } else if (event.type === \"stop\") {\n stopReason = event.reason;\n if (event.reason === \"error\") {\n streamError = (event as any).error ?? \"Unknown error\";\n }\n }\n }\n } finally {\n clearTimeout(timeout);\n }\n\n const latencyMs = Date.now() - start;\n\n if (streamError) {\n return JSON.stringify({\n ok: false,\n engine: engineName,\n model,\n error: streamError,\n capabilities: entry.capabilities,\n });\n }\n\n return JSON.stringify({\n ok: true,\n engine: engineName,\n model,\n latencyMs,\n response: responseText.slice(0, 100),\n stopReason,\n capabilities: entry.capabilities,\n });\n } catch (err: any) {\n return JSON.stringify({\n ok: false,\n engine: engineName,\n model,\n error: err?.message ?? String(err),\n capabilities: entry.capabilities,\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"call-agent.js","sourceRoot":"","sources":["../../src/scripts/call-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-agent.js","sourceRoot":"","sources":["../../src/scripts/call-agent.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ActionTool } from \"../agent/types.js\";\nimport type { ActionRunContext } from \"../agent/production-agent.js\";\nimport { findAgent, discoverAgents } from \"../server/agent-discovery.js\";\nimport { A2AClient, callAgent, signA2AToken } from \"../a2a/client.js\";\nimport {\n getRequestUserEmail,\n getRequestOrgId,\n isIntegrationCallerRequest,\n} from \"../server/request-context.js\";\nimport { getOrgDomain, getOrgA2ASecret } from \"../org/context.js\";\n\nexport const tool: ActionTool = {\n description:\n \"Call a DIFFERENT, separately-deployed agent app to ask a question or delegate a task. This is strictly for cross-app A2A communication — for example, asking the mail agent to send an email while you are the calendar agent. NEVER use this to call your own app or perform actions you can do with your own tools. Using call-agent on yourself will fail and waste time. \" +\n \"IMPORTANT — handling the response: \" +\n \"(a) If it contains a URL or ID, copy it VERBATIM into your reply. Do not 'correct' or pluralize the path (e.g. /deck/ → /decks/), normalize casing, or change the slug — any edit breaks the link. \" +\n '(b) If it does NOT contain a URL/ID and the user asked for one, say so explicitly (e.g. \"the agent created the deck but didn\\'t return a link — open the app directly to view it\"). NEVER invent a URL, slug, or path — guessing produces broken links that look real.',\n parameters: {\n type: \"object\",\n properties: {\n agent: {\n type: \"string\",\n description:\n \"Name or URL of a DIFFERENT deployed agent app (e.g. 'mail', 'calendar', 'analytics'). Must not be the current app's own name.\",\n },\n message: {\n type: \"string\",\n description: \"The message/question to send to the other agent\",\n },\n },\n required: [\"agent\", \"message\"],\n },\n};\n\nexport async function run(\n args: Record<string, string>,\n context?: ActionRunContext,\n selfAppId?: string,\n): Promise<string> {\n const { agent: agentIdOrName, message } = args;\n\n if (!agentIdOrName) return \"Error: --agent is required\";\n if (!message) return \"Error: --message is required\";\n\n // Prevent self-calls — the agent must use its own registered tools instead\n if (selfAppId && agentIdOrName.toLowerCase() === selfAppId.toLowerCase()) {\n return `Error: You cannot use call-agent to call yourself (${selfAppId}). Use your own registered actions/tools instead. call-agent is only for communicating with OTHER separately-deployed apps.`;\n }\n\n const agent = await findAgent(agentIdOrName, selfAppId);\n if (!agent) {\n const available = (await discoverAgents(selfAppId))\n .map((a) => a.name)\n .join(\", \");\n return `Error: Agent \"${agentIdOrName}\" not found. Available agents: ${available || \"(none)\"}`;\n }\n\n // Append a small cross-app hint to the outgoing message so the receiving\n // agent (which may be on an older deploy without the receiver-side hint\n // in handlers.ts) still emits fully-qualified URLs. This is belt-and-\n // suspenders with the receiver hint — but it works against any current\n // deployment, no redeploy required.\n const messageWithHint =\n `${message}\\n\\n` +\n `[Note: this request comes from another app via A2A. The caller cannot see your local UI, deck list, or navigation — only the literal text you put in your reply. ` +\n `If you create or reference a deck/document/dashboard, include its FULLY-QUALIFIED URL (e.g. ${agent.url}/deck/<id>) in your reply, not a relative path. ` +\n `Use only IDs returned by your own actions — never invent slugs or hosts.]`;\n\n try {\n // If we have a send context, use streaming so the UI shows progressive text\n if (context?.send) {\n const callerEmail = getRequestUserEmail();\n\n // Build metadata with identity\n const a2aMetadata: Record<string, unknown> = {};\n if (callerEmail) a2aMetadata.userEmail = callerEmail;\n\n // Include org domain for cross-app org resolution\n let callerOrgDomain: string | undefined;\n let callerOrgSecret: string | undefined;\n const orgId = getRequestOrgId();\n if (orgId) {\n try {\n const domain = await getOrgDomain(orgId);\n if (domain) {\n callerOrgDomain = domain;\n a2aMetadata.orgDomain = domain;\n }\n } catch {}\n try {\n const secret = await getOrgA2ASecret(orgId);\n if (secret) callerOrgSecret = secret;\n } catch {}\n }\n\n // Sign JWT with identity + org domain for the streaming client\n let apiKey: string | undefined;\n if (callerEmail && (callerOrgSecret || process.env.A2A_SECRET)) {\n try {\n apiKey = await signA2AToken(\n callerEmail,\n callerOrgDomain,\n callerOrgSecret,\n );\n } catch {}\n }\n\n const client = new A2AClient(agent.url, apiKey);\n\n if (process.env.NODE_ENV === \"production\" && callerEmail) {\n try {\n const { listOAuthAccountsByOwner } =\n await import(\"../oauth-tokens/store.js\");\n const accounts = await listOAuthAccountsByOwner(\n \"google\",\n callerEmail,\n );\n const tokens = accounts[0]?.tokens;\n if (tokens?.access_token) {\n a2aMetadata.googleToken = tokens.access_token;\n }\n } catch {}\n }\n\n let responseText = \"\";\n let lastSentLength = 0;\n\n context.send({\n type: \"agent_call\",\n agent: agent.name,\n status: \"start\",\n });\n\n const emitNewText = (newText: string) => {\n if (newText.length > lastSentLength) {\n context.send!({\n type: \"agent_call_text\",\n agent: agent.name,\n text: newText.slice(lastSentLength),\n });\n lastSentLength = newText.length;\n }\n responseText = newText;\n };\n\n // Skip the SSE streaming attempt and go straight to async + poll.\n // Why: on Netlify (Lambda), the receiving server has no streaming\n // response support, so message/stream returns a single JSON-RPC error\n // body in a 200 response that our SSE parser silently consumes — the\n // `for await` loop yields nothing AND keeps the connection open until\n // the function timeout, eating the 26s budget. By the time we get to\n // the sync fallback, Lambda is dead and the second fetch errors out\n // as \"fetch failed\". Async+poll has its own short fetches with their\n // own budgets, so it works reliably across hosts. The trade-off is\n // we lose progressive in-UI text streaming for cross-app A2A calls,\n // but the receiving agent's full response still surfaces via the\n // tool_result event below.\n try {\n // Apply the 18s polling cap ONLY when we're on a serverless host\n // (Netlify / Vercel / AWS Lambda / Cloudflare Workers) AND the\n // call is from an integration-platform path. On those hosts the\n // function timeout (~26s on Netlify Pro) plus the platform's\n // deliver-by deadline are the binding budget, so dispatch must\n // bail before the lambda dies. On long-running hosts (local Node\n // dev, self-hosted Node, Docker containers) the budget is\n // effectively infinite, so the cap would just truncate\n // slow-but-valid answers.\n //\n // Detection mirrors db/migrations.ts:297-301. On Cloudflare\n // Workers/Pages, `process.env` is shimmed and CF_PAGES isn't\n // reliably populated at runtime — the canonical signal is the\n // `__cf_env` global injected by the workerd runtime.\n const onServerlessHost =\n !!process.env.NETLIFY ||\n !!process.env.AWS_LAMBDA_FUNCTION_NAME ||\n !!process.env.VERCEL ||\n \"__cf_env\" in globalThis;\n const callTimeoutMs =\n onServerlessHost && isIntegrationCallerRequest() ? 18000 : undefined;\n responseText = await callAgent(agent.url, messageWithHint, {\n userEmail: callerEmail,\n orgDomain: callerOrgDomain,\n orgSecret: callerOrgSecret,\n ...(callTimeoutMs ? { timeoutMs: callTimeoutMs } : {}),\n });\n // Some agents reply with relative paths (e.g. slides emits\n // \"/deck/abc\"). Those resolve against the caller's host, not the\n // receiver's, so they're broken for the user. Expand any leading-slash\n // URL into a fully-qualified one rooted at the receiving agent's host.\n responseText = expandRelativeUrls(responseText, agent.url);\n // Mirror the response into the streaming UI so the user sees it.\n if (responseText) emitNewText(responseText);\n } catch (pollErr: any) {\n const reason = pollErr?.message ?? \"unknown error\";\n responseText = `The ${agent.name} agent is taking longer than expected and didn't reply in time. (${reason})`;\n }\n\n context.send({\n type: \"agent_call\",\n agent: agent.name,\n status: \"done\",\n });\n\n return responseText || \"(empty response)\";\n }\n\n // No context — use the async + poll call so we don't get cut off at the\n // serverless gateway's ~30s timeout. callAgent defaults to async:true.\n const email = getRequestUserEmail();\n let domain: string | undefined;\n let orgSecret: string | undefined;\n const currentOrgId = getRequestOrgId();\n if (currentOrgId) {\n try {\n domain = (await getOrgDomain(currentOrgId)) ?? undefined;\n } catch {}\n try {\n orgSecret = (await getOrgA2ASecret(currentOrgId)) ?? undefined;\n } catch {}\n }\n const response = await callAgent(agent.url, messageWithHint, {\n userEmail: email,\n orgDomain: domain,\n orgSecret,\n });\n return expandRelativeUrls(response, agent.url) || \"(empty response)\";\n } catch (err: any) {\n const msg = err?.message ?? String(err);\n // Friendlier message for the common timeout case so the calling agent can\n // decide whether to give up or retry.\n if (/timeout|did not complete|Inactivity|504/i.test(msg)) {\n return `The ${agent.name} agent is taking longer than expected. Please try again, ask a simpler question, or open the ${agent.name} app directly.`;\n }\n return `Error calling ${agent.name}: ${msg}`;\n }\n}\n\n// Expand bare leading-slash paths (e.g. \"/deck/abc\") into fully-qualified URLs\n// rooted at the receiving agent's host. The receiver doesn't always know it's\n// being called cross-app, so it may emit relative paths that resolve against\n// the caller's host (broken). Match a path that starts at a word boundary,\n// begins with `/`, and has at least one path segment after that. Skip if it\n// already looks like a fully-qualified URL.\nexport function expandRelativeUrls(text: string, agentUrl: string): string {\n if (!text || !agentUrl) return text;\n const base = agentUrl.replace(/\\/$/, \"\");\n // Path must start at boundary (start, whitespace, or punctuation that isn't\n // ':' — to avoid mangling `https://example.com/foo` or markdown link bodies).\n return text.replace(\n /(^|[\\s(\\[<\"'`])(\\/[a-z0-9_-][a-z0-9_/?&=%#.,:-]*)/gi,\n (_match, lead, path) => `${lead}${base}${path}`,\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/chat/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAGxB;IACF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/chat/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAGxB;IACF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E,CAAC","sourcesContent":["export const coreChatScripts: Record<\n string,\n (args: string[]) => Promise<void>\n> = {\n \"search-chats\": (args) =>\n import(\"./search-chats.js\").then((m) => m.default(args)),\n \"open-chat\": (args) => import(\"./open-chat.js\").then((m) => m.default(args)),\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../../src/scripts/chat/open-chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc;IACnD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;yDAUyC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CACF,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,gBAAgB,QAAQ,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,mDAAmD;IACnD,MAAM,aAAa,CAAC,cAAc,EAAE;QAClC,OAAO,EAAE,aAAa;QACtB,QAAQ;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"open-chat.js","sourceRoot":"","sources":["../../../src/scripts/chat/open-chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc;IACnD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;yDAUyC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CACF,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,gBAAgB,QAAQ,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,mDAAmD;IACnD,MAAM,aAAa,CAAC,cAAc,EAAE;QAClC,OAAO,EAAE,aAAa;QACtB,QAAQ;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC","sourcesContent":["/**\n * Core script: open-chat\n *\n * Open a chat thread in the UI as a new tab and focus it.\n * Writes a one-shot command to application-state that the UI picks up.\n *\n * Usage:\n * pnpm action open-chat --id <thread-id>\n */\n\nimport { parseArgs, fail } from \"../utils.js\";\nimport { getThread } from \"../../chat-threads/store.js\";\nimport { writeAppState } from \"../../application-state/script-helpers.js\";\n\nexport default async function openChat(args: string[]): Promise<void> {\n const parsed = parseArgs(args);\n\n if (parsed.help === \"true\") {\n console.log(`Usage: pnpm action open-chat --id <thread-id>\n\nOpens a chat thread in the UI as a new tab and focuses it.\nUse search-chats to find the thread ID first.\n\nOptions:\n --id <thread-id> The chat thread ID to open (required)\n --help Show this help message\n\nExamples:\n pnpm action open-chat --id thread-1712100000000-abc123`);\n return;\n }\n\n const threadId = parsed.id;\n if (!threadId) {\n fail(\n '--id is required. Use \"pnpm action search-chats\" to find thread IDs.',\n );\n }\n\n // Verify the thread exists\n const thread = await getThread(threadId);\n if (!thread) {\n fail(`Chat thread \"${threadId}\" not found.`);\n }\n\n // Write the open-chat command to application-state\n await writeAppState(\"chat-command\", {\n command: \"open-thread\",\n threadId,\n timestamp: Date.now(),\n });\n\n const title = thread.title || thread.preview || \"(untitled)\";\n console.log(`Opening chat: ${title}`);\n console.log(`Thread ID: ${threadId}`);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"search-chats.js","sourceRoot":"","sources":["../../../src/scripts/chat/search-chats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-chats.js","sourceRoot":"","sources":["../../../src/scripts/chat/search-chats.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Core script: search-chats\n *\n * Search or list past agent chat threads.\n *\n * Usage:\n * pnpm action search-chats [--query \"search term\"] [--limit N] [--format json]\n */\n\nimport { parseArgs, fail } from \"../utils.js\";\nimport { searchThreads, listThreads } from \"../../chat-threads/store.js\";\nimport { getRequestUserEmail } from \"../../server/request-context.js\";\nimport { DEV_MODE_USER_EMAIL } from \"../../server/auth.js\";\n\nfunction getOwnerEmail(): string {\n const email = getRequestUserEmail();\n if (!email || email === DEV_MODE_USER_EMAIL) return DEV_MODE_USER_EMAIL;\n return email;\n}\n\nfunction formatTime(ts: number): string {\n const d = new Date(ts);\n const now = new Date();\n const diffMs = now.getTime() - d.getTime();\n const diffDays = Math.floor(diffMs / 86400000);\n if (diffDays === 0)\n return d.toLocaleTimeString([], { hour: \"numeric\", minute: \"2-digit\" });\n if (diffDays === 1) return \"Yesterday\";\n if (diffDays < 7) return d.toLocaleDateString([], { weekday: \"short\" });\n return d.toLocaleDateString([], { month: \"short\", day: \"numeric\" });\n}\n\nexport default async function searchChats(args: string[]): Promise<void> {\n const parsed = parseArgs(args);\n\n if (parsed.help === \"true\") {\n console.log(`Usage: pnpm action search-chats [options]\n\nOptions:\n --query <text> Search chats by title, preview, or content\n --limit N Max results (default: 20)\n --format json Output as JSON\n --help Show this help message\n\nExamples:\n pnpm action search-chats --query \"email setup\"\n pnpm action search-chats --limit 5\n pnpm action search-chats --format json`);\n return;\n }\n\n const owner = getOwnerEmail();\n const limit = parsed.limit ? parseInt(parsed.limit, 10) : 20;\n if (isNaN(limit) || limit < 1) fail(\"--limit must be a positive integer\");\n\n const query = parsed.query;\n const threads = query\n ? await searchThreads(owner, query, limit)\n : await listThreads(owner, limit, 0);\n\n if (parsed.format === \"json\") {\n console.log(\n JSON.stringify(\n {\n query: query ?? null,\n threads: threads.map((t) => ({\n id: t.id,\n title: t.title,\n preview: t.preview,\n messageCount: t.messageCount,\n updatedAt: t.updatedAt,\n })),\n count: threads.length,\n },\n null,\n 2,\n ),\n );\n return;\n }\n\n if (threads.length === 0) {\n console.log(query ? `No chats matching \"${query}\"` : \"No chat history\");\n return;\n }\n\n console.log(\n query\n ? `Chats matching \"${query}\" (${threads.length}):`\n : `Recent chats (${threads.length}):`,\n );\n console.log();\n\n for (const t of threads) {\n const title = t.title || t.preview || \"(untitled)\";\n const msgs = t.messageCount === 1 ? \"1 msg\" : `${t.messageCount} msgs`;\n const time = formatTime(t.updatedAt);\n console.log(` ${title}`);\n console.log(` ID: ${t.id} | ${msgs} | ${time}`);\n if (t.preview && t.title && t.preview !== t.title) {\n console.log(\n ` ${t.preview.slice(0, 80)}${t.preview.length > 80 ? \"...\" : \"\"}`,\n );\n }\n console.log();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"core-scripts.js","sourceRoot":"","sources":["../../src/scripts/core-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAsD;IAC5E,GAAG,aAAa;IAChB,GAAG,mBAAmB;IACtB,GAAG,eAAe;IAClB,GAAG,eAAe;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"core-scripts.js","sourceRoot":"","sources":["../../src/scripts/core-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAsD;IAC5E,GAAG,aAAa;IAChB,GAAG,mBAAmB;IACtB,GAAG,eAAe;IAClB,GAAG,eAAe;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import { coreDbScripts } from \"./db/index.js\";\nimport { coreResourceScripts } from \"./resources/index.js\";\nimport { coreChatScripts } from \"./chat/index.js\";\nimport { coreDocsScripts } from \"./docs/index.js\";\n\n/**\n * Registry of all core scripts provided by @agent-native/core.\n * The script runner falls back to these when a local script isn't found.\n */\nexport const coreScripts: Record<string, (args: string[]) => Promise<void>> = {\n ...coreDbScripts,\n ...coreResourceScripts,\n ...coreChatScripts,\n ...coreDocsScripts,\n};\n\n/**\n * Returns the list of core script names for help output.\n */\nexport function getCoreScriptNames(): string[] {\n return Object.keys(coreScripts);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"check-scoping.js","sourceRoot":"","sources":["../../../src/scripts/db/check-scoping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-scoping.js","sourceRoot":"","sources":["../../../src/scripts/db/check-scoping.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Core script: db-check-scoping\n *\n * Validates that all template tables have the required ownership columns\n * (owner_email, org_id) for per-user and per-org data scoping.\n *\n * Tables without these columns are invisible to the scoping system and\n * will be accessible to all users in production mode.\n *\n * Usage:\n * pnpm action db-check-scoping [--db path] [--require-org] [--format json]\n */\n\nimport path from \"path\";\nimport { createClient } from \"@libsql/client\";\nimport { getDatabaseUrl, getDatabaseAuthToken } from \"../../db/client.js\";\nimport { parseArgs } from \"../utils.js\";\n\nfunction isPostgresUrl(url: string): boolean {\n return url.startsWith(\"postgres://\") || url.startsWith(\"postgresql://\");\n}\n\ninterface TableColumn {\n table: string;\n column: string;\n}\n\n// Core tables that have their own scoping — skip these in validation\nconst CORE_TABLES = new Set([\n \"settings\",\n \"application_state\",\n \"oauth_tokens\",\n \"sessions\",\n // framework internal tables\n \"resources\",\n \"chat_threads\",\n \"chat_messages\",\n \"chat_tasks\",\n \"recurring_jobs\",\n // drizzle/migration tables\n \"__drizzle_migrations\",\n \"_litestream_lock\",\n \"_litestream_seq\",\n]);\n\ninterface ValidationResult {\n table: string;\n hasOwnerEmail: boolean;\n hasOrgId: boolean;\n issues: string[];\n}\n\nfunction validate(\n allColumns: TableColumn[],\n requireOrg: boolean,\n): ValidationResult[] {\n const columnsByTable = new Map<string, string[]>();\n for (const { table, column } of allColumns) {\n const cols = columnsByTable.get(table) || [];\n cols.push(column);\n columnsByTable.set(table, cols);\n }\n\n const results: ValidationResult[] = [];\n\n for (const [table, columns] of columnsByTable) {\n // Skip core/framework tables\n if (CORE_TABLES.has(table)) continue;\n // Skip migration-related tables\n if (table.startsWith(\"_\")) continue;\n\n const hasOwnerEmail = columns.includes(\"owner_email\");\n const hasOrgId = columns.includes(\"org_id\");\n const issues: string[] = [];\n\n if (!hasOwnerEmail) {\n issues.push(\"missing owner_email column — not scoped per-user\");\n }\n if (requireOrg && !hasOrgId) {\n issues.push(\"missing org_id column — not scoped per-org\");\n }\n\n results.push({ table, hasOwnerEmail, hasOrgId, issues });\n }\n\n return results;\n}\n\nasync function discoverColumnsPostgres(pgSql: any): Promise<TableColumn[]> {\n const rows: any[] = await pgSql`\n SELECT table_name, column_name\n FROM information_schema.columns\n WHERE table_schema = 'public'\n ORDER BY table_name, ordinal_position\n `;\n return rows.map((r) => ({ table: r.table_name, column: r.column_name }));\n}\n\nasync function discoverColumnsSqlite(client: any): Promise<TableColumn[]> {\n const tablesResult = await client.execute(\n `SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'`,\n );\n const tables = tablesResult.rows.map((r: any) => (r.name ?? r[0]) as string);\n\n const result: TableColumn[] = [];\n for (const table of tables) {\n const escaped = table.replace(/\"/g, '\"\"');\n const colsResult = await client.execute(`PRAGMA table_info(\"${escaped}\")`);\n for (const row of colsResult.rows) {\n result.push({\n table,\n column: (row.name ?? row[1]) as string,\n });\n }\n }\n return result;\n}\n\nexport default async function dbCheckScoping(args: string[]): Promise<void> {\n const parsed = parseArgs(args);\n\n if (parsed.help === \"true\") {\n console.log(`Usage: pnpm action db-check-scoping [options]\n\nOptions:\n --db <path> Path to SQLite database (default: data/app.db)\n --require-org Also check for org_id column (for multi-org apps)\n --format json Output as JSON\n --help Show this help message`);\n return;\n }\n\n const requireOrg = parsed[\"require-org\"] === \"true\";\n const format = parsed.format;\n\n // Resolve database URL\n let url: string;\n if (parsed.db) {\n url = \"file:\" + path.resolve(parsed.db);\n } else if (getDatabaseUrl()) {\n url = getDatabaseUrl();\n } else {\n url = \"file:\" + path.resolve(process.cwd(), \"data\", \"app.db\");\n }\n\n let allColumns: TableColumn[];\n\n if (isPostgresUrl(url)) {\n const { default: pg } = await import(\"postgres\");\n const pgSql = pg(url);\n try {\n allColumns = await discoverColumnsPostgres(pgSql);\n } finally {\n await pgSql.end();\n }\n } else {\n const client = createClient({\n url,\n authToken: getDatabaseAuthToken(),\n });\n try {\n allColumns = await discoverColumnsSqlite(client);\n } finally {\n client.close();\n }\n }\n\n const results = validate(allColumns, requireOrg);\n\n if (format === \"json\") {\n console.log(JSON.stringify({ tables: results }, null, 2));\n return;\n }\n\n const withIssues = results.filter((r) => r.issues.length > 0);\n const ok = results.filter((r) => r.issues.length === 0);\n\n if (ok.length > 0) {\n console.log(\"Scoped tables:\");\n for (const r of ok) {\n const scopes = [\n r.hasOwnerEmail ? \"owner_email\" : null,\n r.hasOrgId ? \"org_id\" : null,\n ]\n .filter(Boolean)\n .join(\", \");\n console.log(` ✓ ${r.table} (${scopes})`);\n }\n console.log();\n }\n\n if (withIssues.length > 0) {\n console.log(\"Unscoped tables (WARNING):\");\n for (const r of withIssues) {\n for (const issue of r.issues) {\n console.log(` ✗ ${r.table} — ${issue}`);\n }\n }\n console.log();\n console.log(\n `${withIssues.length} table(s) lack scoping columns. ` +\n `In production, agents can see ALL rows in these tables regardless of user/org.`,\n );\n process.exitCode = 1;\n } else {\n console.log(\"All template tables have proper scoping columns.\");\n }\n}\n"]}