@alexkroman1/aai 0.8.7 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/dist/{sdk/_internal_types.d.ts → _internal-types.d.ts} +0 -3
  2. package/dist/_internal-types.js +19 -0
  3. package/dist/{sdk/_mock_ws.d.ts → _mock-ws.d.ts} +16 -5
  4. package/dist/_mock-ws.js +158 -0
  5. package/dist/{sdk/_utils.d.ts → _utils.d.ts} +1 -2
  6. package/dist/_utils.js +8 -0
  7. package/dist/{sdk/builtin_tools.d.ts → builtin-tools.d.ts} +5 -8
  8. package/dist/builtin-tools.js +270 -0
  9. package/dist/{sdk/direct_executor.d.ts → direct-executor.d.ts} +3 -7
  10. package/dist/direct-executor.js +125 -0
  11. package/dist/{sdk/mod.d.ts → index.d.ts} +0 -4
  12. package/dist/index.js +2 -0
  13. package/dist/{sdk/kv.d.ts → kv.d.ts} +23 -20
  14. package/dist/kv.js +99 -0
  15. package/dist/{sdk/protocol.d.ts → protocol.d.ts} +67 -31
  16. package/dist/protocol.js +142 -0
  17. package/dist/runtime.d.ts +18 -0
  18. package/dist/runtime.js +16 -0
  19. package/dist/s2s.d.ts +110 -0
  20. package/dist/s2s.js +242 -0
  21. package/dist/{sdk/server.d.ts → server.d.ts} +3 -23
  22. package/dist/server.js +105 -0
  23. package/dist/{sdk/session.d.ts → session.d.ts} +4 -11
  24. package/dist/session.js +312 -0
  25. package/dist/tsdown.config.d.ts +2 -0
  26. package/dist/{sdk/types.d.ts → types.d.ts} +41 -25
  27. package/dist/types.js +139 -0
  28. package/dist/{sdk/vector.d.ts → vector.d.ts} +14 -15
  29. package/dist/vector.js +56 -0
  30. package/dist/{sdk/worker_entry.d.ts → worker-entry.d.ts} +2 -5
  31. package/dist/worker-entry.js +59 -0
  32. package/dist/{sdk/ws_handler.d.ts → ws-handler.d.ts} +10 -8
  33. package/dist/ws-handler.js +155 -0
  34. package/package.json +66 -149
  35. package/README.md +0 -34
  36. package/dist/aai.js +0 -3
  37. package/dist/cli/tsconfig.tsbuildinfo +0 -1
  38. package/dist/cli.js +0 -2811
  39. package/dist/sdk/_internal_types.d.ts.map +0 -1
  40. package/dist/sdk/_internal_types.js +0 -25
  41. package/dist/sdk/_internal_types.js.map +0 -1
  42. package/dist/sdk/_mock_ws.d.ts.map +0 -1
  43. package/dist/sdk/_mock_ws.js +0 -154
  44. package/dist/sdk/_mock_ws.js.map +0 -1
  45. package/dist/sdk/_render_check.d.ts +0 -10
  46. package/dist/sdk/_render_check.d.ts.map +0 -1
  47. package/dist/sdk/_render_check.js +0 -72
  48. package/dist/sdk/_render_check.js.map +0 -1
  49. package/dist/sdk/_utils.d.ts.map +0 -1
  50. package/dist/sdk/_utils.js +0 -7
  51. package/dist/sdk/_utils.js.map +0 -1
  52. package/dist/sdk/builtin_tools.d.ts.map +0 -1
  53. package/dist/sdk/builtin_tools.js +0 -309
  54. package/dist/sdk/builtin_tools.js.map +0 -1
  55. package/dist/sdk/capnweb.d.ts +0 -102
  56. package/dist/sdk/capnweb.d.ts.map +0 -1
  57. package/dist/sdk/capnweb.js +0 -219
  58. package/dist/sdk/capnweb.js.map +0 -1
  59. package/dist/sdk/define_agent.d.ts +0 -36
  60. package/dist/sdk/define_agent.d.ts.map +0 -1
  61. package/dist/sdk/define_agent.js +0 -71
  62. package/dist/sdk/define_agent.js.map +0 -1
  63. package/dist/sdk/direct_executor.d.ts.map +0 -1
  64. package/dist/sdk/direct_executor.js +0 -145
  65. package/dist/sdk/direct_executor.js.map +0 -1
  66. package/dist/sdk/host.d.ts +0 -59
  67. package/dist/sdk/host.d.ts.map +0 -1
  68. package/dist/sdk/host.js +0 -131
  69. package/dist/sdk/host.js.map +0 -1
  70. package/dist/sdk/kv.d.ts.map +0 -1
  71. package/dist/sdk/kv.js +0 -94
  72. package/dist/sdk/kv.js.map +0 -1
  73. package/dist/sdk/memory_tools.d.ts +0 -38
  74. package/dist/sdk/memory_tools.d.ts.map +0 -1
  75. package/dist/sdk/memory_tools.js +0 -77
  76. package/dist/sdk/memory_tools.js.map +0 -1
  77. package/dist/sdk/mod.d.ts.map +0 -1
  78. package/dist/sdk/mod.js +0 -27
  79. package/dist/sdk/mod.js.map +0 -1
  80. package/dist/sdk/protocol.d.ts.map +0 -1
  81. package/dist/sdk/protocol.js +0 -133
  82. package/dist/sdk/protocol.js.map +0 -1
  83. package/dist/sdk/runtime.d.ts +0 -36
  84. package/dist/sdk/runtime.d.ts.map +0 -1
  85. package/dist/sdk/runtime.js +0 -27
  86. package/dist/sdk/runtime.js.map +0 -1
  87. package/dist/sdk/s2s.d.ts +0 -74
  88. package/dist/sdk/s2s.d.ts.map +0 -1
  89. package/dist/sdk/s2s.js +0 -218
  90. package/dist/sdk/s2s.js.map +0 -1
  91. package/dist/sdk/server.d.ts.map +0 -1
  92. package/dist/sdk/server.js +0 -144
  93. package/dist/sdk/server.js.map +0 -1
  94. package/dist/sdk/session.d.ts.map +0 -1
  95. package/dist/sdk/session.js +0 -303
  96. package/dist/sdk/session.js.map +0 -1
  97. package/dist/sdk/system_prompt.d.ts +0 -6
  98. package/dist/sdk/system_prompt.d.ts.map +0 -1
  99. package/dist/sdk/system_prompt.js +0 -35
  100. package/dist/sdk/system_prompt.js.map +0 -1
  101. package/dist/sdk/tsconfig.tsbuildinfo +0 -1
  102. package/dist/sdk/types.d.ts.map +0 -1
  103. package/dist/sdk/types.js +0 -96
  104. package/dist/sdk/types.js.map +0 -1
  105. package/dist/sdk/vector.d.ts.map +0 -1
  106. package/dist/sdk/vector.js +0 -63
  107. package/dist/sdk/vector.js.map +0 -1
  108. package/dist/sdk/winterc_server.d.ts +0 -56
  109. package/dist/sdk/winterc_server.d.ts.map +0 -1
  110. package/dist/sdk/winterc_server.js +0 -77
  111. package/dist/sdk/winterc_server.js.map +0 -1
  112. package/dist/sdk/worker_entry.d.ts.map +0 -1
  113. package/dist/sdk/worker_entry.js +0 -68
  114. package/dist/sdk/worker_entry.js.map +0 -1
  115. package/dist/sdk/worker_shim.d.ts +0 -19
  116. package/dist/sdk/worker_shim.d.ts.map +0 -1
  117. package/dist/sdk/worker_shim.js +0 -141
  118. package/dist/sdk/worker_shim.js.map +0 -1
  119. package/dist/sdk/ws_handler.d.ts.map +0 -1
  120. package/dist/sdk/ws_handler.js +0 -158
  121. package/dist/sdk/ws_handler.js.map +0 -1
  122. package/dist/ui/_cn.d.ts +0 -5
  123. package/dist/ui/_cn.d.ts.map +0 -1
  124. package/dist/ui/_cn.js +0 -22
  125. package/dist/ui/_cn.js.map +0 -1
  126. package/dist/ui/_components/app.d.ts +0 -5
  127. package/dist/ui/_components/app.d.ts.map +0 -1
  128. package/dist/ui/_components/app.js +0 -12
  129. package/dist/ui/_components/app.js.map +0 -1
  130. package/dist/ui/_components/button.d.ts +0 -11
  131. package/dist/ui/_components/button.d.ts.map +0 -1
  132. package/dist/ui/_components/button.js +0 -17
  133. package/dist/ui/_components/button.js.map +0 -1
  134. package/dist/ui/_components/chat_view.d.ts +0 -5
  135. package/dist/ui/_components/chat_view.d.ts.map +0 -1
  136. package/dist/ui/_components/chat_view.js +0 -15
  137. package/dist/ui/_components/chat_view.js.map +0 -1
  138. package/dist/ui/_components/controls.d.ts +0 -4
  139. package/dist/ui/_components/controls.d.ts.map +0 -1
  140. package/dist/ui/_components/controls.js +0 -10
  141. package/dist/ui/_components/controls.js.map +0 -1
  142. package/dist/ui/_components/error_banner.d.ts +0 -8
  143. package/dist/ui/_components/error_banner.d.ts.map +0 -1
  144. package/dist/ui/_components/error_banner.js +0 -8
  145. package/dist/ui/_components/error_banner.js.map +0 -1
  146. package/dist/ui/_components/message_bubble.d.ts +0 -7
  147. package/dist/ui/_components/message_bubble.d.ts.map +0 -1
  148. package/dist/ui/_components/message_bubble.js +0 -11
  149. package/dist/ui/_components/message_bubble.js.map +0 -1
  150. package/dist/ui/_components/message_list.d.ts +0 -4
  151. package/dist/ui/_components/message_list.d.ts.map +0 -1
  152. package/dist/ui/_components/message_list.js +0 -45
  153. package/dist/ui/_components/message_list.js.map +0 -1
  154. package/dist/ui/_components/sidebar_layout.d.ts +0 -20
  155. package/dist/ui/_components/sidebar_layout.d.ts.map +0 -1
  156. package/dist/ui/_components/sidebar_layout.js +0 -19
  157. package/dist/ui/_components/sidebar_layout.js.map +0 -1
  158. package/dist/ui/_components/start_screen.d.ts +0 -25
  159. package/dist/ui/_components/start_screen.d.ts.map +0 -1
  160. package/dist/ui/_components/start_screen.js +0 -28
  161. package/dist/ui/_components/start_screen.js.map +0 -1
  162. package/dist/ui/_components/state_indicator.d.ts +0 -8
  163. package/dist/ui/_components/state_indicator.d.ts.map +0 -1
  164. package/dist/ui/_components/state_indicator.js +0 -6
  165. package/dist/ui/_components/state_indicator.js.map +0 -1
  166. package/dist/ui/_components/thinking_indicator.d.ts +0 -5
  167. package/dist/ui/_components/thinking_indicator.d.ts.map +0 -1
  168. package/dist/ui/_components/thinking_indicator.js +0 -10
  169. package/dist/ui/_components/thinking_indicator.js.map +0 -1
  170. package/dist/ui/_components/tool_call_block.d.ts +0 -7
  171. package/dist/ui/_components/tool_call_block.d.ts.map +0 -1
  172. package/dist/ui/_components/tool_call_block.js +0 -46
  173. package/dist/ui/_components/tool_call_block.js.map +0 -1
  174. package/dist/ui/_components/tool_icons.d.ts +0 -18
  175. package/dist/ui/_components/tool_icons.d.ts.map +0 -1
  176. package/dist/ui/_components/tool_icons.js +0 -26
  177. package/dist/ui/_components/tool_icons.js.map +0 -1
  178. package/dist/ui/_components/transcript.d.ts +0 -7
  179. package/dist/ui/_components/transcript.d.ts.map +0 -1
  180. package/dist/ui/_components/transcript.js +0 -9
  181. package/dist/ui/_components/transcript.js.map +0 -1
  182. package/dist/ui/_dom_shim.d.ts +0 -7
  183. package/dist/ui/_dom_shim.d.ts.map +0 -1
  184. package/dist/ui/_dom_shim.js +0 -21
  185. package/dist/ui/_dom_shim.js.map +0 -1
  186. package/dist/ui/_hooks.d.ts +0 -21
  187. package/dist/ui/_hooks.d.ts.map +0 -1
  188. package/dist/ui/_hooks.js +0 -35
  189. package/dist/ui/_hooks.js.map +0 -1
  190. package/dist/ui/_jsdom_setup.d.ts +0 -1
  191. package/dist/ui/_jsdom_setup.d.ts.map +0 -1
  192. package/dist/ui/_jsdom_setup.js +0 -6
  193. package/dist/ui/_jsdom_setup.js.map +0 -1
  194. package/dist/ui/_test_utils.js +0 -272
  195. package/dist/ui/_test_utils.js.map +0 -1
  196. package/dist/ui/audio.d.ts +0 -46
  197. package/dist/ui/audio.d.ts.map +0 -1
  198. package/dist/ui/audio.js +0 -130
  199. package/dist/ui/audio.js.map +0 -1
  200. package/dist/ui/components.d.ts +0 -14
  201. package/dist/ui/components.d.ts.map +0 -1
  202. package/dist/ui/components.js +0 -15
  203. package/dist/ui/components.js.map +0 -1
  204. package/dist/ui/components_mod.d.ts +0 -34
  205. package/dist/ui/components_mod.d.ts.map +0 -1
  206. package/dist/ui/components_mod.js +0 -32
  207. package/dist/ui/components_mod.js.map +0 -1
  208. package/dist/ui/mod.d.ts +0 -23
  209. package/dist/ui/mod.d.ts.map +0 -1
  210. package/dist/ui/mod.js +0 -22
  211. package/dist/ui/mod.js.map +0 -1
  212. package/dist/ui/mount.d.ts +0 -44
  213. package/dist/ui/mount.d.ts.map +0 -1
  214. package/dist/ui/mount.js +0 -61
  215. package/dist/ui/mount.js.map +0 -1
  216. package/dist/ui/mount_context.d.ts +0 -22
  217. package/dist/ui/mount_context.d.ts.map +0 -1
  218. package/dist/ui/mount_context.js +0 -10
  219. package/dist/ui/mount_context.js.map +0 -1
  220. package/dist/ui/session.d.ts +0 -96
  221. package/dist/ui/session.d.ts.map +0 -1
  222. package/dist/ui/session.js +0 -379
  223. package/dist/ui/session.js.map +0 -1
  224. package/dist/ui/session_mod.d.ts +0 -19
  225. package/dist/ui/session_mod.d.ts.map +0 -1
  226. package/dist/ui/session_mod.js +0 -18
  227. package/dist/ui/session_mod.js.map +0 -1
  228. package/dist/ui/signals.d.ts +0 -80
  229. package/dist/ui/signals.d.ts.map +0 -1
  230. package/dist/ui/signals.js +0 -137
  231. package/dist/ui/signals.js.map +0 -1
  232. package/dist/ui/tsconfig.tsbuildinfo +0 -1
  233. package/dist/ui/types.d.ts +0 -36
  234. package/dist/ui/types.d.ts.map +0 -1
  235. package/dist/ui/types.js +0 -4
  236. package/dist/ui/types.js.map +0 -1
  237. package/dist/ui/worklets/capture-processor.d.ts +0 -3
  238. package/dist/ui/worklets/capture-processor.d.ts.map +0 -1
  239. package/dist/ui/worklets/capture-processor.js +0 -61
  240. package/dist/ui/worklets/capture-processor.js.map +0 -1
  241. package/dist/ui/worklets/playback-processor.d.ts +0 -3
  242. package/dist/ui/worklets/playback-processor.d.ts.map +0 -1
  243. package/dist/ui/worklets/playback-processor.js +0 -109
  244. package/dist/ui/worklets/playback-processor.js.map +0 -1
  245. package/templates/.env +0 -1
  246. package/templates/_shared/.env.example +0 -5
  247. package/templates/_shared/CLAUDE.md +0 -1073
  248. package/templates/_shared/biome.json +0 -32
  249. package/templates/_shared/global.d.ts +0 -1
  250. package/templates/_shared/index.html +0 -16
  251. package/templates/_shared/package.json +0 -22
  252. package/templates/_shared/tsconfig.json +0 -16
  253. package/templates/code-interpreter/agent.ts +0 -27
  254. package/templates/code-interpreter/client.tsx +0 -3
  255. package/templates/dispatch-center/agent.ts +0 -1223
  256. package/templates/dispatch-center/client.tsx +0 -505
  257. package/templates/embedded-assets/agent.ts +0 -48
  258. package/templates/embedded-assets/client.tsx +0 -3
  259. package/templates/embedded-assets/knowledge.json +0 -20
  260. package/templates/health-assistant/agent.ts +0 -160
  261. package/templates/health-assistant/client.tsx +0 -3
  262. package/templates/infocom-adventure/agent.ts +0 -164
  263. package/templates/infocom-adventure/client.tsx +0 -300
  264. package/templates/math-buddy/agent.ts +0 -21
  265. package/templates/math-buddy/client.tsx +0 -3
  266. package/templates/memory-agent/agent.ts +0 -20
  267. package/templates/memory-agent/client.tsx +0 -3
  268. package/templates/night-owl/agent.ts +0 -98
  269. package/templates/night-owl/client.tsx +0 -12
  270. package/templates/personal-finance/agent.ts +0 -26
  271. package/templates/personal-finance/client.tsx +0 -3
  272. package/templates/pizza-ordering/agent.ts +0 -214
  273. package/templates/pizza-ordering/client.tsx +0 -264
  274. package/templates/simple/agent.ts +0 -6
  275. package/templates/simple/client.tsx +0 -3
  276. package/templates/smart-research/agent.ts +0 -164
  277. package/templates/smart-research/client.tsx +0 -3
  278. package/templates/solo-rpg/agent.ts +0 -1240
  279. package/templates/solo-rpg/client.tsx +0 -698
  280. package/templates/support/README.md +0 -62
  281. package/templates/support/agent.ts +0 -19
  282. package/templates/support/client.tsx +0 -3
  283. package/templates/travel-concierge/agent.ts +0 -29
  284. package/templates/travel-concierge/client.tsx +0 -3
  285. package/templates/tsconfig.json +0 -1
  286. package/templates/web-researcher/agent.ts +0 -17
  287. package/templates/web-researcher/client.tsx +0 -3
  288. package/ui/styles.css +0 -74
@@ -1 +0,0 @@
1
- {"version":3,"file":"_internal_types.d.ts","sourceRoot":"","sources":["../../sdk/_internal_types.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IAClD,kFAAkF;IAClF,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,YAAY,gCAAe,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,EAAE,CAM1F"}
@@ -1,25 +0,0 @@
1
- // Copyright 2025 the AAI authors. MIT license.
2
- /**
3
- * Internal type definitions shared by server and CLI.
4
- *
5
- * Note: this module is for internal use only and should not be used directly.
6
- *
7
- * @module
8
- */
9
- import { z } from "zod";
10
- /** Empty Zod object schema used as default when tools have no parameters. */
11
- export const EMPTY_PARAMS = z.object({});
12
- /**
13
- * Convert agent tool definitions to JSON Schema format for wire transport.
14
- *
15
- * Transforms the Zod-based `parameters` of each tool into a plain JSON Schema
16
- * object suitable for structured clone / JSON serialization.
17
- */
18
- export function agentToolsToSchemas(tools) {
19
- return Object.entries(tools).map(([name, def]) => ({
20
- name,
21
- description: def.description,
22
- parameters: z.toJSONSchema(def.parameters ?? EMPTY_PARAMS),
23
- }));
24
- }
25
- //# sourceMappingURL=_internal_types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_internal_types.js","sourceRoot":"","sources":["../../sdk/_internal_types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C;;;;;;GAMG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6CxB,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwC;IAC1E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI;QACJ,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY,CAAgB;KAC1E,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_mock_ws.d.ts","sourceRoot":"","sources":["../../sdk/_mock_ws.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK;IAE/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK;IAEzB,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK;IAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK;IAE3B,UAAU,SAA4B;IACtC,UAAU,SAAiB;IAC3B,yDAAyD;IACzD,IAAI,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC,EAAE,CAAM;IACjD,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;;OAQG;gBACS,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWvF;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU;IAI5C;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAKrC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAI1C,iEAAiE;IACjE,IAAI;IAKJ;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAI9B;;;;OAIG;IACH,UAAU,CAAC,IAAI,SAAO;IAItB,kDAAkD;IAClD,KAAK;IAIL;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;CAGtC;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,IAAI;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC;IACnC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B,CAuBA"}
@@ -1,154 +0,0 @@
1
- // Copyright 2025 the AAI authors. MIT license.
2
- /**
3
- * A mock WebSocket implementation for testing.
4
- *
5
- * Extends `EventTarget` to simulate WebSocket behavior without a real
6
- * network connection. Records all sent messages in the {@linkcode sent}
7
- * array and provides helper methods to simulate incoming messages,
8
- * connection events, and errors.
9
- *
10
- * @example
11
- * ```ts
12
- * const ws = new MockWebSocket("wss://example.com");
13
- * ws.send(JSON.stringify({ type: "ping" }));
14
- * ws.simulateMessage(JSON.stringify({ type: "pong" }));
15
- * assertEquals(ws.sentJson(), [{ type: "ping" }]);
16
- * ```
17
- */
18
- export class MockWebSocket extends EventTarget {
19
- // mirrors the WebSocket API
20
- static CONNECTING = 0;
21
- // mirrors the WebSocket API
22
- static OPEN = 1;
23
- // mirrors the WebSocket API
24
- static CLOSING = 2;
25
- // mirrors the WebSocket API
26
- static CLOSED = 3;
27
- readyState = MockWebSocket.CONNECTING;
28
- binaryType = "arraybuffer";
29
- /** All messages passed to {@linkcode send}, in order. */
30
- sent = [];
31
- url;
32
- /**
33
- * Create a new MockWebSocket.
34
- *
35
- * Automatically transitions to `OPEN` state on the next microtask,
36
- * dispatching an `"open"` event.
37
- *
38
- * @param url - The WebSocket URL.
39
- * @param _protocols - Ignored; accepted for API compatibility.
40
- */
41
- constructor(url, _protocols) {
42
- super();
43
- this.url = typeof url === "string" ? url : url.toString();
44
- queueMicrotask(() => {
45
- if (this.readyState === MockWebSocket.CONNECTING) {
46
- this.readyState = MockWebSocket.OPEN;
47
- this.dispatchEvent(new Event("open"));
48
- }
49
- });
50
- }
51
- /**
52
- * Record a sent message without transmitting it.
53
- *
54
- * @param data - The message data to record.
55
- */
56
- send(data) {
57
- this.sent.push(data);
58
- }
59
- /**
60
- * Transition to `CLOSED` state and dispatch a `"close"` event.
61
- *
62
- * @param code - The close code (defaults to 1000).
63
- * @param _reason - Ignored; accepted for API compatibility.
64
- */
65
- close(code, _reason) {
66
- this.readyState = MockWebSocket.CLOSED;
67
- this.dispatchEvent(new CloseEvent("close", { code: code ?? 1000 }));
68
- }
69
- /**
70
- * Simulate receiving a message from the server.
71
- *
72
- * @param data - The message data (string or binary).
73
- */
74
- simulateMessage(data) {
75
- this.dispatchEvent(new MessageEvent("message", { data }));
76
- }
77
- /** Transition to `OPEN` state and dispatch an `"open"` event. */
78
- open() {
79
- this.readyState = MockWebSocket.OPEN;
80
- this.dispatchEvent(new Event("open"));
81
- }
82
- /**
83
- * Shorthand for {@linkcode simulateMessage}.
84
- *
85
- * @param data - The message data to dispatch.
86
- */
87
- msg(data) {
88
- this.simulateMessage(data);
89
- }
90
- /**
91
- * Simulate a connection close from the server.
92
- *
93
- * @param code - The close code (defaults to 1000).
94
- */
95
- disconnect(code = 1000) {
96
- this.dispatchEvent(new CloseEvent("close", { code }));
97
- }
98
- /** Dispatch an `"error"` event on this socket. */
99
- error() {
100
- this.dispatchEvent(new Event("error"));
101
- }
102
- /**
103
- * Return all sent string messages parsed as JSON objects.
104
- *
105
- * Binary messages are filtered out.
106
- *
107
- * @returns An array of parsed JSON objects from sent string messages.
108
- */
109
- sentJson() {
110
- return this.sent.filter((d) => typeof d === "string").map((s) => JSON.parse(s));
111
- }
112
- }
113
- const g = globalThis;
114
- /**
115
- * Replace `globalThis.WebSocket` with {@linkcode MockWebSocket} for testing.
116
- *
117
- * Returns a handle that tracks all created mock sockets and can restore the
118
- * original `WebSocket` constructor. Supports the `using` declaration via
119
- * `Symbol.dispose` for automatic cleanup.
120
- *
121
- * @returns An object with `created` array, `lastWs` getter, `restore()`, and `[Symbol.dispose]()`.
122
- *
123
- * @example
124
- * ```ts
125
- * using mock = installMockWebSocket();
126
- * const session = new Session("wss://example.com");
127
- * const ws = mock.lastWs!;
128
- * ws.simulateMessage(JSON.stringify({ type: "ready" }));
129
- * // mock automatically restores WebSocket when disposed
130
- * ```
131
- */
132
- export function installMockWebSocket() {
133
- const saved = globalThis.WebSocket;
134
- const created = [];
135
- g.WebSocket = class extends MockWebSocket {
136
- constructor(url, protocols) {
137
- super(url, protocols);
138
- created.push(this);
139
- }
140
- };
141
- return {
142
- created,
143
- get lastWs() {
144
- return created.at(-1) ?? null;
145
- },
146
- restore() {
147
- globalThis.WebSocket = saved;
148
- },
149
- [Symbol.dispose]() {
150
- this.restore();
151
- },
152
- };
153
- }
154
- //# sourceMappingURL=_mock_ws.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_mock_ws.js","sourceRoot":"","sources":["../../sdk/_mock_ws.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Smoke-test a client.tsx by loading it via Vite SSR in a DOM-shimmed
3
- * environment. The module's top-level `mount()` call executes as a side
4
- * effect; if it throws, the client code has a render-time bug.
5
- *
6
- * Imports linkedom dynamically so this module can be loaded even when
7
- * linkedom is not installed (the caller catches and skips).
8
- */
9
- export declare function renderCheck(clientEntry: string, cwd: string): Promise<void>;
10
- //# sourceMappingURL=_render_check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_render_check.d.ts","sourceRoot":"","sources":["../../sdk/_render_check.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEjF"}
@@ -1,72 +0,0 @@
1
- // Copyright 2025 the AAI authors. MIT license.
2
- import path from "node:path";
3
- import preact from "@preact/preset-vite";
4
- import { createServer as createViteServer } from "vite";
5
- /**
6
- * Smoke-test a client.tsx by loading it via Vite SSR in a DOM-shimmed
7
- * environment. The module's top-level `mount()` call executes as a side
8
- * effect; if it throws, the client code has a render-time bug.
9
- *
10
- * Imports linkedom dynamically so this module can be loaded even when
11
- * linkedom is not installed (the caller catches and skips).
12
- */
13
- export async function renderCheck(clientEntry, cwd) {
14
- // Dynamic imports so esbuild doesn't bundle linkedom into the CLI dist.
15
- const { DOMParser, installDomShim } = await import("../ui/_dom_shim.js");
16
- const { installMockWebSocket } = await import("./_mock_ws.js");
17
- installDomShim();
18
- const g = globalThis;
19
- const doc = new DOMParser().parseFromString('<!DOCTYPE html><html><head></head><body><main id="app"></main></body></html>', "text/html");
20
- const prevDoc = g.document;
21
- const prevLocation = g.location;
22
- g.document = doc;
23
- g.location = { origin: "http://localhost:3000", pathname: "/", href: "http://localhost:3000/" };
24
- // Build resolve.alias from package.json exports so templates can
25
- // self-reference `@pkg/name/ui` and resolve to local .ts source.
26
- // Vite's SSR loader doesn't support self-referencing exports (vitejs#9731),
27
- // so resolve.alias is the standard workaround for monorepo-style setups.
28
- const pkgRoot = path.resolve(import.meta.dirname ?? __dirname, "..");
29
- const fs = await import("node:fs/promises");
30
- const pkg = JSON.parse(await fs.readFile(path.join(pkgRoot, "package.json"), "utf-8"));
31
- const alias = [];
32
- for (const [key, val] of Object.entries(pkg.exports ?? {})) {
33
- const source = typeof val === "object" && val !== null && "source" in val ? val.source : null;
34
- if (typeof source === "string") {
35
- alias.push({
36
- find: `${pkg.name}${key.slice(1)}`,
37
- replacement: path.resolve(pkgRoot, source),
38
- });
39
- }
40
- }
41
- // Sort longest-first so `@pkg/name/ui` matches before `@pkg/name`.
42
- alias.sort((a, b) => b.find.length - a.find.length);
43
- const cssNoop = {
44
- name: "ssr-css-noop",
45
- enforce: "pre",
46
- resolveId: (id) => (id.endsWith(".css") ? "\0css-noop" : undefined),
47
- load: (id) => (id === "\0css-noop" ? "" : undefined),
48
- };
49
- const mock = installMockWebSocket();
50
- const vite = await createViteServer({
51
- root: cwd,
52
- logLevel: "silent",
53
- plugins: [preact(), cssNoop],
54
- resolve: { alias, dedupe: ["preact", "@preact/signals"] },
55
- ssr: { noExternal: [pkg.name] },
56
- server: { middlewareMode: true },
57
- });
58
- try {
59
- await vite.ssrLoadModule(clientEntry);
60
- const app = doc.querySelector("#app");
61
- if (!app?.innerHTML) {
62
- throw new Error("client.tsx render check failed: #app is empty after mount()");
63
- }
64
- }
65
- finally {
66
- await vite.close();
67
- mock.restore();
68
- g.document = prevDoc;
69
- g.location = prevLocation;
70
- }
71
- }
72
- //# sourceMappingURL=_render_check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_render_check.js","sourceRoot":"","sources":["../../sdk/_render_check.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_utils.d.ts","sourceRoot":"","sources":["../../sdk/_utils.ts"],"names":[],"mappings":"AACA,wCAAwC;AAExC,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjD"}
@@ -1,7 +0,0 @@
1
- // Copyright 2025 the AAI authors. MIT license.
2
- /** Shared utility functions. @module */
3
- /** Extract an error message from an unknown thrown value. */
4
- export function errorMessage(err) {
5
- return err instanceof Error ? err.message : String(err);
6
- }
7
- //# sourceMappingURL=_utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_utils.js","sourceRoot":"","sources":["../../sdk/_utils.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,wCAAwC;AAExC,6DAA6D;AAC7D,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"builtin_tools.d.ts","sourceRoot":"","sources":["../../sdk/builtin_tools.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,KAAK,OAAO,EAAQ,MAAM,YAAY,CAAC;AA+MhD,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAgB9E,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC,CAAC;AAEF,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAwBzE;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,IAAI,CAAC,EAAE,kBAAkB,GACxB,aAAa,CAMf;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,EAAE,CAQ5E;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW;;;;;;;;;;;;;;EAmD1B"}
@@ -1,309 +0,0 @@
1
- // Copyright 2025 the AAI authors. MIT license.
2
- /**
3
- * Built-in tool definitions for the AAI agent SDK.
4
- *
5
- * These tools run inside the sandboxed worker alongside custom tools.
6
- * Network requests go through the host's fetch proxy (with SSRF protection).
7
- *
8
- * @module
9
- */
10
- import { convert } from "html-to-text";
11
- import { z } from "zod";
12
- import { EMPTY_PARAMS } from "./_internal_types.js";
13
- import { errorMessage } from "./_utils.js";
14
- import { tool } from "./types.js";
15
- /** Per-fetch timeout for network tools — tighter than the overall tool timeout. */
16
- const FETCH_TIMEOUT_MS = 15_000;
17
- /** Timeout for sandboxed code execution. */
18
- const RUN_CODE_TIMEOUT = 5_000;
19
- /** Compose a per-fetch timeout with the tool's abort signal. */
20
- function fetchSignal(toolSignal) {
21
- return AbortSignal.any([toolSignal, AbortSignal.timeout(FETCH_TIMEOUT_MS)]);
22
- }
23
- // ─── HTML to text ──────────────────────────────────────────────────────────
24
- function htmlToText(html) {
25
- return convert(html, { wordwrap: false });
26
- }
27
- // ─── web_search ────────────────────────────────────────────────────────────
28
- const webSearchParams = z.object({
29
- query: z.string().describe("The search query"),
30
- max_results: z.number().describe("Maximum number of results to return (default 5)").optional(),
31
- });
32
- const BRAVE_SEARCH_URL = "https://api.search.brave.com/res/v1/web/search";
33
- const BraveSearchResponseSchema = z.object({
34
- web: z
35
- .object({
36
- results: z.array(z.object({
37
- title: z.string(),
38
- url: z.string(),
39
- description: z.string(),
40
- })),
41
- })
42
- .optional(),
43
- });
44
- function createWebSearch(fetchFn = globalThis.fetch) {
45
- return {
46
- description: "Search the web for current information, facts, news, or answers to questions. Returns a list of results with title, URL, and description. Use this when the user asks about something you don't know, need up-to-date information, or want to verify facts.",
47
- parameters: webSearchParams,
48
- async execute(args, ctx) {
49
- const { query, max_results: maxResults = 5 } = args;
50
- const apiKey = ctx.env.BRAVE_API_KEY ?? "";
51
- if (!apiKey) {
52
- return { error: "BRAVE_API_KEY is not set — web search unavailable" };
53
- }
54
- const url = `${BRAVE_SEARCH_URL}?${new URLSearchParams({
55
- q: query,
56
- count: String(maxResults),
57
- text_decorations: "false",
58
- })}`;
59
- const resp = await fetchFn(url, {
60
- headers: { "X-Subscription-Token": apiKey },
61
- signal: fetchSignal(ctx.abortSignal),
62
- });
63
- if (!resp.ok)
64
- return [];
65
- const raw = await resp.json();
66
- const data = BraveSearchResponseSchema.safeParse(raw);
67
- if (!data.success)
68
- return [];
69
- return (data.data.web?.results ?? []).slice(0, maxResults).map((r) => ({
70
- title: r.title,
71
- url: r.url,
72
- description: r.description,
73
- }));
74
- },
75
- };
76
- }
77
- // ─── visit_webpage ─────────────────────────────────────────────────────────
78
- const MAX_PAGE_CHARS = 10_000;
79
- const MAX_HTML_BYTES = 200_000;
80
- const visitWebpageParams = z.object({
81
- url: z.string().describe("The full URL to fetch (e.g., 'https://example.com/page')"),
82
- });
83
- function createVisitWebpage(fetchFn = globalThis.fetch) {
84
- return {
85
- description: "Fetch a webpage and return its content as clean text. Use this to read the full content of a URL found via web_search, or any link the user shares. Good for reading articles, documentation, blog posts, or product pages.",
86
- parameters: visitWebpageParams,
87
- async execute(args, ctx) {
88
- const { url } = args;
89
- const resp = await fetchFn(url, {
90
- headers: {
91
- "User-Agent": "Mozilla/5.0 (compatible; VoiceAgent/1.0; +https://github.com/AssemblyAI/aai)",
92
- Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
93
- },
94
- redirect: "follow",
95
- signal: fetchSignal(ctx.abortSignal),
96
- });
97
- if (!resp.ok) {
98
- return { error: `Failed to fetch: ${resp.status} ${resp.statusText}`, url };
99
- }
100
- const htmlContent = await resp.text();
101
- const trimmedHtml = htmlContent.length > MAX_HTML_BYTES ? htmlContent.slice(0, MAX_HTML_BYTES) : htmlContent;
102
- const text = htmlToText(trimmedHtml);
103
- const truncated = text.length > MAX_PAGE_CHARS;
104
- const content = truncated ? text.slice(0, MAX_PAGE_CHARS) : text;
105
- return {
106
- url,
107
- content,
108
- ...(truncated ? { truncated: true, totalChars: text.length } : {}),
109
- };
110
- },
111
- };
112
- }
113
- // ─── fetch_json ────────────────────────────────────────────────────────────
114
- const fetchJsonParams = z.object({
115
- url: z.string().describe("The URL to fetch JSON from"),
116
- headers: z
117
- .record(z.string(), z.string())
118
- .describe("Optional HTTP headers to include in the request")
119
- .optional(),
120
- });
121
- function createFetchJson(fetchFn = globalThis.fetch) {
122
- return {
123
- description: "Call a REST API endpoint via HTTP GET and return the JSON response. Use this to fetch structured data from APIs — for example, weather data, stock prices, exchange rates, or any public JSON API. Supports custom headers for authenticated APIs.",
124
- parameters: fetchJsonParams,
125
- async execute(args, ctx) {
126
- const { url, headers } = args;
127
- const resp = await fetchFn(url, {
128
- ...(headers && { headers }),
129
- signal: fetchSignal(ctx.abortSignal),
130
- });
131
- if (!resp.ok) {
132
- return { error: `HTTP ${resp.status} ${resp.statusText}`, url };
133
- }
134
- try {
135
- return await resp.json();
136
- }
137
- catch {
138
- return { error: "Response was not valid JSON", url };
139
- }
140
- },
141
- };
142
- }
143
- // ─── run_code ──────────────────────────────────────────────────────────────
144
- const runCodeParams = z.object({
145
- code: z.string().describe("JavaScript code to execute. Use console.log() for output."),
146
- });
147
- function createRunCode() {
148
- return {
149
- description: "Execute JavaScript code in a secure sandbox and return the output. Use this for calculations, data transformations, string manipulation, or any task that benefits from running code. Output is captured from console.log(). No network or filesystem access.",
150
- parameters: runCodeParams,
151
- async execute(args) {
152
- const { code } = args;
153
- const output = [];
154
- function capture(...captureArgs) {
155
- output.push(captureArgs.map(String).join(" "));
156
- }
157
- const fakeConsole = {
158
- log: capture,
159
- info: capture,
160
- warn: capture,
161
- error: capture,
162
- debug: capture,
163
- };
164
- const AsyncFunction = Object.getPrototypeOf(async () => { }).constructor;
165
- try {
166
- const fn = new AsyncFunction("console", code);
167
- await Promise.race([
168
- fn(fakeConsole),
169
- new Promise((_, reject) => setTimeout(() => reject(new Error("Code execution timed out")), RUN_CODE_TIMEOUT)),
170
- ]);
171
- const result = output.join("\n").trim();
172
- return result || "Code ran successfully (no output)";
173
- }
174
- catch (err) {
175
- return { error: errorMessage(err) };
176
- }
177
- },
178
- };
179
- }
180
- // ─── vector_search ─────────────────────────────────────────────────────────
181
- const vectorSearchParams = z.object({
182
- query: z
183
- .string()
184
- .describe("Short keyword query to search the knowledge base. Use specific topic " +
185
- "terms, not full sentences. Do NOT include the company or product name " +
186
- "since all documents are from the same source. For example, if the user " +
187
- 'asks "how much does Acme cost", search for "pricing plans rates".'),
188
- topK: z.number().describe("Maximum results to return (default: 5)").optional(),
189
- });
190
- function createVectorSearch(vectorSearchFn) {
191
- return {
192
- description: "Search the agent's knowledge base for relevant information. Use this when the user asks a question that might be answered by previously ingested documents or data. Returns the most relevant matches ranked by similarity.",
193
- parameters: vectorSearchParams,
194
- async execute(args) {
195
- const { query, topK = 5 } = args;
196
- return vectorSearchFn(query, topK);
197
- },
198
- };
199
- }
200
- /** Single-tool creators and multi-tool expanders in one registry. */
201
- const TOOL_REGISTRY = {
202
- web_search: { create: (opts) => createWebSearch(opts?.fetch) },
203
- visit_webpage: { create: (opts) => createVisitWebpage(opts?.fetch) },
204
- fetch_json: { create: (opts) => createFetchJson(opts?.fetch) },
205
- run_code: { create: createRunCode },
206
- vector_search: { create: (opts) => createVectorSearch(opts?.vectorSearch ?? (async () => "")) },
207
- memory: { multi: memoryTools },
208
- };
209
- /** Resolve a builtin name to an array of [toolName, ToolDef] pairs. */
210
- function resolveBuiltin(name, opts) {
211
- const entry = TOOL_REGISTRY[name];
212
- if (!entry)
213
- return [];
214
- if ("multi" in entry)
215
- return Object.entries(entry.multi());
216
- if (name === "vector_search" && !opts?.vectorSearch)
217
- return [];
218
- return [[name, entry.create(opts)]];
219
- }
220
- /**
221
- * Create built-in tool definitions for the given tool names.
222
- * For runtime use — vector_search requires opts.vectorSearch to be included.
223
- */
224
- export function getBuiltinToolDefs(names, opts) {
225
- const defs = {};
226
- for (const name of names) {
227
- for (const [k, v] of resolveBuiltin(name, opts))
228
- defs[k] = v;
229
- }
230
- return defs;
231
- }
232
- /** Returns JSON tool schemas for the specified builtin tools. */
233
- export function getBuiltinToolSchemas(names) {
234
- return names.flatMap((name) => resolveBuiltin(name, { vectorSearch: async () => "" }).map(([toolName, def]) => ({
235
- name: toolName,
236
- description: def.description,
237
- parameters: z.toJSONSchema(def.parameters ?? EMPTY_PARAMS),
238
- })));
239
- }
240
- // ─── Memory tools ──────────────────────────────────────────────────────────
241
- /**
242
- * Returns a standard set of KV-backed memory tools: `save_memory`,
243
- * `recall_memory`, `list_memories`, and `forget_memory`.
244
- *
245
- * Spread the result into your agent's `tools` record.
246
- *
247
- * @example
248
- * ```ts
249
- * import { defineAgent, memoryTools } from "aai";
250
- *
251
- * export default defineAgent({
252
- * name: "My Agent",
253
- * tools: { ...memoryTools() },
254
- * });
255
- * ```
256
- */
257
- export function memoryTools() {
258
- return {
259
- save_memory: tool({
260
- description: "Save a piece of information to persistent memory. Use a descriptive key like 'user:name' or 'project:status'.",
261
- parameters: z.object({
262
- key: z
263
- .string()
264
- .describe("A descriptive key for this memory (e.g. 'user:name', 'preference:color')"),
265
- value: z.string().describe("The information to remember"),
266
- }),
267
- execute: async ({ key, value }, ctx) => {
268
- await ctx.kv.set(key, value);
269
- return { saved: key };
270
- },
271
- }),
272
- recall_memory: tool({
273
- description: "Retrieve a previously saved memory by its key.",
274
- parameters: z.object({
275
- key: z.string().describe("The key to look up"),
276
- }),
277
- execute: async ({ key }, ctx) => {
278
- const value = await ctx.kv.get(key);
279
- if (value === null)
280
- return { found: false, key };
281
- return { found: true, key, value };
282
- },
283
- }),
284
- list_memories: tool({
285
- description: "List all saved memory keys, optionally filtered by a prefix (e.g. 'user:').",
286
- parameters: z.object({
287
- prefix: z
288
- .string()
289
- .describe("Prefix to filter keys (e.g. 'user:'). Use empty string for all.")
290
- .optional(),
291
- }),
292
- execute: async ({ prefix }, ctx) => {
293
- const entries = await ctx.kv.list(prefix ?? "");
294
- return { count: entries.length, keys: entries.map((e) => e.key) };
295
- },
296
- }),
297
- forget_memory: tool({
298
- description: "Delete a previously saved memory by its key.",
299
- parameters: z.object({
300
- key: z.string().describe("The key to delete"),
301
- }),
302
- execute: async ({ key }, ctx) => {
303
- await ctx.kv.delete(key);
304
- return { deleted: key };
305
- },
306
- }),
307
- };
308
- }
309
- //# sourceMappingURL=builtin_tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builtin_tools.js","sourceRoot":"","sources":["../../sdk/builtin_tools.ts"],"names":[],"mappings":"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"}