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

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 (509) hide show
  1. package/dist/a2a/client.d.ts +7 -0
  2. package/dist/a2a/client.d.ts.map +1 -1
  3. package/dist/a2a/client.js +24 -3
  4. package/dist/a2a/client.js.map +1 -1
  5. package/dist/a2a/handlers.d.ts +6 -3
  6. package/dist/a2a/handlers.d.ts.map +1 -1
  7. package/dist/a2a/handlers.js +45 -39
  8. package/dist/a2a/handlers.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 +2 -2
  12. package/dist/a2a/index.js.map +1 -1
  13. package/dist/a2a/server.d.ts +7 -2
  14. package/dist/a2a/server.d.ts.map +1 -1
  15. package/dist/a2a/server.js +54 -14
  16. package/dist/a2a/server.js.map +1 -1
  17. package/dist/a2a/task-store.d.ts +6 -6
  18. package/dist/a2a/task-store.d.ts.map +1 -1
  19. package/dist/a2a/task-store.js +102 -42
  20. package/dist/a2a/task-store.js.map +1 -1
  21. package/dist/a2a/types.d.ts +2 -0
  22. package/dist/a2a/types.d.ts.map +1 -1
  23. package/dist/action.d.ts +46 -0
  24. package/dist/action.d.ts.map +1 -0
  25. package/dist/action.js +35 -0
  26. package/dist/action.js.map +1 -0
  27. package/dist/adapters/sync/file-sync.js +1 -1
  28. package/dist/agent/index.d.ts +2 -2
  29. package/dist/agent/index.d.ts.map +1 -1
  30. package/dist/agent/index.js.map +1 -1
  31. package/dist/agent/production-agent.d.ts +22 -6
  32. package/dist/agent/production-agent.d.ts.map +1 -1
  33. package/dist/agent/production-agent.js +326 -107
  34. package/dist/agent/production-agent.js.map +1 -1
  35. package/dist/agent/run-manager.d.ts +43 -0
  36. package/dist/agent/run-manager.d.ts.map +1 -0
  37. package/dist/agent/run-manager.js +358 -0
  38. package/dist/agent/run-manager.js.map +1 -0
  39. package/dist/agent/run-store.d.ts +26 -0
  40. package/dist/agent/run-store.d.ts.map +1 -0
  41. package/dist/agent/run-store.js +145 -0
  42. package/dist/agent/run-store.js.map +1 -0
  43. package/dist/agent/thread-data-builder.d.ts +30 -0
  44. package/dist/agent/thread-data-builder.d.ts.map +1 -0
  45. package/dist/agent/thread-data-builder.js +88 -0
  46. package/dist/agent/thread-data-builder.js.map +1 -0
  47. package/dist/agent/types.d.ts +52 -1
  48. package/dist/agent/types.d.ts.map +1 -1
  49. package/dist/application-state/emitter.d.ts +3 -2
  50. package/dist/application-state/emitter.d.ts.map +1 -1
  51. package/dist/application-state/emitter.js +14 -4
  52. package/dist/application-state/emitter.js.map +1 -1
  53. package/dist/application-state/handlers.d.ts.map +1 -1
  54. package/dist/application-state/handlers.js +13 -16
  55. package/dist/application-state/handlers.js.map +1 -1
  56. package/dist/application-state/script-helpers.d.ts +1 -1
  57. package/dist/application-state/script-helpers.d.ts.map +1 -1
  58. package/dist/application-state/script-helpers.js +15 -5
  59. package/dist/application-state/script-helpers.js.map +1 -1
  60. package/dist/application-state/store.d.ts +4 -3
  61. package/dist/application-state/store.d.ts.map +1 -1
  62. package/dist/application-state/store.js +31 -38
  63. package/dist/application-state/store.js.map +1 -1
  64. package/dist/chat-threads/emitter.d.ts +9 -0
  65. package/dist/chat-threads/emitter.d.ts.map +1 -0
  66. package/dist/chat-threads/emitter.js +14 -0
  67. package/dist/chat-threads/emitter.js.map +1 -0
  68. package/dist/chat-threads/store.d.ts +28 -0
  69. package/dist/chat-threads/store.d.ts.map +1 -0
  70. package/dist/chat-threads/store.js +124 -0
  71. package/dist/chat-threads/store.js.map +1 -0
  72. package/dist/cli/create.d.ts.map +1 -1
  73. package/dist/cli/create.js +4 -18
  74. package/dist/cli/create.js.map +1 -1
  75. package/dist/cli/index.js +42 -3
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/cli/setup-agents.d.ts +11 -0
  78. package/dist/cli/setup-agents.d.ts.map +1 -0
  79. package/dist/cli/setup-agents.js +123 -0
  80. package/dist/cli/setup-agents.js.map +1 -0
  81. package/dist/client/AgentPanel.d.ts +14 -3
  82. package/dist/client/AgentPanel.d.ts.map +1 -1
  83. package/dist/client/AgentPanel.js +492 -21
  84. package/dist/client/AgentPanel.js.map +1 -1
  85. package/dist/client/AssistantChat.d.ts +27 -3
  86. package/dist/client/AssistantChat.d.ts.map +1 -1
  87. package/dist/client/AssistantChat.js +639 -57
  88. package/dist/client/AssistantChat.js.map +1 -1
  89. package/dist/client/ClientOnly.d.ts +14 -0
  90. package/dist/client/ClientOnly.d.ts.map +1 -0
  91. package/dist/client/ClientOnly.js +17 -0
  92. package/dist/client/ClientOnly.js.map +1 -0
  93. package/dist/client/CommandMenu.d.ts +71 -0
  94. package/dist/client/CommandMenu.d.ts.map +1 -0
  95. package/dist/client/CommandMenu.js +257 -0
  96. package/dist/client/CommandMenu.js.map +1 -0
  97. package/dist/client/DefaultSpinner.d.ts +7 -0
  98. package/dist/client/DefaultSpinner.d.ts.map +1 -0
  99. package/dist/client/DefaultSpinner.js +28 -0
  100. package/dist/client/DefaultSpinner.js.map +1 -0
  101. package/dist/client/MultiTabAssistantChat.d.ts +34 -2
  102. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  103. package/dist/client/MultiTabAssistantChat.js +346 -67
  104. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  105. package/dist/client/PoweredByBadge.d.ts.map +1 -1
  106. package/dist/client/PoweredByBadge.js +2 -1
  107. package/dist/client/PoweredByBadge.js.map +1 -1
  108. package/dist/client/active-run-state.d.ts +10 -0
  109. package/dist/client/active-run-state.d.ts.map +1 -0
  110. package/dist/client/active-run-state.js +32 -0
  111. package/dist/client/active-run-state.js.map +1 -0
  112. package/dist/client/agent-chat-adapter.d.ts +2 -1
  113. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  114. package/dist/client/agent-chat-adapter.js +83 -129
  115. package/dist/client/agent-chat-adapter.js.map +1 -1
  116. package/dist/client/agent-chat.d.ts +2 -0
  117. package/dist/client/agent-chat.d.ts.map +1 -1
  118. package/dist/client/agent-chat.js +2 -2
  119. package/dist/client/agent-chat.js.map +1 -1
  120. package/dist/client/analytics.d.ts +16 -0
  121. package/dist/client/analytics.d.ts.map +1 -0
  122. package/dist/client/analytics.js +17 -0
  123. package/dist/client/analytics.js.map +1 -0
  124. package/dist/client/components/ApiKeySettings.d.ts +2 -2
  125. package/dist/client/components/ApiKeySettings.js +4 -4
  126. package/dist/client/components/ApiKeySettings.js.map +1 -1
  127. package/dist/client/components/CodeRequiredDialog.d.ts +13 -0
  128. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -0
  129. package/dist/client/components/CodeRequiredDialog.js +160 -0
  130. package/dist/client/components/CodeRequiredDialog.js.map +1 -0
  131. package/dist/client/composer/MentionPopover.d.ts +26 -0
  132. package/dist/client/composer/MentionPopover.d.ts.map +1 -0
  133. package/dist/client/composer/MentionPopover.js +130 -0
  134. package/dist/client/composer/MentionPopover.js.map +1 -0
  135. package/dist/client/composer/TiptapComposer.d.ts +19 -0
  136. package/dist/client/composer/TiptapComposer.d.ts.map +1 -0
  137. package/dist/client/composer/TiptapComposer.js +415 -0
  138. package/dist/client/composer/TiptapComposer.js.map +1 -0
  139. package/dist/client/composer/extensions/FileReference.d.ts +3 -0
  140. package/dist/client/composer/extensions/FileReference.d.ts.map +1 -0
  141. package/dist/client/composer/extensions/FileReference.js +36 -0
  142. package/dist/client/composer/extensions/FileReference.js.map +1 -0
  143. package/dist/client/composer/extensions/MentionReference.d.ts +3 -0
  144. package/dist/client/composer/extensions/MentionReference.d.ts.map +1 -0
  145. package/dist/client/composer/extensions/MentionReference.js +63 -0
  146. package/dist/client/composer/extensions/MentionReference.js.map +1 -0
  147. package/dist/client/composer/extensions/SkillReference.d.ts +3 -0
  148. package/dist/client/composer/extensions/SkillReference.d.ts.map +1 -0
  149. package/dist/client/composer/extensions/SkillReference.js +40 -0
  150. package/dist/client/composer/extensions/SkillReference.js.map +1 -0
  151. package/dist/client/composer/index.d.ts +8 -0
  152. package/dist/client/composer/index.d.ts.map +1 -0
  153. package/dist/client/composer/index.js +7 -0
  154. package/dist/client/composer/index.js.map +1 -0
  155. package/dist/client/composer/types.d.ts +32 -0
  156. package/dist/client/composer/types.d.ts.map +1 -0
  157. package/dist/client/composer/types.js +2 -0
  158. package/dist/client/composer/types.js.map +1 -0
  159. package/dist/client/composer/use-file-search.d.ts +6 -0
  160. package/dist/client/composer/use-file-search.d.ts.map +1 -0
  161. package/dist/client/composer/use-file-search.js +40 -0
  162. package/dist/client/composer/use-file-search.js.map +1 -0
  163. package/dist/client/composer/use-mention-search.d.ts +6 -0
  164. package/dist/client/composer/use-mention-search.d.ts.map +1 -0
  165. package/dist/client/composer/use-mention-search.js +39 -0
  166. package/dist/client/composer/use-mention-search.js.map +1 -0
  167. package/dist/client/composer/use-skills.d.ts +7 -0
  168. package/dist/client/composer/use-skills.d.ts.map +1 -0
  169. package/dist/client/composer/use-skills.js +38 -0
  170. package/dist/client/composer/use-skills.js.map +1 -0
  171. package/dist/client/index.d.ts +13 -4
  172. package/dist/client/index.d.ts.map +1 -1
  173. package/dist/client/index.js +12 -3
  174. package/dist/client/index.js.map +1 -1
  175. package/dist/client/resources/ResourceEditor.d.ts +7 -0
  176. package/dist/client/resources/ResourceEditor.d.ts.map +1 -0
  177. package/dist/client/resources/ResourceEditor.js +851 -0
  178. package/dist/client/resources/ResourceEditor.js.map +1 -0
  179. package/dist/client/resources/ResourceTree.d.ts +13 -0
  180. package/dist/client/resources/ResourceTree.d.ts.map +1 -0
  181. package/dist/client/resources/ResourceTree.js +122 -0
  182. package/dist/client/resources/ResourceTree.js.map +1 -0
  183. package/dist/client/resources/ResourcesPanel.d.ts +2 -0
  184. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -0
  185. package/dist/client/resources/ResourcesPanel.js +341 -0
  186. package/dist/client/resources/ResourcesPanel.js.map +1 -0
  187. package/dist/client/resources/index.d.ts +5 -0
  188. package/dist/client/resources/index.d.ts.map +1 -0
  189. package/dist/client/resources/index.js +5 -0
  190. package/dist/client/resources/index.js.map +1 -0
  191. package/dist/client/resources/use-resources.d.ts +45 -0
  192. package/dist/client/resources/use-resources.d.ts.map +1 -0
  193. package/dist/client/resources/use-resources.js +102 -0
  194. package/dist/client/resources/use-resources.js.map +1 -0
  195. package/dist/client/sse-event-processor.d.ts +50 -0
  196. package/dist/client/sse-event-processor.d.ts.map +1 -0
  197. package/dist/client/sse-event-processor.js +267 -0
  198. package/dist/client/sse-event-processor.js.map +1 -0
  199. package/dist/client/terminal/AgentTerminal.d.ts +1 -1
  200. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  201. package/dist/client/terminal/AgentTerminal.js +12 -7
  202. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  203. package/dist/client/use-agent-chat.d.ts +1 -1
  204. package/dist/client/use-agent-chat.d.ts.map +1 -1
  205. package/dist/client/use-agent-chat.js +3 -3
  206. package/dist/client/use-agent-chat.js.map +1 -1
  207. package/dist/client/use-chat-threads.d.ts +36 -0
  208. package/dist/client/use-chat-threads.d.ts.map +1 -0
  209. package/dist/client/use-chat-threads.js +175 -0
  210. package/dist/client/use-chat-threads.js.map +1 -0
  211. package/dist/client/use-db-sync.d.ts +35 -0
  212. package/dist/client/use-db-sync.d.ts.map +1 -0
  213. package/dist/client/use-db-sync.js +74 -0
  214. package/dist/client/use-db-sync.js.map +1 -0
  215. package/dist/client/use-dev-mode.d.ts +11 -0
  216. package/dist/client/use-dev-mode.d.ts.map +1 -0
  217. package/dist/client/use-dev-mode.js +71 -0
  218. package/dist/client/use-dev-mode.js.map +1 -0
  219. package/dist/client/use-file-sync-status.d.ts +1 -1
  220. package/dist/client/use-file-sync-status.js +3 -3
  221. package/dist/client/use-file-sync-status.js.map +1 -1
  222. package/dist/client/use-send-to-agent-chat.d.ts +17 -0
  223. package/dist/client/use-send-to-agent-chat.d.ts.map +1 -0
  224. package/dist/client/use-send-to-agent-chat.js +40 -0
  225. package/dist/client/use-send-to-agent-chat.js.map +1 -0
  226. package/dist/client/use-session.d.ts +1 -1
  227. package/dist/client/use-session.d.ts.map +1 -1
  228. package/dist/client/use-session.js +13 -4
  229. package/dist/client/use-session.js.map +1 -1
  230. package/dist/client/useProductionAgent.d.ts +1 -1
  231. package/dist/client/useProductionAgent.d.ts.map +1 -1
  232. package/dist/client/useProductionAgent.js +38 -3
  233. package/dist/client/useProductionAgent.js.map +1 -1
  234. package/dist/credentials/index.d.ts +18 -0
  235. package/dist/credentials/index.d.ts.map +1 -0
  236. package/dist/credentials/index.js +32 -0
  237. package/dist/credentials/index.js.map +1 -0
  238. package/dist/db/client.d.ts +35 -0
  239. package/dist/db/client.d.ts.map +1 -0
  240. package/dist/db/client.js +248 -0
  241. package/dist/db/client.js.map +1 -0
  242. package/dist/db/create-get-db.d.ts.map +1 -1
  243. package/dist/db/create-get-db.js +108 -12
  244. package/dist/db/create-get-db.js.map +1 -1
  245. package/dist/db/index.d.ts +10 -6
  246. package/dist/db/index.d.ts.map +1 -1
  247. package/dist/db/index.js +10 -4
  248. package/dist/db/index.js.map +1 -1
  249. package/dist/db/migrations.d.ts.map +1 -1
  250. package/dist/db/migrations.js +52 -21
  251. package/dist/db/migrations.js.map +1 -1
  252. package/dist/db/schema.d.ts +45 -0
  253. package/dist/db/schema.d.ts.map +1 -0
  254. package/dist/db/schema.js +61 -0
  255. package/dist/db/schema.js.map +1 -0
  256. package/dist/deploy/build.d.ts +16 -0
  257. package/dist/deploy/build.d.ts.map +1 -0
  258. package/dist/deploy/build.js +453 -0
  259. package/dist/deploy/build.js.map +1 -0
  260. package/dist/deploy/route-discovery.d.ts +43 -0
  261. package/dist/deploy/route-discovery.d.ts.map +1 -0
  262. package/dist/deploy/route-discovery.js +115 -0
  263. package/dist/deploy/route-discovery.js.map +1 -0
  264. package/dist/index.browser.d.ts +1 -1
  265. package/dist/index.browser.d.ts.map +1 -1
  266. package/dist/index.browser.js +1 -1
  267. package/dist/index.browser.js.map +1 -1
  268. package/dist/index.d.ts +3 -2
  269. package/dist/index.d.ts.map +1 -1
  270. package/dist/index.js +2 -1
  271. package/dist/index.js.map +1 -1
  272. package/dist/oauth-tokens/index.d.ts +1 -1
  273. package/dist/oauth-tokens/index.d.ts.map +1 -1
  274. package/dist/oauth-tokens/index.js +1 -1
  275. package/dist/oauth-tokens/index.js.map +1 -1
  276. package/dist/oauth-tokens/store.d.ts +18 -1
  277. package/dist/oauth-tokens/store.d.ts.map +1 -1
  278. package/dist/oauth-tokens/store.js +81 -40
  279. package/dist/oauth-tokens/store.js.map +1 -1
  280. package/dist/resources/emitter.d.ts +13 -0
  281. package/dist/resources/emitter.d.ts.map +1 -0
  282. package/dist/resources/emitter.js +32 -0
  283. package/dist/resources/emitter.js.map +1 -0
  284. package/dist/resources/handlers.d.ts +45 -0
  285. package/dist/resources/handlers.d.ts.map +1 -0
  286. package/dist/resources/handlers.js +219 -0
  287. package/dist/resources/handlers.js.map +1 -0
  288. package/dist/resources/index.d.ts +5 -0
  289. package/dist/resources/index.d.ts.map +1 -0
  290. package/dist/resources/index.js +5 -0
  291. package/dist/resources/index.js.map +1 -0
  292. package/dist/resources/script-helpers.d.ts +24 -0
  293. package/dist/resources/script-helpers.d.ts.map +1 -0
  294. package/dist/resources/script-helpers.js +36 -0
  295. package/dist/resources/script-helpers.js.map +1 -0
  296. package/dist/resources/store.d.ts +35 -0
  297. package/dist/resources/store.d.ts.map +1 -0
  298. package/dist/resources/store.js +453 -0
  299. package/dist/resources/store.js.map +1 -0
  300. package/dist/scripts/call-agent.d.ts +5 -0
  301. package/dist/scripts/call-agent.d.ts.map +1 -0
  302. package/dist/scripts/call-agent.js +107 -0
  303. package/dist/scripts/call-agent.js.map +1 -0
  304. package/dist/scripts/core-scripts.d.ts.map +1 -1
  305. package/dist/scripts/core-scripts.js +2 -0
  306. package/dist/scripts/core-scripts.js.map +1 -1
  307. package/dist/scripts/db/exec.d.ts +6 -2
  308. package/dist/scripts/db/exec.d.ts.map +1 -1
  309. package/dist/scripts/db/exec.js +127 -36
  310. package/dist/scripts/db/exec.js.map +1 -1
  311. package/dist/scripts/db/query.d.ts +7 -2
  312. package/dist/scripts/db/query.d.ts.map +1 -1
  313. package/dist/scripts/db/query.js +89 -45
  314. package/dist/scripts/db/query.js.map +1 -1
  315. package/dist/scripts/db/schema.d.ts +2 -2
  316. package/dist/scripts/db/schema.d.ts.map +1 -1
  317. package/dist/scripts/db/schema.js +145 -6
  318. package/dist/scripts/db/schema.js.map +1 -1
  319. package/dist/scripts/db/scoping.d.ts +36 -0
  320. package/dist/scripts/db/scoping.d.ts.map +1 -0
  321. package/dist/scripts/db/scoping.js +198 -0
  322. package/dist/scripts/db/scoping.js.map +1 -0
  323. package/dist/scripts/dev/index.d.ts +2 -2
  324. package/dist/scripts/dev/index.js +1 -1
  325. package/dist/scripts/dev/list-files.d.ts +2 -2
  326. package/dist/scripts/dev/read-file.d.ts +2 -2
  327. package/dist/scripts/dev/read-file.js +1 -1
  328. package/dist/scripts/dev/read-file.js.map +1 -1
  329. package/dist/scripts/dev/search-files.d.ts +2 -2
  330. package/dist/scripts/dev/search-files.js +1 -1
  331. package/dist/scripts/dev/search-files.js.map +1 -1
  332. package/dist/scripts/dev/shell.d.ts +2 -2
  333. package/dist/scripts/dev/shell.js +1 -1
  334. package/dist/scripts/dev/shell.js.map +1 -1
  335. package/dist/scripts/dev/write-file.d.ts +2 -2
  336. package/dist/scripts/dev/write-file.js +1 -1
  337. package/dist/scripts/dev/write-file.js.map +1 -1
  338. package/dist/scripts/resources/delete.d.ts +10 -0
  339. package/dist/scripts/resources/delete.d.ts.map +1 -0
  340. package/dist/scripts/resources/delete.js +38 -0
  341. package/dist/scripts/resources/delete.js.map +1 -0
  342. package/dist/scripts/resources/index.d.ts +2 -0
  343. package/dist/scripts/resources/index.d.ts.map +1 -0
  344. package/dist/scripts/resources/index.js +8 -0
  345. package/dist/scripts/resources/index.js.map +1 -0
  346. package/dist/scripts/resources/list.d.ts +10 -0
  347. package/dist/scripts/resources/list.d.ts.map +1 -0
  348. package/dist/scripts/resources/list.js +57 -0
  349. package/dist/scripts/resources/list.js.map +1 -0
  350. package/dist/scripts/resources/migrate-learnings.d.ts +10 -0
  351. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -0
  352. package/dist/scripts/resources/migrate-learnings.js +23 -0
  353. package/dist/scripts/resources/migrate-learnings.js.map +1 -0
  354. package/dist/scripts/resources/read.d.ts +10 -0
  355. package/dist/scripts/resources/read.d.ts.map +1 -0
  356. package/dist/scripts/resources/read.js +59 -0
  357. package/dist/scripts/resources/read.js.map +1 -0
  358. package/dist/scripts/resources/write.d.ts +10 -0
  359. package/dist/scripts/resources/write.d.ts.map +1 -0
  360. package/dist/scripts/resources/write.js +67 -0
  361. package/dist/scripts/resources/write.js.map +1 -0
  362. package/dist/scripts/runner.d.ts +7 -7
  363. package/dist/scripts/runner.d.ts.map +1 -1
  364. package/dist/scripts/runner.js +68 -27
  365. package/dist/scripts/runner.js.map +1 -1
  366. package/dist/scripts/utils.d.ts +4 -1
  367. package/dist/scripts/utils.d.ts.map +1 -1
  368. package/dist/scripts/utils.js +5 -3
  369. package/dist/scripts/utils.js.map +1 -1
  370. package/dist/server/action-discovery.d.ts +40 -0
  371. package/dist/server/action-discovery.d.ts.map +1 -0
  372. package/dist/server/action-discovery.js +189 -0
  373. package/dist/server/action-discovery.js.map +1 -0
  374. package/dist/server/agent-chat-plugin.d.ts +12 -23
  375. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  376. package/dist/server/agent-chat-plugin.js +1102 -39
  377. package/dist/server/agent-chat-plugin.js.map +1 -1
  378. package/dist/server/agent-discovery.d.ts +16 -0
  379. package/dist/server/agent-discovery.d.ts.map +1 -0
  380. package/dist/server/agent-discovery.js +136 -0
  381. package/dist/server/agent-discovery.js.map +1 -0
  382. package/dist/server/analytics.d.ts +19 -0
  383. package/dist/server/analytics.d.ts.map +1 -0
  384. package/dist/server/analytics.js +61 -0
  385. package/dist/server/analytics.js.map +1 -0
  386. package/dist/server/auth-plugin.d.ts +5 -0
  387. package/dist/server/auth-plugin.d.ts.map +1 -1
  388. package/dist/server/auth-plugin.js +12 -1
  389. package/dist/server/auth-plugin.js.map +1 -1
  390. package/dist/server/auth.d.ts +3 -1
  391. package/dist/server/auth.d.ts.map +1 -1
  392. package/dist/server/auth.js +598 -104
  393. package/dist/server/auth.js.map +1 -1
  394. package/dist/server/core-routes-plugin.d.ts +57 -0
  395. package/dist/server/core-routes-plugin.d.ts.map +1 -0
  396. package/dist/server/core-routes-plugin.js +125 -0
  397. package/dist/server/core-routes-plugin.js.map +1 -0
  398. package/dist/server/create-server.d.ts +4 -4
  399. package/dist/server/create-server.d.ts.map +1 -1
  400. package/dist/server/create-server.js +5 -5
  401. package/dist/server/create-server.js.map +1 -1
  402. package/dist/server/default-watcher.d.ts +9 -3
  403. package/dist/server/default-watcher.d.ts.map +1 -1
  404. package/dist/server/default-watcher.js +26 -6
  405. package/dist/server/default-watcher.js.map +1 -1
  406. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  407. package/dist/server/google-auth-plugin.js +4 -3
  408. package/dist/server/google-auth-plugin.js.map +1 -1
  409. package/dist/server/google-oauth.d.ts +72 -0
  410. package/dist/server/google-oauth.d.ts.map +1 -0
  411. package/dist/server/google-oauth.js +187 -0
  412. package/dist/server/google-oauth.js.map +1 -0
  413. package/dist/server/index.d.ts +10 -2
  414. package/dist/server/index.d.ts.map +1 -1
  415. package/dist/server/index.js +9 -1
  416. package/dist/server/index.js.map +1 -1
  417. package/dist/server/oauth-helpers.d.ts +16 -0
  418. package/dist/server/oauth-helpers.d.ts.map +1 -0
  419. package/dist/server/oauth-helpers.js +25 -0
  420. package/dist/server/oauth-helpers.js.map +1 -0
  421. package/dist/server/poll.d.ts +40 -0
  422. package/dist/server/poll.d.ts.map +1 -0
  423. package/dist/server/poll.js +49 -0
  424. package/dist/server/poll.js.map +1 -0
  425. package/dist/server/resources-plugin.d.ts +27 -0
  426. package/dist/server/resources-plugin.d.ts.map +1 -0
  427. package/dist/server/resources-plugin.js +74 -0
  428. package/dist/server/resources-plugin.js.map +1 -0
  429. package/dist/server/script-discovery.d.ts +6 -0
  430. package/dist/server/script-discovery.d.ts.map +1 -0
  431. package/dist/server/script-discovery.js +6 -0
  432. package/dist/server/script-discovery.js.map +1 -0
  433. package/dist/server/sse.d.ts +1 -1
  434. package/dist/server/sse.js +1 -1
  435. package/dist/settings/handlers.d.ts +3 -3
  436. package/dist/settings/handlers.d.ts.map +1 -1
  437. package/dist/settings/handlers.js +8 -6
  438. package/dist/settings/handlers.js.map +1 -1
  439. package/dist/settings/index.d.ts +1 -1
  440. package/dist/settings/index.d.ts.map +1 -1
  441. package/dist/settings/index.js.map +1 -1
  442. package/dist/settings/store.d.ts +6 -2
  443. package/dist/settings/store.d.ts.map +1 -1
  444. package/dist/settings/store.js +26 -36
  445. package/dist/settings/store.js.map +1 -1
  446. package/dist/settings/user-settings.d.ts +6 -10
  447. package/dist/settings/user-settings.d.ts.map +1 -1
  448. package/dist/settings/user-settings.js +9 -18
  449. package/dist/settings/user-settings.js.map +1 -1
  450. package/dist/tailwind.preset.d.ts +7 -6
  451. package/dist/tailwind.preset.d.ts.map +1 -1
  452. package/dist/tailwind.preset.js +18 -1
  453. package/dist/tailwind.preset.js.map +1 -1
  454. package/dist/terminal/cli-registry.d.ts +3 -1
  455. package/dist/terminal/cli-registry.d.ts.map +1 -1
  456. package/dist/terminal/cli-registry.js +10 -5
  457. package/dist/terminal/cli-registry.js.map +1 -1
  458. package/dist/terminal/pty-server.d.ts.map +1 -1
  459. package/dist/terminal/pty-server.js +65 -11
  460. package/dist/terminal/pty-server.js.map +1 -1
  461. package/dist/terminal/terminal-plugin.d.ts +2 -2
  462. package/dist/terminal/terminal-plugin.d.ts.map +1 -1
  463. package/dist/terminal/terminal-plugin.js +27 -8
  464. package/dist/terminal/terminal-plugin.js.map +1 -1
  465. package/dist/vite/client.d.ts.map +1 -1
  466. package/dist/vite/client.js +114 -8
  467. package/dist/vite/client.js.map +1 -1
  468. package/dist/vite/dev-api-server.d.ts +1 -1
  469. package/dist/vite/dev-api-server.d.ts.map +1 -1
  470. package/dist/vite/dev-api-server.js +105 -22
  471. package/dist/vite/dev-api-server.js.map +1 -1
  472. package/package.json +23 -7
  473. package/src/templates/default/.agents/skills/actions/SKILL.md +136 -0
  474. package/src/templates/default/.agents/skills/create-skill/SKILL.md +1 -1
  475. package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +1 -1
  476. package/src/templates/default/.agents/skills/files-as-database/SKILL.md +2 -2
  477. package/src/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
  478. package/src/templates/default/AGENTS.md +56 -164
  479. package/src/templates/default/DEVELOPING.md +117 -0
  480. package/src/templates/default/{scripts → actions}/hello.ts +1 -1
  481. package/src/templates/default/actions/navigate.ts +53 -0
  482. package/src/templates/default/actions/view-screen.ts +39 -0
  483. package/src/templates/default/app/entry.server.tsx +2 -1
  484. package/src/templates/default/app/global.css +2 -2
  485. package/src/templates/default/app/root.tsx +27 -15
  486. package/src/templates/default/app/routes/_index.tsx +1 -1
  487. package/src/templates/default/package.json +4 -0
  488. package/src/templates/default/public/icon-180.svg +4 -0
  489. package/src/templates/default/public/icon-192.svg +4 -0
  490. package/src/templates/default/public/icon-512.svg +4 -0
  491. package/src/templates/default/public/manifest.json +13 -0
  492. package/src/templates/default/server/plugins/.gitkeep +0 -0
  493. package/dist/a2a/middleware.d.ts +0 -3
  494. package/dist/a2a/middleware.d.ts.map +0 -1
  495. package/dist/a2a/middleware.js +0 -36
  496. package/dist/a2a/middleware.js.map +0 -1
  497. package/dist/client/use-file-watcher.d.ts +0 -23
  498. package/dist/client/use-file-watcher.d.ts.map +0 -1
  499. package/dist/client/use-file-watcher.js +0 -50
  500. package/dist/client/use-file-watcher.js.map +0 -1
  501. package/src/templates/default/.agents/skills/scripts/SKILL.md +0 -121
  502. package/src/templates/default/.agents/skills/sse-file-watcher/SKILL.md +0 -80
  503. package/src/templates/default/server/plugins/agent-chat.ts +0 -1
  504. package/src/templates/default/server/plugins/auth.ts +0 -1
  505. package/src/templates/default/server/plugins/file-sync.ts +0 -1
  506. package/src/templates/default/server/plugins/terminal.ts +0 -1
  507. package/src/templates/default/server/routes/api/events.get.ts +0 -3
  508. package/src/templates/default/server/routes/api/file-sync/status.get.ts +0 -4
  509. /package/src/templates/default/{scripts → actions}/run.ts +0 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Navigate the UI to a view.
3
+ *
4
+ * Writes a navigate command to application state which the UI reads and auto-deletes.
5
+ *
6
+ * Usage:
7
+ * pnpm action navigate --view=home
8
+ * pnpm action navigate --path=/some/route
9
+ *
10
+ * Options:
11
+ * --view View name to navigate to
12
+ * --path URL path to navigate to
13
+ */
14
+
15
+ import { parseArgs } from "@agent-native/core";
16
+ import { writeAppState } from "@agent-native/core/application-state";
17
+ import type { ScriptTool } from "@agent-native/core";
18
+
19
+ export const tool: ScriptTool = {
20
+ description:
21
+ "Navigate the UI to a specific view or path. Writes a navigate command to application state which the UI reads and auto-deletes.",
22
+ parameters: {
23
+ type: "object",
24
+ properties: {
25
+ view: { type: "string", description: "View name to navigate to" },
26
+ path: { type: "string", description: "URL path to navigate to" },
27
+ },
28
+ },
29
+ };
30
+
31
+ export async function run(args: Record<string, string>): Promise<string> {
32
+ if (!args.view && !args.path) {
33
+ return "Error: At least --view or --path is required.";
34
+ }
35
+ const nav: Record<string, string> = {};
36
+ if (args.view) nav.view = args.view;
37
+ if (args.path) nav.path = args.path;
38
+ await writeAppState("navigate", nav);
39
+ return `Navigating to ${args.view || args.path}`;
40
+ }
41
+
42
+ export default async function main(): Promise<void> {
43
+ const args = parseArgs(process.argv.slice(2)) as Record<string, string>;
44
+ if (!args.view && !args.path) {
45
+ console.error(
46
+ "Error: At least --view or --path is required. Usage: pnpm action navigate --view=home",
47
+ );
48
+ process.exit(1);
49
+ }
50
+ const result = await run(args);
51
+ console.error(result);
52
+ console.log(JSON.stringify({ result }));
53
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * See what the user is currently looking at on screen.
3
+ *
4
+ * Reads and returns the current navigation state from application state.
5
+ *
6
+ * Usage:
7
+ * pnpm action view-screen
8
+ */
9
+
10
+ import { parseArgs } from "@agent-native/core";
11
+ import { readAppState } from "@agent-native/core/application-state";
12
+ import type { ScriptTool } from "@agent-native/core";
13
+
14
+ export const tool: ScriptTool = {
15
+ description:
16
+ "See what the user is currently looking at on screen. Returns the current navigation state. Always call this first before taking any action.",
17
+ parameters: {
18
+ type: "object",
19
+ properties: {},
20
+ },
21
+ };
22
+
23
+ export async function run(_args: Record<string, string>): Promise<string> {
24
+ const navigation = await readAppState("navigation");
25
+
26
+ const screen: Record<string, unknown> = {};
27
+ if (navigation) screen.navigation = navigation;
28
+
29
+ if (Object.keys(screen).length === 0) {
30
+ return "No application state found. Is the app running?";
31
+ }
32
+ return JSON.stringify(screen, null, 2);
33
+ }
34
+
35
+ export default async function main(): Promise<void> {
36
+ const args = parseArgs(process.argv.slice(2)) as Record<string, string>;
37
+ const result = await run(args);
38
+ console.log(result);
39
+ }
@@ -3,6 +3,7 @@ import { ServerRouter } from "react-router";
3
3
  import ReactDOMServer from "react-dom/server.browser";
4
4
  const { renderToReadableStream } = ReactDOMServer;
5
5
  import { isbot } from "isbot";
6
+ import { wrapWithAnalytics } from "@agent-native/core/server";
6
7
 
7
8
  export const streamTimeout = 5_000;
8
9
 
@@ -45,7 +46,7 @@ export default async function handleRequest(
45
46
  }
46
47
 
47
48
  responseHeaders.set("Content-Type", "text/html");
48
- return new Response(body, {
49
+ return new Response(wrapWithAnalytics(body), {
49
50
  headers: responseHeaders,
50
51
  status: responseStatusCode,
51
52
  });
@@ -48,7 +48,7 @@
48
48
  --secondary: 220 4% 12%;
49
49
  --secondary-foreground: 0 0% 90%;
50
50
  --muted: 220 4% 10%;
51
- --muted-foreground: 220 4% 50%;
51
+ --muted-foreground: 220 4% 60%;
52
52
  --accent: 220 4% 13%;
53
53
  --accent-foreground: 0 0% 90%;
54
54
  --destructive: 0 63% 51%;
@@ -58,7 +58,7 @@
58
58
  --ring: 0 0% 60%;
59
59
  --radius: 0.5rem;
60
60
  --sidebar-background: 220 6% 4%;
61
- --sidebar-foreground: 220 4% 50%;
61
+ --sidebar-foreground: 220 4% 60%;
62
62
  --sidebar-primary: 0 0% 75%;
63
63
  --sidebar-primary-foreground: 220 6% 6%;
64
64
  --sidebar-accent: 220 4% 10%;
@@ -13,7 +13,8 @@ import {
13
13
  useQueryClient,
14
14
  } from "@tanstack/react-query";
15
15
  import { ThemeProvider } from "next-themes";
16
- import { useFileWatcher } from "@agent-native/core";
16
+ import { useDbSync } from "@agent-native/core";
17
+ import { ClientOnly, DefaultSpinner } from "@agent-native/core/client";
17
18
  import { Toaster } from "sonner";
18
19
  import "./global.css";
19
20
 
@@ -23,6 +24,15 @@ export function Layout({ children }: { children: React.ReactNode }) {
23
24
  <head>
24
25
  <meta charSet="utf-8" />
25
26
  <meta name="viewport" content="width=device-width, initial-scale=1" />
27
+ <link rel="manifest" href="/manifest.json" />
28
+ <meta name="theme-color" content="#111111" />
29
+ <meta name="mobile-web-app-capable" content="yes" />
30
+ <meta
31
+ name="apple-mobile-web-app-status-bar-style"
32
+ content="black-translucent"
33
+ />
34
+ <meta name="apple-mobile-web-app-title" content="App" />
35
+ <link rel="apple-touch-icon" href="/icon-180.svg" />
26
36
  <Meta />
27
37
  <Links />
28
38
  </head>
@@ -35,27 +45,29 @@ export function Layout({ children }: { children: React.ReactNode }) {
35
45
  );
36
46
  }
37
47
 
38
- function FileWatcherSetup() {
48
+ function DbSyncSetup() {
39
49
  const qc = useQueryClient();
40
- useFileWatcher({ queryClient: qc, queryKeys: ["files", "data"] });
50
+ useDbSync({ queryClient: qc, queryKeys: ["files", "data"] });
41
51
  return null;
42
52
  }
43
53
 
44
54
  export default function Root() {
45
55
  const [queryClient] = useState(() => new QueryClient());
46
56
  return (
47
- <ThemeProvider
48
- attribute="class"
49
- defaultTheme="system"
50
- enableSystem
51
- disableTransitionOnChange
52
- >
53
- <QueryClientProvider client={queryClient}>
54
- <FileWatcherSetup />
55
- <Outlet />
56
- <Toaster />
57
- </QueryClientProvider>
58
- </ThemeProvider>
57
+ <ClientOnly fallback={<DefaultSpinner />}>
58
+ <ThemeProvider
59
+ attribute="class"
60
+ defaultTheme="system"
61
+ enableSystem
62
+ disableTransitionOnChange
63
+ >
64
+ <QueryClientProvider client={queryClient}>
65
+ <DbSyncSetup />
66
+ <Outlet />
67
+ <Toaster />
68
+ </QueryClientProvider>
69
+ </ThemeProvider>
70
+ </ClientOnly>
59
71
  );
60
72
  }
61
73
 
@@ -34,7 +34,7 @@ export default function IndexPage() {
34
34
 
35
35
  <div className="grid grid-cols-2 gap-3 text-left">
36
36
  <a
37
- href="https://agent-native.dev/docs"
37
+ href="https://agent-native.com/docs"
38
38
  target="_blank"
39
39
  rel="noopener noreferrer"
40
40
  className="group rounded-lg border border-border/50 px-4 py-3 hover:bg-accent/50 transition-colors"
@@ -7,10 +7,14 @@
7
7
  "build": "agent-native build",
8
8
  "start": "agent-native start",
9
9
  "typecheck": "agent-native typecheck",
10
+ "action": "agent-native action",
10
11
  "script": "agent-native script"
11
12
  },
12
13
  "dependencies": {
13
14
  "@agent-native/core": "^0.4.1",
15
+ "@assistant-ui/react": "^0.12.19",
16
+ "@assistant-ui/react-markdown": "^0.12.6",
17
+ "@tabler/icons-react": "^3.40.0",
14
18
  "h3": "^1.13.0",
15
19
  "isbot": "^5"
16
20
  },
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="180" height="180" viewBox="0 0 180 180">
2
+ <rect width="180" height="180" rx="36" fill="#111111"/>
3
+ <text x="50%" y="50%" dominant-baseline="central" text-anchor="middle" font-size="99">⚡</text>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 192 192">
2
+ <rect width="192" height="192" rx="38" fill="#111111"/>
3
+ <text x="50%" y="50%" dominant-baseline="central" text-anchor="middle" font-size="105">⚡</text>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
2
+ <rect width="512" height="512" rx="102" fill="#111111"/>
3
+ <text x="50%" y="50%" dominant-baseline="central" text-anchor="middle" font-size="281">⚡</text>
4
+ </svg>
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "Agent Native App",
3
+ "short_name": "App",
4
+ "description": "Agent-native application",
5
+ "start_url": "/",
6
+ "display": "standalone",
7
+ "background_color": "#111111",
8
+ "theme_color": "#111111",
9
+ "icons": [
10
+ { "src": "/icon-192.svg", "sizes": "192x192", "type": "image/svg+xml" },
11
+ { "src": "/icon-512.svg", "sizes": "512x512", "type": "image/svg+xml" }
12
+ ]
13
+ }
File without changes
@@ -1,3 +0,0 @@
1
- import type { Request, Response, NextFunction } from "express";
2
- export declare function createAuthMiddleware(apiKeyEnv: string | undefined): (req: Request, res: Response, next: NextFunction) => void;
3
- //# sourceMappingURL=middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/a2a/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,IACxD,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAqC/D"}
@@ -1,36 +0,0 @@
1
- export function createAuthMiddleware(apiKeyEnv) {
2
- return (req, res, next) => {
3
- if (!apiKeyEnv) {
4
- next();
5
- return;
6
- }
7
- const expectedKey = process.env[apiKeyEnv];
8
- if (!expectedKey) {
9
- // No key configured — skip auth (dev mode)
10
- next();
11
- return;
12
- }
13
- const authHeader = req.headers.authorization;
14
- if (!authHeader || !authHeader.startsWith("Bearer ")) {
15
- const error = {
16
- jsonrpc: "2.0",
17
- id: null,
18
- error: { code: -32001, message: "Authentication required" },
19
- };
20
- res.status(401).json(error);
21
- return;
22
- }
23
- const token = authHeader.slice(7);
24
- if (token !== expectedKey) {
25
- const error = {
26
- jsonrpc: "2.0",
27
- id: null,
28
- error: { code: -32001, message: "Invalid API key" },
29
- };
30
- res.status(401).json(error);
31
- return;
32
- }
33
- next();
34
- };
35
- }
36
- //# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/a2a/middleware.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,2CAA2C;YAC3C,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAoB;gBAC7B,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE;aAC5D,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAoB;gBAC7B,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE;aACpD,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC"}
@@ -1,23 +0,0 @@
1
- interface QueryClient {
2
- invalidateQueries(opts: {
3
- queryKey: string[];
4
- }): void;
5
- }
6
- /**
7
- * Hook that opens an EventSource connection to /api/events and invalidates
8
- * react-query caches when file changes are detected.
9
- *
10
- * @param options.queryClient - The react-query QueryClient instance (from useQueryClient())
11
- * @param options.queryKeys - Array of query key prefixes to invalidate on change.
12
- * Default: ["file", "fileTree"]
13
- * @param options.eventsUrl - SSE endpoint URL. Default: "/api/events"
14
- * @param options.onEvent - Optional callback for each SSE event
15
- */
16
- export declare function useFileWatcher(options?: {
17
- queryClient?: QueryClient;
18
- queryKeys?: string[];
19
- eventsUrl?: string;
20
- onEvent?: (data: any) => void;
21
- }): void;
22
- export {};
23
- //# sourceMappingURL=use-file-watcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-file-watcher.d.ts","sourceRoot":"","sources":["../../src/client/use-file-watcher.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACnB,iBAAiB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CACvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1B,GACL,IAAI,CAgDN"}
@@ -1,50 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- /**
3
- * Hook that opens an EventSource connection to /api/events and invalidates
4
- * react-query caches when file changes are detected.
5
- *
6
- * @param options.queryClient - The react-query QueryClient instance (from useQueryClient())
7
- * @param options.queryKeys - Array of query key prefixes to invalidate on change.
8
- * Default: ["file", "fileTree"]
9
- * @param options.eventsUrl - SSE endpoint URL. Default: "/api/events"
10
- * @param options.onEvent - Optional callback for each SSE event
11
- */
12
- export function useFileWatcher(options = {}) {
13
- const { queryClient, queryKeys = ["file", "fileTree"], eventsUrl = "/api/events", } = options;
14
- const url = eventsUrl;
15
- // Stable refs — updated every render, read inside the effect
16
- const onEventRef = useRef(options.onEvent);
17
- onEventRef.current = options.onEvent;
18
- const keysRef = useRef(queryKeys);
19
- keysRef.current = queryKeys;
20
- useEffect(() => {
21
- const eventSource = new EventSource(url);
22
- eventSource.onopen = () => {
23
- // Invalidate all keys on reconnection to catch events missed during downtime
24
- if (queryClient) {
25
- for (const key of keysRef.current) {
26
- queryClient.invalidateQueries({ queryKey: [key] });
27
- }
28
- }
29
- };
30
- eventSource.onmessage = (event) => {
31
- try {
32
- const data = JSON.parse(event.data);
33
- if (queryClient) {
34
- for (const key of keysRef.current) {
35
- queryClient.invalidateQueries({ queryKey: [key] });
36
- }
37
- }
38
- onEventRef.current?.(data);
39
- }
40
- catch (e) {
41
- console.warn("[useFileWatcher] Failed to parse SSE event:", e);
42
- }
43
- };
44
- eventSource.onerror = () => {
45
- console.warn("[useFileWatcher] EventSource error, will reconnect");
46
- };
47
- return () => eventSource.close();
48
- }, [url, queryClient]); // only reconnect on genuine config changes
49
- }
50
- //# sourceMappingURL=use-file-watcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-file-watcher.js","sourceRoot":"","sources":["../../src/client/use-file-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM1C;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,UAKI,EAAE;IAEN,MAAM,EACJ,WAAW,EACX,SAAS,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,SAAS,GAAG,aAAa,GAC1B,GAAG,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,SAAS,CAAC;IAEtB,6DAA6D;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAErC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAEzC,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;YACxB,6EAA6E;YAC7E,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,WAAW,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBAClC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;gBACD,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC;QAEF,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACrE,CAAC,CAAC;QAEF,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,2CAA2C;AACrE,CAAC"}
@@ -1,121 +0,0 @@
1
- ---
2
- name: scripts
3
- description: >-
4
- How to create and run agent-callable scripts in scripts/. Use when creating
5
- a new script, adding an API integration, implementing a complex agent
6
- operation, or running pnpm script commands.
7
- ---
8
-
9
- # Agent Scripts
10
-
11
- ## Rule
12
-
13
- Complex operations the agent needs to perform are implemented as scripts in `scripts/`. The agent runs them via `pnpm script <name>`.
14
-
15
- ## Why
16
-
17
- Scripts give the agent callable tools with structured input/output. They keep the agent's chat context clean (no massive code blocks), they're reusable, and they can be tested independently.
18
-
19
- ## How to Create a Script
20
-
21
- Create `scripts/my-script.ts`:
22
-
23
- ```ts
24
- import { parseArgs, loadEnv, fail, agentChat } from "@agent-native/core";
25
- import { readSetting, writeSetting } from "@agent-native/core/settings";
26
- import { readAppState, writeAppState } from "@agent-native/core/application-state";
27
-
28
- export default async function myScript(args: string[]) {
29
- loadEnv();
30
-
31
- const parsed = parseArgs(args);
32
- const input = parsed.input;
33
- if (!input) fail("--input is required");
34
-
35
- // Read/write settings (persistent config)
36
- const settings = await readSetting("my-settings");
37
- await writeSetting("my-settings", { ...settings, lastRun: new Date().toISOString() });
38
-
39
- // Read/write app state (ephemeral UI state)
40
- await writeAppState("processing-status", { status: "done", input });
41
-
42
- agentChat.submit(`Processed ${input}`);
43
- }
44
- ```
45
-
46
- ## How to Run
47
-
48
- ```bash
49
- pnpm script my-script --input some-value
50
- ```
51
-
52
- ## Script Dispatcher
53
-
54
- The default template uses core's `runScript()` in `scripts/run.ts`:
55
-
56
- ```ts
57
- import { runScript } from "@agent-native/core";
58
- runScript();
59
- ```
60
-
61
- This is the canonical approach for new apps. Script names must be lowercase with hyphens only (e.g., `my-script`).
62
-
63
- ## Guidelines
64
-
65
- - **One script, one job.** Keep scripts focused on a single operation. The agent composes multiple script calls for complex operations.
66
- - **Use `parseArgs()`** for structured argument parsing. It converts `--key value` pairs to a `Record<string, string>`.
67
- - **Use `loadEnv()`** if the script needs environment variables (API keys, etc.).
68
- - **Use `fail()`** for user-friendly error messages (exits with message, no stack trace).
69
- - **Write results to the database.** Use `writeSetting()` or `writeAppState()` for structured data. The UI will pick up changes via SSE.
70
- - **Use `agentChat.submit()`** to report results or errors back to the agent chat.
71
- - **Import from `@agent-native/core`** — Don't redefine `parseArgs()` or other utilities locally.
72
-
73
- ## Common Patterns
74
-
75
- **API integration script** (e.g., image generation):
76
-
77
- ```ts
78
- import fs from "fs";
79
- import { parseArgs, loadEnv, fail } from "@agent-native/core";
80
-
81
- export default async function generateImage(args: string[]) {
82
- loadEnv();
83
- const parsed = parseArgs(args);
84
- const prompt = parsed.prompt;
85
- if (!prompt) fail("--prompt is required");
86
-
87
- const outputPath = parsed.output ?? "data/generated-image.png";
88
- const imageUrl = await callImageAPI(prompt);
89
- const buffer = await fetch(imageUrl).then((r) => r.arrayBuffer());
90
- fs.writeFileSync(outputPath, Buffer.from(buffer));
91
- }
92
- ```
93
-
94
- **Data processing script:**
95
-
96
- ```ts
97
- import { parseArgs, fail } from "@agent-native/core";
98
- import { readSetting, writeSetting } from "@agent-native/core/settings";
99
-
100
- export default async function transform(args: string[]) {
101
- const parsed = parseArgs(args);
102
- const key = parsed.key;
103
- if (!key) fail("--key is required");
104
-
105
- const data = await readSetting(key);
106
- const result = processData(data);
107
- await writeSetting(key, result);
108
- }
109
- ```
110
-
111
- ## Troubleshooting
112
-
113
- - **Script not found** — Check that the filename matches the command name exactly. `pnpm script foo-bar` looks for `scripts/foo-bar.ts`.
114
- - **Args not parsing** — Ensure args use `--key value` or `--key=value` format. Boolean flags use `--flag` (sets value to `"true"`).
115
- - **Script runs but UI doesn't update** — Make sure you're using core store helpers (`writeSetting`, `writeAppState`) which emit SSE events automatically. Direct SQL writes don't emit events.
116
-
117
- ## Related Skills
118
-
119
- - **storing-data** — Scripts read/write data via core SQL stores and Drizzle ORM
120
- - **delegate-to-agent** — The agent invokes scripts via `pnpm script <name>`
121
- - **real-time-sync** — Database writes from scripts trigger SSE events to update the UI
@@ -1,80 +0,0 @@
1
- ---
2
- name: real-time-sync
3
- description: >-
4
- How the UI stays in sync when the agent writes data. Use when wiring up
5
- query invalidation, debugging UI not updating, or understanding how SSE
6
- connects the agent to the browser.
7
- ---
8
-
9
- # Real-Time Sync
10
-
11
- ## How It Works
12
-
13
- When the agent writes data (via scripts or server handlers), the UI updates instantly. No polling, no manual refresh.
14
-
15
- The flow:
16
-
17
- 1. **Agent writes** → `writeAppState("navigate", { view: "starred" })`
18
- 2. **Store emits SSE event** → `{ source: "app-state", type: "change", key: "navigate" }`
19
- 3. **Browser receives** → `useFileWatcher()` hook gets the event
20
- 4. **React Query invalidates** → relevant queries refetch, UI re-renders
21
-
22
- This happens automatically for all writes through `@agent-native/core/application-state` and `@agent-native/core/settings`.
23
-
24
- ## SSE Events
25
-
26
- | Source | Emitted by | Example |
27
- |--------|-----------|---------|
28
- | `"app-state"` | `writeAppState`, `deleteAppState` | `{ source: "app-state", type: "change", key: "navigation" }` |
29
- | `"settings"` | `putSetting`, `deleteSetting` | `{ source: "settings", type: "change", key: "mail-settings" }` |
30
-
31
- ## Client Setup
32
-
33
- Every template has an SSE endpoint and a `useFileWatcher` hook in `root.tsx`:
34
-
35
- ```ts
36
- // server/routes/api/events.get.ts
37
- import { createDefaultSSEHandler } from "@agent-native/core/server";
38
- export default createDefaultSSEHandler();
39
- ```
40
-
41
- ```ts
42
- // In root.tsx
43
- useFileWatcher({
44
- queryClient: qc,
45
- queryKeys: [],
46
- onEvent: (data) => {
47
- if (data.source === "app-state") {
48
- // Invalidate queries affected by app state changes
49
- qc.invalidateQueries({ queryKey: ["compose-drafts"] });
50
- } else if (data.source === "settings") {
51
- qc.invalidateQueries({ queryKey: ["settings"] });
52
- }
53
- },
54
- });
55
- ```
56
-
57
- Use the `key` field to selectively invalidate — don't invalidate everything on every event.
58
-
59
- ## For Custom Domain Data
60
-
61
- If your template has Drizzle tables and you want SSE notifications after writes, emit from your handler:
62
-
63
- ```ts
64
- import { getAppStateEmitter } from "@agent-native/core/application-state";
65
-
66
- // After inserting a booking:
67
- getAppStateEmitter().emit("app-state", {
68
- source: "app-state",
69
- type: "change",
70
- key: "bookings-updated",
71
- });
72
- ```
73
-
74
- ## Troubleshooting
75
-
76
- | Symptom | Check |
77
- |---------|-------|
78
- | UI not updating after script writes | Is the script using `writeAppState`/`writeSetting`? Direct SQL writes don't emit SSE. |
79
- | SSE not connected | Browser devtools → Network → EventStream. Is `/api/events` connected? |
80
- | Wrong queries invalidating | Check the `onEvent` callback — filter by `data.source` and `data.key` |
@@ -1 +0,0 @@
1
- export { defaultAgentChatPlugin as default } from "@agent-native/core/server";
@@ -1 +0,0 @@
1
- export { defaultAuthPlugin as default } from "@agent-native/core/server";
@@ -1 +0,0 @@
1
- export { defaultFileSyncPlugin as default } from "@agent-native/core/server";
@@ -1 +0,0 @@
1
- export { defaultTerminalPlugin as default } from "@agent-native/core/server";
@@ -1,3 +0,0 @@
1
- import { createDefaultSSEHandler } from "@agent-native/core/server";
2
-
3
- export default createDefaultSSEHandler();
@@ -1,4 +0,0 @@
1
- import { defineEventHandler } from "h3";
2
- import { defaultSyncStatusHandler } from "@agent-native/core/server";
3
-
4
- export default defineEventHandler(() => defaultSyncStatusHandler());