@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
@@ -0,0 +1,215 @@
1
+ import { getHeader } from "h3";
2
+ import { readBody } from "../../server/h3-helpers.js";
3
+ /** Slack's max message length */
4
+ const SLACK_MAX_LENGTH = 4000;
5
+ /**
6
+ * Create a Slack platform adapter.
7
+ *
8
+ * Required env vars:
9
+ * - SLACK_BOT_TOKEN — Bot user OAuth token (xoxb-...)
10
+ * - SLACK_SIGNING_SECRET — Used to verify webhook signatures
11
+ */
12
+ export function slackAdapter() {
13
+ return {
14
+ platform: "slack",
15
+ label: "Slack",
16
+ getRequiredEnvKeys() {
17
+ return [
18
+ {
19
+ key: "SLACK_BOT_TOKEN",
20
+ label: "Slack Bot Token",
21
+ required: true,
22
+ },
23
+ {
24
+ key: "SLACK_SIGNING_SECRET",
25
+ label: "Slack Signing Secret",
26
+ required: true,
27
+ },
28
+ ];
29
+ },
30
+ async handleVerification(event) {
31
+ // Slack sends url_verification when first setting up the webhook
32
+ const body = await readRawBody(event);
33
+ try {
34
+ const parsed = JSON.parse(body);
35
+ if (parsed.type === "url_verification") {
36
+ return { handled: true, response: { challenge: parsed.challenge } };
37
+ }
38
+ }
39
+ catch { }
40
+ // Store raw body for later use
41
+ event.context.__rawBody = body;
42
+ return { handled: false };
43
+ },
44
+ async verifyWebhook(event) {
45
+ const signingSecret = process.env.SLACK_SIGNING_SECRET;
46
+ if (!signingSecret)
47
+ return false;
48
+ const signature = getHeader(event, "x-slack-signature");
49
+ const timestamp = getHeader(event, "x-slack-request-timestamp");
50
+ if (!signature || !timestamp)
51
+ return false;
52
+ // Reject requests older than 5 minutes (replay protection)
53
+ const ts = parseInt(timestamp, 10);
54
+ if (Math.abs(Date.now() / 1000 - ts) > 300)
55
+ return false;
56
+ const body = event.context.__rawBody ??
57
+ (await readRawBody(event));
58
+ const crypto = await import("node:crypto");
59
+ const basestring = `v0:${timestamp}:${body}`;
60
+ const expectedSignature = "v0=" +
61
+ crypto
62
+ .createHmac("sha256", signingSecret)
63
+ .update(basestring)
64
+ .digest("hex");
65
+ // Timing-safe comparison
66
+ try {
67
+ return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expectedSignature));
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ },
73
+ async parseIncomingMessage(event) {
74
+ const raw = event.context.__rawBody ??
75
+ (await readRawBody(event));
76
+ let payload;
77
+ try {
78
+ payload = JSON.parse(raw);
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ // Handle Events API wrapper
84
+ if (payload.type === "event_callback") {
85
+ const e = payload.event;
86
+ if (!e)
87
+ return null;
88
+ // Ignore bot messages
89
+ if (e.bot_id || e.subtype === "bot_message")
90
+ return null;
91
+ // Ignore message edits and deletes
92
+ if (e.subtype === "message_changed" || e.subtype === "message_deleted")
93
+ return null;
94
+ // Handle both direct messages and app_mentions
95
+ const text = e.text?.trim();
96
+ if (!text)
97
+ return null;
98
+ // Remove bot mention from text (e.g., "<@U123> do something" → "do something")
99
+ const cleanText = text.replace(/<@[A-Z0-9]+>/g, "").trim();
100
+ if (!cleanText)
101
+ return null;
102
+ // Thread ID: use thread_ts if in a thread, otherwise message ts
103
+ const threadTs = e.thread_ts || e.ts;
104
+ const externalThreadId = `${e.channel}:${threadTs}`;
105
+ return {
106
+ platform: "slack",
107
+ externalThreadId,
108
+ text: cleanText,
109
+ senderName: e.user,
110
+ senderId: e.user,
111
+ platformContext: {
112
+ channelId: e.channel,
113
+ threadTs: threadTs,
114
+ messageTs: e.ts,
115
+ teamId: payload.team_id,
116
+ eventId: payload.event_id,
117
+ },
118
+ timestamp: Math.floor(parseFloat(e.ts) * 1000),
119
+ };
120
+ }
121
+ return null;
122
+ },
123
+ async sendResponse(message, context) {
124
+ const token = process.env.SLACK_BOT_TOKEN;
125
+ if (!token) {
126
+ console.error("[slack] SLACK_BOT_TOKEN not configured");
127
+ return;
128
+ }
129
+ const channelId = context.platformContext.channelId;
130
+ const threadTs = context.platformContext.threadTs;
131
+ // Split long messages
132
+ const chunks = splitMessage(message.text, SLACK_MAX_LENGTH);
133
+ for (const chunk of chunks) {
134
+ const body = {
135
+ channel: channelId,
136
+ text: chunk,
137
+ thread_ts: threadTs,
138
+ };
139
+ try {
140
+ const res = await fetch("https://slack.com/api/chat.postMessage", {
141
+ method: "POST",
142
+ headers: {
143
+ Authorization: `Bearer ${token}`,
144
+ "Content-Type": "application/json",
145
+ },
146
+ body: JSON.stringify(body),
147
+ });
148
+ const data = (await res.json());
149
+ if (!data.ok) {
150
+ console.error("[slack] chat.postMessage error:", data.error);
151
+ }
152
+ }
153
+ catch (err) {
154
+ console.error("[slack] Failed to send message:", err);
155
+ }
156
+ }
157
+ },
158
+ formatAgentResponse(text) {
159
+ return { text, platformContext: {} };
160
+ },
161
+ async getStatus(baseUrl) {
162
+ const hasToken = !!process.env.SLACK_BOT_TOKEN;
163
+ const hasSecret = !!process.env.SLACK_SIGNING_SECRET;
164
+ const configured = hasToken && hasSecret;
165
+ return {
166
+ platform: "slack",
167
+ label: "Slack",
168
+ enabled: false, // overridden by plugin
169
+ configured,
170
+ details: {
171
+ hasToken,
172
+ hasSecret,
173
+ },
174
+ error: !configured
175
+ ? "Set SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET in your environment"
176
+ : undefined,
177
+ };
178
+ },
179
+ };
180
+ }
181
+ /** Read the raw body as a string (H3 may have already parsed it) */
182
+ async function readRawBody(event) {
183
+ if (event.context.__rawBody)
184
+ return event.context.__rawBody;
185
+ const body = await readBody(event);
186
+ const raw = typeof body === "string" ? body : JSON.stringify(body);
187
+ event.context.__rawBody = raw;
188
+ return raw;
189
+ }
190
+ /** Split a message into chunks that fit within the platform's limit */
191
+ function splitMessage(text, maxLength) {
192
+ if (text.length <= maxLength)
193
+ return [text];
194
+ const chunks = [];
195
+ let remaining = text;
196
+ while (remaining.length > 0) {
197
+ if (remaining.length <= maxLength) {
198
+ chunks.push(remaining);
199
+ break;
200
+ }
201
+ // Try to split at a newline
202
+ let splitIdx = remaining.lastIndexOf("\n", maxLength);
203
+ if (splitIdx <= 0) {
204
+ // Try to split at a space
205
+ splitIdx = remaining.lastIndexOf(" ", maxLength);
206
+ }
207
+ if (splitIdx <= 0) {
208
+ splitIdx = maxLength;
209
+ }
210
+ chunks.push(remaining.slice(0, splitIdx));
211
+ remaining = remaining.slice(splitIdx).trimStart();
212
+ }
213
+ return chunks;
214
+ }
215
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/integrations/adapters/slack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { PlatformAdapter } from "../types.js";
2
+ /**
3
+ * Create a Telegram platform adapter.
4
+ *
5
+ * Required env vars:
6
+ * - TELEGRAM_BOT_TOKEN — Bot token from @BotFather
7
+ *
8
+ * Optional env vars:
9
+ * - TELEGRAM_WEBHOOK_SECRET — Secret token for webhook verification
10
+ */
11
+ export declare function telegramAdapter(): PlatformAdapter;
12
+ //# sourceMappingURL=telegram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../../src/integrations/adapters/telegram.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,aAAa,CAAC;AAOrB;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAqLjD"}
@@ -0,0 +1,184 @@
1
+ import { getHeader } from "h3";
2
+ import { readBody } from "../../server/h3-helpers.js";
3
+ /** Telegram's max message length */
4
+ const TELEGRAM_MAX_LENGTH = 4096;
5
+ /**
6
+ * Create a Telegram platform adapter.
7
+ *
8
+ * Required env vars:
9
+ * - TELEGRAM_BOT_TOKEN — Bot token from @BotFather
10
+ *
11
+ * Optional env vars:
12
+ * - TELEGRAM_WEBHOOK_SECRET — Secret token for webhook verification
13
+ */
14
+ export function telegramAdapter() {
15
+ return {
16
+ platform: "telegram",
17
+ label: "Telegram",
18
+ getRequiredEnvKeys() {
19
+ return [
20
+ {
21
+ key: "TELEGRAM_BOT_TOKEN",
22
+ label: "Telegram Bot Token",
23
+ required: true,
24
+ },
25
+ {
26
+ key: "TELEGRAM_WEBHOOK_SECRET",
27
+ label: "Telegram Webhook Secret",
28
+ required: false,
29
+ },
30
+ ];
31
+ },
32
+ async handleVerification(_event) {
33
+ // Telegram doesn't have a verification challenge — webhook is set via API call
34
+ return { handled: false };
35
+ },
36
+ async verifyWebhook(event) {
37
+ const secret = process.env.TELEGRAM_WEBHOOK_SECRET;
38
+ if (!secret) {
39
+ // No secret configured — accept all (Telegram recommends using a secret but doesn't require it)
40
+ return !!process.env.TELEGRAM_BOT_TOKEN;
41
+ }
42
+ const headerSecret = getHeader(event, "x-telegram-bot-api-secret-token");
43
+ if (!headerSecret)
44
+ return false;
45
+ // Timing-safe comparison
46
+ try {
47
+ const crypto = await import("node:crypto");
48
+ return crypto.timingSafeEqual(Buffer.from(secret), Buffer.from(headerSecret));
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ },
54
+ async parseIncomingMessage(event) {
55
+ const body = await readBody(event);
56
+ if (!body)
57
+ return null;
58
+ // Handle regular messages
59
+ const message = body.message || body.edited_message;
60
+ if (!message)
61
+ return null;
62
+ // Only process text messages
63
+ const text = message.text?.trim();
64
+ if (!text)
65
+ return null;
66
+ // Ignore bot commands that we don't handle (e.g., /start is fine)
67
+ // Remove /start command prefix if present
68
+ const cleanText = text === "/start"
69
+ ? "Hello! I'm ready to chat."
70
+ : text.replace(/^\/\w+\s*/, "").trim() || text;
71
+ const chat = message.chat;
72
+ const from = message.from;
73
+ return {
74
+ platform: "telegram",
75
+ externalThreadId: String(chat.id),
76
+ text: cleanText,
77
+ senderName: from?.first_name + (from?.last_name ? ` ${from.last_name}` : ""),
78
+ senderId: String(from?.id),
79
+ platformContext: {
80
+ chatId: chat.id,
81
+ chatType: chat.type,
82
+ messageId: message.message_id,
83
+ fromId: from?.id,
84
+ fromUsername: from?.username,
85
+ },
86
+ timestamp: message.date * 1000,
87
+ };
88
+ },
89
+ async sendResponse(message, context) {
90
+ const token = process.env.TELEGRAM_BOT_TOKEN;
91
+ if (!token) {
92
+ console.error("[telegram] TELEGRAM_BOT_TOKEN not configured");
93
+ return;
94
+ }
95
+ const chatId = context.platformContext.chatId;
96
+ const chunks = splitMessage(message.text, TELEGRAM_MAX_LENGTH);
97
+ for (const chunk of chunks) {
98
+ try {
99
+ const res = await fetch(`https://api.telegram.org/bot${token}/sendMessage`, {
100
+ method: "POST",
101
+ headers: { "Content-Type": "application/json" },
102
+ body: JSON.stringify({
103
+ chat_id: chatId,
104
+ text: chunk,
105
+ parse_mode: "Markdown",
106
+ }),
107
+ });
108
+ const data = (await res.json());
109
+ if (!data.ok) {
110
+ // Retry without Markdown if parsing fails
111
+ if (data.description?.includes("parse")) {
112
+ await fetch(`https://api.telegram.org/bot${token}/sendMessage`, {
113
+ method: "POST",
114
+ headers: { "Content-Type": "application/json" },
115
+ body: JSON.stringify({
116
+ chat_id: chatId,
117
+ text: chunk,
118
+ }),
119
+ });
120
+ }
121
+ else {
122
+ console.error("[telegram] sendMessage error:", data.description);
123
+ }
124
+ }
125
+ }
126
+ catch (err) {
127
+ console.error("[telegram] Failed to send message:", err);
128
+ }
129
+ }
130
+ },
131
+ formatAgentResponse(text) {
132
+ return { text, platformContext: { parse_mode: "Markdown" } };
133
+ },
134
+ async getStatus(_baseUrl) {
135
+ const hasToken = !!process.env.TELEGRAM_BOT_TOKEN;
136
+ let botName;
137
+ if (hasToken) {
138
+ try {
139
+ const res = await fetch(`https://api.telegram.org/bot${process.env.TELEGRAM_BOT_TOKEN}/getMe`);
140
+ const data = (await res.json());
141
+ if (data.ok) {
142
+ botName = data.result?.username;
143
+ }
144
+ }
145
+ catch { }
146
+ }
147
+ return {
148
+ platform: "telegram",
149
+ label: "Telegram",
150
+ enabled: false, // overridden by plugin
151
+ configured: hasToken,
152
+ details: {
153
+ hasToken,
154
+ botUsername: botName,
155
+ },
156
+ error: !hasToken
157
+ ? "Set TELEGRAM_BOT_TOKEN in your environment"
158
+ : undefined,
159
+ };
160
+ },
161
+ };
162
+ }
163
+ /** Split a message into chunks that fit within the platform's limit */
164
+ function splitMessage(text, maxLength) {
165
+ if (text.length <= maxLength)
166
+ return [text];
167
+ const chunks = [];
168
+ let remaining = text;
169
+ while (remaining.length > 0) {
170
+ if (remaining.length <= maxLength) {
171
+ chunks.push(remaining);
172
+ break;
173
+ }
174
+ let splitIdx = remaining.lastIndexOf("\n", maxLength);
175
+ if (splitIdx <= 0)
176
+ splitIdx = remaining.lastIndexOf(" ", maxLength);
177
+ if (splitIdx <= 0)
178
+ splitIdx = maxLength;
179
+ chunks.push(remaining.slice(0, splitIdx));
180
+ remaining = remaining.slice(splitIdx).trimStart();
181
+ }
182
+ return chunks;
183
+ }
184
+ //# sourceMappingURL=telegram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../src/integrations/adapters/telegram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { PlatformAdapter } from "../types.js";
2
+ /**
3
+ * Create a WhatsApp Cloud API platform adapter.
4
+ *
5
+ * Required env vars:
6
+ * - WHATSAPP_ACCESS_TOKEN — Permanent access token from Meta
7
+ * - WHATSAPP_VERIFY_TOKEN — Custom token for webhook verification
8
+ * - WHATSAPP_PHONE_NUMBER_ID — Phone number ID from Meta dashboard
9
+ *
10
+ * Optional env vars:
11
+ * - WHATSAPP_APP_SECRET — App secret for signature verification
12
+ */
13
+ export declare function whatsappAdapter(): PlatformAdapter;
14
+ //# sourceMappingURL=whatsapp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../../src/integrations/adapters/whatsapp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,aAAa,CAAC;AAOrB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,eAAe,CA4LjD"}
@@ -0,0 +1,205 @@
1
+ import { getQuery, getHeader } from "h3";
2
+ import { readBody } from "../../server/h3-helpers.js";
3
+ /** WhatsApp's max message length */
4
+ const WHATSAPP_MAX_LENGTH = 4096;
5
+ /**
6
+ * Create a WhatsApp Cloud API platform adapter.
7
+ *
8
+ * Required env vars:
9
+ * - WHATSAPP_ACCESS_TOKEN — Permanent access token from Meta
10
+ * - WHATSAPP_VERIFY_TOKEN — Custom token for webhook verification
11
+ * - WHATSAPP_PHONE_NUMBER_ID — Phone number ID from Meta dashboard
12
+ *
13
+ * Optional env vars:
14
+ * - WHATSAPP_APP_SECRET — App secret for signature verification
15
+ */
16
+ export function whatsappAdapter() {
17
+ return {
18
+ platform: "whatsapp",
19
+ label: "WhatsApp",
20
+ getRequiredEnvKeys() {
21
+ return [
22
+ {
23
+ key: "WHATSAPP_ACCESS_TOKEN",
24
+ label: "WhatsApp Access Token",
25
+ required: true,
26
+ },
27
+ {
28
+ key: "WHATSAPP_VERIFY_TOKEN",
29
+ label: "WhatsApp Verify Token",
30
+ required: true,
31
+ },
32
+ {
33
+ key: "WHATSAPP_PHONE_NUMBER_ID",
34
+ label: "WhatsApp Phone Number ID",
35
+ required: true,
36
+ },
37
+ {
38
+ key: "WHATSAPP_APP_SECRET",
39
+ label: "WhatsApp App Secret",
40
+ required: false,
41
+ },
42
+ ];
43
+ },
44
+ async handleVerification(event) {
45
+ // WhatsApp uses GET request for webhook verification
46
+ const method = event.node?.req?.method || "POST";
47
+ if (method !== "GET")
48
+ return { handled: false };
49
+ const query = getQuery(event);
50
+ const mode = query["hub.mode"];
51
+ const token = query["hub.verify_token"];
52
+ const challenge = query["hub.challenge"];
53
+ if (mode === "subscribe" && token === process.env.WHATSAPP_VERIFY_TOKEN) {
54
+ return { handled: true, response: challenge };
55
+ }
56
+ return { handled: false };
57
+ },
58
+ async verifyWebhook(event) {
59
+ const appSecret = process.env.WHATSAPP_APP_SECRET;
60
+ if (!appSecret) {
61
+ // No app secret — accept if access token is configured
62
+ return !!process.env.WHATSAPP_ACCESS_TOKEN;
63
+ }
64
+ const signature = getHeader(event, "x-hub-signature-256");
65
+ if (!signature)
66
+ return false;
67
+ const body = await readRawBody(event);
68
+ const crypto = await import("node:crypto");
69
+ const expectedSignature = "sha256=" +
70
+ crypto.createHmac("sha256", appSecret).update(body).digest("hex");
71
+ try {
72
+ return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expectedSignature));
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ },
78
+ async parseIncomingMessage(event) {
79
+ const body = await readBody(event);
80
+ if (!body)
81
+ return null;
82
+ // WhatsApp Cloud API webhook payload structure
83
+ const entry = body.entry?.[0];
84
+ if (!entry)
85
+ return null;
86
+ const changes = entry.changes?.[0];
87
+ if (!changes || changes.field !== "messages")
88
+ return null;
89
+ const value = changes.value;
90
+ const message = value?.messages?.[0];
91
+ if (!message)
92
+ return null;
93
+ // Only handle text messages
94
+ if (message.type !== "text")
95
+ return null;
96
+ const text = message.text?.body?.trim();
97
+ if (!text)
98
+ return null;
99
+ const contact = value.contacts?.[0];
100
+ const from = message.from; // Phone number
101
+ return {
102
+ platform: "whatsapp",
103
+ externalThreadId: from,
104
+ text,
105
+ senderName: contact?.profile?.name,
106
+ senderId: from,
107
+ platformContext: {
108
+ phoneNumberId: value.metadata?.phone_number_id,
109
+ displayPhoneNumber: value.metadata?.display_phone_number,
110
+ messageId: message.id,
111
+ from,
112
+ timestamp: message.timestamp,
113
+ },
114
+ timestamp: parseInt(message.timestamp, 10) * 1000,
115
+ };
116
+ },
117
+ async sendResponse(message, context) {
118
+ const accessToken = process.env.WHATSAPP_ACCESS_TOKEN;
119
+ const phoneNumberId = process.env.WHATSAPP_PHONE_NUMBER_ID;
120
+ if (!accessToken || !phoneNumberId) {
121
+ console.error("[whatsapp] WHATSAPP_ACCESS_TOKEN or WHATSAPP_PHONE_NUMBER_ID not configured");
122
+ return;
123
+ }
124
+ const to = context.senderId;
125
+ const chunks = splitMessage(message.text, WHATSAPP_MAX_LENGTH);
126
+ for (const chunk of chunks) {
127
+ try {
128
+ const res = await fetch(`https://graph.facebook.com/v21.0/${phoneNumberId}/messages`, {
129
+ method: "POST",
130
+ headers: {
131
+ Authorization: `Bearer ${accessToken}`,
132
+ "Content-Type": "application/json",
133
+ },
134
+ body: JSON.stringify({
135
+ messaging_product: "whatsapp",
136
+ recipient_type: "individual",
137
+ to,
138
+ type: "text",
139
+ text: { body: chunk },
140
+ }),
141
+ });
142
+ if (!res.ok) {
143
+ const data = await res.json().catch(() => ({}));
144
+ console.error("[whatsapp] sendMessage error:", data);
145
+ }
146
+ }
147
+ catch (err) {
148
+ console.error("[whatsapp] Failed to send message:", err);
149
+ }
150
+ }
151
+ },
152
+ formatAgentResponse(text) {
153
+ return { text, platformContext: {} };
154
+ },
155
+ async getStatus(_baseUrl) {
156
+ const hasAccessToken = !!process.env.WHATSAPP_ACCESS_TOKEN;
157
+ const hasVerifyToken = !!process.env.WHATSAPP_VERIFY_TOKEN;
158
+ const hasPhoneNumberId = !!process.env.WHATSAPP_PHONE_NUMBER_ID;
159
+ const configured = hasAccessToken && hasVerifyToken && hasPhoneNumberId;
160
+ return {
161
+ platform: "whatsapp",
162
+ label: "WhatsApp",
163
+ enabled: false, // overridden by plugin
164
+ configured,
165
+ details: {
166
+ hasAccessToken,
167
+ hasVerifyToken,
168
+ hasPhoneNumberId,
169
+ },
170
+ error: !configured
171
+ ? "Set WHATSAPP_ACCESS_TOKEN, WHATSAPP_VERIFY_TOKEN, and WHATSAPP_PHONE_NUMBER_ID"
172
+ : undefined,
173
+ };
174
+ },
175
+ };
176
+ }
177
+ async function readRawBody(event) {
178
+ if (event.context.__rawBody)
179
+ return event.context.__rawBody;
180
+ const body = await readBody(event);
181
+ const raw = typeof body === "string" ? body : JSON.stringify(body);
182
+ event.context.__rawBody = raw;
183
+ return raw;
184
+ }
185
+ function splitMessage(text, maxLength) {
186
+ if (text.length <= maxLength)
187
+ return [text];
188
+ const chunks = [];
189
+ let remaining = text;
190
+ while (remaining.length > 0) {
191
+ if (remaining.length <= maxLength) {
192
+ chunks.push(remaining);
193
+ break;
194
+ }
195
+ let splitIdx = remaining.lastIndexOf("\n", maxLength);
196
+ if (splitIdx <= 0)
197
+ splitIdx = remaining.lastIndexOf(" ", maxLength);
198
+ if (splitIdx <= 0)
199
+ splitIdx = maxLength;
200
+ chunks.push(remaining.slice(0, splitIdx));
201
+ remaining = remaining.slice(splitIdx).trimStart();
202
+ }
203
+ return chunks;
204
+ }
205
+ //# sourceMappingURL=whatsapp.js.map