@agent-native/core 0.5.0-dev.b51eaae → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (806) hide show
  1. package/README.md +15 -43
  2. package/dist/a2a/agent-card.d.ts.map +1 -1
  3. package/dist/a2a/agent-card.js +12 -1
  4. package/dist/a2a/agent-card.js.map +1 -1
  5. package/dist/a2a/client.d.ts +11 -0
  6. package/dist/a2a/client.d.ts.map +1 -1
  7. package/dist/a2a/client.js +38 -1
  8. package/dist/a2a/client.js.map +1 -1
  9. package/dist/a2a/index.d.ts +1 -1
  10. package/dist/a2a/index.d.ts.map +1 -1
  11. package/dist/a2a/index.js +1 -1
  12. package/dist/a2a/index.js.map +1 -1
  13. package/dist/a2a/server.d.ts +4 -0
  14. package/dist/a2a/server.d.ts.map +1 -1
  15. package/dist/a2a/server.js +53 -8
  16. package/dist/a2a/server.js.map +1 -1
  17. package/dist/a2a/types.d.ts +1 -0
  18. package/dist/a2a/types.d.ts.map +1 -1
  19. package/dist/action.d.ts +64 -30
  20. package/dist/action.d.ts.map +1 -1
  21. package/dist/action.js +224 -27
  22. package/dist/action.js.map +1 -1
  23. package/dist/agent/engine/ai-sdk-engine.d.ts +24 -0
  24. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -0
  25. package/dist/agent/engine/ai-sdk-engine.js +302 -0
  26. package/dist/agent/engine/ai-sdk-engine.js.map +1 -0
  27. package/dist/agent/engine/anthropic-engine.d.ts +24 -0
  28. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -0
  29. package/dist/agent/engine/anthropic-engine.js +169 -0
  30. package/dist/agent/engine/anthropic-engine.js.map +1 -0
  31. package/dist/agent/engine/builtin.d.ts +12 -0
  32. package/dist/agent/engine/builtin.d.ts.map +1 -0
  33. package/dist/agent/engine/builtin.js +72 -0
  34. package/dist/agent/engine/builtin.js.map +1 -0
  35. package/dist/agent/engine/index.d.ts +9 -0
  36. package/dist/agent/engine/index.d.ts.map +1 -0
  37. package/dist/agent/engine/index.js +8 -0
  38. package/dist/agent/engine/index.js.map +1 -0
  39. package/dist/agent/engine/registry.d.ts +61 -0
  40. package/dist/agent/engine/registry.d.ts.map +1 -0
  41. package/dist/agent/engine/registry.js +101 -0
  42. package/dist/agent/engine/registry.js.map +1 -0
  43. package/dist/agent/engine/translate-ai-sdk.d.ts +20 -0
  44. package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -0
  45. package/dist/agent/engine/translate-ai-sdk.js +174 -0
  46. package/dist/agent/engine/translate-ai-sdk.js.map +1 -0
  47. package/dist/agent/engine/translate-anthropic.d.ts +23 -0
  48. package/dist/agent/engine/translate-anthropic.d.ts.map +1 -0
  49. package/dist/agent/engine/translate-anthropic.js +140 -0
  50. package/dist/agent/engine/translate-anthropic.js.map +1 -0
  51. package/dist/agent/engine/types.d.ts +168 -0
  52. package/dist/agent/engine/types.d.ts.map +1 -0
  53. package/dist/agent/engine/types.js +13 -0
  54. package/dist/agent/engine/types.js.map +1 -0
  55. package/dist/agent/production-agent.d.ts +48 -2
  56. package/dist/agent/production-agent.d.ts.map +1 -1
  57. package/dist/agent/production-agent.js +216 -76
  58. package/dist/agent/production-agent.js.map +1 -1
  59. package/dist/agent/run-manager.d.ts +1 -1
  60. package/dist/agent/run-manager.d.ts.map +1 -1
  61. package/dist/agent/run-manager.js +15 -9
  62. package/dist/agent/run-manager.js.map +1 -1
  63. package/dist/agent/run-store.d.ts.map +1 -1
  64. package/dist/agent/run-store.js +5 -5
  65. package/dist/agent/run-store.js.map +1 -1
  66. package/dist/agent/thread-data-builder.d.ts +1 -0
  67. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  68. package/dist/agent/thread-data-builder.js +4 -1
  69. package/dist/agent/thread-data-builder.js.map +1 -1
  70. package/dist/agent/types.d.ts +22 -1
  71. package/dist/agent/types.d.ts.map +1 -1
  72. package/dist/application-state/handlers.d.ts +8 -8
  73. package/dist/application-state/handlers.d.ts.map +1 -1
  74. package/dist/application-state/handlers.js +3 -2
  75. package/dist/application-state/handlers.js.map +1 -1
  76. package/dist/application-state/script-helpers.d.ts.map +1 -1
  77. package/dist/application-state/script-helpers.js +47 -9
  78. package/dist/application-state/script-helpers.js.map +1 -1
  79. package/dist/chat-threads/store.d.ts +14 -0
  80. package/dist/chat-threads/store.d.ts.map +1 -1
  81. package/dist/chat-threads/store.js +32 -0
  82. package/dist/chat-threads/store.js.map +1 -1
  83. package/dist/cli/create.d.ts +8 -2
  84. package/dist/cli/create.d.ts.map +1 -1
  85. package/dist/cli/create.js +287 -32
  86. package/dist/cli/create.js.map +1 -1
  87. package/dist/cli/index.js +19 -6
  88. package/dist/cli/index.js.map +1 -1
  89. package/dist/client/AgentPanel.d.ts +5 -1
  90. package/dist/client/AgentPanel.d.ts.map +1 -1
  91. package/dist/client/AgentPanel.js +407 -111
  92. package/dist/client/AgentPanel.js.map +1 -1
  93. package/dist/client/AgentTaskCard.d.ts +12 -0
  94. package/dist/client/AgentTaskCard.d.ts.map +1 -0
  95. package/dist/client/AgentTaskCard.js +146 -0
  96. package/dist/client/AgentTaskCard.js.map +1 -0
  97. package/dist/client/AssistantChat.d.ts +13 -2
  98. package/dist/client/AssistantChat.d.ts.map +1 -1
  99. package/dist/client/AssistantChat.js +344 -122
  100. package/dist/client/AssistantChat.js.map +1 -1
  101. package/dist/client/MultiTabAssistantChat.d.ts +7 -1
  102. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  103. package/dist/client/MultiTabAssistantChat.js +345 -63
  104. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  105. package/dist/client/PoweredByBadge.js +2 -2
  106. package/dist/client/PoweredByBadge.js.map +1 -1
  107. package/dist/client/Turnstile.d.ts.map +1 -1
  108. package/dist/client/Turnstile.js +2 -3
  109. package/dist/client/Turnstile.js.map +1 -1
  110. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  111. package/dist/client/agent-chat-adapter.js +63 -2
  112. package/dist/client/agent-chat-adapter.js.map +1 -1
  113. package/dist/client/agent-chat.d.ts +14 -1
  114. package/dist/client/agent-chat.d.ts.map +1 -1
  115. package/dist/client/agent-chat.js +4 -2
  116. package/dist/client/agent-chat.js.map +1 -1
  117. package/dist/client/components/CodeAgentIndicator.d.ts +14 -0
  118. package/dist/client/components/CodeAgentIndicator.d.ts.map +1 -0
  119. package/dist/client/components/CodeAgentIndicator.js +29 -0
  120. package/dist/client/components/CodeAgentIndicator.js.map +1 -0
  121. package/dist/client/composer/MentionPopover.d.ts +4 -1
  122. package/dist/client/composer/MentionPopover.d.ts.map +1 -1
  123. package/dist/client/composer/MentionPopover.js +36 -6
  124. package/dist/client/composer/MentionPopover.js.map +1 -1
  125. package/dist/client/composer/TiptapComposer.d.ts +8 -1
  126. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  127. package/dist/client/composer/TiptapComposer.js +146 -16
  128. package/dist/client/composer/TiptapComposer.js.map +1 -1
  129. package/dist/client/composer/index.d.ts +1 -1
  130. package/dist/client/composer/index.d.ts.map +1 -1
  131. package/dist/client/composer/types.d.ts +5 -0
  132. package/dist/client/composer/types.d.ts.map +1 -1
  133. package/dist/client/composer/use-mention-search.d.ts.map +1 -1
  134. package/dist/client/composer/use-mention-search.js +46 -13
  135. package/dist/client/composer/use-mention-search.js.map +1 -1
  136. package/dist/client/frame-protocol.d.ts +54 -0
  137. package/dist/client/frame-protocol.d.ts.map +1 -0
  138. package/dist/client/frame-protocol.js +9 -0
  139. package/dist/client/frame-protocol.js.map +1 -0
  140. package/dist/client/frame.d.ts +56 -0
  141. package/dist/client/frame.d.ts.map +1 -0
  142. package/dist/client/{harness.js → frame.js} +49 -26
  143. package/dist/client/frame.js.map +1 -0
  144. package/dist/client/index.d.ts +7 -3
  145. package/dist/client/index.d.ts.map +1 -1
  146. package/dist/client/index.js +6 -3
  147. package/dist/client/index.js.map +1 -1
  148. package/dist/client/integrations/IntegrationCard.d.ts +6 -0
  149. package/dist/client/integrations/IntegrationCard.d.ts.map +1 -0
  150. package/dist/client/integrations/IntegrationCard.js +45 -0
  151. package/dist/client/integrations/IntegrationCard.js.map +1 -0
  152. package/dist/client/integrations/IntegrationsPanel.d.ts +2 -0
  153. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -0
  154. package/dist/client/integrations/IntegrationsPanel.js +149 -0
  155. package/dist/client/integrations/IntegrationsPanel.js.map +1 -0
  156. package/dist/client/integrations/index.d.ts +4 -0
  157. package/dist/client/integrations/index.d.ts.map +1 -0
  158. package/dist/client/integrations/index.js +3 -0
  159. package/dist/client/integrations/index.js.map +1 -0
  160. package/dist/client/integrations/useIntegrationStatus.d.ts +15 -0
  161. package/dist/client/integrations/useIntegrationStatus.d.ts.map +1 -0
  162. package/dist/client/integrations/useIntegrationStatus.js +37 -0
  163. package/dist/client/integrations/useIntegrationStatus.js.map +1 -0
  164. package/dist/client/org/InvitationBanner.d.ts +9 -0
  165. package/dist/client/org/InvitationBanner.d.ts.map +1 -0
  166. package/dist/client/org/InvitationBanner.js +17 -0
  167. package/dist/client/org/InvitationBanner.js.map +1 -0
  168. package/dist/client/org/OrgSwitcher.d.ts +14 -0
  169. package/dist/client/org/OrgSwitcher.d.ts.map +1 -0
  170. package/dist/client/org/OrgSwitcher.js +51 -0
  171. package/dist/client/org/OrgSwitcher.js.map +1 -0
  172. package/dist/client/org/TeamPage.d.ts +23 -0
  173. package/dist/client/org/TeamPage.d.ts.map +1 -0
  174. package/dist/client/org/TeamPage.js +145 -0
  175. package/dist/client/org/TeamPage.js.map +1 -0
  176. package/dist/client/org/hooks.d.ts +14 -0
  177. package/dist/client/org/hooks.d.ts.map +1 -0
  178. package/dist/client/org/hooks.js +101 -0
  179. package/dist/client/org/hooks.js.map +1 -0
  180. package/dist/client/org/index.d.ts +6 -0
  181. package/dist/client/org/index.d.ts.map +1 -0
  182. package/dist/client/org/index.js +6 -0
  183. package/dist/client/org/index.js.map +1 -0
  184. package/dist/client/resources/ResourceEditor.d.ts +8 -1
  185. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  186. package/dist/client/resources/ResourceEditor.js +94 -13
  187. package/dist/client/resources/ResourceEditor.js.map +1 -1
  188. package/dist/client/resources/ResourceTree.d.ts +5 -1
  189. package/dist/client/resources/ResourceTree.d.ts.map +1 -1
  190. package/dist/client/resources/ResourceTree.js +18 -3
  191. package/dist/client/resources/ResourceTree.js.map +1 -1
  192. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  193. package/dist/client/resources/ResourcesPanel.js +135 -110
  194. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  195. package/dist/client/resources/use-resources.d.ts +10 -0
  196. package/dist/client/resources/use-resources.d.ts.map +1 -1
  197. package/dist/client/resources/use-resources.js +2 -2
  198. package/dist/client/resources/use-resources.js.map +1 -1
  199. package/dist/client/sse-event-processor.d.ts +9 -1
  200. package/dist/client/sse-event-processor.d.ts.map +1 -1
  201. package/dist/client/sse-event-processor.js +36 -3
  202. package/dist/client/sse-event-processor.js.map +1 -1
  203. package/dist/client/terminal/AgentTerminal.d.ts +4 -4
  204. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  205. package/dist/client/terminal/AgentTerminal.js +14 -14
  206. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  207. package/dist/client/use-action.d.ts +51 -0
  208. package/dist/client/use-action.d.ts.map +1 -0
  209. package/dist/client/use-action.js +102 -0
  210. package/dist/client/use-action.js.map +1 -0
  211. package/dist/client/use-avatar.d.ts +15 -0
  212. package/dist/client/use-avatar.d.ts.map +1 -0
  213. package/dist/client/use-avatar.js +116 -0
  214. package/dist/client/use-avatar.js.map +1 -0
  215. package/dist/client/use-chat-threads.d.ts +1 -1
  216. package/dist/client/use-chat-threads.d.ts.map +1 -1
  217. package/dist/client/use-chat-threads.js +34 -18
  218. package/dist/client/use-chat-threads.js.map +1 -1
  219. package/dist/client/use-dev-mode.d.ts.map +1 -1
  220. package/dist/client/use-dev-mode.js +2 -0
  221. package/dist/client/use-dev-mode.js.map +1 -1
  222. package/dist/client/use-send-to-agent-chat.d.ts +7 -4
  223. package/dist/client/use-send-to-agent-chat.d.ts.map +1 -1
  224. package/dist/client/use-send-to-agent-chat.js +31 -10
  225. package/dist/client/use-send-to-agent-chat.js.map +1 -1
  226. package/dist/collab/awareness.d.ts +41 -0
  227. package/dist/collab/awareness.d.ts.map +1 -0
  228. package/dist/collab/awareness.js +82 -0
  229. package/dist/collab/awareness.js.map +1 -0
  230. package/dist/collab/client.d.ts +49 -0
  231. package/dist/collab/client.d.ts.map +1 -0
  232. package/dist/collab/client.js +250 -0
  233. package/dist/collab/client.js.map +1 -0
  234. package/dist/collab/emitter.d.ts +12 -0
  235. package/dist/collab/emitter.d.ts.map +1 -0
  236. package/dist/collab/emitter.js +16 -0
  237. package/dist/collab/emitter.js.map +1 -0
  238. package/dist/collab/index.d.ts +7 -0
  239. package/dist/collab/index.d.ts.map +1 -0
  240. package/dist/collab/index.js +14 -0
  241. package/dist/collab/index.js.map +1 -0
  242. package/dist/collab/routes.d.ts +69 -0
  243. package/dist/collab/routes.d.ts.map +1 -0
  244. package/dist/collab/routes.js +98 -0
  245. package/dist/collab/routes.js.map +1 -0
  246. package/dist/collab/storage.d.ts +18 -0
  247. package/dist/collab/storage.d.ts.map +1 -0
  248. package/dist/collab/storage.js +94 -0
  249. package/dist/collab/storage.js.map +1 -0
  250. package/dist/collab/text-to-yjs.d.ts +23 -0
  251. package/dist/collab/text-to-yjs.d.ts.map +1 -0
  252. package/dist/collab/text-to-yjs.js +63 -0
  253. package/dist/collab/text-to-yjs.js.map +1 -0
  254. package/dist/collab/xml-ops.d.ts +20 -0
  255. package/dist/collab/xml-ops.d.ts.map +1 -0
  256. package/dist/collab/xml-ops.js +59 -0
  257. package/dist/collab/xml-ops.js.map +1 -0
  258. package/dist/collab/ydoc-manager.d.ts +52 -0
  259. package/dist/collab/ydoc-manager.d.ts.map +1 -0
  260. package/dist/collab/ydoc-manager.js +154 -0
  261. package/dist/collab/ydoc-manager.js.map +1 -0
  262. package/dist/db/client.d.ts +10 -0
  263. package/dist/db/client.d.ts.map +1 -1
  264. package/dist/db/client.js +43 -2
  265. package/dist/db/client.js.map +1 -1
  266. package/dist/db/create-get-db.js.map +1 -1
  267. package/dist/db/index.d.ts +1 -1
  268. package/dist/db/index.d.ts.map +1 -1
  269. package/dist/db/index.js +1 -1
  270. package/dist/db/index.js.map +1 -1
  271. package/dist/db/migrations.d.ts +9 -1
  272. package/dist/db/migrations.d.ts.map +1 -1
  273. package/dist/db/migrations.js +45 -20
  274. package/dist/db/migrations.js.map +1 -1
  275. package/dist/db/schema.d.ts +8 -1
  276. package/dist/db/schema.d.ts.map +1 -1
  277. package/dist/db/schema.js +13 -2
  278. package/dist/db/schema.js.map +1 -1
  279. package/dist/deploy/build.js +607 -42
  280. package/dist/deploy/build.js.map +1 -1
  281. package/dist/deploy/route-discovery.d.ts +17 -4
  282. package/dist/deploy/route-discovery.d.ts.map +1 -1
  283. package/dist/deploy/route-discovery.js +117 -35
  284. package/dist/deploy/route-discovery.js.map +1 -1
  285. package/dist/index.browser.d.ts +2 -0
  286. package/dist/index.browser.d.ts.map +1 -1
  287. package/dist/index.browser.js +4 -0
  288. package/dist/index.browser.js.map +1 -1
  289. package/dist/index.d.ts +3 -3
  290. package/dist/index.d.ts.map +1 -1
  291. package/dist/index.js +2 -2
  292. package/dist/index.js.map +1 -1
  293. package/dist/integrations/adapters/slack.d.ts +10 -0
  294. package/dist/integrations/adapters/slack.d.ts.map +1 -0
  295. package/dist/integrations/adapters/slack.js +215 -0
  296. package/dist/integrations/adapters/slack.js.map +1 -0
  297. package/dist/integrations/adapters/telegram.d.ts +12 -0
  298. package/dist/integrations/adapters/telegram.d.ts.map +1 -0
  299. package/dist/integrations/adapters/telegram.js +184 -0
  300. package/dist/integrations/adapters/telegram.js.map +1 -0
  301. package/dist/integrations/adapters/whatsapp.d.ts +14 -0
  302. package/dist/integrations/adapters/whatsapp.d.ts.map +1 -0
  303. package/dist/integrations/adapters/whatsapp.js +205 -0
  304. package/dist/integrations/adapters/whatsapp.js.map +1 -0
  305. package/dist/integrations/config-store.d.ts +24 -0
  306. package/dist/integrations/config-store.d.ts.map +1 -0
  307. package/dist/integrations/config-store.js +92 -0
  308. package/dist/integrations/config-store.js.map +1 -0
  309. package/dist/integrations/index.d.ts +8 -0
  310. package/dist/integrations/index.d.ts.map +1 -0
  311. package/dist/integrations/index.js +10 -0
  312. package/dist/integrations/index.js.map +1 -0
  313. package/dist/integrations/plugin.d.ts +20 -0
  314. package/dist/integrations/plugin.d.ts.map +1 -0
  315. package/dist/integrations/plugin.js +213 -0
  316. package/dist/integrations/plugin.js.map +1 -0
  317. package/dist/integrations/thread-mapping-store.d.ts +25 -0
  318. package/dist/integrations/thread-mapping-store.d.ts.map +1 -0
  319. package/dist/integrations/thread-mapping-store.js +95 -0
  320. package/dist/integrations/thread-mapping-store.js.map +1 -0
  321. package/dist/integrations/types.d.ts +111 -0
  322. package/dist/integrations/types.d.ts.map +1 -0
  323. package/dist/integrations/types.js +2 -0
  324. package/dist/integrations/types.js.map +1 -0
  325. package/dist/integrations/webhook-handler.d.ts +31 -0
  326. package/dist/integrations/webhook-handler.d.ts.map +1 -0
  327. package/dist/integrations/webhook-handler.js +210 -0
  328. package/dist/integrations/webhook-handler.js.map +1 -0
  329. package/dist/jobs/cron.d.ts +14 -0
  330. package/dist/jobs/cron.d.ts.map +1 -0
  331. package/dist/jobs/cron.js +100 -0
  332. package/dist/jobs/cron.js.map +1 -0
  333. package/dist/jobs/index.d.ts +4 -0
  334. package/dist/jobs/index.d.ts.map +1 -0
  335. package/dist/jobs/index.js +4 -0
  336. package/dist/jobs/index.js.map +1 -0
  337. package/dist/jobs/scheduler.d.ts +29 -0
  338. package/dist/jobs/scheduler.d.ts.map +1 -0
  339. package/dist/jobs/scheduler.js +205 -0
  340. package/dist/jobs/scheduler.js.map +1 -0
  341. package/dist/jobs/tools.d.ts +3 -0
  342. package/dist/jobs/tools.d.ts.map +1 -0
  343. package/dist/jobs/tools.js +192 -0
  344. package/dist/jobs/tools.js.map +1 -0
  345. package/dist/mcp/index.d.ts +3 -0
  346. package/dist/mcp/index.d.ts.map +1 -0
  347. package/dist/mcp/index.js +2 -0
  348. package/dist/mcp/index.js.map +1 -0
  349. package/dist/mcp/server.d.ts +26 -0
  350. package/dist/mcp/server.d.ts.map +1 -0
  351. package/dist/mcp/server.js +182 -0
  352. package/dist/mcp/server.js.map +1 -0
  353. package/dist/oauth-tokens/index.d.ts +1 -1
  354. package/dist/oauth-tokens/index.d.ts.map +1 -1
  355. package/dist/oauth-tokens/index.js +1 -1
  356. package/dist/oauth-tokens/index.js.map +1 -1
  357. package/dist/oauth-tokens/store.d.ts +5 -0
  358. package/dist/oauth-tokens/store.d.ts.map +1 -1
  359. package/dist/oauth-tokens/store.js +30 -7
  360. package/dist/oauth-tokens/store.js.map +1 -1
  361. package/dist/org/context.d.ts +11 -0
  362. package/dist/org/context.d.ts.map +1 -0
  363. package/dist/org/context.js +61 -0
  364. package/dist/org/context.js.map +1 -0
  365. package/dist/org/handlers.d.ts +66 -0
  366. package/dist/org/handlers.d.ts.map +1 -0
  367. package/dist/org/handlers.js +306 -0
  368. package/dist/org/handlers.js.map +1 -0
  369. package/dist/org/index.d.ts +7 -0
  370. package/dist/org/index.d.ts.map +1 -0
  371. package/dist/org/index.js +11 -0
  372. package/dist/org/index.js.map +1 -0
  373. package/dist/org/migrations.d.ts +10 -0
  374. package/dist/org/migrations.d.ts.map +1 -0
  375. package/dist/org/migrations.js +39 -0
  376. package/dist/org/migrations.js.map +1 -0
  377. package/dist/org/plugin.d.ts +26 -0
  378. package/dist/org/plugin.d.ts.map +1 -0
  379. package/dist/org/plugin.js +94 -0
  380. package/dist/org/plugin.js.map +1 -0
  381. package/dist/org/schema.d.ts +301 -0
  382. package/dist/org/schema.d.ts.map +1 -0
  383. package/dist/org/schema.js +23 -0
  384. package/dist/org/schema.js.map +1 -0
  385. package/dist/org/types.d.ts +42 -0
  386. package/dist/org/types.d.ts.map +1 -0
  387. package/dist/org/types.js +5 -0
  388. package/dist/org/types.js.map +1 -0
  389. package/dist/resources/handlers.d.ts +10 -1
  390. package/dist/resources/handlers.d.ts.map +1 -1
  391. package/dist/resources/handlers.js +82 -9
  392. package/dist/resources/handlers.js.map +1 -1
  393. package/dist/resources/store.d.ts +5 -0
  394. package/dist/resources/store.d.ts.map +1 -1
  395. package/dist/resources/store.js +44 -0
  396. package/dist/resources/store.js.map +1 -1
  397. package/dist/scripts/agent-engines/list-agent-engines.d.ts +7 -0
  398. package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -0
  399. package/dist/scripts/agent-engines/list-agent-engines.js +42 -0
  400. package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -0
  401. package/dist/scripts/agent-engines/set-agent-engine.d.ts +7 -0
  402. package/dist/scripts/agent-engines/set-agent-engine.d.ts.map +1 -0
  403. package/dist/scripts/agent-engines/set-agent-engine.js +57 -0
  404. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -0
  405. package/dist/scripts/agent-engines/test-agent-engine.d.ts +7 -0
  406. package/dist/scripts/agent-engines/test-agent-engine.d.ts.map +1 -0
  407. package/dist/scripts/agent-engines/test-agent-engine.js +102 -0
  408. package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -0
  409. package/dist/scripts/call-agent.d.ts +1 -1
  410. package/dist/scripts/call-agent.d.ts.map +1 -1
  411. package/dist/scripts/call-agent.js +10 -6
  412. package/dist/scripts/call-agent.js.map +1 -1
  413. package/dist/scripts/chat/index.d.ts +2 -0
  414. package/dist/scripts/chat/index.d.ts.map +1 -0
  415. package/dist/scripts/chat/index.js +5 -0
  416. package/dist/scripts/chat/index.js.map +1 -0
  417. package/dist/scripts/chat/open-chat.d.ts +11 -0
  418. package/dist/scripts/chat/open-chat.d.ts.map +1 -0
  419. package/dist/scripts/chat/open-chat.js +48 -0
  420. package/dist/scripts/chat/open-chat.js.map +1 -0
  421. package/dist/scripts/chat/search-chats.d.ts +10 -0
  422. package/dist/scripts/chat/search-chats.d.ts.map +1 -0
  423. package/dist/scripts/chat/search-chats.js +89 -0
  424. package/dist/scripts/chat/search-chats.js.map +1 -0
  425. package/dist/scripts/core-scripts.d.ts.map +1 -1
  426. package/dist/scripts/core-scripts.js +2 -0
  427. package/dist/scripts/core-scripts.js.map +1 -1
  428. package/dist/scripts/db/check-scoping.d.ts +14 -0
  429. package/dist/scripts/db/check-scoping.d.ts.map +1 -0
  430. package/dist/scripts/db/check-scoping.js +174 -0
  431. package/dist/scripts/db/check-scoping.js.map +1 -0
  432. package/dist/scripts/db/exec.d.ts +3 -2
  433. package/dist/scripts/db/exec.d.ts.map +1 -1
  434. package/dist/scripts/db/exec.js +35 -19
  435. package/dist/scripts/db/exec.js.map +1 -1
  436. package/dist/scripts/db/index.d.ts.map +1 -1
  437. package/dist/scripts/db/index.js +2 -0
  438. package/dist/scripts/db/index.js.map +1 -1
  439. package/dist/scripts/db/patch.d.ts +50 -0
  440. package/dist/scripts/db/patch.d.ts.map +1 -0
  441. package/dist/scripts/db/patch.js +392 -0
  442. package/dist/scripts/db/patch.js.map +1 -0
  443. package/dist/scripts/db/scoping.d.ts +8 -2
  444. package/dist/scripts/db/scoping.d.ts.map +1 -1
  445. package/dist/scripts/db/scoping.js +64 -46
  446. package/dist/scripts/db/scoping.js.map +1 -1
  447. package/dist/scripts/dev/index.d.ts.map +1 -1
  448. package/dist/scripts/dev/index.js +64 -1
  449. package/dist/scripts/dev/index.js.map +1 -1
  450. package/dist/scripts/parse-args.d.ts +14 -0
  451. package/dist/scripts/parse-args.d.ts.map +1 -0
  452. package/dist/scripts/parse-args.js +45 -0
  453. package/dist/scripts/parse-args.js.map +1 -0
  454. package/dist/scripts/runner.d.ts.map +1 -1
  455. package/dist/scripts/runner.js +10 -2
  456. package/dist/scripts/runner.js.map +1 -1
  457. package/dist/scripts/utils.d.ts +1 -9
  458. package/dist/scripts/utils.d.ts.map +1 -1
  459. package/dist/scripts/utils.js +2 -40
  460. package/dist/scripts/utils.js.map +1 -1
  461. package/dist/server/action-discovery.d.ts.map +1 -1
  462. package/dist/server/action-discovery.js +84 -16
  463. package/dist/server/action-discovery.js.map +1 -1
  464. package/dist/server/action-routes.d.ts +15 -0
  465. package/dist/server/action-routes.d.ts.map +1 -0
  466. package/dist/server/action-routes.js +105 -0
  467. package/dist/server/action-routes.js.map +1 -0
  468. package/dist/server/agent-chat-plugin.d.ts +20 -0
  469. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  470. package/dist/server/agent-chat-plugin.js +1149 -256
  471. package/dist/server/agent-chat-plugin.js.map +1 -1
  472. package/dist/server/agent-discovery.d.ts +8 -3
  473. package/dist/server/agent-discovery.d.ts.map +1 -1
  474. package/dist/server/agent-discovery.js +69 -8
  475. package/dist/server/agent-discovery.js.map +1 -1
  476. package/dist/server/agent-teams.d.ts +70 -0
  477. package/dist/server/agent-teams.d.ts.map +1 -0
  478. package/dist/server/agent-teams.js +367 -0
  479. package/dist/server/agent-teams.js.map +1 -0
  480. package/dist/server/agents-bundle.d.ts +87 -0
  481. package/dist/server/agents-bundle.d.ts.map +1 -0
  482. package/dist/server/agents-bundle.js +231 -0
  483. package/dist/server/agents-bundle.js.map +1 -0
  484. package/dist/server/auth-plugin.d.ts +3 -3
  485. package/dist/server/auth-plugin.d.ts.map +1 -1
  486. package/dist/server/auth-plugin.js +9 -10
  487. package/dist/server/auth-plugin.js.map +1 -1
  488. package/dist/server/auth.d.ts +54 -33
  489. package/dist/server/auth.d.ts.map +1 -1
  490. package/dist/server/auth.js +529 -611
  491. package/dist/server/auth.js.map +1 -1
  492. package/dist/server/better-auth-instance.d.ts +72 -0
  493. package/dist/server/better-auth-instance.d.ts.map +1 -0
  494. package/dist/server/better-auth-instance.js +144 -0
  495. package/dist/server/better-auth-instance.js.map +1 -0
  496. package/dist/server/collab-plugin.d.ts +29 -0
  497. package/dist/server/collab-plugin.d.ts.map +1 -0
  498. package/dist/server/collab-plugin.js +85 -0
  499. package/dist/server/collab-plugin.js.map +1 -0
  500. package/dist/server/core-routes-plugin.d.ts +0 -3
  501. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  502. package/dist/server/core-routes-plugin.js +97 -27
  503. package/dist/server/core-routes-plugin.js.map +1 -1
  504. package/dist/server/create-server.d.ts +1 -1
  505. package/dist/server/create-server.d.ts.map +1 -1
  506. package/dist/server/create-server.js +39 -16
  507. package/dist/server/create-server.js.map +1 -1
  508. package/dist/server/framework-request-handler.d.ts +47 -0
  509. package/dist/server/framework-request-handler.d.ts.map +1 -0
  510. package/dist/server/framework-request-handler.js +168 -0
  511. package/dist/server/framework-request-handler.js.map +1 -0
  512. package/dist/server/google-auth-plugin.d.ts +4 -0
  513. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  514. package/dist/server/google-auth-plugin.js +13 -12
  515. package/dist/server/google-auth-plugin.js.map +1 -1
  516. package/dist/server/google-oauth.d.ts +3 -3
  517. package/dist/server/google-oauth.d.ts.map +1 -1
  518. package/dist/server/google-oauth.js +40 -18
  519. package/dist/server/google-oauth.js.map +1 -1
  520. package/dist/server/h3-helpers.d.ts +23 -0
  521. package/dist/server/h3-helpers.d.ts.map +1 -0
  522. package/dist/server/h3-helpers.js +37 -0
  523. package/dist/server/h3-helpers.js.map +1 -0
  524. package/dist/server/index.d.ts +9 -4
  525. package/dist/server/index.d.ts.map +1 -1
  526. package/dist/server/index.js +12 -4
  527. package/dist/server/index.js.map +1 -1
  528. package/dist/server/local-migration.d.ts +32 -0
  529. package/dist/server/local-migration.d.ts.map +1 -0
  530. package/dist/server/local-migration.js +205 -0
  531. package/dist/server/local-migration.js.map +1 -0
  532. package/dist/server/oauth-helpers.d.ts +4 -6
  533. package/dist/server/oauth-helpers.d.ts.map +1 -1
  534. package/dist/server/oauth-helpers.js +6 -8
  535. package/dist/server/oauth-helpers.js.map +1 -1
  536. package/dist/server/onboarding-html.d.ts +24 -0
  537. package/dist/server/onboarding-html.d.ts.map +1 -0
  538. package/dist/server/onboarding-html.js +347 -0
  539. package/dist/server/onboarding-html.js.map +1 -0
  540. package/dist/server/poll.d.ts +7 -2
  541. package/dist/server/poll.d.ts.map +1 -1
  542. package/dist/server/poll.js +48 -1
  543. package/dist/server/poll.js.map +1 -1
  544. package/dist/server/resources-plugin.d.ts.map +1 -1
  545. package/dist/server/resources-plugin.js +4 -3
  546. package/dist/server/resources-plugin.js.map +1 -1
  547. package/dist/server/schema-prompt.d.ts +16 -0
  548. package/dist/server/schema-prompt.d.ts.map +1 -0
  549. package/dist/server/schema-prompt.js +275 -0
  550. package/dist/server/schema-prompt.js.map +1 -0
  551. package/dist/server/sse.d.ts +3 -20
  552. package/dist/server/sse.d.ts.map +1 -1
  553. package/dist/server/sse.js +1 -29
  554. package/dist/server/sse.js.map +1 -1
  555. package/dist/server/ssr-handler.d.ts +6 -0
  556. package/dist/server/ssr-handler.d.ts.map +1 -0
  557. package/dist/server/ssr-handler.js +55 -0
  558. package/dist/server/ssr-handler.js.map +1 -0
  559. package/dist/settings/handlers.d.ts +3 -3
  560. package/dist/settings/handlers.d.ts.map +1 -1
  561. package/dist/settings/handlers.js +2 -1
  562. package/dist/settings/handlers.js.map +1 -1
  563. package/dist/settings/index.d.ts +1 -0
  564. package/dist/settings/index.d.ts.map +1 -1
  565. package/dist/settings/index.js +2 -0
  566. package/dist/settings/index.js.map +1 -1
  567. package/dist/settings/org-settings.d.ts +22 -0
  568. package/dist/settings/org-settings.d.ts.map +1 -0
  569. package/dist/settings/org-settings.js +45 -0
  570. package/dist/settings/org-settings.js.map +1 -0
  571. package/dist/shared/agent-chat.d.ts +5 -5
  572. package/dist/shared/agent-chat.d.ts.map +1 -1
  573. package/dist/shared/agent-chat.js +8 -8
  574. package/dist/shared/agent-chat.js.map +1 -1
  575. package/dist/shared/agent-env.d.ts +1 -1
  576. package/dist/shared/agent-env.js +1 -1
  577. package/dist/shared/runtime.d.ts +14 -0
  578. package/dist/shared/runtime.d.ts.map +1 -0
  579. package/dist/shared/runtime.js +25 -0
  580. package/dist/shared/runtime.js.map +1 -0
  581. package/dist/templates/default/.agents/skills/actions/SKILL.md +142 -0
  582. package/dist/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
  583. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
  584. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
  585. package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
  586. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
  587. package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
  588. package/dist/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
  589. package/dist/templates/default/.agents/skills/security/SKILL.md +108 -0
  590. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
  591. package/dist/templates/default/.claude/settings.json +100 -0
  592. package/dist/templates/default/.env.example +5 -0
  593. package/dist/templates/default/.prettierrc +5 -0
  594. package/dist/templates/default/AGENTS.md +110 -0
  595. package/dist/templates/default/DEVELOPING.md +117 -0
  596. package/dist/templates/default/_gitignore +37 -0
  597. package/dist/templates/default/actions/hello.ts +20 -0
  598. package/dist/templates/default/actions/navigate.ts +53 -0
  599. package/dist/templates/default/actions/run.ts +2 -0
  600. package/dist/templates/default/actions/view-screen.ts +39 -0
  601. package/dist/templates/default/app/entry.client.tsx +4 -0
  602. package/dist/templates/default/app/entry.server.tsx +56 -0
  603. package/dist/templates/default/app/global.css +95 -0
  604. package/dist/templates/default/app/lib/utils.ts +1 -0
  605. package/dist/templates/default/app/root.tsx +107 -0
  606. package/dist/templates/default/app/routes/_index.tsx +62 -0
  607. package/dist/templates/default/app/routes.ts +4 -0
  608. package/dist/templates/default/app/vite-env.d.ts +6 -0
  609. package/dist/templates/default/components.json +20 -0
  610. package/dist/templates/default/data/.gitkeep +0 -0
  611. package/dist/templates/default/data/sync-config.json +1 -0
  612. package/dist/templates/default/learnings.defaults.md +5 -0
  613. package/dist/templates/default/learnings.md +0 -0
  614. package/dist/templates/default/package.json +46 -0
  615. package/dist/templates/default/postcss.config.js +6 -0
  616. package/dist/templates/default/public/icon-180.svg +4 -0
  617. package/dist/templates/default/public/icon-192.svg +4 -0
  618. package/dist/templates/default/public/icon-512.svg +4 -0
  619. package/dist/templates/default/public/manifest.json +13 -0
  620. package/dist/templates/default/react-router.config.ts +6 -0
  621. package/dist/templates/default/server/middleware/auth.ts +15 -0
  622. package/dist/templates/default/server/plugins/.gitkeep +0 -0
  623. package/dist/templates/default/server/routes/[...page].get.ts +5 -0
  624. package/dist/templates/default/server/routes/api/hello.get.ts +5 -0
  625. package/dist/templates/default/shared/api.ts +6 -0
  626. package/dist/templates/default/ssr-entry.ts +20 -0
  627. package/dist/templates/default/tailwind.config.ts +7 -0
  628. package/dist/templates/default/tsconfig.json +11 -0
  629. package/dist/templates/default/vite.config.ts +6 -0
  630. package/dist/templates/templates/default/.agents/skills/actions/SKILL.md +142 -0
  631. package/dist/templates/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
  632. package/dist/templates/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
  633. package/dist/templates/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
  634. package/dist/templates/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
  635. package/dist/templates/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
  636. package/dist/templates/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
  637. package/dist/templates/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
  638. package/dist/templates/templates/default/.agents/skills/security/SKILL.md +108 -0
  639. package/dist/templates/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
  640. package/dist/templates/templates/default/.agents/skills/storing-data/SKILL.md +110 -0
  641. package/dist/templates/templates/default/.claude/settings.json +100 -0
  642. package/dist/templates/templates/default/.env.example +5 -0
  643. package/dist/templates/templates/default/.ignore +0 -0
  644. package/dist/templates/templates/default/.prettierrc +5 -0
  645. package/dist/templates/templates/default/AGENTS.md +110 -0
  646. package/dist/templates/templates/default/DEVELOPING.md +117 -0
  647. package/dist/templates/templates/default/_gitignore +37 -0
  648. package/dist/templates/templates/default/actions/hello.ts +20 -0
  649. package/dist/templates/templates/default/actions/navigate.ts +53 -0
  650. package/dist/templates/templates/default/actions/run.ts +2 -0
  651. package/dist/templates/templates/default/actions/view-screen.ts +39 -0
  652. package/dist/templates/templates/default/app/entry.client.tsx +4 -0
  653. package/dist/templates/templates/default/app/entry.server.tsx +56 -0
  654. package/dist/templates/templates/default/app/global.css +95 -0
  655. package/dist/templates/templates/default/app/lib/utils.ts +1 -0
  656. package/dist/templates/templates/default/app/root.tsx +107 -0
  657. package/dist/templates/templates/default/app/routes/_index.tsx +62 -0
  658. package/dist/templates/templates/default/app/routes.ts +4 -0
  659. package/dist/templates/templates/default/app/vite-env.d.ts +6 -0
  660. package/dist/templates/templates/default/components.json +20 -0
  661. package/dist/templates/templates/default/data/.gitkeep +0 -0
  662. package/dist/templates/templates/default/data/sync-config.json +1 -0
  663. package/dist/templates/templates/default/learnings.defaults.md +5 -0
  664. package/dist/templates/templates/default/learnings.md +0 -0
  665. package/dist/templates/templates/default/package.json +46 -0
  666. package/dist/templates/templates/default/postcss.config.js +6 -0
  667. package/dist/templates/templates/default/public/icon-180.svg +4 -0
  668. package/dist/templates/templates/default/public/icon-192.svg +4 -0
  669. package/dist/templates/templates/default/public/icon-512.svg +4 -0
  670. package/dist/templates/templates/default/public/manifest.json +13 -0
  671. package/dist/templates/templates/default/react-router.config.ts +6 -0
  672. package/dist/templates/templates/default/server/middleware/auth.ts +15 -0
  673. package/dist/templates/templates/default/server/plugins/.gitkeep +0 -0
  674. package/dist/templates/templates/default/server/routes/[...page].get.ts +5 -0
  675. package/dist/templates/templates/default/server/routes/api/hello.get.ts +5 -0
  676. package/dist/templates/templates/default/shared/api.ts +6 -0
  677. package/dist/templates/templates/default/ssr-entry.ts +20 -0
  678. package/dist/templates/templates/default/tailwind.config.ts +7 -0
  679. package/dist/templates/templates/default/tsconfig.json +11 -0
  680. package/dist/templates/templates/default/vite.config.ts +6 -0
  681. package/dist/terminal/cli-registry.d.ts +1 -1
  682. package/dist/terminal/cli-registry.d.ts.map +1 -1
  683. package/dist/terminal/cli-registry.js +7 -7
  684. package/dist/terminal/cli-registry.js.map +1 -1
  685. package/dist/terminal/pty-server.d.ts +1 -1
  686. package/dist/terminal/pty-server.d.ts.map +1 -1
  687. package/dist/terminal/pty-server.js +34 -12
  688. package/dist/terminal/pty-server.js.map +1 -1
  689. package/dist/terminal/terminal-plugin.d.ts +0 -9
  690. package/dist/terminal/terminal-plugin.d.ts.map +1 -1
  691. package/dist/terminal/terminal-plugin.js +57 -14
  692. package/dist/terminal/terminal-plugin.js.map +1 -1
  693. package/dist/usage/store.d.ts +29 -0
  694. package/dist/usage/store.d.ts.map +1 -0
  695. package/dist/usage/store.js +102 -0
  696. package/dist/usage/store.js.map +1 -0
  697. package/dist/vite/action-types-plugin.d.ts +13 -0
  698. package/dist/vite/action-types-plugin.d.ts.map +1 -0
  699. package/dist/vite/action-types-plugin.js +132 -0
  700. package/dist/vite/action-types-plugin.js.map +1 -0
  701. package/dist/vite/agents-bundle-plugin.d.ts +3 -0
  702. package/dist/vite/agents-bundle-plugin.d.ts.map +1 -0
  703. package/dist/vite/agents-bundle-plugin.js +87 -0
  704. package/dist/vite/agents-bundle-plugin.js.map +1 -0
  705. package/dist/vite/client.d.ts +5 -0
  706. package/dist/vite/client.d.ts.map +1 -1
  707. package/dist/vite/client.js +222 -37
  708. package/dist/vite/client.js.map +1 -1
  709. package/dist/vite/index.d.ts +2 -1
  710. package/dist/vite/index.d.ts.map +1 -1
  711. package/dist/vite/index.js +2 -1
  712. package/dist/vite/index.js.map +1 -1
  713. package/package.json +68 -20
  714. package/src/templates/default/.agents/skills/actions/SKILL.md +12 -6
  715. package/src/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
  716. package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
  717. package/src/templates/default/.agents/skills/security/SKILL.md +108 -0
  718. package/src/templates/default/.agents/skills/storing-data/SKILL.md +110 -0
  719. package/src/templates/default/.claude/settings.json +13 -0
  720. package/src/templates/default/AGENTS.md +25 -9
  721. package/src/templates/default/actions/view-screen.ts +1 -1
  722. package/src/templates/default/package.json +2 -2
  723. package/src/templates/default/server/middleware/auth.ts +15 -0
  724. package/src/templates/default/server/routes/[...page].get.ts +2 -9
  725. package/src/templates/default/ssr-entry.ts +20 -0
  726. package/dist/adapters/convex/adapter.d.ts +0 -24
  727. package/dist/adapters/convex/adapter.d.ts.map +0 -1
  728. package/dist/adapters/convex/adapter.js +0 -125
  729. package/dist/adapters/convex/adapter.js.map +0 -1
  730. package/dist/adapters/convex/index.d.ts +0 -4
  731. package/dist/adapters/convex/index.d.ts.map +0 -1
  732. package/dist/adapters/convex/index.js +0 -3
  733. package/dist/adapters/convex/index.js.map +0 -1
  734. package/dist/adapters/drizzle/adapter.d.ts +0 -36
  735. package/dist/adapters/drizzle/adapter.d.ts.map +0 -1
  736. package/dist/adapters/drizzle/adapter.js +0 -210
  737. package/dist/adapters/drizzle/adapter.js.map +0 -1
  738. package/dist/adapters/drizzle/index.d.ts +0 -3
  739. package/dist/adapters/drizzle/index.d.ts.map +0 -1
  740. package/dist/adapters/drizzle/index.js +0 -3
  741. package/dist/adapters/drizzle/index.js.map +0 -1
  742. package/dist/adapters/drizzle/schema.d.ts +0 -146
  743. package/dist/adapters/drizzle/schema.d.ts.map +0 -1
  744. package/dist/adapters/drizzle/schema.js +0 -20
  745. package/dist/adapters/drizzle/schema.js.map +0 -1
  746. package/dist/adapters/firestore/adapter.d.ts +0 -48
  747. package/dist/adapters/firestore/adapter.d.ts.map +0 -1
  748. package/dist/adapters/firestore/adapter.js +0 -62
  749. package/dist/adapters/firestore/adapter.js.map +0 -1
  750. package/dist/adapters/firestore/index.d.ts +0 -4
  751. package/dist/adapters/firestore/index.d.ts.map +0 -1
  752. package/dist/adapters/firestore/index.js +0 -3
  753. package/dist/adapters/firestore/index.js.map +0 -1
  754. package/dist/adapters/supabase/adapter.d.ts +0 -43
  755. package/dist/adapters/supabase/adapter.d.ts.map +0 -1
  756. package/dist/adapters/supabase/adapter.js +0 -137
  757. package/dist/adapters/supabase/adapter.js.map +0 -1
  758. package/dist/adapters/supabase/index.d.ts +0 -3
  759. package/dist/adapters/supabase/index.d.ts.map +0 -1
  760. package/dist/adapters/supabase/index.js +0 -3
  761. package/dist/adapters/supabase/index.js.map +0 -1
  762. package/dist/adapters/sync/config.d.ts +0 -40
  763. package/dist/adapters/sync/config.d.ts.map +0 -1
  764. package/dist/adapters/sync/config.js +0 -209
  765. package/dist/adapters/sync/config.js.map +0 -1
  766. package/dist/adapters/sync/create-file-sync.d.ts +0 -32
  767. package/dist/adapters/sync/create-file-sync.d.ts.map +0 -1
  768. package/dist/adapters/sync/create-file-sync.js +0 -218
  769. package/dist/adapters/sync/create-file-sync.js.map +0 -1
  770. package/dist/adapters/sync/file-sync.d.ts +0 -94
  771. package/dist/adapters/sync/file-sync.d.ts.map +0 -1
  772. package/dist/adapters/sync/file-sync.js +0 -671
  773. package/dist/adapters/sync/file-sync.js.map +0 -1
  774. package/dist/adapters/sync/index.d.ts +0 -6
  775. package/dist/adapters/sync/index.d.ts.map +0 -1
  776. package/dist/adapters/sync/index.js +0 -6
  777. package/dist/adapters/sync/index.js.map +0 -1
  778. package/dist/adapters/sync/merge.d.ts +0 -21
  779. package/dist/adapters/sync/merge.d.ts.map +0 -1
  780. package/dist/adapters/sync/merge.js +0 -132
  781. package/dist/adapters/sync/merge.js.map +0 -1
  782. package/dist/adapters/sync/types.d.ts +0 -62
  783. package/dist/adapters/sync/types.d.ts.map +0 -1
  784. package/dist/adapters/sync/types.js +0 -23
  785. package/dist/adapters/sync/types.js.map +0 -1
  786. package/dist/client/harness.d.ts +0 -48
  787. package/dist/client/harness.d.ts.map +0 -1
  788. package/dist/client/harness.js.map +0 -1
  789. package/dist/client/use-file-sync-status.d.ts +0 -21
  790. package/dist/client/use-file-sync-status.d.ts.map +0 -1
  791. package/dist/client/use-file-sync-status.js +0 -65
  792. package/dist/client/use-file-sync-status.js.map +0 -1
  793. package/dist/server/default-watcher.d.ts +0 -23
  794. package/dist/server/default-watcher.d.ts.map +0 -1
  795. package/dist/server/default-watcher.js +0 -57
  796. package/dist/server/default-watcher.js.map +0 -1
  797. package/dist/server/file-sync-plugin.d.ts +0 -7
  798. package/dist/server/file-sync-plugin.d.ts.map +0 -1
  799. package/dist/server/file-sync-plugin.js +0 -38
  800. package/dist/server/file-sync-plugin.js.map +0 -1
  801. package/dist/vite/dev-api-server.d.ts +0 -10
  802. package/dist/vite/dev-api-server.d.ts.map +0 -1
  803. package/dist/vite/dev-api-server.js +0 -243
  804. package/dist/vite/dev-api-server.js.map +0 -1
  805. /package/{src/templates/default/.agents/skills/files-as-database → dist/templates/default/.agents/skills/storing-data}/SKILL.md +0 -0
  806. /package/{src/templates/default/application-state/.gitkeep → dist/templates/default/.ignore} +0 -0
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useState, useRef, useEffect, useCallback } from "react";
3
3
  import { IconX, IconPlus, IconHistory, IconSearch } from "@tabler/icons-react";
4
4
  import { AssistantChat, } from "./AssistantChat.js";
5
- import { getHarnessOrigin } from "./harness.js";
5
+ import { getFrameOrigin } from "./frame.js";
6
6
  import { cn } from "./utils.js";
7
7
  import { useChatThreads } from "./use-chat-threads.js";
8
8
  // ─── Skeleton Loader ─────────────────────────────────────────────────────────
@@ -82,55 +82,139 @@ function HistoryPopover({ threads, openTabIds, onSelect, onClose, onSearch, }) {
82
82
  onClose();
83
83
  }, className: "w-full px-3 py-2 text-left hover:bg-accent/50", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [_jsx("span", { className: "text-xs font-medium text-foreground truncate", children: thread.title || thread.preview || "Chat" }), _jsx("span", { className: "text-[10px] text-muted-foreground shrink-0", children: formatTime(thread.updatedAt) })] }), thread.preview && thread.title !== thread.preview && (_jsx("div", { className: "text-[11px] text-muted-foreground truncate mt-0.5", children: thread.preview }))] }, thread.id)))) })] })] }));
84
84
  }
85
- export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderOverlay, contentHidden = false, apiUrl = "/_agent-native/agent-chat", ...props }) {
86
- const { threads, activeThreadId, isLoading, createThread, switchThread, deleteThread, saveThreadData, generateTitle, searchThreads, } = useChatThreads(apiUrl);
85
+ // ─── Help Popover ────────────────────────────────────────────────────────────
86
+ function HelpPopover({ onClose }) {
87
+ useEffect(() => {
88
+ const handler = (e) => {
89
+ if (e.key === "Escape")
90
+ onClose();
91
+ };
92
+ window.addEventListener("keydown", handler);
93
+ return () => window.removeEventListener("keydown", handler);
94
+ }, [onClose]);
95
+ const commands = [
96
+ {
97
+ name: "/clear",
98
+ description: "Start a new chat (keeps current chat in history)",
99
+ },
100
+ { name: "/new", description: "Same as /clear" },
101
+ { name: "/history", description: "Browse and search past chats" },
102
+ { name: "/help", description: "Show this list of commands" },
103
+ { name: "@", description: "Mention files, agents, or resources" },
104
+ ];
105
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40", onClick: onClose }), _jsxs("div", { className: "absolute right-2 top-0 z-50 w-72 rounded-lg border border-border bg-popover shadow-lg", children: [_jsxs("div", { className: "flex items-center justify-between px-3 py-2 border-b border-border", children: [_jsx("span", { className: "text-xs font-medium text-foreground", children: "Available Commands" }), _jsx("button", { onClick: onClose, className: "flex h-5 w-5 items-center justify-center rounded text-muted-foreground hover:text-foreground", children: _jsx(IconX, { size: 12 }) })] }), _jsx("div", { className: "py-1", children: commands.map((cmd) => (_jsxs("div", { className: "px-3 py-1.5", children: [_jsx("div", { className: "text-xs font-medium text-foreground", children: cmd.name }), _jsx("div", { className: "text-[11px] text-muted-foreground", children: cmd.description })] }, cmd.name))) })] })] }));
106
+ }
107
+ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderOverlay, contentHidden = false, apiUrl = "/_agent-native/agent-chat", storageKey, ...props }) {
108
+ const { threads, activeThreadId, isLoading, createThread, switchThread, deleteThread, saveThreadData, generateTitle, searchThreads, refreshThreads, } = useChatThreads(apiUrl, storageKey);
109
+ // Namespace all localStorage keys by storageKey when provided (for per-app isolation in frame)
110
+ const keyPrefix = storageKey ? `:${storageKey}` : "";
111
+ // Track which tabs have been focused at least once (lazy mount for sub-agent tabs)
112
+ const mountedTabsRef = useRef(new Set());
87
113
  const activeThreadIdRef = useRef(activeThreadId);
88
114
  activeThreadIdRef.current = activeThreadId;
115
+ // Mark the active tab as mounted so it persists when switched away
116
+ if (activeThreadId)
117
+ mountedTabsRef.current.add(activeThreadId);
89
118
  const chatRefs = useRef(new Map());
90
119
  const pendingSends = useRef(new Map());
91
120
  const [runningThreads, setRunningThreads] = useState(new Set());
92
121
  const [showHistory, setShowHistory] = useState(false);
93
122
  const newThreadIds = useRef(new Set());
123
+ // Parent-child thread mapping — persisted to localStorage.
124
+ // Maps childThreadId → parentThreadId for sub-agent tabs.
125
+ const PARENT_MAP_KEY = `agent-chat-parent-map${keyPrefix}`;
126
+ const [parentMap, setParentMap] = useState(() => {
127
+ try {
128
+ const saved = localStorage.getItem(PARENT_MAP_KEY);
129
+ if (saved)
130
+ return JSON.parse(saved);
131
+ }
132
+ catch { }
133
+ return {};
134
+ });
135
+ // Persist parent map to localStorage
136
+ useEffect(() => {
137
+ try {
138
+ localStorage.setItem(PARENT_MAP_KEY, JSON.stringify(parentMap));
139
+ }
140
+ catch { }
141
+ }, [parentMap, PARENT_MAP_KEY]);
142
+ // Sub-agent display names — persisted to localStorage.
143
+ // Maps childThreadId → short name (e.g. "Research", "Draft email").
144
+ const SUB_AGENT_NAMES_KEY = `agent-chat-sub-agent-names${keyPrefix}`;
145
+ const [subAgentNames, setSubAgentNames] = useState(() => {
146
+ try {
147
+ const saved = localStorage.getItem(SUB_AGENT_NAMES_KEY);
148
+ if (saved)
149
+ return JSON.parse(saved);
150
+ }
151
+ catch { }
152
+ return {};
153
+ });
154
+ useEffect(() => {
155
+ try {
156
+ localStorage.setItem(SUB_AGENT_NAMES_KEY, JSON.stringify(subAgentNames));
157
+ }
158
+ catch { }
159
+ }, [subAgentNames, SUB_AGENT_NAMES_KEY]);
94
160
  // Open tabs — persisted to localStorage so they survive refresh.
95
- const OPEN_TABS_KEY = "agent-chat-open-tabs";
161
+ const OPEN_TABS_KEY = `agent-chat-open-tabs${keyPrefix}`;
96
162
  const [openTabIds, setOpenTabIds] = useState(() => {
97
163
  try {
98
164
  const saved = localStorage.getItem(OPEN_TABS_KEY);
99
165
  if (saved) {
100
166
  const parsed = JSON.parse(saved);
101
- if (Array.isArray(parsed) && parsed.length > 0)
167
+ if (Array.isArray(parsed) && parsed.length > 0) {
168
+ // Mark restored tabs as mounted
169
+ for (const id of parsed)
170
+ mountedTabsRef.current.add(id);
102
171
  return parsed;
172
+ }
103
173
  }
104
174
  }
105
175
  catch { }
106
176
  return [];
107
177
  });
108
178
  const initializedRef = useRef(false);
109
- // Persist open tab IDs to localStorage
179
+ // Persist open tab IDs to localStorage (exclude sub-agent tabs — they're session-only)
110
180
  useEffect(() => {
111
- if (openTabIds.length > 0) {
181
+ const mainTabs = openTabIds.filter((id) => !parentMap[id]);
182
+ if (mainTabs.length > 0) {
112
183
  try {
113
- localStorage.setItem(OPEN_TABS_KEY, JSON.stringify(openTabIds));
184
+ localStorage.setItem(OPEN_TABS_KEY, JSON.stringify(mainTabs));
114
185
  }
115
186
  catch { }
116
187
  }
117
- }, [openTabIds]);
188
+ }, [openTabIds, parentMap, OPEN_TABS_KEY]);
118
189
  // Initialize open tabs once threads load — validate saved tabs still exist
119
190
  useEffect(() => {
120
191
  if (initializedRef.current || !activeThreadId || threads.length === 0)
121
192
  return;
122
193
  initializedRef.current = true;
123
194
  const threadIds = new Set(threads.map((t) => t.id));
195
+ // If the active thread is a sub-agent, switch to its parent or the most recent main thread
196
+ if (parentMap[activeThreadId]) {
197
+ const parent = parentMap[activeThreadId];
198
+ if (parent && threadIds.has(parent)) {
199
+ switchThread(parent);
200
+ }
201
+ else {
202
+ // Fall back to most recent main thread
203
+ const mainThread = threads.find((t) => !parentMap[t.id]);
204
+ if (mainThread)
205
+ switchThread(mainThread.id);
206
+ }
207
+ }
124
208
  setOpenTabIds((prev) => {
125
- // Filter out any saved tabs that no longer exist
126
- const valid = prev.filter((id) => threadIds.has(id));
127
- // Ensure active thread is included
128
- if (!valid.includes(activeThreadId)) {
209
+ // Filter out any saved tabs that no longer exist, and any sub-agent tabs
210
+ const valid = prev.filter((id) => threadIds.has(id) && !parentMap[id]);
211
+ // Ensure active thread is included (only if it's not a sub-agent)
212
+ if (!parentMap[activeThreadId] && !valid.includes(activeThreadId)) {
129
213
  valid.push(activeThreadId);
130
214
  }
131
215
  return valid.length > 0 ? valid : [activeThreadId];
132
216
  });
133
- }, [activeThreadId, threads]);
217
+ }, [activeThreadId, threads, parentMap, switchThread]);
134
218
  // Ensure active thread is always in open tabs.
135
219
  // Use functional update to check inside the setter — avoids race with the
136
220
  // initialization effect that may have already added the ID in the same batch.
@@ -139,6 +223,22 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
139
223
  setOpenTabIds((prev) => prev.includes(activeThreadId) ? prev : [...prev, activeThreadId]);
140
224
  }
141
225
  }, [activeThreadId]);
226
+ // Ensure at least one tab is always open — auto-create if sidebar is empty
227
+ const autoCreatingRef = useRef(false);
228
+ useEffect(() => {
229
+ if (isLoading || autoCreatingRef.current)
230
+ return;
231
+ if (openTabIds.length === 0) {
232
+ autoCreatingRef.current = true;
233
+ createThread().then((id) => {
234
+ autoCreatingRef.current = false;
235
+ if (id) {
236
+ newThreadIds.current.add(id);
237
+ setOpenTabIds([id]);
238
+ }
239
+ });
240
+ }
241
+ }, [isLoading, openTabIds, createThread]);
142
242
  // Focus the composer when switching tabs
143
243
  useEffect(() => {
144
244
  if (!activeThreadId)
@@ -150,6 +250,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
150
250
  return () => clearTimeout(t);
151
251
  }, [activeThreadId]);
152
252
  // Ref callback: scroll the active tab into view in the overflow container.
253
+ // Uses getBoundingClientRect for reliable positioning regardless of offsetParent.
153
254
  const activeTabRefCb = useCallback((el) => {
154
255
  if (!el)
155
256
  return;
@@ -157,15 +258,13 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
157
258
  if (!container)
158
259
  return;
159
260
  requestAnimationFrame(() => {
160
- const tabLeft = el.offsetLeft;
161
- const tabRight = tabLeft + el.offsetWidth;
162
- const scrollLeft = container.scrollLeft;
163
- const viewWidth = container.clientWidth;
164
- if (tabLeft < scrollLeft) {
165
- container.scrollLeft = tabLeft;
261
+ const containerRect = container.getBoundingClientRect();
262
+ const tabRect = el.getBoundingClientRect();
263
+ if (tabRect.left < containerRect.left) {
264
+ container.scrollLeft += tabRect.left - containerRect.left;
166
265
  }
167
- else if (tabRight > scrollLeft + viewWidth) {
168
- container.scrollLeft = tabRight - viewWidth;
266
+ else if (tabRect.right > containerRect.right) {
267
+ container.scrollLeft += tabRect.right - containerRect.right;
169
268
  }
170
269
  });
171
270
  }, []);
@@ -186,7 +285,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
186
285
  }, [threads]);
187
286
  // Listen for builder.submitChat postMessages
188
287
  useEffect(() => {
189
- const EXEC_MODE_KEY = "agent-native-exec-mode";
288
+ const execModeKey = `agent-native-exec-mode${keyPrefix}`;
190
289
  const PLAN_MODE_INSTRUCTION = `PLAN MODE ACTIVE: Before making any changes, you MUST:\n` +
191
290
  `1. Explore the codebase to understand what's needed\n` +
192
291
  `2. Write a plan to \`.builder/plans/YYYY-MM-DD-<topic>.md\`\n` +
@@ -194,7 +293,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
194
293
  `Do NOT edit any files, run any scripts, or make any changes until the user says to proceed.`;
195
294
  const handler = (event) => {
196
295
  if (event.origin !== window.location.origin &&
197
- event.origin !== getHarnessOrigin()) {
296
+ event.origin !== getFrameOrigin()) {
198
297
  return;
199
298
  }
200
299
  if (event.data?.type !== "builder.submitChat")
@@ -205,7 +304,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
205
304
  const context = event.data.data?.context;
206
305
  const isPlanMode = (() => {
207
306
  try {
208
- return localStorage.getItem(EXEC_MODE_KEY) === "plan";
307
+ return localStorage.getItem(execModeKey) === "plan";
209
308
  }
210
309
  catch {
211
310
  return false;
@@ -230,7 +329,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
230
329
  };
231
330
  window.addEventListener("message", handler);
232
331
  return () => window.removeEventListener("message", handler);
233
- }, []);
332
+ }, [keyPrefix]);
234
333
  // Process pending sends when refs mount
235
334
  useEffect(() => {
236
335
  for (const [tabId, message] of pendingSends.current) {
@@ -268,13 +367,20 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
268
367
  const id = await createThread();
269
368
  if (id) {
270
369
  newThreadIds.current.add(id);
271
- setOpenTabIds((prev) => [...prev, id]);
272
370
  }
273
371
  }, [createThread]);
274
372
  const closeTab = useCallback((tabId) => {
275
373
  setOpenTabIds((prev) => {
276
- if (prev.length <= 1)
277
- return prev;
374
+ if (prev.length <= 1) {
375
+ // Last tab — create a new one and replace the old tab atomically
376
+ createThread().then((newId) => {
377
+ if (newId) {
378
+ newThreadIds.current.add(newId);
379
+ setOpenTabIds([newId]);
380
+ }
381
+ });
382
+ return prev; // Keep old tab until new one is ready
383
+ }
278
384
  const next = prev.filter((id) => id !== tabId);
279
385
  if (tabId === activeThreadIdRef.current && next.length > 0) {
280
386
  const idx = prev.indexOf(tabId);
@@ -285,7 +391,20 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
285
391
  chatRefs.current.delete(tabId);
286
392
  pendingSends.current.delete(tabId);
287
393
  newThreadIds.current.delete(tabId);
288
- }, [switchThread]);
394
+ // Clean up parent map and sub-agent names
395
+ setParentMap((prev) => {
396
+ if (!(tabId in prev))
397
+ return prev;
398
+ const { [tabId]: _, ...rest } = prev;
399
+ return rest;
400
+ });
401
+ setSubAgentNames((prev) => {
402
+ if (!(tabId in prev))
403
+ return prev;
404
+ const { [tabId]: _, ...rest } = prev;
405
+ return rest;
406
+ });
407
+ }, [switchThread, createThread]);
289
408
  const closeOtherTabs = useCallback((tabId) => {
290
409
  setOpenTabIds([tabId]);
291
410
  if (activeThreadIdRef.current !== tabId) {
@@ -299,6 +418,17 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
299
418
  newThreadIds.current.delete(key);
300
419
  }
301
420
  }
421
+ // Clean up parent map and sub-agent names — only keep entries for the surviving tab
422
+ setParentMap((prev) => {
423
+ if (tabId in prev)
424
+ return { [tabId]: prev[tabId] };
425
+ return {};
426
+ });
427
+ setSubAgentNames((prev) => {
428
+ if (tabId in prev)
429
+ return { [tabId]: prev[tabId] };
430
+ return {};
431
+ });
302
432
  }, [switchThread]);
303
433
  const closeAllTabs = useCallback(async () => {
304
434
  const id = await createThread();
@@ -309,6 +439,8 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
309
439
  // Clean up all old refs
310
440
  chatRefs.current.clear();
311
441
  pendingSends.current.clear();
442
+ setParentMap({});
443
+ setSubAgentNames({});
312
444
  }
313
445
  }, [createThread, switchThread]);
314
446
  const clearActiveTab = useCallback(() => {
@@ -320,25 +452,125 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
320
452
  }
321
453
  switchThread(threadId);
322
454
  }, [openTabIds, switchThread]);
323
- const handleGenerateTitle = useCallback((message) => {
324
- if (activeThreadId) {
325
- generateTitle(activeThreadId, message).then((title) => {
326
- if (title && activeThreadId) {
327
- // Persist the generated title to the server
328
- saveThreadData(activeThreadId, {
329
- threadData: "",
330
- title,
331
- preview: message.slice(0, 120),
332
- });
455
+ // Listen for agent-task-open events (from AgentTaskCard "Open" button)
456
+ useEffect(() => {
457
+ function handleOpenTask(e) {
458
+ const detail = e.detail;
459
+ const threadId = detail?.threadId;
460
+ if (!threadId)
461
+ return;
462
+ // The current active thread is the parent that spawned this sub-agent
463
+ const parentId = activeThreadIdRef.current;
464
+ if (parentId && parentId !== threadId) {
465
+ setParentMap((prev) => prev[threadId] === parentId
466
+ ? prev
467
+ : { ...prev, [threadId]: parentId });
468
+ }
469
+ // Store the sub-agent name/description for the tab label
470
+ const name = detail.name || detail.description || "";
471
+ if (name) {
472
+ setSubAgentNames((prev) => prev[threadId] === name ? prev : { ...prev, [threadId]: name });
473
+ }
474
+ // Refresh thread list so the new sub-agent thread appears with its title
475
+ refreshThreads();
476
+ // Open the sub-agent thread as a tab — insert after parent for visual grouping
477
+ if (!openTabIds.includes(threadId)) {
478
+ setOpenTabIds((prev) => {
479
+ if (parentId) {
480
+ const parentIdx = prev.indexOf(parentId);
481
+ if (parentIdx !== -1) {
482
+ // Insert after the parent (and any existing children of that parent)
483
+ const next = [...prev];
484
+ let insertIdx = parentIdx + 1;
485
+ // Skip past any existing children of the same parent
486
+ while (insertIdx < next.length &&
487
+ parentMap[next[insertIdx]] === parentId) {
488
+ insertIdx++;
489
+ }
490
+ next.splice(insertIdx, 0, threadId);
491
+ return next;
492
+ }
493
+ }
494
+ return [...prev, threadId];
495
+ });
496
+ }
497
+ switchThread(threadId);
498
+ }
499
+ window.addEventListener("agent-task-open", handleOpenTask);
500
+ return () => window.removeEventListener("agent-task-open", handleOpenTask);
501
+ }, [openTabIds, switchThread, refreshThreads, parentMap]);
502
+ // Watch for agent-issued chat-command in application-state
503
+ const lastChatCommandRef = useRef(0);
504
+ useEffect(() => {
505
+ let stopped = false;
506
+ let timer = null;
507
+ async function pollChatCommand() {
508
+ if (stopped)
509
+ return;
510
+ try {
511
+ const res = await fetch("/_agent-native/application-state/chat-command");
512
+ if (res.ok) {
513
+ const data = await res.json();
514
+ if (data?.value?.command === "open-thread" &&
515
+ data.value.threadId &&
516
+ data.value.timestamp > lastChatCommandRef.current) {
517
+ lastChatCommandRef.current = data.value.timestamp;
518
+ const threadId = data.value.threadId;
519
+ // Open the thread as a tab and focus it
520
+ if (!openTabIds.includes(threadId)) {
521
+ setOpenTabIds((prev) => [...prev, threadId]);
522
+ }
523
+ switchThread(threadId);
524
+ // Clear the command
525
+ fetch("/_agent-native/application-state/chat-command", {
526
+ method: "DELETE",
527
+ }).catch(() => { });
528
+ }
333
529
  }
334
- });
530
+ }
531
+ catch { }
532
+ if (!stopped) {
533
+ timer = setTimeout(pollChatCommand, 2000);
534
+ }
335
535
  }
336
- }, [activeThreadId, generateTitle, saveThreadData]);
337
- const handleSaveThread = useCallback((data) => {
338
- if (activeThreadId) {
339
- saveThreadData(activeThreadId, data);
536
+ pollChatCommand();
537
+ return () => {
538
+ stopped = true;
539
+ if (timer)
540
+ clearTimeout(timer);
541
+ };
542
+ }, [openTabIds, switchThread]);
543
+ const handleGenerateTitle = useCallback((threadId, message) => {
544
+ generateTitle(threadId, message).then((title) => {
545
+ if (title) {
546
+ // Persist the generated title to the server
547
+ saveThreadData(threadId, {
548
+ threadData: "",
549
+ title,
550
+ preview: message.slice(0, 120),
551
+ });
552
+ }
553
+ });
554
+ }, [generateTitle, saveThreadData]);
555
+ const handleSaveThread = useCallback((threadId, data) => {
556
+ saveThreadData(threadId, data);
557
+ }, [saveThreadData]);
558
+ // ─── Slash command handler ──────────────────────────────────────────
559
+ const [helpVisible, setHelpVisible] = useState(false);
560
+ const handleSlashCommand = useCallback((command) => {
561
+ switch (command) {
562
+ case "clear":
563
+ case "new":
564
+ addTab();
565
+ break;
566
+ case "history":
567
+ setShowHistory(true);
568
+ break;
569
+ case "help":
570
+ setHelpVisible(true);
571
+ break;
340
572
  }
341
- }, [activeThreadId, saveThreadData]);
573
+ }, [addTab]);
342
574
  // Build tabs from open thread IDs
343
575
  const threadMap = new Map(threads.map((t) => [t.id, t]));
344
576
  const tabs = openTabIds
@@ -347,14 +579,28 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
347
579
  const t = threadMap.get(id);
348
580
  return {
349
581
  id,
350
- label: t?.title || t?.preview?.slice(0, 20) || "New chat",
582
+ label: t?.title || t?.preview?.slice(0, 30) || "New chat",
351
583
  status: runningThreads.has(id)
352
584
  ? "running"
353
585
  : (messageCounts[id] ?? t?.messageCount ?? 0) > 0
354
586
  ? "completed"
355
587
  : "idle",
588
+ parentThreadId: parentMap[id],
589
+ subAgentName: subAgentNames[id],
356
590
  };
357
591
  });
592
+ // Include sub-agent tabs that aren't in threadMap yet (just created, not refreshed)
593
+ for (const id of openTabIds) {
594
+ if (!tabs.some((t) => t.id === id)) {
595
+ tabs.push({
596
+ id,
597
+ label: subAgentNames[id] || (parentMap[id] ? "Sub-agent..." : "New chat"),
598
+ status: "running",
599
+ parentThreadId: parentMap[id],
600
+ subAgentName: subAgentNames[id],
601
+ });
602
+ }
603
+ }
358
604
  const headerProps = {
359
605
  tabs,
360
606
  activeTabId: activeThreadId ?? "",
@@ -376,21 +622,57 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
376
622
  }
377
623
  return (_jsxs("div", { className: "flex flex-1 flex-col h-full min-h-0 overflow-x-hidden", children: [_jsx("style", { dangerouslySetInnerHTML: {
378
624
  __html: ".agent-tab-close{opacity:0}.agent-tab:hover .agent-tab-close{opacity:1}",
379
- } }), renderHeader ? (renderHeader(headerProps)) : showTabBar ? (_jsxs("div", { className: "flex items-center px-1 py-1 border-b border-border shrink-0 gap-0.5", children: [_jsx("div", { className: "flex items-center gap-0.5 min-w-0 overflow-x-auto scrollbar-none flex-1", children: tabs.map((tab) => (_jsxs("button", { ref: tab.id === activeThreadId ? activeTabRefCb : undefined, onClick: () => switchThread(tab.id), className: cn("agent-tab relative flex items-center gap-1 px-2.5 py-1.5 rounded-md text-[11px] font-medium shrink-0 max-w-[130px]", tab.id === activeThreadId
380
- ? "bg-accent text-foreground"
381
- : "text-muted-foreground hover:text-foreground hover:bg-accent"), children: [_jsx("span", { className: "truncate pr-1", children: tab.label }), tab.status === "running" && (_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0 animate-pulse" })), openTabIds.length > 1 && (_jsx("span", { role: "button", onClick: (e) => {
382
- e.stopPropagation();
383
- closeTab(tab.id);
384
- }, className: "agent-tab-close flex items-center justify-end text-muted-foreground hover:!text-foreground", style: {
385
- position: "absolute",
386
- right: 0,
387
- top: 0,
388
- bottom: 0,
389
- width: 28,
390
- paddingRight: 6,
391
- borderRadius: "0 6px 6px 0",
392
- background: "linear-gradient(to right, transparent, hsl(var(--accent)) 40%)",
393
- }, children: _jsx(IconX, { size: 8 }) }))] }, tab.id))) }), _jsxs("div", { className: "flex items-center gap-px shrink-0 ml-auto", children: [_jsx("button", { onClick: addTab, className: "flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-accent/50", title: "New chat", children: _jsx(IconPlus, { size: 12 }) }), _jsx("button", { onClick: () => setShowHistory(!showHistory), className: cn("flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-accent/50", showHistory && "bg-accent text-foreground"), title: "Chat history", children: _jsx(IconHistory, { size: 12 }) })] })] })) : null, _jsxs("div", { className: "relative flex-1 flex flex-col min-h-0", children: [renderOverlay ? renderOverlay(headerProps) : null, showHistory && (_jsx(HistoryPopover, { threads: threads, openTabIds: new Set(openTabIds), onSelect: openFromHistory, onClose: () => setShowHistory(false), onSearch: searchThreads })), [...new Set(openTabIds)].map((tabId) => (_jsx("div", { className: "flex-1 min-h-0", style: {
625
+ } }), renderHeader
626
+ ? renderHeader(headerProps)
627
+ : showTabBar
628
+ ? (() => {
629
+ const activeTab = tabs.find((t) => t.id === activeThreadId);
630
+ const focusParentId = activeTab?.parentThreadId || activeThreadId;
631
+ const childTabs = tabs.filter((t) => t.parentThreadId === focusParentId);
632
+ const hasSubTabs = childTabs.length > 0;
633
+ const mainTabs = tabs.filter((t) => !t.parentThreadId);
634
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center px-1 py-1 border-b border-border shrink-0 gap-0.5", children: [_jsx("div", { className: "flex items-center gap-0.5 min-w-0 overflow-x-auto scrollbar-none flex-1", children: mainTabs.map((tab) => {
635
+ const isActive = tab.id === activeThreadId ||
636
+ (tab.id === focusParentId &&
637
+ activeTab?.parentThreadId === tab.id);
638
+ return (_jsxs("button", { ref: isActive ? activeTabRefCb : undefined, onClick: () => switchThread(tab.id), className: cn("agent-tab relative flex items-center gap-1 px-2.5 py-1.5 rounded-md text-[11px] font-medium shrink-0 max-w-[130px]", isActive
639
+ ? "bg-accent text-foreground"
640
+ : "text-muted-foreground hover:text-foreground hover:bg-accent"), children: [_jsx("span", { className: "truncate pr-1", children: tab.label }), tab.status === "running" && (_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0 animate-pulse" })), _jsx("span", { role: "button", onClick: (e) => {
641
+ e.stopPropagation();
642
+ closeTab(tab.id);
643
+ }, className: "agent-tab-close flex items-center justify-end text-muted-foreground hover:!text-foreground", style: {
644
+ position: "absolute",
645
+ right: 0,
646
+ top: 0,
647
+ bottom: 0,
648
+ width: 28,
649
+ paddingRight: 6,
650
+ borderRadius: "0 6px 6px 0",
651
+ background: "linear-gradient(to right, transparent, hsl(var(--accent)) 40%)",
652
+ }, children: _jsx(IconX, { size: 8 }) })] }, tab.id));
653
+ }) }), _jsxs("div", { className: "flex items-center gap-px shrink-0 ml-auto", children: [_jsx("button", { onClick: addTab, className: "flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-accent/50", title: "New chat", children: _jsx(IconPlus, { size: 12 }) }), _jsx("button", { onClick: () => setShowHistory(!showHistory), className: cn("flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-accent/50", showHistory && "bg-accent text-foreground"), title: "Chat history", children: _jsx(IconHistory, { size: 12 }) })] })] }), hasSubTabs && (_jsx("div", { className: "flex items-center px-1 py-0.5 border-b border-border shrink-0 gap-0.5 bg-muted/30", children: _jsxs("div", { className: "flex items-center gap-0.5 min-w-0 overflow-x-auto scrollbar-none flex-1", children: [_jsx("button", { onClick: () => switchThread(focusParentId), className: cn("flex shrink-0 items-center gap-1 rounded-md px-2 py-1 text-[10px] font-medium cursor-pointer", activeThreadId === focusParentId
654
+ ? "bg-accent text-foreground"
655
+ : "text-muted-foreground hover:bg-accent hover:text-foreground"), children: "Main" }), childTabs.map((tab) => (_jsxs("button", { ref: tab.id === activeThreadId
656
+ ? activeTabRefCb
657
+ : undefined, onClick: () => switchThread(tab.id), className: cn("agent-tab relative flex shrink-0 items-center gap-1 rounded-md px-2 py-1 text-[10px] font-medium cursor-pointer max-w-[130px]", tab.id === activeThreadId
658
+ ? "bg-accent text-foreground"
659
+ : "text-muted-foreground hover:bg-accent hover:text-foreground"), children: [_jsx("span", { className: "truncate pr-1", children: tab.subAgentName || tab.label }), tab.status === "running" && (_jsx("span", { className: "w-1 h-1 rounded-full bg-muted-foreground/50 shrink-0 animate-pulse" })), _jsx("span", { role: "button", onClick: (e) => {
660
+ e.stopPropagation();
661
+ closeTab(tab.id);
662
+ }, className: "agent-tab-close flex items-center justify-end text-muted-foreground hover:!text-foreground", style: {
663
+ position: "absolute",
664
+ right: 0,
665
+ top: 0,
666
+ bottom: 0,
667
+ width: 24,
668
+ paddingRight: 4,
669
+ borderRadius: "0 6px 6px 0",
670
+ background: "linear-gradient(to right, transparent, hsl(var(--accent)) 40%)",
671
+ }, children: _jsx(IconX, { size: 8 }) })] }, tab.id)))] }) }))] }));
672
+ })()
673
+ : null, _jsxs("div", { className: "relative flex-1 flex flex-col min-h-0", children: [renderOverlay ? renderOverlay(headerProps) : null, showHistory && (_jsx(HistoryPopover, { threads: threads, openTabIds: new Set(openTabIds), onSelect: openFromHistory, onClose: () => setShowHistory(false), onSearch: searchThreads })), helpVisible && _jsx(HelpPopover, { onClose: () => setHelpVisible(false) }), [...new Set(openTabIds)]
674
+ .filter((tabId) => tabId === activeThreadId || mountedTabsRef.current.has(tabId))
675
+ .map((tabId) => (_jsx("div", { className: "flex-1 min-h-0", style: {
394
676
  display: contentHidden || tabId !== activeThreadId ? "none" : "flex",
395
677
  }, children: _jsx(AssistantChat, { ...props, ref: (handle) => {
396
678
  if (handle) {
@@ -399,6 +681,6 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
399
681
  else {
400
682
  chatRefs.current.delete(tabId);
401
683
  }
402
- }, threadId: tabId, tabId: tabId, apiUrl: apiUrl, isNewThread: newThreadIds.current.has(tabId), onMessageCountChange: (count) => setMessageCounts((prev) => prev[tabId] === count ? prev : { ...prev, [tabId]: count }), onSaveThread: tabId === activeThreadId ? handleSaveThread : undefined, onGenerateTitle: tabId === activeThreadId ? handleGenerateTitle : undefined }) }, tabId)))] })] }));
684
+ }, threadId: tabId, tabId: tabId, apiUrl: apiUrl, isNewThread: newThreadIds.current.has(tabId), onMessageCountChange: (count) => setMessageCounts((prev) => prev[tabId] === count ? prev : { ...prev, [tabId]: count }), onSaveThread: handleSaveThread, onGenerateTitle: handleGenerateTitle, onSlashCommand: handleSlashCommand }) }, tabId)))] })] }));
403
685
  }
404
686
  //# sourceMappingURL=MultiTabAssistantChat.js.map