@agent-native/core 0.113.0 → 0.114.0

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 (1508) hide show
  1. package/agent-native.eject.json +164 -0
  2. package/corpus/README.md +3 -3
  3. package/corpus/core/CHANGELOG.md +11 -0
  4. package/corpus/core/README.md +61 -174
  5. package/corpus/core/agent-native.eject.json +164 -0
  6. package/corpus/core/docs/content/agent-native-toolkit.mdx +38 -0
  7. package/corpus/core/docs/content/package-lifecycle.mdx +54 -4
  8. package/corpus/core/package.json +15 -2
  9. package/corpus/core/src/cli/eject.ts +1594 -0
  10. package/corpus/core/src/cli/index.ts +16 -0
  11. package/corpus/core/src/client/index.ts +4 -0
  12. package/corpus/core/src/client/resources/McpConnectionSuggestion.tsx +8 -2
  13. package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +7 -2
  14. package/corpus/core/src/client/resources/ResourcesPanel.tsx +17 -3
  15. package/corpus/core/src/client/resources/index.ts +19 -0
  16. package/corpus/core/src/client/resources/mcp-integration-catalog.ts +9 -1
  17. package/corpus/core/src/client/resources/runtime.ts +1 -0
  18. package/corpus/core/src/client/setup-connections/catalog.ts +6 -0
  19. package/corpus/core/src/client/setup-connections/index.ts +1 -0
  20. package/corpus/core/src/client/setup-connections/runtime.ts +1 -0
  21. package/corpus/core/src/connections/catalog.ts +41 -24
  22. package/corpus/core/src/connections/index.ts +1 -0
  23. package/corpus/core/src/connections/runtime.ts +1 -0
  24. package/corpus/core/src/eject/provider-api-definitions.ts +193 -0
  25. package/corpus/core/src/eject/remote-mcp-presets.ts +137 -0
  26. package/corpus/core/src/eject/setup-readiness-ui.tsx +29 -0
  27. package/corpus/core/src/eject/workspace-connections.ts +92 -0
  28. package/corpus/core/src/index.ts +1 -0
  29. package/corpus/core/src/integrations/adapter-overrides.ts +12 -0
  30. package/corpus/core/src/integrations/eject/messaging-adapters.ts +85 -0
  31. package/corpus/core/src/integrations/index.ts +5 -1
  32. package/corpus/core/src/integrations/plugin.ts +34 -12
  33. package/corpus/core/src/integrations/runtime.ts +1 -0
  34. package/corpus/core/src/integrations/types.ts +3 -1
  35. package/corpus/core/src/package-lifecycle/eject-manifest.ts +345 -0
  36. package/corpus/core/src/package-lifecycle/index.ts +1 -0
  37. package/corpus/core/src/provider-api/index.ts +46 -12
  38. package/corpus/core/src/provider-api/runtime.ts +1 -0
  39. package/corpus/core/src/setup-connections/index.ts +1 -0
  40. package/corpus/core/src/shared/merge-by-id.ts +14 -0
  41. package/corpus/core/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +15 -13
  42. package/corpus/core/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  43. package/corpus/core/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +9 -6
  44. package/corpus/core/src/templates/default/AGENTS.md +6 -5
  45. package/corpus/core/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +15 -13
  46. package/corpus/core/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  47. package/corpus/core/src/templates/headless/AGENTS.md +5 -4
  48. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +15 -13
  49. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +3 -2
  50. package/corpus/core/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  51. package/corpus/core/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +9 -6
  52. package/corpus/core/src/templates/workspace-core/AGENTS.md +4 -4
  53. package/corpus/core/src/templates/workspace-root/AGENTS.md +4 -4
  54. package/corpus/core/src/vite/client.ts +25 -2
  55. package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  56. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +9 -6
  57. package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  58. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +9 -6
  59. package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  60. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +9 -6
  61. package/corpus/templates/brain/actions/remediate-legacy-capture-audiences.ts +167 -0
  62. package/corpus/templates/brain/app/lib/brain-chat-readiness.ts +6 -0
  63. package/corpus/templates/brain/app/routes/_index.tsx +8 -0
  64. package/corpus/templates/brain/app/routes.ts +1 -0
  65. package/corpus/templates/brain/changelog/2026-07-19-ask-starts-immediately-when-builder-s-managed-ai-connection-.md +6 -0
  66. package/corpus/templates/brain/changelog/2026-07-19-slack-and-granola-backfills-now-process-captures-concurrentl.md +6 -0
  67. package/corpus/templates/brain/changelog/2026-07-19-source-review-settings-now-control-knowledge-approval.md +6 -0
  68. package/corpus/templates/brain/changelog/2026-07-19-the-manage-agent-page-now-opens-correctly-from-brain-navigat.md +6 -0
  69. package/corpus/templates/brain/server/db/schema.ts +3 -0
  70. package/corpus/templates/brain/server/lib/brain.ts +41 -2
  71. package/corpus/templates/brain/server/lib/connectors.ts +379 -113
  72. package/corpus/templates/brain/server/lib/meeting-audience.ts +38 -0
  73. package/corpus/templates/brain/server/plugins/db.ts +10 -0
  74. package/corpus/templates/brain/server/routes/api/_agent-native/brain/ingest.post.ts +6 -4
  75. package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  76. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +9 -6
  77. package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +15 -13
  78. package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  79. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +9 -6
  80. package/corpus/templates/chat/AGENTS.md +3 -2
  81. package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  82. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +9 -6
  83. package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  84. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +9 -6
  85. package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  86. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +9 -6
  87. package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  88. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +9 -6
  89. package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  90. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +9 -6
  91. package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  92. package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  93. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +9 -6
  94. package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  95. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +9 -6
  96. package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  97. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +9 -6
  98. package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +15 -13
  99. package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  100. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +9 -6
  101. package/corpus/toolkit/CHANGELOG.md +6 -0
  102. package/corpus/toolkit/agent-native.eject.json +411 -0
  103. package/corpus/toolkit/package.json +5 -2
  104. package/dist/cli/eject.d.ts +21 -0
  105. package/dist/cli/eject.d.ts.map +1 -0
  106. package/dist/cli/eject.js +1145 -0
  107. package/dist/cli/eject.js.map +1 -0
  108. package/dist/cli/index.js +15 -0
  109. package/dist/cli/index.js.map +1 -1
  110. package/dist/client/index.d.ts +1 -1
  111. package/dist/client/index.d.ts.map +1 -1
  112. package/dist/client/index.js +1 -1
  113. package/dist/client/index.js.map +1 -1
  114. package/dist/client/resources/McpConnectionSuggestion.d.ts +4 -3
  115. package/dist/client/resources/McpConnectionSuggestion.d.ts.map +1 -1
  116. package/dist/client/resources/McpConnectionSuggestion.js +3 -3
  117. package/dist/client/resources/McpConnectionSuggestion.js.map +1 -1
  118. package/dist/client/resources/McpIntegrationDialog.d.ts +4 -3
  119. package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
  120. package/dist/client/resources/McpIntegrationDialog.js +2 -2
  121. package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
  122. package/dist/client/resources/ResourcesPanel.d.ts +4 -1
  123. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  124. package/dist/client/resources/ResourcesPanel.js +9 -7
  125. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  126. package/dist/client/resources/index.d.ts +3 -0
  127. package/dist/client/resources/index.d.ts.map +1 -1
  128. package/dist/client/resources/index.js +3 -0
  129. package/dist/client/resources/index.js.map +1 -1
  130. package/dist/client/resources/mcp-integration-catalog.d.ts +2 -1
  131. package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
  132. package/dist/client/resources/mcp-integration-catalog.js +6 -2
  133. package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
  134. package/dist/client/resources/runtime.d.ts +2 -0
  135. package/dist/client/resources/runtime.d.ts.map +1 -0
  136. package/dist/client/resources/runtime.js +2 -0
  137. package/dist/client/resources/runtime.js.map +1 -0
  138. package/dist/client/setup-connections/catalog.d.ts +2 -0
  139. package/dist/client/setup-connections/catalog.d.ts.map +1 -0
  140. package/dist/client/setup-connections/catalog.js +7 -0
  141. package/dist/client/setup-connections/catalog.js.map +1 -0
  142. package/dist/client/setup-connections/index.d.ts +1 -0
  143. package/dist/client/setup-connections/index.d.ts.map +1 -1
  144. package/dist/client/setup-connections/index.js +1 -0
  145. package/dist/client/setup-connections/index.js.map +1 -1
  146. package/dist/client/setup-connections/runtime.d.ts +2 -0
  147. package/dist/client/setup-connections/runtime.d.ts.map +1 -0
  148. package/dist/client/setup-connections/runtime.js +2 -0
  149. package/dist/client/setup-connections/runtime.js.map +1 -0
  150. package/dist/collab/awareness.d.ts +2 -2
  151. package/dist/collab/awareness.d.ts.map +1 -1
  152. package/dist/collab/routes.d.ts +1 -1
  153. package/dist/connections/catalog.d.ts +5 -3
  154. package/dist/connections/catalog.d.ts.map +1 -1
  155. package/dist/connections/catalog.js +16 -8
  156. package/dist/connections/catalog.js.map +1 -1
  157. package/dist/connections/index.d.ts +1 -1
  158. package/dist/connections/index.d.ts.map +1 -1
  159. package/dist/connections/index.js +1 -1
  160. package/dist/connections/index.js.map +1 -1
  161. package/dist/connections/runtime.d.ts +2 -0
  162. package/dist/connections/runtime.d.ts.map +1 -0
  163. package/dist/connections/runtime.js +2 -0
  164. package/dist/connections/runtime.js.map +1 -0
  165. package/dist/eject/provider-api-definitions.d.ts +34 -0
  166. package/dist/eject/provider-api-definitions.d.ts.map +1 -0
  167. package/dist/eject/provider-api-definitions.js +88 -0
  168. package/dist/eject/provider-api-definitions.js.map +1 -0
  169. package/dist/eject/remote-mcp-presets.d.ts +17 -0
  170. package/dist/eject/remote-mcp-presets.d.ts.map +1 -0
  171. package/dist/eject/remote-mcp-presets.js +81 -0
  172. package/dist/eject/remote-mcp-presets.js.map +1 -0
  173. package/dist/eject/setup-readiness-ui.d.ts +7 -0
  174. package/dist/eject/setup-readiness-ui.d.ts.map +1 -0
  175. package/dist/eject/setup-readiness-ui.js +13 -0
  176. package/dist/eject/setup-readiness-ui.js.map +1 -0
  177. package/dist/eject/workspace-connections.d.ts +11 -0
  178. package/dist/eject/workspace-connections.d.ts.map +1 -0
  179. package/dist/eject/workspace-connections.js +47 -0
  180. package/dist/eject/workspace-connections.js.map +1 -0
  181. package/dist/index.d.ts +1 -1
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +1 -1
  184. package/dist/index.js.map +1 -1
  185. package/dist/integrations/adapter-overrides.d.ts +3 -0
  186. package/dist/integrations/adapter-overrides.d.ts.map +1 -0
  187. package/dist/integrations/adapter-overrides.js +7 -0
  188. package/dist/integrations/adapter-overrides.js.map +1 -0
  189. package/dist/integrations/eject/messaging-adapters.d.ts +12 -0
  190. package/dist/integrations/eject/messaging-adapters.d.ts.map +1 -0
  191. package/dist/integrations/eject/messaging-adapters.js +49 -0
  192. package/dist/integrations/eject/messaging-adapters.js.map +1 -0
  193. package/dist/integrations/index.d.ts +3 -2
  194. package/dist/integrations/index.d.ts.map +1 -1
  195. package/dist/integrations/index.js +2 -1
  196. package/dist/integrations/index.js.map +1 -1
  197. package/dist/integrations/plugin.d.ts +32 -1
  198. package/dist/integrations/plugin.d.ts.map +1 -1
  199. package/dist/integrations/plugin.js +19 -12
  200. package/dist/integrations/plugin.js.map +1 -1
  201. package/dist/integrations/runtime.d.ts +2 -0
  202. package/dist/integrations/runtime.d.ts.map +1 -0
  203. package/dist/integrations/runtime.js +2 -0
  204. package/dist/integrations/runtime.js.map +1 -0
  205. package/dist/integrations/types.d.ts +3 -1
  206. package/dist/integrations/types.d.ts.map +1 -1
  207. package/dist/integrations/types.js.map +1 -1
  208. package/dist/notifications/routes.d.ts +3 -3
  209. package/dist/package-lifecycle/eject-manifest.d.ts +43 -0
  210. package/dist/package-lifecycle/eject-manifest.d.ts.map +1 -0
  211. package/dist/package-lifecycle/eject-manifest.js +219 -0
  212. package/dist/package-lifecycle/eject-manifest.js.map +1 -0
  213. package/dist/package-lifecycle/index.d.ts +1 -0
  214. package/dist/package-lifecycle/index.d.ts.map +1 -1
  215. package/dist/package-lifecycle/index.js +1 -0
  216. package/dist/package-lifecycle/index.js.map +1 -1
  217. package/dist/progress/routes.d.ts +1 -1
  218. package/dist/provider-api/actions/custom-provider-registration.d.ts +4 -4
  219. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  220. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  221. package/dist/provider-api/index.d.ts +6 -2
  222. package/dist/provider-api/index.d.ts.map +1 -1
  223. package/dist/provider-api/index.js +25 -12
  224. package/dist/provider-api/index.js.map +1 -1
  225. package/dist/provider-api/runtime.d.ts +2 -0
  226. package/dist/provider-api/runtime.d.ts.map +1 -0
  227. package/dist/provider-api/runtime.js +2 -0
  228. package/dist/provider-api/runtime.js.map +1 -0
  229. package/dist/secrets/routes.d.ts +9 -9
  230. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  231. package/dist/server/transcribe-voice.d.ts +1 -1
  232. package/dist/setup-connections/index.d.ts +1 -1
  233. package/dist/setup-connections/index.d.ts.map +1 -1
  234. package/dist/setup-connections/index.js +1 -1
  235. package/dist/setup-connections/index.js.map +1 -1
  236. package/dist/shared/merge-by-id.d.ts +5 -0
  237. package/dist/shared/merge-by-id.d.ts.map +1 -0
  238. package/dist/shared/merge-by-id.js +7 -0
  239. package/dist/shared/merge-by-id.js.map +1 -0
  240. package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +15 -13
  241. package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  242. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +9 -6
  243. package/dist/templates/chat/AGENTS.md +3 -2
  244. package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +15 -13
  245. package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  246. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +9 -6
  247. package/dist/templates/default/AGENTS.md +6 -5
  248. package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +15 -13
  249. package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  250. package/dist/templates/headless/AGENTS.md +5 -4
  251. package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +15 -13
  252. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +3 -2
  253. package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  254. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +9 -6
  255. package/dist/templates/workspace-core/AGENTS.md +4 -4
  256. package/dist/templates/workspace-root/AGENTS.md +4 -4
  257. package/dist/vite/client.d.ts.map +1 -1
  258. package/dist/vite/client.js +22 -2
  259. package/dist/vite/client.js.map +1 -1
  260. package/docs/content/agent-native-toolkit.mdx +38 -0
  261. package/docs/content/package-lifecycle.mdx +54 -4
  262. package/package.json +15 -2
  263. package/src/a2a/agent-card.ts +83 -0
  264. package/src/a2a/artifact-response.ts +1648 -0
  265. package/src/a2a/auth-policy.ts +66 -0
  266. package/src/a2a/caller-auth.ts +102 -0
  267. package/src/a2a/client.ts +876 -0
  268. package/src/a2a/correlation.ts +50 -0
  269. package/src/a2a/handlers.ts +1285 -0
  270. package/src/a2a/index.ts +50 -0
  271. package/src/a2a/invoke.ts +348 -0
  272. package/src/a2a/response-text.ts +53 -0
  273. package/src/a2a/server.ts +586 -0
  274. package/src/a2a/task-store.ts +917 -0
  275. package/src/a2a/types.ts +221 -0
  276. package/src/a2a-claims.ts +52 -0
  277. package/src/action-change-marker.ts +74 -0
  278. package/src/action-ui.ts +38 -0
  279. package/src/action.ts +1406 -0
  280. package/src/adapters/cli/index.ts +6 -0
  281. package/src/adapters/cli/registry.ts +73 -0
  282. package/src/adapters/cli/shell-adapter.ts +92 -0
  283. package/src/adapters/cli/types.ts +27 -0
  284. package/src/agent/action-continuation-guidance.ts +38 -0
  285. package/src/agent/app-model-defaults.ts +201 -0
  286. package/src/agent/context-xray/actions/context-evict.ts +56 -0
  287. package/src/agent/context-xray/actions/context-manifest-get.ts +75 -0
  288. package/src/agent/context-xray/actions/context-pin.ts +56 -0
  289. package/src/agent/context-xray/actions/context-preview-get.ts +134 -0
  290. package/src/agent/context-xray/actions/context-report.ts +75 -0
  291. package/src/agent/context-xray/actions/context-restore.ts +51 -0
  292. package/src/agent/context-xray/actions/errors.ts +40 -0
  293. package/src/agent/context-xray/apply-directives.ts +137 -0
  294. package/src/agent/context-xray/directives-store.ts +178 -0
  295. package/src/agent/context-xray/identity.ts +37 -0
  296. package/src/agent/context-xray/manifest.ts +284 -0
  297. package/src/agent/context-xray/migrations.ts +32 -0
  298. package/src/agent/context-xray/plugin.ts +23 -0
  299. package/src/agent/context-xray/schema.ts +17 -0
  300. package/src/agent/context-xray/segments.ts +194 -0
  301. package/src/agent/context-xray/tokenize.ts +93 -0
  302. package/src/agent/default-model.ts +5 -0
  303. package/src/agent/durable-background.ts +547 -0
  304. package/src/agent/engine/ai-sdk-engine.ts +565 -0
  305. package/src/agent/engine/anthropic-engine.ts +320 -0
  306. package/src/agent/engine/builder-engine.ts +1110 -0
  307. package/src/agent/engine/builder-gateway-headers.ts +44 -0
  308. package/src/agent/engine/builtin.ts +122 -0
  309. package/src/agent/engine/context-directives-transform.ts +73 -0
  310. package/src/agent/engine/continuation-dispatch-retry.ts +168 -0
  311. package/src/agent/engine/credential-errors.ts +69 -0
  312. package/src/agent/engine/index.ts +54 -0
  313. package/src/agent/engine/openai-compatible-endpoint.ts +25 -0
  314. package/src/agent/engine/output-tokens.ts +181 -0
  315. package/src/agent/engine/provider-env-vars.ts +69 -0
  316. package/src/agent/engine/registry.ts +853 -0
  317. package/src/agent/engine/tool-call-journal-seed.ts +85 -0
  318. package/src/agent/engine/translate-ai-sdk.ts +407 -0
  319. package/src/agent/engine/translate-anthropic.ts +611 -0
  320. package/src/agent/engine/types.ts +310 -0
  321. package/src/agent/harness/acp-adapter.ts +893 -0
  322. package/src/agent/harness/acp-builtin.ts +70 -0
  323. package/src/agent/harness/ai-sdk-adapter.ts +509 -0
  324. package/src/agent/harness/background.ts +365 -0
  325. package/src/agent/harness/builtin.ts +50 -0
  326. package/src/agent/harness/index.ts +86 -0
  327. package/src/agent/harness/lifecycle.ts +498 -0
  328. package/src/agent/harness/registry.ts +97 -0
  329. package/src/agent/harness/runner.ts +182 -0
  330. package/src/agent/harness/store.ts +466 -0
  331. package/src/agent/harness/translate.ts +130 -0
  332. package/src/agent/harness/types.ts +129 -0
  333. package/src/agent/index.ts +32 -0
  334. package/src/agent/loop-settings.ts +186 -0
  335. package/src/agent/model-config.ts +363 -0
  336. package/src/agent/observational-memory/compactor.ts +78 -0
  337. package/src/agent/observational-memory/config.ts +78 -0
  338. package/src/agent/observational-memory/index.ts +79 -0
  339. package/src/agent/observational-memory/internal-run.ts +89 -0
  340. package/src/agent/observational-memory/message-text.ts +49 -0
  341. package/src/agent/observational-memory/migrations.ts +44 -0
  342. package/src/agent/observational-memory/observer.ts +128 -0
  343. package/src/agent/observational-memory/plugin.ts +35 -0
  344. package/src/agent/observational-memory/prompts.ts +53 -0
  345. package/src/agent/observational-memory/read.ts +131 -0
  346. package/src/agent/observational-memory/reflector.ts +119 -0
  347. package/src/agent/observational-memory/schema.ts +48 -0
  348. package/src/agent/observational-memory/store.ts +275 -0
  349. package/src/agent/observational-memory/types.ts +65 -0
  350. package/src/agent/processors.ts +209 -0
  351. package/src/agent/production-agent.ts +8254 -0
  352. package/src/agent/run-loop-with-resume.ts +394 -0
  353. package/src/agent/run-manager.ts +1825 -0
  354. package/src/agent/run-ownership.ts +75 -0
  355. package/src/agent/run-store.ts +2601 -0
  356. package/src/agent/runtime-context.ts +169 -0
  357. package/src/agent/thread-data-builder.ts +1584 -0
  358. package/src/agent/tool-call-journal.ts +368 -0
  359. package/src/agent/tool-error-redaction.ts +52 -0
  360. package/src/agent/tool-result-images.ts +178 -0
  361. package/src/agent/tool-search.ts +376 -0
  362. package/src/agent/types.ts +372 -0
  363. package/src/agent-native/index.ts +198 -0
  364. package/src/agent-web/config.ts +253 -0
  365. package/src/agent-web/generator.ts +382 -0
  366. package/src/agent-web/index.ts +36 -0
  367. package/src/appearance/actions/change-appearance.ts +35 -0
  368. package/src/application-state/emitter.ts +81 -0
  369. package/src/application-state/handlers.ts +121 -0
  370. package/src/application-state/index.ts +44 -0
  371. package/src/application-state/script-helpers.ts +155 -0
  372. package/src/application-state/store.ts +274 -0
  373. package/src/assets/branding/agent-native.icon/Assets/background.svg +3 -0
  374. package/src/assets/branding/agent-native.icon/Assets/foreground.svg +12 -0
  375. package/src/assets/branding/agent-native.icon/icon.json +49 -0
  376. package/src/assets/branding/favicon.png +0 -0
  377. package/src/assets/branding/favicon.svg +1 -0
  378. package/src/assets/branding/icon-on-dark.svg +10 -0
  379. package/src/assets/branding/icon-on-light.svg +10 -0
  380. package/src/assets/branding/mac-app-icon.svg +1 -0
  381. package/src/assets/branding/slack-bot/agent-native-1024.png +0 -0
  382. package/src/assets/branding/slack-bot/agent-native-512.png +0 -0
  383. package/src/assets/branding/tray-icon.svg +6 -0
  384. package/src/assets/branding/wordmark-on-dark.svg +21 -0
  385. package/src/assets/branding/wordmark-on-light.svg +21 -0
  386. package/src/assets/fonts/LICENSE_LIBERATION +96 -0
  387. package/src/assets/fonts/LICENSE_NOTO_NASKH_ARABIC +93 -0
  388. package/src/assets/fonts/LiberationSans-Bold.ttf +0 -0
  389. package/src/assets/fonts/LiberationSans-Regular.ttf +0 -0
  390. package/src/assets/fonts/NotoNaskhArabic-Variable.ttf +0 -0
  391. package/src/audit/actions/export-audit-events.ts +162 -0
  392. package/src/audit/actions/get-audit-event.ts +24 -0
  393. package/src/audit/actions/list-audit-events.ts +66 -0
  394. package/src/audit/cleanup-job.ts +100 -0
  395. package/src/audit/config.ts +90 -0
  396. package/src/audit/index.ts +43 -0
  397. package/src/audit/record.ts +180 -0
  398. package/src/audit/redact.ts +109 -0
  399. package/src/audit/store.ts +346 -0
  400. package/src/audit/types.ts +141 -0
  401. package/src/automation/index.ts +802 -0
  402. package/src/brand-kit/brand-signals.ts +124 -0
  403. package/src/brand-kit/fig/index.ts +64 -0
  404. package/src/brand-kit/index.ts +72 -0
  405. package/src/brand-kit/types.ts +113 -0
  406. package/src/browser-sessions/actions.ts +302 -0
  407. package/src/browser-sessions/routes.ts +234 -0
  408. package/src/browser-sessions/store.ts +679 -0
  409. package/src/browser-sessions/types.ts +84 -0
  410. package/src/changelog/parse.ts +328 -0
  411. package/src/chat-threads/emitter.ts +22 -0
  412. package/src/chat-threads/schema.ts +43 -0
  413. package/src/chat-threads/store.ts +1311 -0
  414. package/src/checkpoints/index.ts +15 -0
  415. package/src/checkpoints/service.ts +142 -0
  416. package/src/checkpoints/store.ts +153 -0
  417. package/src/cli/add.ts +425 -0
  418. package/src/cli/agent.ts +424 -0
  419. package/src/cli/agents.ts +122 -0
  420. package/src/cli/app-skill.ts +1455 -0
  421. package/src/cli/atomic-json-file.ts +324 -0
  422. package/src/cli/audit-agent-web.ts +324 -0
  423. package/src/cli/changelog.ts +199 -0
  424. package/src/cli/claude-code-participant.ts +515 -0
  425. package/src/cli/code-agent-commands.ts +270 -0
  426. package/src/cli/code-agent-connector.ts +1109 -0
  427. package/src/cli/code-agent-executor.ts +1970 -0
  428. package/src/cli/code-agent-output-smoother.ts +140 -0
  429. package/src/cli/code-agent-runs.concurrent-worker.ts +33 -0
  430. package/src/cli/code-agent-runs.ts +548 -0
  431. package/src/cli/code.ts +1805 -0
  432. package/src/cli/codex-cli-participant.ts +496 -0
  433. package/src/cli/connect.ts +2714 -0
  434. package/src/cli/content-local.ts +442 -0
  435. package/src/cli/context-xray-local.ts +2193 -0
  436. package/src/cli/create-workspace.ts +30 -0
  437. package/src/cli/create.ts +2247 -0
  438. package/src/cli/deploy-build.ts +50 -0
  439. package/src/cli/design-connect.ts +3187 -0
  440. package/src/cli/doctor.ts +472 -0
  441. package/src/cli/eject.ts +1594 -0
  442. package/src/cli/eval.ts +134 -0
  443. package/src/cli/gateway-helpers.ts +70 -0
  444. package/src/cli/index.ts +1217 -0
  445. package/src/cli/info.ts +105 -0
  446. package/src/cli/invoke.ts +288 -0
  447. package/src/cli/mcp-config-writers.ts +857 -0
  448. package/src/cli/mcp.ts +594 -0
  449. package/src/cli/migrate.ts +1813 -0
  450. package/src/cli/migration-codemod.ts +646 -0
  451. package/src/cli/multi-frontier-runs.ts +1952 -0
  452. package/src/cli/package-lifecycle.ts +823 -0
  453. package/src/cli/plan-blocks.ts +143 -0
  454. package/src/cli/plan-local.ts +3189 -0
  455. package/src/cli/plan-publish-store.ts +138 -0
  456. package/src/cli/pr-visual-recap-workflow.ts +2 -0
  457. package/src/cli/recap.ts +5 -0
  458. package/src/cli/setup-agents.ts +120 -0
  459. package/src/cli/skills-content/assets-skill.ts +83 -0
  460. package/src/cli/skills-content/canvas.ts +153 -0
  461. package/src/cli/skills-content/connection.ts +52 -0
  462. package/src/cli/skills-content/content-skill.ts +120 -0
  463. package/src/cli/skills-content/design-exploration-skill.ts +118 -0
  464. package/src/cli/skills-content/design-visual-edit-skill.ts +228 -0
  465. package/src/cli/skills-content/document-quality.ts +196 -0
  466. package/src/cli/skills-content/exemplar.ts +69 -0
  467. package/src/cli/skills-content/help.ts +77 -0
  468. package/src/cli/skills-content/index.ts +22 -0
  469. package/src/cli/skills-content/local-files.ts +100 -0
  470. package/src/cli/skills-content/plan-setup-auth.ts +80 -0
  471. package/src/cli/skills-content/visual-plan-skill.ts +493 -0
  472. package/src/cli/skills-content/visual-recap-skill.ts +553 -0
  473. package/src/cli/skills-content/visualize-repo-skill.ts +93 -0
  474. package/src/cli/skills-content/wireframe.ts +349 -0
  475. package/src/cli/skills.ts +4340 -0
  476. package/src/cli/sync-builder-starter-manifest.ts +631 -0
  477. package/src/cli/telemetry.ts +136 -0
  478. package/src/cli/templates-meta.ts +269 -0
  479. package/src/cli/upgrade.ts +956 -0
  480. package/src/cli/visualize-repo.ts +715 -0
  481. package/src/cli/workspace-dev.ts +1486 -0
  482. package/src/cli/workspacify.ts +258 -0
  483. package/src/client/AgentAskPopover.tsx +89 -0
  484. package/src/client/AgentChatHome.tsx +66 -0
  485. package/src/client/AgentNative.tsx +161 -0
  486. package/src/client/AgentNativeEmbedded.tsx +288 -0
  487. package/src/client/AgentNativeFrame.tsx +151 -0
  488. package/src/client/AgentPanel.tsx +3437 -0
  489. package/src/client/AgentTaskCard.tsx +273 -0
  490. package/src/client/AppearancePicker.tsx +79 -0
  491. package/src/client/AssistantChat.tsx +5793 -0
  492. package/src/client/ClientOnly.tsx +22 -0
  493. package/src/client/CommandMenu.tsx +726 -0
  494. package/src/client/ConnectBuilderCard.tsx +390 -0
  495. package/src/client/DefaultSpinner.tsx +47 -0
  496. package/src/client/ErrorBoundary.tsx +359 -0
  497. package/src/client/ErrorReportActions.tsx +69 -0
  498. package/src/client/FeedbackButton.tsx +553 -0
  499. package/src/client/HighlightedCodeBlock.tsx +173 -0
  500. package/src/client/IframeEmbed.tsx +151 -0
  501. package/src/client/KeepTabOpenNotice.tsx +181 -0
  502. package/src/client/MultiTabAssistantChat.tsx +2576 -0
  503. package/src/client/NewWorkspaceAppFlow.tsx +525 -0
  504. package/src/client/PoweredByBadge.tsx +284 -0
  505. package/src/client/RunStuckBanner.tsx +431 -0
  506. package/src/client/StarfieldBackground.tsx +466 -0
  507. package/src/client/Turnstile.tsx +125 -0
  508. package/src/client/active-run-state.ts +139 -0
  509. package/src/client/agent-chat/index.ts +279 -0
  510. package/src/client/agent-chat-adapter.ts +3692 -0
  511. package/src/client/agent-chat.ts +1233 -0
  512. package/src/client/agent-engine-key.ts +122 -0
  513. package/src/client/agent-page/AgentContextTab.tsx +487 -0
  514. package/src/client/agent-page/AgentEmptyState.tsx +44 -0
  515. package/src/client/agent-page/AgentJobsTab.tsx +441 -0
  516. package/src/client/agent-page/AgentTabFrame.tsx +39 -0
  517. package/src/client/agent-page/AgentTabsPage.tsx +1096 -0
  518. package/src/client/agent-page/types.ts +18 -0
  519. package/src/client/agent-page/use-jobs.ts +150 -0
  520. package/src/client/agent-sidebar-state.ts +166 -0
  521. package/src/client/analytics/index.ts +40 -0
  522. package/src/client/analytics-session.ts +70 -0
  523. package/src/client/analytics.ts +1757 -0
  524. package/src/client/api-path.ts +124 -0
  525. package/src/client/app-providers.tsx +230 -0
  526. package/src/client/appearance.ts +130 -0
  527. package/src/client/application-state.ts +154 -0
  528. package/src/client/assistant-ui-recovery.tsx +205 -0
  529. package/src/client/automation/index.ts +4 -0
  530. package/src/client/automation.ts +22 -0
  531. package/src/client/blocks/AiEditableField.tsx +30 -0
  532. package/src/client/blocks/BlockView.tsx +145 -0
  533. package/src/client/blocks/RegistryBlockDataProvider.tsx +121 -0
  534. package/src/client/blocks/SchemaBlockEditor.tsx +457 -0
  535. package/src/client/blocks/agent.ts +95 -0
  536. package/src/client/blocks/code-block-direction.ts +21 -0
  537. package/src/client/blocks/index.ts +308 -0
  538. package/src/client/blocks/library/AnnotatedCodeBlock.tsx +710 -0
  539. package/src/client/blocks/library/ApiEndpointBlock.tsx +1120 -0
  540. package/src/client/blocks/library/DataModelBlock.tsx +775 -0
  541. package/src/client/blocks/library/DiffBlock.tsx +1854 -0
  542. package/src/client/blocks/library/FileTreeBlock.tsx +868 -0
  543. package/src/client/blocks/library/HighlightedCode.tsx +260 -0
  544. package/src/client/blocks/library/JsonExplorerBlock.tsx +608 -0
  545. package/src/client/blocks/library/MermaidBlock.tsx +362 -0
  546. package/src/client/blocks/library/OpenApiSpecBlock.tsx +998 -0
  547. package/src/client/blocks/library/annotated-code.config.ts +101 -0
  548. package/src/client/blocks/library/annotation-rail.tsx +1020 -0
  549. package/src/client/blocks/library/api-endpoint.config.ts +207 -0
  550. package/src/client/blocks/library/block-copy.ts +399 -0
  551. package/src/client/blocks/library/callout.config.ts +57 -0
  552. package/src/client/blocks/library/callout.tsx +149 -0
  553. package/src/client/blocks/library/checklist.config.ts +56 -0
  554. package/src/client/blocks/library/checklist.tsx +208 -0
  555. package/src/client/blocks/library/code-filename-label.tsx +59 -0
  556. package/src/client/blocks/library/code-highlight.tsx +178 -0
  557. package/src/client/blocks/library/code-tabs.config.ts +70 -0
  558. package/src/client/blocks/library/code-tabs.tsx +606 -0
  559. package/src/client/blocks/library/code.config.ts +69 -0
  560. package/src/client/blocks/library/code.tsx +440 -0
  561. package/src/client/blocks/library/columns.config.ts +85 -0
  562. package/src/client/blocks/library/columns.tsx +334 -0
  563. package/src/client/blocks/library/data-model.config.ts +152 -0
  564. package/src/client/blocks/library/dev-doc-ui.tsx +191 -0
  565. package/src/client/blocks/library/diagram.config.ts +222 -0
  566. package/src/client/blocks/library/diagram.tsx +958 -0
  567. package/src/client/blocks/library/diff.config.ts +115 -0
  568. package/src/client/blocks/library/file-tree.config.ts +92 -0
  569. package/src/client/blocks/library/html.config.ts +79 -0
  570. package/src/client/blocks/library/html.tsx +258 -0
  571. package/src/client/blocks/library/json-explorer.config.ts +74 -0
  572. package/src/client/blocks/library/mermaid.config.ts +49 -0
  573. package/src/client/blocks/library/narrow-container.tsx +37 -0
  574. package/src/client/blocks/library/openapi-spec.config.ts +66 -0
  575. package/src/client/blocks/library/question-form.config.ts +127 -0
  576. package/src/client/blocks/library/question-form.tsx +944 -0
  577. package/src/client/blocks/library/sanitize-html.ts +343 -0
  578. package/src/client/blocks/library/server-specs.ts +338 -0
  579. package/src/client/blocks/library/specs.tsx +308 -0
  580. package/src/client/blocks/library/table.config.ts +61 -0
  581. package/src/client/blocks/library/table.tsx +449 -0
  582. package/src/client/blocks/library/tabs.config.ts +96 -0
  583. package/src/client/blocks/library/tabs.tsx +665 -0
  584. package/src/client/blocks/library/wireframe-icons.ts +210 -0
  585. package/src/client/blocks/library/wireframe-kit.tsx +1850 -0
  586. package/src/client/blocks/library/wireframe.config.ts +539 -0
  587. package/src/client/blocks/library/wireframe.tsx +535 -0
  588. package/src/client/blocks/mdx.ts +364 -0
  589. package/src/client/blocks/provider.tsx +51 -0
  590. package/src/client/blocks/registry.ts +83 -0
  591. package/src/client/blocks/schema-form/introspect.ts +201 -0
  592. package/src/client/blocks/server.ts +170 -0
  593. package/src/client/blocks/types.ts +415 -0
  594. package/src/client/browser-session-bridge.ts +548 -0
  595. package/src/client/browser-tab-id.ts +36 -0
  596. package/src/client/builder-frame.ts +194 -0
  597. package/src/client/builder-mark.tsx +21 -0
  598. package/src/client/changelog/Changelog.tsx +333 -0
  599. package/src/client/changelog/index.ts +1 -0
  600. package/src/client/chat/ChatHistoryList.tsx +7 -0
  601. package/src/client/chat/attachment-adapters.ts +426 -0
  602. package/src/client/chat/connectors.ts +1579 -0
  603. package/src/client/chat/index.ts +160 -0
  604. package/src/client/chat/markdown-renderer.tsx +693 -0
  605. package/src/client/chat/message-components.tsx +1326 -0
  606. package/src/client/chat/repo-helpers.ts +281 -0
  607. package/src/client/chat/run-recovery.tsx +994 -0
  608. package/src/client/chat/runtime.ts +1810 -0
  609. package/src/client/chat/tool-call-display.tsx +1270 -0
  610. package/src/client/chat/tool-render-registry.tsx +144 -0
  611. package/src/client/chat/use-agent-chat-lifecycle-tracking.ts +74 -0
  612. package/src/client/chat/use-reconnect-reader-owner.ts +28 -0
  613. package/src/client/chat/widgets/DataChartRenderer.tsx +242 -0
  614. package/src/client/chat/widgets/DataChartWidget.tsx +51 -0
  615. package/src/client/chat/widgets/DataInsightsWidget.tsx +59 -0
  616. package/src/client/chat/widgets/DataTableWidget.tsx +240 -0
  617. package/src/client/chat/widgets/InlineExtensionWidget.tsx +60 -0
  618. package/src/client/chat/widgets/builtin-tool-renderers.tsx +213 -0
  619. package/src/client/chat/widgets/data-widget-types.ts +1 -0
  620. package/src/client/chat/widgets/inline-extension-result.ts +86 -0
  621. package/src/client/chat-model-groups.ts +171 -0
  622. package/src/client/chat-thread-url.ts +11 -0
  623. package/src/client/chat-view-transition.ts +213 -0
  624. package/src/client/client-action.ts +21 -0
  625. package/src/client/client-bootstrap.ts +7 -0
  626. package/src/client/client-surface.ts +41 -0
  627. package/src/client/clipboard.ts +89 -0
  628. package/src/client/code-agent-chat-adapter.ts +537 -0
  629. package/src/client/collab/index.ts +60 -0
  630. package/src/client/command-navigation/index.ts +15 -0
  631. package/src/client/comments-review/index.ts +1 -0
  632. package/src/client/components/AgentPresenceChip.tsx +4 -0
  633. package/src/client/components/ApiKeySettings.tsx +309 -0
  634. package/src/client/components/CodeAgentIndicator.tsx +59 -0
  635. package/src/client/components/CodeRequiredDialog.tsx +470 -0
  636. package/src/client/components/LiveCursorOverlay.tsx +5 -0
  637. package/src/client/components/MissingKeyCard.tsx +61 -0
  638. package/src/client/components/PresenceBar.tsx +4 -0
  639. package/src/client/components/RecentEditHighlights.tsx +4 -0
  640. package/src/client/components/RemoteSelectionRings.tsx +5 -0
  641. package/src/client/components/icons/AgentNativeIcon.tsx +46 -0
  642. package/src/client/components/ui/dialog.tsx +1 -0
  643. package/src/client/components/ui/dropdown-menu.tsx +1 -0
  644. package/src/client/components/ui/hover-card.tsx +1 -0
  645. package/src/client/components/ui/message-scroller.tsx +131 -0
  646. package/src/client/components/ui/popover.tsx +1 -0
  647. package/src/client/components/ui/sheet.tsx +1 -0
  648. package/src/client/components/ui/tooltip.tsx +1 -0
  649. package/src/client/composer/index.ts +11 -0
  650. package/src/client/composer/runtime-adapters.tsx +123 -0
  651. package/src/client/composer/use-mention-search.ts +7 -0
  652. package/src/client/composer/wired-components.tsx +53 -0
  653. package/src/client/context-xray/ContextMeter.tsx +124 -0
  654. package/src/client/context-xray/ContextSegmentRow.tsx +27 -0
  655. package/src/client/context-xray/ContextTreemap.tsx +24 -0
  656. package/src/client/context-xray/ContextXRayPanel.tsx +59 -0
  657. package/src/client/context-xray/SegmentProvenancePopover.tsx +18 -0
  658. package/src/client/context-xray/format.ts +27 -0
  659. package/src/client/conversation/AgentConversation.tsx +555 -0
  660. package/src/client/conversation/code-agent-transcript.ts +283 -0
  661. package/src/client/conversation/index.ts +22 -0
  662. package/src/client/conversation/types.ts +85 -0
  663. package/src/client/conversation/use-near-bottom-autoscroll.ts +278 -0
  664. package/src/client/create-query-client.ts +86 -0
  665. package/src/client/db-admin/DataGrid.tsx +551 -0
  666. package/src/client/db-admin/DbAdminPage.tsx +218 -0
  667. package/src/client/db-admin/DevDatabaseLink.tsx +16 -0
  668. package/src/client/db-admin/EditableCell.tsx +451 -0
  669. package/src/client/db-admin/FilterBar.tsx +203 -0
  670. package/src/client/db-admin/ResultsGrid.tsx +114 -0
  671. package/src/client/db-admin/RowSidePanel.tsx +337 -0
  672. package/src/client/db-admin/SqlEditor.tsx +840 -0
  673. package/src/client/db-admin/TableBrowser.tsx +212 -0
  674. package/src/client/db-admin/TableEditor.tsx +760 -0
  675. package/src/client/db-admin/cell-format.ts +246 -0
  676. package/src/client/db-admin/changeset.ts +296 -0
  677. package/src/client/db-admin/export-utils.ts +78 -0
  678. package/src/client/db-admin/index.ts +33 -0
  679. package/src/client/db-admin/sql-storage.ts +134 -0
  680. package/src/client/db-admin/storage.ts +68 -0
  681. package/src/client/db-admin/useAgentSync.ts +226 -0
  682. package/src/client/db-admin/useDbAdmin.ts +294 -0
  683. package/src/client/dev-overlay/DevOverlay.tsx +576 -0
  684. package/src/client/dev-overlay/builtins.ts +40 -0
  685. package/src/client/dev-overlay/index.ts +23 -0
  686. package/src/client/dev-overlay/registry.ts +67 -0
  687. package/src/client/dev-overlay/types.ts +64 -0
  688. package/src/client/dev-overlay/use-dev-option.ts +78 -0
  689. package/src/client/dev-overlay/use-dev-overlay-shortcut.ts +31 -0
  690. package/src/client/dynamic-suggestions.ts +455 -0
  691. package/src/client/embed-auth.ts +544 -0
  692. package/src/client/embed.ts +54 -0
  693. package/src/client/error-capture.ts +690 -0
  694. package/src/client/error-format.ts +211 -0
  695. package/src/client/error-reporting.ts +100 -0
  696. package/src/client/extensions/AgentNativeExtensionFrame.e2e-host.tsx +136 -0
  697. package/src/client/extensions/AgentNativeExtensionFrame.tsx +708 -0
  698. package/src/client/extensions/EmbeddedExtension.tsx +604 -0
  699. package/src/client/extensions/ExtensionEditor.tsx +450 -0
  700. package/src/client/extensions/ExtensionQueryErrorState.tsx +47 -0
  701. package/src/client/extensions/ExtensionSlot.tsx +345 -0
  702. package/src/client/extensions/ExtensionViewer.tsx +1502 -0
  703. package/src/client/extensions/ExtensionViewerPage.tsx +32 -0
  704. package/src/client/extensions/ExtensionsListPage.tsx +432 -0
  705. package/src/client/extensions/ExtensionsSidebarSection.tsx +1259 -0
  706. package/src/client/extensions/InlineExtensionFrame.tsx +660 -0
  707. package/src/client/extensions/agent-native-extension-runtime.ts +495 -0
  708. package/src/client/extensions/delete-extension.ts +76 -0
  709. package/src/client/extensions/extension-load-error.ts +26 -0
  710. package/src/client/extensions/extension-order.ts +49 -0
  711. package/src/client/extensions/extension-popularity.ts +61 -0
  712. package/src/client/extensions/iframe-bridge.ts +377 -0
  713. package/src/client/extensions/index.ts +84 -0
  714. package/src/client/extensions/portable-extension.ts +712 -0
  715. package/src/client/feature-flags/FeatureFlagsPanel.tsx +519 -0
  716. package/src/client/feature-flags/helpers.ts +77 -0
  717. package/src/client/feature-flags/index.ts +13 -0
  718. package/src/client/feature-flags/types.ts +29 -0
  719. package/src/client/feature-flags/use-feature-flag.ts +26 -0
  720. package/src/client/feedback-context.ts +90 -0
  721. package/src/client/frame-protocol.ts +168 -0
  722. package/src/client/frame.ts +329 -0
  723. package/src/client/guided-questions.tsx +1152 -0
  724. package/src/client/history/VersionHistoryPanel.tsx +175 -0
  725. package/src/client/history/index.ts +21 -0
  726. package/src/client/history/use-history.ts +114 -0
  727. package/src/client/hooks/index.ts +46 -0
  728. package/src/client/host/index.ts +170 -0
  729. package/src/client/host-bridge.ts +1272 -0
  730. package/src/client/host-tools.ts +190 -0
  731. package/src/client/i18n.tsx +798 -0
  732. package/src/client/index.ts +370 -0
  733. package/src/client/integrations/IntegrationCard.tsx +186 -0
  734. package/src/client/integrations/IntegrationsPanel.tsx +633 -0
  735. package/src/client/integrations/api.ts +295 -0
  736. package/src/client/integrations/index.ts +29 -0
  737. package/src/client/integrations/useIntegrationStatus.ts +52 -0
  738. package/src/client/mcp-app-host.ts +720 -0
  739. package/src/client/mcp-apps/McpAppRenderer.tsx +760 -0
  740. package/src/client/navigation/index.ts +54 -0
  741. package/src/client/notifications/NotificationsBell.tsx +383 -0
  742. package/src/client/notifications/index.ts +1 -0
  743. package/src/client/observability/ObservabilityDashboard.tsx +890 -0
  744. package/src/client/observability/ThumbsFeedback.tsx +160 -0
  745. package/src/client/observability/index.ts +20 -0
  746. package/src/client/observability/useObservability.ts +266 -0
  747. package/src/client/onboarding/OnboardingBanner.tsx +73 -0
  748. package/src/client/onboarding/OnboardingPanel.tsx +1036 -0
  749. package/src/client/onboarding/SetupButton.tsx +64 -0
  750. package/src/client/onboarding/index.ts +25 -0
  751. package/src/client/onboarding/use-onboarding.ts +164 -0
  752. package/src/client/onboarding/use-preview-mode.ts +40 -0
  753. package/src/client/org/InvitationBanner.tsx +148 -0
  754. package/src/client/org/OrgSwitcher.tsx +754 -0
  755. package/src/client/org/RequireActiveOrg.tsx +337 -0
  756. package/src/client/org/TeamPage.tsx +1432 -0
  757. package/src/client/org/hooks.ts +359 -0
  758. package/src/client/org/index.ts +70 -0
  759. package/src/client/org/workspace-app-links.ts +367 -0
  760. package/src/client/org-team/index.ts +1 -0
  761. package/src/client/progress/RunsTray.tsx +680 -0
  762. package/src/client/progress/index.ts +1 -0
  763. package/src/client/require-session.tsx +142 -0
  764. package/src/client/resources/BuiltinCapabilityDetail.tsx +258 -0
  765. package/src/client/resources/McpConnectionSuggestion.tsx +276 -0
  766. package/src/client/resources/McpIntegrationDialog.tsx +808 -0
  767. package/src/client/resources/McpServerDetail.tsx +230 -0
  768. package/src/client/resources/ResourceEditor.tsx +872 -0
  769. package/src/client/resources/ResourceTree.tsx +860 -0
  770. package/src/client/resources/ResourcesPanel.tsx +1960 -0
  771. package/src/client/resources/index.ts +25 -0
  772. package/src/client/resources/mcp-integration-catalog.ts +771 -0
  773. package/src/client/resources/mcp-integration-logos.ts +108 -0
  774. package/src/client/resources/runtime.ts +1 -0
  775. package/src/client/resources/use-builtin-capabilities.ts +113 -0
  776. package/src/client/resources/use-mcp-servers.ts +217 -0
  777. package/src/client/resources/use-resources.ts +402 -0
  778. package/src/client/review/ReviewCommentComposer.tsx +123 -0
  779. package/src/client/review/ReviewStatusBadge.tsx +39 -0
  780. package/src/client/review/ReviewThreadPanel.tsx +625 -0
  781. package/src/client/review/index.ts +38 -0
  782. package/src/client/review/use-review.ts +186 -0
  783. package/src/client/route-chunk-recovery/index.ts +1 -0
  784. package/src/client/route-chunk-recovery.ts +331 -0
  785. package/src/client/route-state.ts +455 -0
  786. package/src/client/route-warmup.tsx +543 -0
  787. package/src/client/session-replay-iframe.e2e-host.tsx +100 -0
  788. package/src/client/session-replay.ts +3417 -0
  789. package/src/client/settings/AgentsSection.tsx +441 -0
  790. package/src/client/settings/AutomationsSection.tsx +516 -0
  791. package/src/client/settings/BackgroundAgentSection.tsx +189 -0
  792. package/src/client/settings/BrowserSection.tsx +110 -0
  793. package/src/client/settings/DemoModeSection.tsx +48 -0
  794. package/src/client/settings/SecretsSection.tsx +875 -0
  795. package/src/client/settings/SettingsPanel.tsx +3162 -0
  796. package/src/client/settings/SettingsSection.tsx +283 -0
  797. package/src/client/settings/SettingsTabsPage.tsx +592 -0
  798. package/src/client/settings/UsageSection.tsx +401 -0
  799. package/src/client/settings/VoiceTranscriptionSection.tsx +960 -0
  800. package/src/client/settings/agent-settings-search.ts +220 -0
  801. package/src/client/settings/index.ts +27 -0
  802. package/src/client/settings/useBuilderStatus.ts +1055 -0
  803. package/src/client/setup-connections/BuilderConnectCard.tsx +89 -0
  804. package/src/client/setup-connections/ProviderReadinessBadge.tsx +73 -0
  805. package/src/client/setup-connections/SetupConnectionsPage.tsx +94 -0
  806. package/src/client/setup-connections/catalog.ts +6 -0
  807. package/src/client/setup-connections/index.ts +47 -0
  808. package/src/client/setup-connections/runtime.ts +1 -0
  809. package/src/client/sharing/ShareButton.tsx +1748 -0
  810. package/src/client/sharing/ShareDialog.tsx +846 -0
  811. package/src/client/sharing/VisibilityBadge.tsx +4 -0
  812. package/src/client/sharing/index.ts +2 -0
  813. package/src/client/sse-event-processor.ts +2002 -0
  814. package/src/client/terminal/AgentTerminal.tsx +488 -0
  815. package/src/client/terminal/index.ts +7 -0
  816. package/src/client/theme.ts +27 -0
  817. package/src/client/tombstone/agent-presence-chip.ts +17 -0
  818. package/src/client/tombstone/editor.ts +265 -0
  819. package/src/client/tombstone/live-cursor-overlay.ts +21 -0
  820. package/src/client/tombstone/presence-bar.ts +17 -0
  821. package/src/client/tombstone/recent-edit-highlights.ts +17 -0
  822. package/src/client/tombstone/remote-selection-rings.ts +21 -0
  823. package/src/client/tombstone/rich-markdown-editor.ts +265 -0
  824. package/src/client/tombstone/ui-dialog.ts +49 -0
  825. package/src/client/tombstone/ui-dropdown-menu.ts +69 -0
  826. package/src/client/tombstone/ui-hover-card.ts +21 -0
  827. package/src/client/tombstone/ui-popover.ts +25 -0
  828. package/src/client/tombstone/ui-sheet.ts +49 -0
  829. package/src/client/tombstone/ui-tooltip.ts +29 -0
  830. package/src/client/tombstone/visual-style-controls.ts +61 -0
  831. package/src/client/tool-cells/BashCell.tsx +164 -0
  832. package/src/client/tool-cells/EditCell.tsx +303 -0
  833. package/src/client/tool-cells/FilesChangedSummary.tsx +208 -0
  834. package/src/client/tool-cells/WriteCell.tsx +145 -0
  835. package/src/client/tool-cells/index.ts +7 -0
  836. package/src/client/tool-display.ts +41 -0
  837. package/src/client/track.ts +57 -0
  838. package/src/client/transcription/BuilderTranscriptionCta.tsx +120 -0
  839. package/src/client/transcription/use-live-transcription.ts +292 -0
  840. package/src/client/ui/index.ts +55 -0
  841. package/src/client/uploads/index.ts +6 -0
  842. package/src/client/uploads/upload-editor-image.ts +79 -0
  843. package/src/client/uploads/use-upload-resource.ts +24 -0
  844. package/src/client/url-scrub.ts +51 -0
  845. package/src/client/use-action.ts +766 -0
  846. package/src/client/use-agent-chat-context.ts +63 -0
  847. package/src/client/use-agent-chat-home-handoff.ts +207 -0
  848. package/src/client/use-agent-chat.ts +53 -0
  849. package/src/client/use-agent-engine-configured.ts +211 -0
  850. package/src/client/use-avatar.ts +127 -0
  851. package/src/client/use-change-version.ts +150 -0
  852. package/src/client/use-chat-models.ts +252 -0
  853. package/src/client/use-chat-threads.ts +1262 -0
  854. package/src/client/use-db-sync.ts +1112 -0
  855. package/src/client/use-demo-mode-status.ts +30 -0
  856. package/src/client/use-dev-mode.ts +177 -0
  857. package/src/client/use-external-value.ts +40 -0
  858. package/src/client/use-pausing-interval.ts +65 -0
  859. package/src/client/use-pinch-zoom.ts +202 -0
  860. package/src/client/use-run-stuck-detection.ts +427 -0
  861. package/src/client/use-send-to-agent-chat.ts +85 -0
  862. package/src/client/use-session.ts +114 -0
  863. package/src/client/utils.ts +7 -0
  864. package/src/client/visual-style-controls.tsx +1 -0
  865. package/src/client/vite-dev-recovery-script.ts +226 -0
  866. package/src/client/voice-provider-status.ts +44 -0
  867. package/src/client/widgets/index.ts +41 -0
  868. package/src/code-agents/background-controller.ts +398 -0
  869. package/src/code-agents/background-run.ts +156 -0
  870. package/src/code-agents/index.ts +95 -0
  871. package/src/code-agents/prompt-attachments.ts +39 -0
  872. package/src/code-agents/transcript-normalizer.ts +750 -0
  873. package/src/code-agents/transcript-order.ts +73 -0
  874. package/src/coding-tools/index.ts +742 -0
  875. package/src/coding-tools/run-code.ts +1662 -0
  876. package/src/coding-tools/sandbox/adapter.ts +82 -0
  877. package/src/coding-tools/sandbox/background.ts +406 -0
  878. package/src/coding-tools/sandbox/executions-store.ts +517 -0
  879. package/src/coding-tools/sandbox/index.ts +132 -0
  880. package/src/coding-tools/sandbox/local-child-process-adapter.ts +217 -0
  881. package/src/collab/agent-identity.ts +5 -0
  882. package/src/collab/agent-presence.ts +341 -0
  883. package/src/collab/awareness-store.ts +196 -0
  884. package/src/collab/awareness.ts +317 -0
  885. package/src/collab/client-struct.ts +366 -0
  886. package/src/collab/client.ts +1205 -0
  887. package/src/collab/emitter.ts +31 -0
  888. package/src/collab/follow-mode.ts +107 -0
  889. package/src/collab/index.ts +151 -0
  890. package/src/collab/json-to-yjs.ts +504 -0
  891. package/src/collab/presence.ts +207 -0
  892. package/src/collab/recent-edits.ts +215 -0
  893. package/src/collab/routes.ts +191 -0
  894. package/src/collab/storage.ts +228 -0
  895. package/src/collab/struct-routes.ts +133 -0
  896. package/src/collab/text-to-yjs.ts +79 -0
  897. package/src/collab/undo.ts +432 -0
  898. package/src/collab/xml-ops.ts +68 -0
  899. package/src/collab/ydoc-manager.ts +544 -0
  900. package/src/command-navigation/actions.ts +100 -0
  901. package/src/command-navigation/index.ts +12 -0
  902. package/src/comments-review/index.ts +1 -0
  903. package/src/connections/catalog.ts +451 -0
  904. package/src/connections/index.ts +48 -0
  905. package/src/connections/reader.ts +911 -0
  906. package/src/connections/runtime.ts +1 -0
  907. package/src/credentials/index.ts +187 -0
  908. package/src/data-programs/actions.ts +335 -0
  909. package/src/data-programs/contract.ts +284 -0
  910. package/src/data-programs/execute.ts +693 -0
  911. package/src/data-programs/index.ts +72 -0
  912. package/src/data-programs/schema.ts +148 -0
  913. package/src/data-programs/store.ts +755 -0
  914. package/src/data-widgets/index.ts +376 -0
  915. package/src/db/client.ts +1627 -0
  916. package/src/db/create-get-db.ts +579 -0
  917. package/src/db/ddl-guard.ts +302 -0
  918. package/src/db/drizzle-config.ts +190 -0
  919. package/src/db/ensure-additive-columns.ts +430 -0
  920. package/src/db/index.ts +57 -0
  921. package/src/db/migrations.ts +691 -0
  922. package/src/db/request-telemetry.ts +154 -0
  923. package/src/db/runtime-diagnostics.ts +331 -0
  924. package/src/db/schema.ts +121 -0
  925. package/src/db/widen-columns.ts +75 -0
  926. package/src/db-admin/agent-tools.ts +202 -0
  927. package/src/db-admin/index.ts +26 -0
  928. package/src/db-admin/operations.ts +803 -0
  929. package/src/db-admin/routes.ts +174 -0
  930. package/src/db-admin/types.ts +110 -0
  931. package/src/demo/browser-state.ts +47 -0
  932. package/src/demo/fetch-interceptor.ts +175 -0
  933. package/src/demo/redact.ts +575 -0
  934. package/src/deploy/build.ts +3935 -0
  935. package/src/deploy/immutable-assets.ts +65 -0
  936. package/src/deploy/route-discovery.ts +458 -0
  937. package/src/deploy/workspace-core.ts +282 -0
  938. package/src/deploy/workspace-deploy.ts +1488 -0
  939. package/src/eject/provider-api-definitions.ts +193 -0
  940. package/src/eject/remote-mcp-presets.ts +137 -0
  941. package/src/eject/setup-readiness-ui.tsx +29 -0
  942. package/src/eject/workspace-connections.ts +92 -0
  943. package/src/embedding/agent.ts +159 -0
  944. package/src/embedding/bridge.ts +297 -0
  945. package/src/embedding/index.ts +43 -0
  946. package/src/embedding/protocol.ts +185 -0
  947. package/src/embedding/react.tsx +319 -0
  948. package/src/embeddings/index.ts +233 -0
  949. package/src/eval/agent-runner.ts +210 -0
  950. package/src/eval/define-eval.ts +55 -0
  951. package/src/eval/index.ts +49 -0
  952. package/src/eval/report.ts +75 -0
  953. package/src/eval/runner.ts +369 -0
  954. package/src/eval/scorer.ts +244 -0
  955. package/src/eval/types.ts +188 -0
  956. package/src/event-bus/bus.ts +140 -0
  957. package/src/event-bus/index.ts +3 -0
  958. package/src/event-bus/registry.ts +79 -0
  959. package/src/event-bus/types.ts +29 -0
  960. package/src/extensions/actions.ts +1636 -0
  961. package/src/extensions/change-marker.ts +54 -0
  962. package/src/extensions/content-patch.ts +468 -0
  963. package/src/extensions/fetch-tool.ts +461 -0
  964. package/src/extensions/html-shell.ts +803 -0
  965. package/src/extensions/local.ts +462 -0
  966. package/src/extensions/path.ts +40 -0
  967. package/src/extensions/proxy-security.ts +171 -0
  968. package/src/extensions/routes.ts +1080 -0
  969. package/src/extensions/schema.ts +269 -0
  970. package/src/extensions/session-replay-iframe.ts +131 -0
  971. package/src/extensions/slots/routes.ts +126 -0
  972. package/src/extensions/slots/schema.ts +87 -0
  973. package/src/extensions/slots/store.ts +450 -0
  974. package/src/extensions/store.ts +1347 -0
  975. package/src/extensions/theme.ts +114 -0
  976. package/src/extensions/url-safety.ts +316 -0
  977. package/src/extensions/web-content.ts +663 -0
  978. package/src/extensions/web-search-tool.ts +437 -0
  979. package/src/feature-flags/a2a-action-route.ts +56 -0
  980. package/src/feature-flags/actions/get-feature-flags.ts +24 -0
  981. package/src/feature-flags/actions/list-feature-flags.ts +69 -0
  982. package/src/feature-flags/actions/set-feature-flag.ts +89 -0
  983. package/src/feature-flags/index.ts +21 -0
  984. package/src/feature-flags/permissions.ts +53 -0
  985. package/src/feature-flags/plugin.ts +44 -0
  986. package/src/feature-flags/registry.ts +96 -0
  987. package/src/feature-flags/store.ts +176 -0
  988. package/src/file-upload/actions/upload-image.ts +213 -0
  989. package/src/file-upload/builder.ts +431 -0
  990. package/src/file-upload/index.ts +24 -0
  991. package/src/file-upload/pre-upload-attachments.ts +305 -0
  992. package/src/file-upload/registry.ts +125 -0
  993. package/src/file-upload/types.ts +89 -0
  994. package/src/guards/db-tool-scoping.ts +129 -0
  995. package/src/guards/index.ts +23 -0
  996. package/src/guards/no-drizzle-push.ts +116 -0
  997. package/src/guards/no-env-credentials.ts +229 -0
  998. package/src/guards/no-env-mutation.ts +114 -0
  999. package/src/guards/no-localhost-fallback.ts +124 -0
  1000. package/src/guards/no-unscoped-credentials.ts +227 -0
  1001. package/src/guards/no-unscoped-queries.ts +834 -0
  1002. package/src/guards/scan-utils.ts +105 -0
  1003. package/src/guards/types.ts +30 -0
  1004. package/src/history/actions/create-resource-version.ts +92 -0
  1005. package/src/history/actions/get-resource-version.ts +60 -0
  1006. package/src/history/actions/list-resource-history.ts +53 -0
  1007. package/src/history/actions/list-resource-versions.ts +43 -0
  1008. package/src/history/actions/restore-resource-version.ts +96 -0
  1009. package/src/history/index.ts +26 -0
  1010. package/src/history/registry.ts +111 -0
  1011. package/src/history/store.ts +379 -0
  1012. package/src/history/types.ts +69 -0
  1013. package/src/index.browser.ts +155 -0
  1014. package/src/index.ts +408 -0
  1015. package/src/ingestion/docx.ts +158 -0
  1016. package/src/ingestion/figma-node-to-html.ts +1860 -0
  1017. package/src/ingestion/figma.ts +548 -0
  1018. package/src/ingestion/index.ts +107 -0
  1019. package/src/ingestion/media.ts +264 -0
  1020. package/src/ingestion/notion.ts +121 -0
  1021. package/src/ingestion/office.ts +213 -0
  1022. package/src/ingestion/orchestration.ts +160 -0
  1023. package/src/ingestion/pptx.ts +331 -0
  1024. package/src/ingestion/selection.ts +81 -0
  1025. package/src/ingestion/website.ts +151 -0
  1026. package/src/integrations/a2a-continuation-marker.ts +2 -0
  1027. package/src/integrations/a2a-continuation-processor.ts +888 -0
  1028. package/src/integrations/a2a-continuations-store.ts +643 -0
  1029. package/src/integrations/adapter-overrides.ts +12 -0
  1030. package/src/integrations/adapters/discord.ts +364 -0
  1031. package/src/integrations/adapters/email.ts +1164 -0
  1032. package/src/integrations/adapters/google-docs.ts +371 -0
  1033. package/src/integrations/adapters/index.ts +29 -0
  1034. package/src/integrations/adapters/microsoft-teams.ts +413 -0
  1035. package/src/integrations/adapters/slack.ts +1914 -0
  1036. package/src/integrations/adapters/telegram.ts +386 -0
  1037. package/src/integrations/adapters/whatsapp.ts +358 -0
  1038. package/src/integrations/awaiting-input-store.ts +130 -0
  1039. package/src/integrations/catalog.ts +571 -0
  1040. package/src/integrations/computer-supervision-store.ts +423 -0
  1041. package/src/integrations/computer-supervision.ts +213 -0
  1042. package/src/integrations/config-store.ts +131 -0
  1043. package/src/integrations/controls-store.ts +187 -0
  1044. package/src/integrations/eject/messaging-adapters.ts +85 -0
  1045. package/src/integrations/google-docs-poller.ts +671 -0
  1046. package/src/integrations/identity-links-store.ts +210 -0
  1047. package/src/integrations/identity.ts +196 -0
  1048. package/src/integrations/index.ts +220 -0
  1049. package/src/integrations/installations-store.ts +677 -0
  1050. package/src/integrations/integration-memory.ts +187 -0
  1051. package/src/integrations/internal-token.ts +106 -0
  1052. package/src/integrations/pending-tasks-retry-job.ts +286 -0
  1053. package/src/integrations/pending-tasks-store.ts +468 -0
  1054. package/src/integrations/plugin.ts +3048 -0
  1055. package/src/integrations/remote-commands-store.ts +690 -0
  1056. package/src/integrations/remote-devices-store.ts +492 -0
  1057. package/src/integrations/remote-json-safety.ts +127 -0
  1058. package/src/integrations/remote-push-delivery-job.ts +48 -0
  1059. package/src/integrations/remote-push-delivery.ts +370 -0
  1060. package/src/integrations/remote-push-store.ts +664 -0
  1061. package/src/integrations/remote-retry-job.ts +55 -0
  1062. package/src/integrations/remote-run-events-store.ts +222 -0
  1063. package/src/integrations/remote-types.ts +186 -0
  1064. package/src/integrations/runtime.ts +1 -0
  1065. package/src/integrations/scope-store.ts +498 -0
  1066. package/src/integrations/slack-manifest.ts +78 -0
  1067. package/src/integrations/slack-oauth.ts +344 -0
  1068. package/src/integrations/task-queue-stats.ts +144 -0
  1069. package/src/integrations/thread-mapping-store.ts +134 -0
  1070. package/src/integrations/types.ts +485 -0
  1071. package/src/integrations/usage-budget-store.ts +906 -0
  1072. package/src/integrations/webhook-delivery.ts +55 -0
  1073. package/src/integrations/webhook-handler.ts +1939 -0
  1074. package/src/jobs/actions/list-recurring-jobs.ts +105 -0
  1075. package/src/jobs/actions/manage-recurring-job.ts +85 -0
  1076. package/src/jobs/cron.ts +126 -0
  1077. package/src/jobs/index.ts +9 -0
  1078. package/src/jobs/scheduler.ts +703 -0
  1079. package/src/jobs/tools.ts +367 -0
  1080. package/src/local-artifacts/index.ts +1372 -0
  1081. package/src/localization/actions/get-localization-preference.ts +24 -0
  1082. package/src/localization/actions/set-localization-preference.ts +32 -0
  1083. package/src/localization/default-messages.ts +1009 -0
  1084. package/src/localization/index.ts +2 -0
  1085. package/src/localization/server.ts +131 -0
  1086. package/src/localization/shared.ts +208 -0
  1087. package/src/mcp/actions/call-mcp-tool.ts +19 -0
  1088. package/src/mcp/actions/create-org-service-token.ts +87 -0
  1089. package/src/mcp/actions/list-mcp-tools.ts +18 -0
  1090. package/src/mcp/actions/list-org-service-tokens.ts +44 -0
  1091. package/src/mcp/actions/revoke-org-service-token.ts +30 -0
  1092. package/src/mcp/actions/service-token-access.ts +121 -0
  1093. package/src/mcp/ask-app-inline-tasks.ts +125 -0
  1094. package/src/mcp/build-server.ts +2356 -0
  1095. package/src/mcp/builtin-tools.ts +1506 -0
  1096. package/src/mcp/connect-route.ts +1460 -0
  1097. package/src/mcp/connect-store.ts +680 -0
  1098. package/src/mcp/embed-app.ts +2051 -0
  1099. package/src/mcp/embed-route.ts +84 -0
  1100. package/src/mcp/external-agent-policy.ts +18 -0
  1101. package/src/mcp/index.ts +47 -0
  1102. package/src/mcp/oauth-route.ts +1016 -0
  1103. package/src/mcp/oauth-store.ts +581 -0
  1104. package/src/mcp/oauth-token.ts +227 -0
  1105. package/src/mcp/org-directory.ts +343 -0
  1106. package/src/mcp/route-paths.ts +34 -0
  1107. package/src/mcp/screen-memory-stdio.ts +290 -0
  1108. package/src/mcp/server.ts +507 -0
  1109. package/src/mcp/stdio.ts +328 -0
  1110. package/src/mcp/workspace-resolve.ts +261 -0
  1111. package/src/mcp-client/app-api.ts +136 -0
  1112. package/src/mcp-client/app-result.ts +64 -0
  1113. package/src/mcp-client/builtin-capabilities.ts +146 -0
  1114. package/src/mcp-client/builtin-store.ts +93 -0
  1115. package/src/mcp-client/config.ts +281 -0
  1116. package/src/mcp-client/errors.ts +54 -0
  1117. package/src/mcp-client/hub-client.ts +172 -0
  1118. package/src/mcp-client/hub-routes.ts +198 -0
  1119. package/src/mcp-client/index.ts +504 -0
  1120. package/src/mcp-client/manager.ts +968 -0
  1121. package/src/mcp-client/oauth-client.ts +462 -0
  1122. package/src/mcp-client/oauth-routes.ts +307 -0
  1123. package/src/mcp-client/remote-store.ts +674 -0
  1124. package/src/mcp-client/remote-url.ts +97 -0
  1125. package/src/mcp-client/routes.ts +1093 -0
  1126. package/src/mcp-client/screen-memory-local.ts +461 -0
  1127. package/src/mcp-client/tool-policy.ts +182 -0
  1128. package/src/mcp-client/visibility.ts +56 -0
  1129. package/src/mcp-client/workspace-servers.ts +379 -0
  1130. package/src/navigation/index.ts +170 -0
  1131. package/src/notifications/actions.ts +151 -0
  1132. package/src/notifications/channels.ts +410 -0
  1133. package/src/notifications/index.ts +22 -0
  1134. package/src/notifications/registry.ts +216 -0
  1135. package/src/notifications/routes.ts +106 -0
  1136. package/src/notifications/store.ts +236 -0
  1137. package/src/notifications/types.ts +52 -0
  1138. package/src/oauth-tokens/google-refresh.ts +175 -0
  1139. package/src/oauth-tokens/index.ts +15 -0
  1140. package/src/oauth-tokens/store.ts +384 -0
  1141. package/src/observability/cleanup-job.ts +124 -0
  1142. package/src/observability/evals.ts +507 -0
  1143. package/src/observability/experiments.ts +359 -0
  1144. package/src/observability/feedback.ts +332 -0
  1145. package/src/observability/hosted-model-experiment.ts +118 -0
  1146. package/src/observability/index.ts +62 -0
  1147. package/src/observability/plugin.ts +31 -0
  1148. package/src/observability/routes.ts +431 -0
  1149. package/src/observability/sentiment.ts +261 -0
  1150. package/src/observability/store.ts +1347 -0
  1151. package/src/observability/traces.ts +789 -0
  1152. package/src/observability/tracing.ts +157 -0
  1153. package/src/observability/tracking-identity.ts +55 -0
  1154. package/src/observability/types.ts +211 -0
  1155. package/src/onboarding/default-steps.ts +428 -0
  1156. package/src/onboarding/index.ts +22 -0
  1157. package/src/onboarding/plugin.ts +262 -0
  1158. package/src/onboarding/registry.ts +47 -0
  1159. package/src/onboarding/types.ts +96 -0
  1160. package/src/org/accept-pending.ts +98 -0
  1161. package/src/org/auto-join-domain.ts +113 -0
  1162. package/src/org/context.ts +614 -0
  1163. package/src/org/free-email-providers.ts +124 -0
  1164. package/src/org/handlers.ts +1153 -0
  1165. package/src/org/index.ts +63 -0
  1166. package/src/org/migrations.ts +105 -0
  1167. package/src/org/permissions.ts +30 -0
  1168. package/src/org/plugin.ts +255 -0
  1169. package/src/org/schema.ts +28 -0
  1170. package/src/org/types.ts +57 -0
  1171. package/src/org-team/index.ts +1 -0
  1172. package/src/package-lifecycle/deprecated-imports.ts +179 -0
  1173. package/src/package-lifecycle/eject-manifest.ts +345 -0
  1174. package/src/package-lifecycle/index.ts +7 -0
  1175. package/src/package-lifecycle/manifest.ts +120 -0
  1176. package/src/package-lifecycle/migration-manifest.ts +159 -0
  1177. package/src/package-lifecycle/migration-message.ts +6 -0
  1178. package/src/package-lifecycle/tombstone.ts +58 -0
  1179. package/src/package-lifecycle/upgrade-error.ts +37 -0
  1180. package/src/private-blob/index.ts +18 -0
  1181. package/src/private-blob/registry.ts +242 -0
  1182. package/src/private-blob/types.ts +55 -0
  1183. package/src/progress/actions.ts +179 -0
  1184. package/src/progress/index.ts +16 -0
  1185. package/src/progress/registry.ts +127 -0
  1186. package/src/progress/routes.ts +89 -0
  1187. package/src/progress/store.ts +353 -0
  1188. package/src/progress/types.ts +59 -0
  1189. package/src/provider-api/actions/custom-provider-registration.ts +197 -0
  1190. package/src/provider-api/actions/delete-staged-dataset.ts +5 -0
  1191. package/src/provider-api/actions/github-repo-files.ts +266 -0
  1192. package/src/provider-api/actions/list-staged-datasets.ts +5 -0
  1193. package/src/provider-api/actions/provider-api-audit.ts +88 -0
  1194. package/src/provider-api/actions/provider-api.ts +460 -0
  1195. package/src/provider-api/actions/query-staged-dataset.ts +5 -0
  1196. package/src/provider-api/actions/staged-datasets.ts +359 -0
  1197. package/src/provider-api/corpus-jobs-store.ts +522 -0
  1198. package/src/provider-api/corpus-jobs.ts +1817 -0
  1199. package/src/provider-api/custom-registry.ts +456 -0
  1200. package/src/provider-api/github-repo.ts +675 -0
  1201. package/src/provider-api/gong.ts +108 -0
  1202. package/src/provider-api/index.ts +5444 -0
  1203. package/src/provider-api/quota-governor.ts +562 -0
  1204. package/src/provider-api/runtime.ts +1 -0
  1205. package/src/provider-api/staged-datasets-aggregate.ts +304 -0
  1206. package/src/provider-api/staged-datasets-store.ts +441 -0
  1207. package/src/provider-api/staging.ts +483 -0
  1208. package/src/resources/agents.ts +65 -0
  1209. package/src/resources/emitter.ts +54 -0
  1210. package/src/resources/handlers.ts +728 -0
  1211. package/src/resources/index.ts +4 -0
  1212. package/src/resources/metadata.ts +252 -0
  1213. package/src/resources/script-helpers.ts +160 -0
  1214. package/src/resources/store.ts +1618 -0
  1215. package/src/review/actions/consume-review-feedback.ts +48 -0
  1216. package/src/review/actions/create-review-comment.ts +108 -0
  1217. package/src/review/actions/delete-review-comment.ts +67 -0
  1218. package/src/review/actions/get-review-feedback.ts +49 -0
  1219. package/src/review/actions/list-review-comments.ts +87 -0
  1220. package/src/review/actions/reply-review-comment.ts +118 -0
  1221. package/src/review/actions/resolve-review-thread.ts +94 -0
  1222. package/src/review/actions/send-review-thread-to-agent.ts +62 -0
  1223. package/src/review/actions/set-review-status.ts +58 -0
  1224. package/src/review/identity.ts +101 -0
  1225. package/src/review/index.ts +45 -0
  1226. package/src/review/mentions.ts +44 -0
  1227. package/src/review/registry.ts +111 -0
  1228. package/src/review/store.ts +997 -0
  1229. package/src/review/types.ts +101 -0
  1230. package/src/router/index.ts +24 -0
  1231. package/src/scripts/agent-engines/list-agent-engines.ts +130 -0
  1232. package/src/scripts/agent-engines/manage-agent-engine.ts +197 -0
  1233. package/src/scripts/agent-engines/set-agent-engine.ts +84 -0
  1234. package/src/scripts/agent-engines/test-agent-engine.ts +174 -0
  1235. package/src/scripts/call-agent.ts +792 -0
  1236. package/src/scripts/chat/index.ts +8 -0
  1237. package/src/scripts/chat/open-chat.ts +56 -0
  1238. package/src/scripts/chat/search-chats.ts +121 -0
  1239. package/src/scripts/core-scripts.ts +22 -0
  1240. package/src/scripts/db/check-scoping.ts +212 -0
  1241. package/src/scripts/db/exec.ts +791 -0
  1242. package/src/scripts/db/index.ts +19 -0
  1243. package/src/scripts/db/migrate-encrypt-credentials.ts +223 -0
  1244. package/src/scripts/db/migrate-encrypt-oauth-tokens.ts +213 -0
  1245. package/src/scripts/db/migrate-user-api-keys.ts +257 -0
  1246. package/src/scripts/db/patch.ts +820 -0
  1247. package/src/scripts/db/query.ts +299 -0
  1248. package/src/scripts/db/reset-dev-owner.ts +285 -0
  1249. package/src/scripts/db/safety.ts +286 -0
  1250. package/src/scripts/db/schema.ts +364 -0
  1251. package/src/scripts/db/scoping.ts +341 -0
  1252. package/src/scripts/db/sqlite-client.ts +78 -0
  1253. package/src/scripts/db/tool-mode.ts +23 -0
  1254. package/src/scripts/db/tool-schemas.ts +31 -0
  1255. package/src/scripts/db/wipe-leaked-builder-keys.ts +201 -0
  1256. package/src/scripts/dev/index.ts +296 -0
  1257. package/src/scripts/dev/list-files.ts +119 -0
  1258. package/src/scripts/dev/read-file.ts +77 -0
  1259. package/src/scripts/dev/search-files.ts +151 -0
  1260. package/src/scripts/dev/shell.ts +111 -0
  1261. package/src/scripts/dev/write-file.ts +56 -0
  1262. package/src/scripts/dev-session.ts +96 -0
  1263. package/src/scripts/docs/index.ts +8 -0
  1264. package/src/scripts/docs/search.ts +274 -0
  1265. package/src/scripts/docs/source-search.ts +363 -0
  1266. package/src/scripts/index.ts +15 -0
  1267. package/src/scripts/manage-agent-loop-settings.ts +84 -0
  1268. package/src/scripts/parse-args.ts +46 -0
  1269. package/src/scripts/resources/delete-memory.ts +67 -0
  1270. package/src/scripts/resources/delete.ts +69 -0
  1271. package/src/scripts/resources/effective.ts +71 -0
  1272. package/src/scripts/resources/index.ts +18 -0
  1273. package/src/scripts/resources/list.ts +103 -0
  1274. package/src/scripts/resources/migrate-learnings.ts +40 -0
  1275. package/src/scripts/resources/read.ts +107 -0
  1276. package/src/scripts/resources/save-memory.ts +99 -0
  1277. package/src/scripts/resources/write.ts +158 -0
  1278. package/src/scripts/runner.ts +339 -0
  1279. package/src/scripts/utils.ts +130 -0
  1280. package/src/search/index.ts +413 -0
  1281. package/src/search-utils/index.ts +112 -0
  1282. package/src/secrets/crypto.ts +228 -0
  1283. package/src/secrets/index.ts +65 -0
  1284. package/src/secrets/onboarding.ts +101 -0
  1285. package/src/secrets/register-framework-secrets.ts +228 -0
  1286. package/src/secrets/register.ts +129 -0
  1287. package/src/secrets/routes.ts +697 -0
  1288. package/src/secrets/schema.ts +52 -0
  1289. package/src/secrets/storage.ts +561 -0
  1290. package/src/secrets/substitution.ts +305 -0
  1291. package/src/server/__snapshots__/agent-chat-plugin.surface.spec.ts.snap +150 -0
  1292. package/src/server/action-change.ts +66 -0
  1293. package/src/server/action-discovery.ts +774 -0
  1294. package/src/server/action-routes.ts +608 -0
  1295. package/src/server/agent-access.ts +72 -0
  1296. package/src/server/agent-chat/action-filters-a2a.ts +339 -0
  1297. package/src/server/agent-chat/browser-team-tools.ts +510 -0
  1298. package/src/server/agent-chat/context-tools.ts +599 -0
  1299. package/src/server/agent-chat/framework-prompts.ts +467 -0
  1300. package/src/server/agent-chat/lazy-fs.ts +11 -0
  1301. package/src/server/agent-chat/mcp-glue.ts +91 -0
  1302. package/src/server/agent-chat/plugin-options.ts +379 -0
  1303. package/src/server/agent-chat/process-run-failure.ts +62 -0
  1304. package/src/server/agent-chat/prompt-resources.ts +1004 -0
  1305. package/src/server/agent-chat/recurring-jobs-runtime.ts +80 -0
  1306. package/src/server/agent-chat/request-surface.ts +71 -0
  1307. package/src/server/agent-chat/run-code-tools.ts +67 -0
  1308. package/src/server/agent-chat/script-entries.ts +796 -0
  1309. package/src/server/agent-chat/shared-thread.ts +301 -0
  1310. package/src/server/agent-chat/skill-frontmatter.ts +41 -0
  1311. package/src/server/agent-chat-plugin.ts +5930 -0
  1312. package/src/server/agent-discovery.ts +706 -0
  1313. package/src/server/agent-engine-api-key-route.ts +236 -0
  1314. package/src/server/agent-run-context.ts +204 -0
  1315. package/src/server/agent-teams-run-queue.ts +344 -0
  1316. package/src/server/agent-teams.ts +2257 -0
  1317. package/src/server/agents-bundle.ts +464 -0
  1318. package/src/server/analytics.ts +105 -0
  1319. package/src/server/app-base-path.ts +79 -0
  1320. package/src/server/app-name.ts +53 -0
  1321. package/src/server/app-url.ts +184 -0
  1322. package/src/server/attachment-actions.ts +276 -0
  1323. package/src/server/attribution.ts +214 -0
  1324. package/src/server/auth-marketing.ts +260 -0
  1325. package/src/server/auth-plugin.ts +27 -0
  1326. package/src/server/auth.ts +3803 -0
  1327. package/src/server/better-auth-instance.ts +1197 -0
  1328. package/src/server/builder-browser.ts +1701 -0
  1329. package/src/server/builder-design-systems.ts +668 -0
  1330. package/src/server/builder-space.ts +176 -0
  1331. package/src/server/captcha.ts +63 -0
  1332. package/src/server/capture-error.ts +64 -0
  1333. package/src/server/cli-capture.ts +141 -0
  1334. package/src/server/collab-plugin.ts +391 -0
  1335. package/src/server/complete-text.ts +231 -0
  1336. package/src/server/cookie-namespace.ts +159 -0
  1337. package/src/server/core-routes-plugin.ts +4122 -0
  1338. package/src/server/cors-origins.ts +60 -0
  1339. package/src/server/create-server.ts +268 -0
  1340. package/src/server/credential-provider.ts +1202 -0
  1341. package/src/server/csrf.ts +229 -0
  1342. package/src/server/date-utils.ts +42 -0
  1343. package/src/server/deep-link.ts +119 -0
  1344. package/src/server/derived-secret.ts +32 -0
  1345. package/src/server/design-token-utils.ts +1032 -0
  1346. package/src/server/desktop-sso.ts +83 -0
  1347. package/src/server/edge.ts +69 -0
  1348. package/src/server/email-actions.ts +218 -0
  1349. package/src/server/email-template.ts +192 -0
  1350. package/src/server/email-templates.ts +148 -0
  1351. package/src/server/email.ts +219 -0
  1352. package/src/server/embed-route.ts +283 -0
  1353. package/src/server/embed-session.ts +805 -0
  1354. package/src/server/embedded.ts +252 -0
  1355. package/src/server/entry-server.tsx +154 -0
  1356. package/src/server/framework-request-handler.ts +848 -0
  1357. package/src/server/fusion-app.ts +447 -0
  1358. package/src/server/google-auth-mode.ts +34 -0
  1359. package/src/server/google-auth-plugin.ts +496 -0
  1360. package/src/server/google-oauth-credentials.ts +128 -0
  1361. package/src/server/google-oauth.ts +972 -0
  1362. package/src/server/google-realtime-session.ts +182 -0
  1363. package/src/server/h3-helpers.ts +174 -0
  1364. package/src/server/http-response-telemetry.ts +396 -0
  1365. package/src/server/identity-sso-store.ts +304 -0
  1366. package/src/server/identity-sso.ts +514 -0
  1367. package/src/server/index.ts +593 -0
  1368. package/src/server/missing-key.ts +36 -0
  1369. package/src/server/oauth-helpers.ts +44 -0
  1370. package/src/server/oauth-public-origin.ts +44 -0
  1371. package/src/server/oauth-return-url.ts +120 -0
  1372. package/src/server/og-fonts-data.ts +15 -0
  1373. package/src/server/og-fonts.ts +75 -0
  1374. package/src/server/onboarding-html.ts +4040 -0
  1375. package/src/server/open-route.ts +311 -0
  1376. package/src/server/org-admin.ts +28 -0
  1377. package/src/server/poll-events.ts +88 -0
  1378. package/src/server/poll.ts +1224 -0
  1379. package/src/server/prompts/framework-core-compact.ts +107 -0
  1380. package/src/server/prompts/framework-core.ts +143 -0
  1381. package/src/server/prompts/index.ts +16 -0
  1382. package/src/server/prompts/model-overlays.ts +54 -0
  1383. package/src/server/prompts/shared-rules.ts +104 -0
  1384. package/src/server/realtime-voice.ts +967 -0
  1385. package/src/server/recap-image-route.ts +242 -0
  1386. package/src/server/recap-image-store.ts +185 -0
  1387. package/src/server/request-context.ts +416 -0
  1388. package/src/server/request-origin.ts +67 -0
  1389. package/src/server/resources-plugin.ts +119 -0
  1390. package/src/server/schema-prompt.ts +429 -0
  1391. package/src/server/scoped-key-storage.ts +223 -0
  1392. package/src/server/security-headers.ts +170 -0
  1393. package/src/server/self-dispatch.ts +224 -0
  1394. package/src/server/sentry-config.ts +73 -0
  1395. package/src/server/sentry-plugin.ts +138 -0
  1396. package/src/server/sentry.ts +444 -0
  1397. package/src/server/short-lived-token.ts +170 -0
  1398. package/src/server/social-og-image.ts +454 -0
  1399. package/src/server/sse.ts +102 -0
  1400. package/src/server/ssr-handler.ts +466 -0
  1401. package/src/server/transcribe-voice.ts +1076 -0
  1402. package/src/server/voice-providers-status.ts +118 -0
  1403. package/src/server/workspace-oauth.ts +31 -0
  1404. package/src/server/workspace-provider-oauth.ts +970 -0
  1405. package/src/session-replay-iframe-protocol.ts +58 -0
  1406. package/src/settings/handlers.ts +44 -0
  1407. package/src/settings/index.ts +34 -0
  1408. package/src/settings/org-settings.ts +83 -0
  1409. package/src/settings/script-helpers.ts +24 -0
  1410. package/src/settings/store.ts +247 -0
  1411. package/src/settings/user-settings.ts +47 -0
  1412. package/src/setup-connections/index.ts +90 -0
  1413. package/src/setup-connections/onboarding.ts +47 -0
  1414. package/src/shared/agent-access.ts +112 -0
  1415. package/src/shared/agent-chat.ts +124 -0
  1416. package/src/shared/agent-env.ts +46 -0
  1417. package/src/shared/agent-readable-resource.ts +111 -0
  1418. package/src/shared/agent-sidebar-url.ts +39 -0
  1419. package/src/shared/cache-control.ts +25 -0
  1420. package/src/shared/cloudflare-globals.d.ts +34 -0
  1421. package/src/shared/context-xray.ts +172 -0
  1422. package/src/shared/embed-auth.ts +6 -0
  1423. package/src/shared/index.ts +83 -0
  1424. package/src/shared/llm-connection.ts +42 -0
  1425. package/src/shared/markdown-block-split.ts +129 -0
  1426. package/src/shared/mcp-connect-content.ts +130 -0
  1427. package/src/shared/mcp-embed-headers.ts +175 -0
  1428. package/src/shared/mcp-integration-config.ts +101 -0
  1429. package/src/shared/merge-by-id.ts +14 -0
  1430. package/src/shared/oauth-state.ts +39 -0
  1431. package/src/shared/reasoning-effort.ts +228 -0
  1432. package/src/shared/route-warmup-config.ts +128 -0
  1433. package/src/shared/runtime.ts +31 -0
  1434. package/src/shared/social-meta.ts +82 -0
  1435. package/src/shared/streaming-text-smoothing.ts +184 -0
  1436. package/src/shared/truncate.ts +13 -0
  1437. package/src/shared/workspace-app-audience.ts +177 -0
  1438. package/src/shared/workspace-app-id.ts +54 -0
  1439. package/src/sharing/access.ts +585 -0
  1440. package/src/sharing/actions/create-agent-resource-link.ts +91 -0
  1441. package/src/sharing/actions/extension-change.ts +22 -0
  1442. package/src/sharing/actions/list-resource-shares.ts +93 -0
  1443. package/src/sharing/actions/set-resource-visibility.ts +91 -0
  1444. package/src/sharing/actions/share-resource.ts +322 -0
  1445. package/src/sharing/actions/unshare-resource.ts +72 -0
  1446. package/src/sharing/index.ts +35 -0
  1447. package/src/sharing/registry.ts +201 -0
  1448. package/src/sharing/schema.ts +99 -0
  1449. package/src/styles/agent-conversation.css +766 -0
  1450. package/src/styles/agent-native.css +938 -0
  1451. package/src/styles/blocks.css +1717 -0
  1452. package/src/styles/chat-history-list.css +1 -0
  1453. package/src/styles/rich-markdown-editor.css +1 -0
  1454. package/src/tailwind.preset.ts +140 -0
  1455. package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +15 -13
  1456. package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  1457. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +9 -6
  1458. package/src/templates/chat/AGENTS.md +3 -2
  1459. package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +15 -13
  1460. package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  1461. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +9 -6
  1462. package/src/templates/default/AGENTS.md +6 -5
  1463. package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +15 -13
  1464. package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  1465. package/src/templates/headless/AGENTS.md +5 -4
  1466. package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +15 -13
  1467. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +3 -2
  1468. package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +63 -20
  1469. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +9 -6
  1470. package/src/templates/workspace-core/AGENTS.md +4 -4
  1471. package/src/templates/workspace-root/AGENTS.md +4 -4
  1472. package/src/terminal/cli-registry.ts +57 -0
  1473. package/src/terminal/index.ts +22 -0
  1474. package/src/terminal/pty-server.ts +389 -0
  1475. package/src/terminal/terminal-plugin.ts +265 -0
  1476. package/src/testing.ts +23 -0
  1477. package/src/tracking/index.ts +10 -0
  1478. package/src/tracking/providers.ts +422 -0
  1479. package/src/tracking/registry.ts +102 -0
  1480. package/src/tracking/route.ts +108 -0
  1481. package/src/tracking/types.ts +16 -0
  1482. package/src/transcription/builder-transcription.ts +118 -0
  1483. package/src/triggers/actions/list-automations.ts +99 -0
  1484. package/src/triggers/actions/manage-automation.ts +78 -0
  1485. package/src/triggers/actions.ts +333 -0
  1486. package/src/triggers/condition-evaluator.ts +163 -0
  1487. package/src/triggers/dispatcher.ts +536 -0
  1488. package/src/triggers/index.ts +13 -0
  1489. package/src/triggers/routes.ts +322 -0
  1490. package/src/triggers/types.ts +42 -0
  1491. package/src/types/pglite.d.ts +26 -0
  1492. package/src/usage/store.ts +698 -0
  1493. package/src/vite/action-types-plugin.ts +481 -0
  1494. package/src/vite/agent-web-plugin.ts +78 -0
  1495. package/src/vite/agents-bundle-plugin.ts +185 -0
  1496. package/src/vite/client.ts +3039 -0
  1497. package/src/vite/index.ts +21 -0
  1498. package/src/voice/index.ts +18 -0
  1499. package/src/voice/voice-cleanup-prompt.ts +38 -0
  1500. package/src/voice/voice-context.ts +217 -0
  1501. package/src/voice/voice-replacements.ts +75 -0
  1502. package/src/workspace-connections/credentials.ts +603 -0
  1503. package/src/workspace-connections/index.ts +72 -0
  1504. package/src/workspace-connections/lifecycle.ts +43 -0
  1505. package/src/workspace-connections/store.ts +1943 -0
  1506. package/src/workspace-files/index.ts +18 -0
  1507. package/src/workspace-files/store.ts +339 -0
  1508. package/src/workspace-files/tool.ts +266 -0
@@ -0,0 +1,1217 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { execSync, spawn } from "child_process";
4
+ import fs from "fs";
5
+ import { createRequire } from "module";
6
+ import path from "path";
7
+ import { fileURLToPath } from "url";
8
+
9
+ import * as Sentry from "@sentry/node";
10
+
11
+ import { resolveDeployPostBuildInvocation } from "./deploy-build.js";
12
+
13
+ // Resolve version once at module scope — used by both --version and --help
14
+ let _version = "unknown";
15
+ try {
16
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
+ // dist/cli/index.js → ../../package.json
18
+ const pkg = JSON.parse(
19
+ fs.readFileSync(path.resolve(__dirname, "../../package.json"), "utf-8"),
20
+ );
21
+ _version = pkg.version;
22
+ } catch {}
23
+
24
+ // Fail fast on unsupported Node versions. `engines.node: ">=22"` is only
25
+ // advisory — npx/pnpm merely warn — so without this an older Node (18/20)
26
+ // first fails deep inside a scaffold dynamic import with a cryptic
27
+ // ERR_MODULE / syntax error that `handleScaffoldImportError` misreports as a
28
+ // corrupt npx cache. A clear up-front message saves that whole detour.
29
+ const REQUIRED_NODE_MAJOR = 22;
30
+ const _nodeMajor = Number(process.versions.node.split(".")[0]);
31
+ if (Number.isFinite(_nodeMajor) && _nodeMajor < REQUIRED_NODE_MAJOR) {
32
+ console.error(
33
+ `agent-native requires Node.js ${REQUIRED_NODE_MAJOR} or newer, but you're on Node ${process.versions.node}.\n` +
34
+ `Upgrade Node (https://nodejs.org) and re-run. With nvm: \`nvm install ${REQUIRED_NODE_MAJOR}\`.`,
35
+ );
36
+ process.exit(1);
37
+ }
38
+
39
+ /**
40
+ * Build a redacted "command" tag from process.argv. Strips the value that
41
+ * follows any --token / --key / --secret / --password / --api-key flag so
42
+ * we don't ship developer secrets to Sentry alongside the crash.
43
+ *
44
+ * Supports both `--token foo` (separate argv item) and `--token=foo`
45
+ * (combined argv item) forms.
46
+ */
47
+ const SECRET_FLAG_RE = /^--?(token|key|secret|password|api[_-]?key)$/i;
48
+ const SECRET_FLAG_EQ_RE =
49
+ /^(--?(token|key|secret|password|api[_-]?key))=(.*)$/i;
50
+ function buildRedactedCommandTag(argv: string[]): string {
51
+ const out: string[] = [];
52
+ for (let i = 0; i < argv.length; i++) {
53
+ const a = argv[i];
54
+ if (SECRET_FLAG_RE.test(a)) {
55
+ out.push(a);
56
+ // Consume the next argv item as the secret value
57
+ if (i + 1 < argv.length) {
58
+ out.push("<redacted>");
59
+ i++;
60
+ }
61
+ continue;
62
+ }
63
+ const m = a.match(SECRET_FLAG_EQ_RE);
64
+ if (m) {
65
+ out.push(`${m[1]}=<redacted>`);
66
+ continue;
67
+ }
68
+ out.push(a);
69
+ }
70
+ return out.join(" ");
71
+ }
72
+
73
+ Sentry.init({
74
+ dsn: "https://0d384e9eff2f6542af468b92769f2f5b@o117565.ingest.us.sentry.io/4511270386466816",
75
+ release: `agent-native-cli@${_version}`,
76
+ // Sentry's Http integration wraps outgoing fetch in a way that breaks the
77
+ // hosted Plan MCP route negotiation used by recap CI smoke checks.
78
+ integrations: (integrations) =>
79
+ integrations.filter((integration) => integration.name !== "Http"),
80
+ // sendDefaultPii MUST stay false — the CLI runs in third-party developer
81
+ // environments and we never want to ship request headers, IPs, cookies,
82
+ // or process env contents to Sentry without explicit consent.
83
+ sendDefaultPii: false,
84
+ beforeSend(event) {
85
+ // Drop expected user-input rejections (validateRepoName, etc.) so they
86
+ // don't pollute Sentry with non-bug noise.
87
+ const exceptionType = event.exception?.values?.[0]?.type;
88
+ if (
89
+ exceptionType === "ValidationError" ||
90
+ event.tags?.handled === "validation"
91
+ ) {
92
+ return null;
93
+ }
94
+
95
+ // Defense in depth: strip any sensitive fields that may have been
96
+ // attached to the event despite sendDefaultPii: false (e.g. integrations
97
+ // that capture request metadata).
98
+ if (event.request) {
99
+ if (event.request.headers) {
100
+ const headers = event.request.headers as Record<string, string>;
101
+ for (const k of Object.keys(headers)) {
102
+ const lk = k.toLowerCase();
103
+ if (
104
+ lk === "cookie" ||
105
+ lk === "authorization" ||
106
+ lk === "set-cookie" ||
107
+ lk === "proxy-authorization"
108
+ ) {
109
+ delete headers[k];
110
+ }
111
+ }
112
+ }
113
+ // Cookies are also exposed via event.request.cookies as a separate field
114
+ delete (event.request as Record<string, unknown>).cookies;
115
+ }
116
+ // Keep user info that was explicitly set via Sentry.setUser (id/email)
117
+ // so we can attribute crashes back to the operator. Always strip
118
+ // ip_address — the CLI runs on third-party machines and the IP is auto-
119
+ // collected without consent. If only auto-collected fields remain,
120
+ // drop the user object entirely.
121
+ if (event.user) {
122
+ const user = event.user as Record<string, unknown>;
123
+ delete user.ip_address;
124
+ const hasIdentity =
125
+ typeof user.id === "string" ||
126
+ typeof user.email === "string" ||
127
+ typeof user.username === "string";
128
+ if (!hasIdentity) {
129
+ delete event.user;
130
+ }
131
+ }
132
+ // Sentry's contexts can carry process.env snapshots — strip env-shaped
133
+ // contexts so we don't leak deployment secrets.
134
+ if (event.contexts && typeof event.contexts === "object") {
135
+ delete (event.contexts as Record<string, unknown>).runtime_env;
136
+ }
137
+
138
+ event.tags = {
139
+ ...event.tags,
140
+ // Build the command tag from process.argv with secrets redacted so
141
+ // `agent-native ... --token foo` doesn't leak `foo` to Sentry.
142
+ command: buildRedactedCommandTag(process.argv.slice(2)),
143
+ subcommand: process.argv[2] ?? "none",
144
+ nodeVersion: process.version,
145
+ platform: process.platform,
146
+ };
147
+ return event;
148
+ },
149
+ });
150
+
151
+ // Identify the operator so future CLI errors carry spaceId / builderUserId
152
+ // that we can map back to a real Builder user. The CLI doesn't have a real
153
+ // email today — only the env-managed identifiers from the workspace's .env.
154
+ {
155
+ const builderUserId = process.env.BUILDER_USER_ID;
156
+ const builderPublicKey = process.env.BUILDER_PUBLIC_KEY;
157
+ if (builderUserId) {
158
+ Sentry.setUser({ id: builderUserId });
159
+ Sentry.setTag("builderUserId", builderUserId);
160
+ }
161
+ if (builderPublicKey) {
162
+ Sentry.setTag("spaceId", builderPublicKey);
163
+ }
164
+ }
165
+
166
+ const FEEDBACK_URL =
167
+ "https://forms.agent-native.com/f/agent-native-feedback/_16ewV?source=cli";
168
+ const BUGS_URL = "https://github.com/BuilderIO/agent-native/issues";
169
+
170
+ const command = process.argv[2];
171
+ // Filter out bare "--" separators that pnpm inserts between its args and script args
172
+ const args = process.argv.slice(3).filter((a) => a !== "--");
173
+
174
+ function parseScaffoldArgs(argv: string[]): {
175
+ name?: string;
176
+ template?: string;
177
+ standalone: boolean;
178
+ headless: boolean;
179
+ } {
180
+ let name: string | undefined;
181
+ let template: string | undefined;
182
+ let standalone = false;
183
+ let headless = false;
184
+
185
+ for (let i = 0; i < argv.length; i++) {
186
+ const arg = argv[i];
187
+ if (arg === "--template" && argv[i + 1]) {
188
+ template = argv[++i];
189
+ } else if (arg.startsWith("--template=")) {
190
+ template = arg.slice("--template=".length);
191
+ } else if (arg === "--standalone") {
192
+ standalone = true;
193
+ } else if (arg === "--headless") {
194
+ headless = true;
195
+ } else if (!arg.startsWith("-") && !name) {
196
+ name = arg;
197
+ }
198
+ }
199
+
200
+ return { name, template, standalone, headless };
201
+ }
202
+
203
+ // Track CLI usage (best-effort, non-blocking)
204
+ function trackCli(event: string, props?: Record<string, unknown>): void {
205
+ try {
206
+ import("../tracking/registry.js").then((m) => {
207
+ m.track(event, { command, ...props });
208
+ });
209
+ import("../tracking/providers.js").then((m) =>
210
+ m.registerBuiltinProviders(),
211
+ );
212
+ } catch {}
213
+ }
214
+
215
+ // Global error handler — show feedback link on unhandled crashes
216
+ process.on("uncaughtException", (err) => {
217
+ console.error(`\n Unexpected error: ${err.message}\n`);
218
+ console.error(` Report this bug: ${BUGS_URL}`);
219
+ console.error(` Send feedback: ${FEEDBACK_URL}\n`);
220
+ trackCli("cli.crash", { error: err.message });
221
+ Sentry.captureException(err);
222
+ Sentry.flush(2000).finally(() => process.exit(1));
223
+ });
224
+
225
+ process.on("unhandledRejection", (reason: any) => {
226
+ console.error(`\n Unhandled error: ${reason?.message ?? reason}\n`);
227
+ console.error(` Report this bug: ${BUGS_URL}`);
228
+ console.error(` Send feedback: ${FEEDBACK_URL}\n`);
229
+ trackCli("cli.crash", { error: reason?.message ?? String(reason) });
230
+ Sentry.captureException(reason);
231
+ Sentry.flush(2000).finally(() => process.exit(1));
232
+ });
233
+
234
+ // Surface a self-heal hint when an interrupted `npx @agent-native/core@latest ...`
235
+ // leaves a half-extracted package in the npx cache and a follow-up run fails
236
+ // to load one of our own sub-modules.
237
+ function handleScaffoldImportError(err: any): never {
238
+ const msg = err?.message ?? String(err);
239
+ const looksLikeCorruptCache =
240
+ err?.code === "ERR_MODULE_NOT_FOUND" ||
241
+ err?.code === "MODULE_NOT_FOUND" ||
242
+ err?.code === "ENOENT" ||
243
+ /Cannot find module|tarball|integrity|EINTEGRITY|corrupt|truncated/i.test(
244
+ msg,
245
+ );
246
+ if (looksLikeCorruptCache) {
247
+ console.error(
248
+ `\n Failed to load the scaffolder. This usually means an earlier\n \`npx\` run was interrupted and left a corrupt cache.\n\n Clear the npx cache and try again:\n rm -rf ~/.npm/_npx\n npx @agent-native/core@latest create\n\n Original error: ${msg}\n`,
249
+ );
250
+ } else {
251
+ console.error(`\n Failed to load the scaffolder: ${msg}\n`);
252
+ }
253
+ trackCli("cli.scaffold.import_error", { error: msg });
254
+ Sentry.captureException(err);
255
+ Sentry.flush(2000).finally(() => process.exit(1));
256
+ throw err;
257
+ }
258
+
259
+ function findBinUpwards(binName: string): string | undefined {
260
+ let dir = process.cwd();
261
+ for (let i = 0; i < 20; i++) {
262
+ const candidate = path.join(dir, "node_modules", ".bin", binName);
263
+ if (fs.existsSync(candidate)) return candidate;
264
+ const parent = path.dirname(dir);
265
+ if (parent === dir) break;
266
+ dir = parent;
267
+ }
268
+ return undefined;
269
+ }
270
+
271
+ function findViteBin(): string {
272
+ return findBinUpwards("vite") ?? "vite";
273
+ }
274
+
275
+ function findTsxBin(): string {
276
+ const localTsx = path.resolve("node_modules/.bin/tsx");
277
+ if (fs.existsSync(localTsx)) return localTsx;
278
+ return "tsx";
279
+ }
280
+
281
+ function findTypeScriptCompilerBin(): string {
282
+ const localTsc = path.resolve("node_modules/.bin/tsc");
283
+ if (fs.existsSync(localTsc)) return localTsc;
284
+
285
+ // Prefer TypeScript 7's tsc; fall back to legacy tsgo if present.
286
+ const localTsgo = path.resolve("node_modules/.bin/tsgo");
287
+ if (fs.existsSync(localTsgo)) return localTsgo;
288
+
289
+ return "tsc";
290
+ }
291
+
292
+ function findReactRouterBin(): string {
293
+ return findBinUpwards("react-router") ?? "react-router";
294
+ }
295
+
296
+ /** Check if the project uses React Router framework mode (has react-router.config.ts) */
297
+ function isReactRouterFramework(): boolean {
298
+ return (
299
+ fs.existsSync(path.resolve("react-router.config.ts")) ||
300
+ fs.existsSync(path.resolve("react-router.config.js"))
301
+ );
302
+ }
303
+
304
+ function canResolveFromProject(specifier: string): boolean {
305
+ try {
306
+ const requireFromProject = createRequire(path.resolve("package.json"));
307
+ requireFromProject.resolve(specifier);
308
+ return true;
309
+ } catch {
310
+ return false;
311
+ }
312
+ }
313
+
314
+ function projectUsesFsRoutes(): boolean {
315
+ for (const file of [
316
+ path.resolve("app/routes.ts"),
317
+ path.resolve("app/routes.tsx"),
318
+ path.resolve("routes.ts"),
319
+ path.resolve("routes.tsx"),
320
+ ]) {
321
+ try {
322
+ if (
323
+ fs.existsSync(file) &&
324
+ fs.readFileSync(file, "utf-8").includes("@react-router/fs-routes")
325
+ ) {
326
+ return true;
327
+ }
328
+ } catch {}
329
+ }
330
+ return false;
331
+ }
332
+
333
+ function validateReactRouterBuildDependencies(): void {
334
+ const required: Array<[packageName: string, specifier: string]> = [
335
+ ["react-router", "react-router"],
336
+ ["@react-router/dev", "@react-router/dev/vite"],
337
+ ["vite", "vite"],
338
+ ];
339
+ if (projectUsesFsRoutes()) {
340
+ required.push(["@react-router/fs-routes", "@react-router/fs-routes"]);
341
+ }
342
+
343
+ const missing = required
344
+ .filter(([, specifier]) => !canResolveFromProject(specifier))
345
+ .map(([packageName]) => packageName);
346
+
347
+ if (missing.length === 0) return;
348
+
349
+ const packageManager = fs.existsSync(path.resolve("pnpm-lock.yaml"))
350
+ ? "pnpm"
351
+ : fs.existsSync(path.resolve("yarn.lock"))
352
+ ? "yarn"
353
+ : "npm";
354
+ const installCommand =
355
+ packageManager === "pnpm"
356
+ ? `pnpm add ${missing.join(" ")}`
357
+ : packageManager === "yarn"
358
+ ? `yarn add ${missing.join(" ")}`
359
+ : `npm install ${missing.join(" ")}`;
360
+
361
+ console.error(
362
+ [
363
+ "React Router framework mode requires build packages that are not installed from this app root.",
364
+ `Missing: ${missing.join(", ")}`,
365
+ `Install them with: ${installCommand}`,
366
+ ].join("\n"),
367
+ );
368
+ process.exit(1);
369
+ }
370
+
371
+ function isWorkspaceRoot(): boolean {
372
+ const pkgPath = path.resolve("package.json");
373
+ if (!fs.existsSync(pkgPath)) return false;
374
+ try {
375
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
376
+ return (
377
+ typeof pkg?.["agent-native"]?.workspaceCore === "string" &&
378
+ fs.existsSync(path.resolve("apps"))
379
+ );
380
+ } catch {
381
+ return false;
382
+ }
383
+ }
384
+
385
+ function run(
386
+ cmd: string,
387
+ cmdArgs: string[],
388
+ opts?: { stdio?: "inherit" | "pipe" },
389
+ ) {
390
+ const child = spawn(cmd, cmdArgs, {
391
+ stdio: opts?.stdio ?? "inherit",
392
+ shell: process.platform === "win32",
393
+ env: process.env,
394
+ });
395
+ child.on("exit", (code) => process.exit(code ?? 0));
396
+ // Forward signals to child so Cmd+C doesn't leave zombie processes holding ports
397
+ for (const sig of ["SIGINT", "SIGTERM", "SIGHUP"] as const) {
398
+ process.on(sig, () => {
399
+ child.kill(sig);
400
+ setTimeout(() => {
401
+ try {
402
+ child.kill("SIGKILL");
403
+ } catch {}
404
+ process.exit(1);
405
+ }, 5000).unref();
406
+ });
407
+ }
408
+ return child;
409
+ }
410
+
411
+ /**
412
+ * Walk up from `cwd` and try to figure out which template / app this build
413
+ * is running for. We look for two patterns:
414
+ *
415
+ * - `templates/<name>/...` — building inside the framework monorepo
416
+ * - `apps/<name>/...` — building inside a scaffolded workspace
417
+ *
418
+ * Both, neither, or one may match. Used purely as Sentry tags so we can
419
+ * filter the noisy "Command failed: react-router build" issues by template.
420
+ */
421
+ function inferBuildContext(cwd: string): {
422
+ template?: string;
423
+ app?: string;
424
+ } {
425
+ const segs = cwd.split(path.sep);
426
+ let template: string | undefined;
427
+ let app: string | undefined;
428
+ for (let i = 0; i < segs.length - 1; i++) {
429
+ if (segs[i] === "templates" && segs[i + 1] && !segs[i + 1].startsWith("."))
430
+ template = segs[i + 1];
431
+ if (segs[i] === "apps" && segs[i + 1] && !segs[i + 1].startsWith("."))
432
+ app = segs[i + 1];
433
+ }
434
+ return { template, app };
435
+ }
436
+
437
+ /**
438
+ * Run a build subcommand, streaming its stdout/stderr to the user's terminal
439
+ * in real time while also capturing bounded tails for Sentry. On non-zero
440
+ * exit we report a structured event (template, app, exit code, stderr/stdout
441
+ * tails) and exit with the child's code. We deliberately do NOT throw — the
442
+ * global uncaughtException handler would re-capture with a generic
443
+ * "Error: Command failed" title, collapsing every template's failure into
444
+ * one issue (which is exactly what we're trying to fix here).
445
+ */
446
+ function runBuildStep(
447
+ cmd: string,
448
+ cmdArgs: string[],
449
+ opts: { label: string; env?: NodeJS.ProcessEnv },
450
+ ): Promise<void> {
451
+ return new Promise<void>((resolve) => {
452
+ const STDERR_TAIL_BYTES = 8000;
453
+ const STDOUT_TAIL_BYTES = 4000;
454
+ let stderrBuf = "";
455
+ let stdoutBuf = "";
456
+
457
+ const child = spawn(cmd, cmdArgs, {
458
+ stdio: ["inherit", "pipe", "pipe"],
459
+ shell: process.platform === "win32",
460
+ env: opts.env ?? process.env,
461
+ });
462
+
463
+ child.stdout?.on("data", (chunk: Buffer) => {
464
+ process.stdout.write(chunk);
465
+ const next = stdoutBuf + chunk.toString("utf-8");
466
+ stdoutBuf =
467
+ next.length > STDOUT_TAIL_BYTES ? next.slice(-STDOUT_TAIL_BYTES) : next;
468
+ });
469
+ child.stderr?.on("data", (chunk: Buffer) => {
470
+ process.stderr.write(chunk);
471
+ const next = stderrBuf + chunk.toString("utf-8");
472
+ stderrBuf =
473
+ next.length > STDERR_TAIL_BYTES ? next.slice(-STDERR_TAIL_BYTES) : next;
474
+ });
475
+
476
+ child.on("error", (err) => {
477
+ // Failure to spawn (ENOENT, etc.).
478
+ const cwd = process.cwd();
479
+ const { template, app } = inferBuildContext(cwd);
480
+ Sentry.captureException(err, {
481
+ tags: {
482
+ buildStep: opts.label,
483
+ ...(template ? { template } : {}),
484
+ ...(app ? { app } : {}),
485
+ },
486
+ extra: {
487
+ command: `${cmd} ${cmdArgs.join(" ")}`,
488
+ cwd,
489
+ stage: "spawn",
490
+ },
491
+ });
492
+ Sentry.flush(2000).finally(() => process.exit(1));
493
+ });
494
+
495
+ child.on("exit", (code, signal) => {
496
+ const exitCode = code ?? (signal ? 1 : 0);
497
+ if (exitCode === 0) {
498
+ resolve();
499
+ return;
500
+ }
501
+ const cwd = process.cwd();
502
+ const { template, app } = inferBuildContext(cwd);
503
+ const childCommand = `${cmd} ${cmdArgs.join(" ")}`;
504
+ const err = new Error(
505
+ `Build step "${opts.label}" failed with exit code ${exitCode}` +
506
+ (template ? ` (template=${template})` : "") +
507
+ (app ? ` (app=${app})` : ""),
508
+ );
509
+ Sentry.captureException(err, {
510
+ tags: {
511
+ buildStep: opts.label,
512
+ ...(template ? { template } : {}),
513
+ ...(app ? { app } : {}),
514
+ },
515
+ extra: {
516
+ command: childCommand,
517
+ cwd,
518
+ exitCode,
519
+ signal: signal ?? null,
520
+ stderrTail: stderrBuf,
521
+ stdoutTail: stdoutBuf,
522
+ },
523
+ });
524
+ // Don't throw — see comment on runBuildStep above.
525
+ Sentry.flush(2000).finally(() => process.exit(exitCode));
526
+ });
527
+ });
528
+ }
529
+
530
+ trackCli("cli.run");
531
+
532
+ switch (command) {
533
+ case "dev": {
534
+ if (isWorkspaceRoot()) {
535
+ import("./workspace-dev.js")
536
+ .then((m) => m.runWorkspaceDev({ args }))
537
+ .catch((err) => {
538
+ console.error(err?.message ?? err);
539
+ process.exit(1);
540
+ });
541
+ break;
542
+ }
543
+ const vite = findViteBin();
544
+ run(vite, args);
545
+ break;
546
+ }
547
+
548
+ case "workspace-dev": {
549
+ import("./workspace-dev.js")
550
+ .then((m) => m.runWorkspaceDev({ args }))
551
+ .catch((err) => {
552
+ console.error(err?.message ?? err);
553
+ process.exit(1);
554
+ });
555
+ break;
556
+ }
557
+
558
+ case "build": {
559
+ // React Router framework mode uses `react-router build` which
560
+ // internally runs `vite build` with proper environment orchestration.
561
+ // Legacy SPA mode uses `vite build` directly.
562
+ //
563
+ // Each step uses runBuildStep so that on failure we get a Sentry event
564
+ // tagged with template/app and including stderr/stdout tails. If the
565
+ // child exits non-zero, runBuildStep calls process.exit itself; the
566
+ // continuation only runs on success.
567
+ (async () => {
568
+ // Doctor pre-step: scans app source for the security-critical guard
569
+ // invariants (see `agent-native doctor --help`). Warn-only by
570
+ // default — prints findings to stderr and always continues. Only
571
+ // fails the build when `agent-native build --strict` was passed or
572
+ // `agent-native.json` sets `{ "doctor": { "failOnBuild": true } }`.
573
+ try {
574
+ const { runDoctorBuildHook } = await import("./doctor.js");
575
+ const hook = await runDoctorBuildHook({
576
+ cwd: process.cwd(),
577
+ strict: args.includes("--strict"),
578
+ });
579
+ if (!hook.ok) {
580
+ console.error(
581
+ "\nBuild aborted by `agent-native doctor` (see findings above).",
582
+ );
583
+ process.exit(1);
584
+ }
585
+ } catch (err) {
586
+ console.warn(
587
+ `[doctor] pre-build scan failed to run (continuing): ${err instanceof Error ? err.message : String(err)}`,
588
+ );
589
+ }
590
+
591
+ if (isReactRouterFramework()) {
592
+ validateReactRouterBuildDependencies();
593
+ const rr = findReactRouterBin();
594
+ console.log("Building (React Router framework mode)...");
595
+ await runBuildStep(rr, ["build"], { label: "react-router-build" });
596
+ } else {
597
+ const vite = findViteBin();
598
+ console.log("Building...");
599
+ await runBuildStep(vite, ["build"], { label: "vite-build" });
600
+ }
601
+
602
+ // Post-build: framework-mode apps also need a Nitro server bundle for
603
+ // `agent-native start` and for serverless presets.
604
+ if (isReactRouterFramework()) {
605
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
606
+ const deployBuild = resolveDeployPostBuildInvocation({
607
+ cliDir: __dirname,
608
+ findTsxBin,
609
+ });
610
+ if (deployBuild) {
611
+ await runBuildStep(deployBuild.command, deployBuild.args, {
612
+ label: "deploy-build",
613
+ env: process.env,
614
+ });
615
+ } else {
616
+ console.warn(
617
+ "[build] Deploy build script not found and no deploy preset is configured. Skipping post-build step.",
618
+ );
619
+ }
620
+ }
621
+
622
+ console.log("\nBuild complete.");
623
+ })().catch((err) => {
624
+ // runBuildStep handles its own failures and exits, so reaching here
625
+ // implies a programming error in the orchestration above. Capture
626
+ // and exit so the global unhandledRejection handler doesn't double-
627
+ // report with a generic title.
628
+ Sentry.captureException(err);
629
+ Sentry.flush(2000).finally(() => process.exit(1));
630
+ });
631
+ break;
632
+ }
633
+
634
+ case "start": {
635
+ // Like `next start` — runs Nitro production server
636
+ const serverEntry = path.resolve(".output/server/index.mjs");
637
+ if (!fs.existsSync(serverEntry)) {
638
+ console.error(
639
+ 'No production build found. Run "agent-native build" first.',
640
+ );
641
+ process.exit(1);
642
+ }
643
+ run("node", [serverEntry, ...args]);
644
+ break;
645
+ }
646
+
647
+ case "action": {
648
+ // Run an action from actions/ (or scripts/ for backwards compat)
649
+ const actionName = args[0];
650
+ if (!actionName) {
651
+ console.error(
652
+ `Usage: agent-native action <name> ['{"arg":"value"}'] [--args]`,
653
+ );
654
+ process.exit(1);
655
+ }
656
+ const tsxAction = findTsxBin();
657
+ // Try actions/run.ts first, fall back to scripts/run.ts
658
+ const actionsRun = path.resolve("actions/run.ts");
659
+ const scriptsRun = path.resolve("scripts/run.ts");
660
+ const runFile = fs.existsSync(actionsRun) ? actionsRun : scriptsRun;
661
+ run(tsxAction, [runFile, ...args]);
662
+ break;
663
+ }
664
+
665
+ case "agent": {
666
+ import("./agent.js")
667
+ .then(async (m) => {
668
+ const code = await m.runAgent(args);
669
+ if (code !== 0) process.exit(code);
670
+ })
671
+ .catch((err) => {
672
+ console.error(err?.message ?? err);
673
+ process.exit(1);
674
+ });
675
+ break;
676
+ }
677
+
678
+ case "script": {
679
+ // @deprecated — use `agent-native action` instead
680
+ const scriptName = args[0];
681
+ if (!scriptName) {
682
+ console.error("Usage: agent-native script <name> [--args]");
683
+ process.exit(1);
684
+ }
685
+ const tsx = findTsxBin();
686
+ // Try actions/run.ts first, fall back to scripts/run.ts
687
+ const actionsRunScript = path.resolve("actions/run.ts");
688
+ const scriptsRunScript = path.resolve("scripts/run.ts");
689
+ const runFileScript = fs.existsSync(actionsRunScript)
690
+ ? actionsRunScript
691
+ : scriptsRunScript;
692
+ run(tsx, [runFileScript, ...args]);
693
+ break;
694
+ }
695
+
696
+ case "typecheck": {
697
+ // Run TypeScript type checking
698
+ // React Router framework mode generates route types first
699
+ if (isReactRouterFramework()) {
700
+ validateReactRouterBuildDependencies();
701
+ const rr = findReactRouterBin();
702
+ try {
703
+ execSync(`${rr} typegen`, { stdio: "inherit" });
704
+ } catch {
705
+ // typegen may fail if routes aren't set up yet; continue to TypeScript.
706
+ }
707
+ }
708
+ run(findTypeScriptCompilerBin(), ["--noEmit", ...args]);
709
+ break;
710
+ }
711
+
712
+ case "create": {
713
+ // Defaults to creating a workspace with a multi-select template picker.
714
+ // Use --standalone for the old single-app flow.
715
+ // --template foo,bar Pre-select multiple templates in the picker
716
+ // --standalone Scaffold a single standalone app
717
+ const parsed = parseScaffoldArgs(args);
718
+ import("./create.js")
719
+ .then((m) =>
720
+ m.createApp(parsed.name, {
721
+ template: parsed.headless ? "headless" : parsed.template,
722
+ standalone: parsed.standalone,
723
+ }),
724
+ )
725
+ .catch(handleScaffoldImportError);
726
+ break;
727
+ }
728
+
729
+ case "invoke": {
730
+ import("./invoke.js")
731
+ .then(async (m) => {
732
+ const code = await m.runInvoke(args);
733
+ process.exit(code);
734
+ })
735
+ .catch((err) => {
736
+ console.error(err?.message ?? err);
737
+ process.exit(1);
738
+ });
739
+ break;
740
+ }
741
+
742
+ case "agents": {
743
+ import("./agents.js")
744
+ .then(async (m) => {
745
+ const code = await m.runAgents(args);
746
+ process.exit(code);
747
+ })
748
+ .catch((err) => {
749
+ console.error(err?.message ?? err);
750
+ process.exit(1);
751
+ });
752
+ break;
753
+ }
754
+
755
+ case "migrate": {
756
+ import("./migrate.js")
757
+ .then((m) => m.runMigrate(args))
758
+ .catch(handleScaffoldImportError);
759
+ break;
760
+ }
761
+
762
+ case "upgrade": {
763
+ // Bring an existing app/workspace to current @agent-native/* packages,
764
+ // refresh scaffold skills, and verify — without framework patches.
765
+ import("./upgrade.js")
766
+ .then(async (m) => {
767
+ const code = await m.runUpgrade(args);
768
+ process.exit(code);
769
+ })
770
+ .catch((err) => {
771
+ console.error(err?.message ?? err);
772
+ process.exit(1);
773
+ });
774
+ break;
775
+ }
776
+
777
+ case "doctor": {
778
+ // Scan app source for security-critical guard invariants (see
779
+ // `agent-native doctor --help`). For dependency-pin health, see
780
+ // `agent-native upgrade check` instead.
781
+ import("./doctor.js")
782
+ .then(async (m) => {
783
+ const code = await m.runDoctor(args);
784
+ process.exit(code);
785
+ })
786
+ .catch((err) => {
787
+ console.error(err?.message ?? err);
788
+ process.exit(1);
789
+ });
790
+ break;
791
+ }
792
+
793
+ case "code": {
794
+ import("./code.js")
795
+ .then((m) => m.runCode(args))
796
+ .catch(handleScaffoldImportError);
797
+ break;
798
+ }
799
+
800
+ case "mcp": {
801
+ // Connect external coding agents (Claude Code, Cowork, Codex) over MCP.
802
+ // `mcp serve` runs the stdio transport; install/uninstall/status/token
803
+ // manage client configs + the local token.
804
+ import("./mcp.js")
805
+ .then((m) => m.runMcp(args))
806
+ .catch((err) => {
807
+ console.error(err?.message ?? err);
808
+ process.exit(1);
809
+ });
810
+ break;
811
+ }
812
+
813
+ case "connect": {
814
+ // Wire your local coding agent to a DEPLOYED agent-native app via a
815
+ // browser device-code flow (no token copying). `--all` connects every
816
+ // first-party hosted app; `--token` is the no-browser fallback.
817
+ import("./connect.js")
818
+ .then(async (m) => {
819
+ await m.runConnect(args);
820
+ process.exit(process.exitCode ?? 0);
821
+ })
822
+ .catch((err) => {
823
+ console.error(err?.message ?? err);
824
+ process.exit(1);
825
+ });
826
+ break;
827
+ }
828
+
829
+ case "reconnect":
830
+ case "reauth": {
831
+ // Refresh an existing remote MCP auth/config entry without reinstalling
832
+ // app skills or running the broader connector setup path.
833
+ import("./connect.js")
834
+ .then((m) => m.runConnect(["reconnect", ...args]))
835
+ .catch((err) => {
836
+ console.error(err?.message ?? err);
837
+ process.exit(1);
838
+ });
839
+ break;
840
+ }
841
+
842
+ case "app-skill": {
843
+ // Package or install an agent-native app as a skill-backed MCP/app bundle.
844
+ import("./app-skill.js")
845
+ .then((m) => m.runAppSkill(args))
846
+ .catch((err) => {
847
+ console.error(err?.message ?? err);
848
+ process.exit(1);
849
+ });
850
+ break;
851
+ }
852
+
853
+ case "skills": {
854
+ // Friendly skill install surface. Wraps open skills installation plus MCP.
855
+ import("./skills.js")
856
+ .then((m) => m.runSkills(args))
857
+ .catch((err) => {
858
+ console.error(err?.message ?? err);
859
+ process.exit(1);
860
+ });
861
+ break;
862
+ }
863
+
864
+ case "content": {
865
+ import("./content-local.js")
866
+ .then(async (m) => {
867
+ const code = await m.runContentLocal(args);
868
+ process.exit(code);
869
+ })
870
+ .catch((err) => {
871
+ console.error(err?.message ?? err);
872
+ process.exit(1);
873
+ });
874
+ break;
875
+ }
876
+
877
+ case "visualize-repo": {
878
+ import("./visualize-repo.js")
879
+ .then(async (m) => {
880
+ const code = await m.runVisualizeRepo(args);
881
+ process.exit(code);
882
+ })
883
+ .catch((err) => {
884
+ console.error(err?.message ?? err);
885
+ process.exit(1);
886
+ });
887
+ break;
888
+ }
889
+
890
+ case "design": {
891
+ import("./design-connect.js")
892
+ .then(async (m) => {
893
+ const code = await m.runDesign(args);
894
+ process.exit(code);
895
+ })
896
+ .catch((err) => {
897
+ console.error(err?.message ?? err);
898
+ process.exit(1);
899
+ });
900
+ break;
901
+ }
902
+
903
+ case "recap": {
904
+ // PR visual recap helpers used by the GitHub Action. Promoted to the CLI
905
+ // so an installed repo's workflow can call `agent-native recap …` instead
906
+ // of copying helper scripts. Run `agent-native recap help` for the full
907
+ // subcommand list.
908
+ import("./recap.js")
909
+ .then((m) => m.runRecap(args))
910
+ .catch((err) => {
911
+ console.error(err?.message ?? err);
912
+ process.exit(1);
913
+ });
914
+ break;
915
+ }
916
+
917
+ case "plan": {
918
+ // Plan authoring helpers: local MDX preview plus a no-auth block catalog
919
+ // fetcher for text-only/local installs.
920
+ import("./plan-local.js")
921
+ .then((m) => m.runPlan(args))
922
+ .catch((err) => {
923
+ console.error(err?.message ?? err);
924
+ process.exit(1);
925
+ });
926
+ break;
927
+ }
928
+
929
+ case "create-workspace": {
930
+ // Deprecated alias for `create` (since workspace is now the default).
931
+ const parsed = parseScaffoldArgs(args);
932
+ import("./create-workspace.js")
933
+ .then((m) =>
934
+ m.createWorkspace({ name: parsed.name, template: parsed.template }),
935
+ )
936
+ .catch(handleScaffoldImportError);
937
+ break;
938
+ }
939
+
940
+ case "add-app": {
941
+ // Add one or more apps to the current workspace.
942
+ const parsed = parseScaffoldArgs(args);
943
+ import("./create.js")
944
+ .then((m) =>
945
+ m.addAppToWorkspace(parsed.name, { template: parsed.template }),
946
+ )
947
+ .catch(handleScaffoldImportError);
948
+ break;
949
+ }
950
+
951
+ case "deploy": {
952
+ // Build and deploy the entire workspace as one unit. Each app is served
953
+ // at /<app>/* under the same origin.
954
+ import("../deploy/workspace-deploy.js")
955
+ .then((m) => m.runWorkspaceDeploy({ args }))
956
+ .catch((err) => {
957
+ console.error("Deploy failed:", err?.message ?? err);
958
+ process.exit(1);
959
+ });
960
+ break;
961
+ }
962
+
963
+ case "setup-agents": {
964
+ import("./setup-agents.js").then((m) => m.runSetupAgents());
965
+ break;
966
+ }
967
+
968
+ case "info": {
969
+ // Print read-only info about an installable package (e.g. @agent-native/scheduling).
970
+ // Lists subpath exports, source paths in node_modules, and docs pointers.
971
+ import("./info.js").then((m) => m.runInfo(args[0]));
972
+ break;
973
+ }
974
+
975
+ case "add": {
976
+ // Blueprint installer (à la Flue's `flue add`): instead of scaffolding
977
+ // files, emit a curated Markdown integration blueprint to stdout so it can
978
+ // be piped into a coding agent — `agent-native add provider stripe | claude`.
979
+ // A URL instead of a name yields a generic research-and-integrate blueprint.
980
+ import("./add.js")
981
+ .then((m) => {
982
+ const code = m.runAdd(args);
983
+ process.exit(code);
984
+ })
985
+ .catch((err) => {
986
+ console.error(err?.message ?? err);
987
+ process.exit(1);
988
+ });
989
+ break;
990
+ }
991
+
992
+ case "package": {
993
+ import("./package-lifecycle.js")
994
+ .then(async (m) => {
995
+ const code = await m.runPackageLifecycle(args);
996
+ process.exit(code);
997
+ })
998
+ .catch((err) => {
999
+ console.error(err?.message ?? err);
1000
+ process.exit(1);
1001
+ });
1002
+ break;
1003
+ }
1004
+
1005
+ case "eject": {
1006
+ import("./eject.js")
1007
+ .then(async (m) => {
1008
+ const code = await m.runEject(args);
1009
+ process.exit(code);
1010
+ })
1011
+ .catch((err) => {
1012
+ console.error(err?.message ?? err);
1013
+ process.exit(1);
1014
+ });
1015
+ break;
1016
+ }
1017
+
1018
+ case "audit-agent-web": {
1019
+ import("./audit-agent-web.js")
1020
+ .then((m) => m.runAuditAgentWeb(args))
1021
+ .catch((err) => {
1022
+ console.error(err?.message ?? err);
1023
+ process.exit(1);
1024
+ });
1025
+ break;
1026
+ }
1027
+
1028
+ case "eval": {
1029
+ // Discover and run the app's evals (**/*.eval.ts, evals/*.ts), score the
1030
+ // agent's output, and exit non-zero if any eval falls below its threshold.
1031
+ // Doubles as a CI deploy gate. `--json` emits a machine-readable report.
1032
+ import("./eval.js")
1033
+ .then((m) => m.runEval(args))
1034
+ .catch((err) => {
1035
+ console.error(err?.message ?? err);
1036
+ process.exit(1);
1037
+ });
1038
+ break;
1039
+ }
1040
+
1041
+ case "changelog": {
1042
+ // Author and roll up the app's user-facing changelog (changeset-style
1043
+ // pending entry files → a dated CHANGELOG.md section).
1044
+ import("./changelog.js")
1045
+ .then(async (m) => {
1046
+ const code = await m.runChangelog(args);
1047
+ process.exit(code);
1048
+ })
1049
+ .catch((err) => {
1050
+ console.error(err?.message ?? err);
1051
+ process.exit(1);
1052
+ });
1053
+ break;
1054
+ }
1055
+
1056
+ case "--version":
1057
+ case "-v": {
1058
+ console.log(_version);
1059
+ break;
1060
+ }
1061
+
1062
+ case undefined:
1063
+ import("./code.js")
1064
+ .then((m) => m.runCode([]))
1065
+ .catch(handleScaffoldImportError);
1066
+ break;
1067
+
1068
+ case "--help":
1069
+ case "-h":
1070
+ console.log(`agent-native v${_version}
1071
+
1072
+ Usage:
1073
+ agent-native Launch Agent-Native Code workspace
1074
+ agent-native "fix tests" Start an Agent-Native Code coding session
1075
+ agent-native dev Start development server
1076
+ (or the workspace gateway at a workspace root)
1077
+ agent-native build Build for production (client + server)
1078
+ agent-native start Start production server
1079
+ agent-native action <name> Run an action from actions/
1080
+ agent-native agent "prompt" Run the app-agent loop once against local actions
1081
+ agent-native agents list List connected/discoverable agents
1082
+ agent-native invoke <app> "prompt"
1083
+ Call another agent-native app over A2A
1084
+ agent-native script <name> Run an action (deprecated alias for 'action')
1085
+ agent-native typecheck Run TypeScript type checking
1086
+ agent-native create [name] Scaffold a new agent-native workspace with a
1087
+ multi-select template picker. Use --standalone
1088
+ for a single-app scaffold.
1089
+ agent-native code Launch Agent-Native Code workspace. Type a task or
1090
+ use goals like /migrate and /audit.
1091
+ agent-native code serve Run the Agent-Native Code remote connector.
1092
+ agent-native mcp <cmd> Connect external coding agents over MCP.
1093
+ cmds: serve | install | uninstall | status |
1094
+ token (--client claude-code|codex|cowork|
1095
+ cursor|opencode|github-copilot)
1096
+ agent-native connect <url> Authenticate your coding agent to a DEPLOYED app.
1097
+ OAuth-capable clients (Claude Code) get a /mcp
1098
+ authenticate prompt; Codex / Cowork use the
1099
+ browser device-code flow. --all connects every
1100
+ first-party app; --token is the no-browser
1101
+ fallback. Usually run for you by 'skills add'.
1102
+ agent-native reconnect [url] Re-authenticate an existing MCP entry without
1103
+ reinstalling app skills/connectors.
1104
+ agent-native app-skill <cmd> Install, launch, or package app-backed skills.
1105
+ cmds: ensure | launch | pack
1106
+ agent-native skills add assets|content|design-exploration|visual-edit|visual-plan|visual-recap|context-xray
1107
+ Install the skill instructions, register the MCP
1108
+ connector, AND authenticate it in one step.
1109
+ --no-connect skips auth (run 'connect' later);
1110
+ non-interactive shells print the connect command.
1111
+ --with-github-action also writes the PR Visual
1112
+ Recap workflow into .github/workflows/.
1113
+ agent-native content local-files <file-or-folder>
1114
+ Connect a local docs/content folder to normal
1115
+ database-backed Content. Use --no-open, --port N,
1116
+ or --profile docs/no-bookkeeping as needed.
1117
+ agent-native design connect Start a localhost Design bridge for a running
1118
+ dev server. Use --url, --port, --root, or
1119
+ --json to print the route/source manifest.
1120
+ agent-native recap <cmd> PR visual recap setup and GitHub Action helpers.
1121
+ Run 'agent-native recap help' for subcommands.
1122
+ agent-native plan <cmd> Plan helpers for block catalogs and local files.
1123
+ cmds: blocks | local init | local check |
1124
+ local serve | local verify | local preview
1125
+ agent-native migrate <source> Create an Agent-Native Code /migrate session, or use
1126
+ --emit for a portable own-agent dossier.
1127
+ agent-native upgrade Bring an existing app/workspace to current
1128
+ @agent-native/* packages, refresh scaffold
1129
+ skills, and typecheck. Prefer this over
1130
+ patching core/dispatch. 'upgrade check' is
1131
+ doctor-only.
1132
+ agent-native add-app [name] Add one or more apps to the current workspace
1133
+ agent-native workspace-dev Start the multi-app workspace gateway
1134
+ agent-native deploy Build & deploy every app in the workspace to
1135
+ a single origin (your-agents.com/<app>/*)
1136
+ agent-native setup-agents Create symlinks for all agent tools
1137
+ agent-native info <pkg> Print info about an installed package:
1138
+ exports, source paths, and docs links.
1139
+ agent-native add <kind> <name|url>
1140
+ Emit an integration blueprint to stdout for your
1141
+ coding agent to apply. Pipe it in:
1142
+ 'agent-native add provider stripe | claude'.
1143
+ kinds: provider | channel | sandbox | action.
1144
+ Pass a URL instead of a name for a generic
1145
+ research-and-integrate blueprint. --list to
1146
+ browse available blueprints.
1147
+ agent-native package <cmd> <package>
1148
+ Manifest package lifecycle: inspect | add | eject.
1149
+ add/eject are dry-run unless --apply; --json emits
1150
+ a machine-readable compatibility/change report.
1151
+ agent-native eject <unit> Copy a supported feature into app-owned source.
1152
+ --list discovers units; inspect/diff are read-only;
1153
+ eject/restore are dry-run unless --apply.
1154
+ agent-native changelog <cmd> Author the app's user-facing changelog.
1155
+ cmds: add "<summary>" [--type added|fixed|...] |
1156
+ release | list. Pending entries live in
1157
+ changelog/; 'release' rolls them into CHANGELOG.md.
1158
+ agent-native audit-agent-web Audit a public URL for agent-readable surfaces
1159
+ agent-native eval [pattern] Run the app's evals (**/*.eval.ts, evals/*.ts)
1160
+ and exit non-zero if any scores below its
1161
+ threshold. A CI deploy gate. --json for CI,
1162
+ --threshold N to override all thresholds.
1163
+
1164
+ Options:
1165
+ -h, --help Show this help message
1166
+ -v, --version Show version number
1167
+ --template <names> Comma-separated templates to pre-select
1168
+ (mail,calendar,analytics,...) — or
1169
+ github:user/repo for community templates
1170
+ --headless Create the primitive-first action-only scaffold
1171
+ --standalone Scaffold a single standalone app (no workspace)
1172
+ --emit [dir] With migrate, emit an own-agent dossier
1173
+ --describe <text> With migrate, describe URL/prose-only sources
1174
+ --preset <name> Workspace deploy preset:
1175
+ cloudflare_pages (default), netlify, or vercel
1176
+ --build-only Build workspace deploy artifacts without publishing
1177
+ --eager With workspace dev, start every app immediately
1178
+ --url <url> URL to audit with audit-agent-web
1179
+
1180
+ Feedback: ${FEEDBACK_URL}
1181
+ Bugs: ${BUGS_URL}`);
1182
+ break;
1183
+
1184
+ default:
1185
+ if (command && !command.startsWith("-")) {
1186
+ // A bare, single command-like token with no further args is almost
1187
+ // always a mistyped subcommand (e.g. `agent-native destory`). Silently
1188
+ // forwarding it to the coding agent would run an LLM with file-write
1189
+ // powers on a typo — a real footgun on a code-modifying tool. Refuse it
1190
+ // and point at the explicit forms. Intentional natural-language tasks
1191
+ // are still dispatched: a quoted phrase (`agent-native "fix tests"`,
1192
+ // which arrives as one argv token containing a space) or multi-word
1193
+ // input (`agent-native fix the tests`, which has trailing args).
1194
+ const looksLikeMistypedSubcommand =
1195
+ args.length === 0 && /^[a-z][a-z0-9-]*$/i.test(command);
1196
+ if (!looksLikeMistypedSubcommand) {
1197
+ import("./code.js")
1198
+ .then((m) => m.runCode([command, ...args]))
1199
+ .catch(handleScaffoldImportError);
1200
+ break;
1201
+ }
1202
+ console.error(`Unknown command: ${command}`);
1203
+ console.error(
1204
+ `If you meant to start a coding session with this as the task, run:\n` +
1205
+ ` agent-native code ${JSON.stringify(command)}\n` +
1206
+ `or quote a natural-language task:\n` +
1207
+ ` agent-native "fix the failing tests"`,
1208
+ );
1209
+ console.error('Run "agent-native --help" for usage.');
1210
+ console.error(`Bugs: ${BUGS_URL}`);
1211
+ process.exit(1);
1212
+ }
1213
+ console.error(`Unknown command: ${command}`);
1214
+ console.error('Run "agent-native --help" for usage.');
1215
+ console.error(`Bugs: ${BUGS_URL}`);
1216
+ process.exit(1);
1217
+ }