@alexkroman1/aai 0.8.3 → 0.8.5

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 (164) hide show
  1. package/dist/cli/tsconfig.tsbuildinfo +1 -0
  2. package/dist/cli.js +1215 -1706
  3. package/dist/sdk/_mock_ws.js +2 -2
  4. package/dist/sdk/_mock_ws.js.map +1 -1
  5. package/dist/sdk/_render_check.d.ts.map +1 -1
  6. package/dist/sdk/_render_check.js +29 -2
  7. package/dist/sdk/_render_check.js.map +1 -1
  8. package/dist/sdk/_utils.d.ts +4 -0
  9. package/dist/sdk/_utils.d.ts.map +1 -0
  10. package/dist/sdk/_utils.js +7 -0
  11. package/dist/sdk/_utils.js.map +1 -0
  12. package/dist/sdk/builtin_tools.d.ts +35 -11
  13. package/dist/sdk/builtin_tools.d.ts.map +1 -1
  14. package/dist/sdk/builtin_tools.js +118 -76
  15. package/dist/sdk/builtin_tools.js.map +1 -1
  16. package/dist/sdk/capnweb.d.ts +76 -47
  17. package/dist/sdk/capnweb.d.ts.map +1 -1
  18. package/dist/sdk/capnweb.js +99 -242
  19. package/dist/sdk/capnweb.js.map +1 -1
  20. package/dist/sdk/direct_executor.d.ts.map +1 -1
  21. package/dist/sdk/direct_executor.js +0 -2
  22. package/dist/sdk/direct_executor.js.map +1 -1
  23. package/dist/sdk/host.d.ts +59 -0
  24. package/dist/sdk/host.d.ts.map +1 -0
  25. package/dist/sdk/host.js +131 -0
  26. package/dist/sdk/host.js.map +1 -0
  27. package/dist/sdk/mod.d.ts +2 -4
  28. package/dist/sdk/mod.d.ts.map +1 -1
  29. package/dist/sdk/mod.js +2 -3
  30. package/dist/sdk/mod.js.map +1 -1
  31. package/dist/sdk/protocol.d.ts +33 -135
  32. package/dist/sdk/protocol.d.ts.map +1 -1
  33. package/dist/sdk/protocol.js +49 -51
  34. package/dist/sdk/protocol.js.map +1 -1
  35. package/dist/sdk/runtime.d.ts +0 -1
  36. package/dist/sdk/runtime.d.ts.map +1 -1
  37. package/dist/sdk/runtime.js +5 -24
  38. package/dist/sdk/runtime.js.map +1 -1
  39. package/dist/sdk/s2s.d.ts +14 -3
  40. package/dist/sdk/s2s.d.ts.map +1 -1
  41. package/dist/sdk/s2s.js +72 -113
  42. package/dist/sdk/s2s.js.map +1 -1
  43. package/dist/sdk/server.d.ts +1 -1
  44. package/dist/sdk/server.d.ts.map +1 -1
  45. package/dist/sdk/server.js +26 -10
  46. package/dist/sdk/server.js.map +1 -1
  47. package/dist/sdk/session.d.ts +5 -1
  48. package/dist/sdk/session.d.ts.map +1 -1
  49. package/dist/sdk/session.js +131 -137
  50. package/dist/sdk/session.js.map +1 -1
  51. package/dist/sdk/tsconfig.tsbuildinfo +1 -0
  52. package/dist/sdk/types.d.ts +30 -3
  53. package/dist/sdk/types.d.ts.map +1 -1
  54. package/dist/sdk/types.js +37 -0
  55. package/dist/sdk/types.js.map +1 -1
  56. package/dist/sdk/winterc_server.d.ts +0 -1
  57. package/dist/sdk/winterc_server.d.ts.map +1 -1
  58. package/dist/sdk/winterc_server.js +0 -1
  59. package/dist/sdk/winterc_server.js.map +1 -1
  60. package/dist/sdk/worker_entry.d.ts +3 -11
  61. package/dist/sdk/worker_entry.d.ts.map +1 -1
  62. package/dist/sdk/worker_entry.js +8 -18
  63. package/dist/sdk/worker_entry.js.map +1 -1
  64. package/dist/sdk/worker_shim.d.ts +5 -6
  65. package/dist/sdk/worker_shim.d.ts.map +1 -1
  66. package/dist/sdk/worker_shim.js +93 -136
  67. package/dist/sdk/worker_shim.js.map +1 -1
  68. package/dist/sdk/ws_handler.d.ts +1 -3
  69. package/dist/sdk/ws_handler.d.ts.map +1 -1
  70. package/dist/sdk/ws_handler.js +14 -25
  71. package/dist/sdk/ws_handler.js.map +1 -1
  72. package/dist/ui/_cn.d.ts +5 -0
  73. package/dist/ui/_cn.d.ts.map +1 -0
  74. package/dist/ui/_cn.js +22 -0
  75. package/dist/ui/_cn.js.map +1 -0
  76. package/dist/ui/_components/app.d.ts +3 -1
  77. package/dist/ui/_components/app.d.ts.map +1 -1
  78. package/dist/ui/_components/app.js +2 -2
  79. package/dist/ui/_components/app.js.map +1 -1
  80. package/dist/ui/_components/button.d.ts +11 -0
  81. package/dist/ui/_components/button.d.ts.map +1 -0
  82. package/dist/ui/_components/button.js +17 -0
  83. package/dist/ui/_components/button.js.map +1 -0
  84. package/dist/ui/_components/chat_view.d.ts +3 -1
  85. package/dist/ui/_components/chat_view.d.ts.map +1 -1
  86. package/dist/ui/_components/chat_view.js +4 -2
  87. package/dist/ui/_components/chat_view.js.map +1 -1
  88. package/dist/ui/_components/controls.d.ts +3 -1
  89. package/dist/ui/_components/controls.d.ts.map +1 -1
  90. package/dist/ui/_components/controls.js +4 -5
  91. package/dist/ui/_components/controls.js.map +1 -1
  92. package/dist/ui/_components/error_banner.d.ts +2 -1
  93. package/dist/ui/_components/error_banner.d.ts.map +1 -1
  94. package/dist/ui/_components/error_banner.js +3 -2
  95. package/dist/ui/_components/error_banner.js.map +1 -1
  96. package/dist/ui/_components/message_bubble.d.ts +2 -1
  97. package/dist/ui/_components/message_bubble.d.ts.map +1 -1
  98. package/dist/ui/_components/message_bubble.js +5 -3
  99. package/dist/ui/_components/message_bubble.js.map +1 -1
  100. package/dist/ui/_components/message_list.d.ts +3 -1
  101. package/dist/ui/_components/message_list.d.ts.map +1 -1
  102. package/dist/ui/_components/message_list.js +7 -15
  103. package/dist/ui/_components/message_list.js.map +1 -1
  104. package/dist/ui/_components/sidebar_layout.d.ts +2 -1
  105. package/dist/ui/_components/sidebar_layout.d.ts.map +1 -1
  106. package/dist/ui/_components/sidebar_layout.js +5 -7
  107. package/dist/ui/_components/sidebar_layout.js.map +1 -1
  108. package/dist/ui/_components/start_screen.d.ts +2 -1
  109. package/dist/ui/_components/start_screen.d.ts.map +1 -1
  110. package/dist/ui/_components/start_screen.js +5 -2
  111. package/dist/ui/_components/start_screen.js.map +1 -1
  112. package/dist/ui/_components/state_indicator.d.ts +2 -1
  113. package/dist/ui/_components/state_indicator.d.ts.map +1 -1
  114. package/dist/ui/_components/state_indicator.js +3 -2
  115. package/dist/ui/_components/state_indicator.js.map +1 -1
  116. package/dist/ui/_components/thinking_indicator.d.ts +3 -1
  117. package/dist/ui/_components/thinking_indicator.d.ts.map +1 -1
  118. package/dist/ui/_components/thinking_indicator.js +4 -2
  119. package/dist/ui/_components/thinking_indicator.js.map +1 -1
  120. package/dist/ui/_components/tool_call_block.d.ts +2 -1
  121. package/dist/ui/_components/tool_call_block.d.ts.map +1 -1
  122. package/dist/ui/_components/tool_call_block.js +13 -25
  123. package/dist/ui/_components/tool_call_block.js.map +1 -1
  124. package/dist/ui/_components/transcript.d.ts +2 -1
  125. package/dist/ui/_components/transcript.d.ts.map +1 -1
  126. package/dist/ui/_components/transcript.js +3 -2
  127. package/dist/ui/_components/transcript.js.map +1 -1
  128. package/dist/ui/_jsdom_setup.d.ts +1 -0
  129. package/dist/ui/_jsdom_setup.d.ts.map +1 -0
  130. package/dist/ui/_jsdom_setup.js +6 -0
  131. package/dist/ui/_jsdom_setup.js.map +1 -0
  132. package/dist/ui/audio.d.ts.map +1 -1
  133. package/dist/ui/audio.js +4 -4
  134. package/dist/ui/audio.js.map +1 -1
  135. package/dist/ui/components.d.ts +13 -55
  136. package/dist/ui/components.d.ts.map +1 -1
  137. package/dist/ui/components.js +13 -42
  138. package/dist/ui/components.js.map +1 -1
  139. package/dist/ui/components_mod.d.ts +14 -3
  140. package/dist/ui/components_mod.d.ts.map +1 -1
  141. package/dist/ui/components_mod.js +14 -3
  142. package/dist/ui/components_mod.js.map +1 -1
  143. package/dist/ui/mod.d.ts +1 -8
  144. package/dist/ui/mod.d.ts.map +1 -1
  145. package/dist/ui/mod.js +1 -5
  146. package/dist/ui/mod.js.map +1 -1
  147. package/dist/ui/mount.d.ts +1 -1
  148. package/dist/ui/mount.d.ts.map +1 -1
  149. package/dist/ui/mount.js +1 -0
  150. package/dist/ui/mount.js.map +1 -1
  151. package/dist/ui/session.d.ts +0 -2
  152. package/dist/ui/session.d.ts.map +1 -1
  153. package/dist/ui/session.js +9 -18
  154. package/dist/ui/session.js.map +1 -1
  155. package/dist/ui/signals.d.ts +8 -3
  156. package/dist/ui/signals.d.ts.map +1 -1
  157. package/dist/ui/signals.js +22 -11
  158. package/dist/ui/signals.js.map +1 -1
  159. package/dist/ui/tsconfig.tsbuildinfo +1 -0
  160. package/dist/ui/worklets/playback-processor.js +3 -3
  161. package/package.json +37 -17
  162. package/templates/_shared/CLAUDE.md +4 -7
  163. package/templates/dispatch-center/agent.ts +85 -397
  164. package/templates/solo-rpg/agent.ts +3 -3
@@ -85,7 +85,7 @@ export class MockWebSocket extends EventTarget {
85
85
  * @param data - The message data to dispatch.
86
86
  */
87
87
  msg(data) {
88
- this.dispatchEvent(new MessageEvent("message", { data }));
88
+ this.simulateMessage(data);
89
89
  }
90
90
  /**
91
91
  * Simulate a connection close from the server.
@@ -147,7 +147,7 @@ export function installMockWebSocket() {
147
147
  globalThis.WebSocket = saved;
148
148
  },
149
149
  [Symbol.dispose]() {
150
- globalThis.WebSocket = saved;
150
+ this.restore();
151
151
  },
152
152
  };
153
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_mock_ws.js","sourceRoot":"","sources":["../../sdk/_mock_ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_mock_ws.js","sourceRoot":"","sources":["../../sdk/_mock_ws.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_render_check.d.ts","sourceRoot":"","sources":["../../sdk/_render_check.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCjF"}
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,4 +1,5 @@
1
1
  // Copyright 2025 the AAI authors. MIT license.
2
+ import path from "node:path";
2
3
  import preact from "@preact/preset-vite";
3
4
  import { createServer as createViteServer } from "vite";
4
5
  /**
@@ -20,12 +21,38 @@ export async function renderCheck(clientEntry, cwd) {
20
21
  const prevLocation = g.location;
21
22
  g.document = doc;
22
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
+ };
23
49
  const mock = installMockWebSocket();
24
50
  const vite = await createViteServer({
25
51
  root: cwd,
26
52
  logLevel: "silent",
27
- plugins: [preact()],
28
- resolve: { dedupe: ["preact", "@preact/signals"] },
53
+ plugins: [preact(), cssNoop],
54
+ resolve: { alias, dedupe: ["preact", "@preact/signals"] },
55
+ ssr: { noExternal: [pkg.name] },
29
56
  server: { middlewareMode: true },
30
57
  });
31
58
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"_render_check.js","sourceRoot":"","sources":["../../sdk/_render_check.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,GAAW;IAChE,wEAAwE;IACxE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACzE,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/D,cAAc,EAAE,CAAC;IAEjB,MAAM,CAAC,GAAG,UAAgD,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CACzC,8EAA8E,EAC9E,WAAW,CACZ,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAEhG,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE;QAClD,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,GAAG,GAAI,GAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"_render_check.js","sourceRoot":"","sources":["../../sdk/_render_check.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAc,YAAY,IAAI,gBAAgB,EAAe,MAAM,MAAM,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,GAAW;IAChE,wEAAwE;IACxE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACzE,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/D,cAAc,EAAE,CAAC;IAEjB,MAAM,CAAC,GAAG,UAAgD,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CACzC,8EAA8E,EAC9E,WAAW,CACZ,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAEhG,iEAAiE;IACjE,iEAAiE;IACjE,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAClC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,IAAe,CAAC,MAAM,GAAI,CAAC,CAAC,IAAe,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAW;QACtB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KACrD,CAAC;IAEF,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE;QACzD,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,IAAc,CAAC,EAAE;QACzC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,GAAG,GAAI,GAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Shared utility functions. @module */
2
+ /** Extract an error message from an unknown thrown value. */
3
+ export declare function errorMessage(err: unknown): string;
4
+ //# sourceMappingURL=_utils.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,7 @@
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
@@ -0,0 +1 @@
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"}
@@ -8,30 +8,54 @@
8
8
  */
9
9
  import { z } from "zod";
10
10
  import { type ToolSchema } from "./_internal_types.ts";
11
- import type { ToolDef } from "./types.ts";
11
+ import { type ToolDef } from "./types.ts";
12
12
  /** Callback for proxying vector search through the host RPC. */
13
13
  export type VectorSearchFn = (query: string, topK: number) => Promise<string>;
14
14
  /** Options for creating built-in tool definitions. */
15
15
  export type BuiltinToolOptions = {
16
16
  /** RPC callback for vector_search (proxied through host). */
17
17
  vectorSearch?: VectorSearchFn;
18
+ /** Override fetch implementation (defaults to globalThis.fetch). For testing. */
19
+ fetch?: typeof globalThis.fetch;
18
20
  };
21
+ type ToolDefRecord = Record<string, ToolDef<z.ZodObject<z.ZodRawShape>>>;
19
22
  /**
20
23
  * Create built-in tool definitions for the given tool names.
21
- *
22
- * @param names - Built-in tool names from the agent config.
23
- * @param opts - Options including RPC callbacks for host-proxied tools.
24
- * @returns A record of tool name → ToolDef.
24
+ * For runtime use — vector_search requires opts.vectorSearch to be included.
25
25
  */
26
- /** A record of tool name → ToolDef with any Zod object parameters. */
27
- type ToolDefRecord = Record<string, ToolDef<z.ZodObject<z.ZodRawShape>>>;
28
26
  export declare function getBuiltinToolDefs(names: readonly string[], opts?: BuiltinToolOptions): ToolDefRecord;
27
+ /** Returns JSON tool schemas for the specified builtin tools. */
28
+ export declare function getBuiltinToolSchemas(names: readonly string[]): ToolSchema[];
29
29
  /**
30
- * Returns JSON tool schemas for the specified builtin tools.
30
+ * Returns a standard set of KV-backed memory tools: `save_memory`,
31
+ * `recall_memory`, `list_memories`, and `forget_memory`.
31
32
  *
32
- * Used by both the worker (to report schemas) and the server (to
33
- * assemble tool lists for the LLM).
33
+ * Spread the result into your agent's `tools` record.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * import { defineAgent, memoryTools } from "aai";
38
+ *
39
+ * export default defineAgent({
40
+ * name: "My Agent",
41
+ * tools: { ...memoryTools() },
42
+ * });
43
+ * ```
34
44
  */
35
- export declare function getBuiltinToolSchemas(names: readonly string[]): ToolSchema[];
45
+ export declare function memoryTools(): {
46
+ save_memory: ToolDef<z.ZodObject<{
47
+ key: z.ZodString;
48
+ value: z.ZodString;
49
+ }, z.core.$strip>, any>;
50
+ recall_memory: ToolDef<z.ZodObject<{
51
+ key: z.ZodString;
52
+ }, z.core.$strip>, any>;
53
+ list_memories: ToolDef<z.ZodObject<{
54
+ prefix: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>, any>;
56
+ forget_memory: ToolDef<z.ZodObject<{
57
+ key: z.ZodString;
58
+ }, z.core.$strip>, any>;
59
+ };
36
60
  export {};
37
61
  //# sourceMappingURL=builtin_tools.d.ts.map
@@ -1 +1 @@
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,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAqM1C,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;CAC/B,CAAC;AAEF;;;;;;GAMG;AACH,sEAAsE;AACtE,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEzE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,IAAI,CAAC,EAAE,kBAAkB,GACxB,aAAa,CA+Bf;AAiBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,EAAE,CAsB5E"}
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"}
@@ -10,7 +10,16 @@
10
10
  import { convert } from "html-to-text";
11
11
  import { z } from "zod";
12
12
  import { EMPTY_PARAMS } from "./_internal_types.js";
13
- import { memoryTools } from "./memory_tools.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
+ }
14
23
  // ─── HTML to text ──────────────────────────────────────────────────────────
15
24
  function htmlToText(html) {
16
25
  return convert(html, { wordwrap: false });
@@ -32,7 +41,7 @@ const BraveSearchResponseSchema = z.object({
32
41
  })
33
42
  .optional(),
34
43
  });
35
- function createWebSearch() {
44
+ function createWebSearch(fetchFn = globalThis.fetch) {
36
45
  return {
37
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.",
38
47
  parameters: webSearchParams,
@@ -47,9 +56,9 @@ function createWebSearch() {
47
56
  count: String(maxResults),
48
57
  text_decorations: "false",
49
58
  })}`;
50
- const resp = await fetch(url, {
59
+ const resp = await fetchFn(url, {
51
60
  headers: { "X-Subscription-Token": apiKey },
52
- signal: ctx.abortSignal ?? AbortSignal.timeout(15_000),
61
+ signal: fetchSignal(ctx.abortSignal),
53
62
  });
54
63
  if (!resp.ok)
55
64
  return [];
@@ -71,19 +80,19 @@ const MAX_HTML_BYTES = 200_000;
71
80
  const visitWebpageParams = z.object({
72
81
  url: z.string().describe("The full URL to fetch (e.g., 'https://example.com/page')"),
73
82
  });
74
- function createVisitWebpage() {
83
+ function createVisitWebpage(fetchFn = globalThis.fetch) {
75
84
  return {
76
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.",
77
86
  parameters: visitWebpageParams,
78
87
  async execute(args, ctx) {
79
88
  const { url } = args;
80
- const resp = await fetch(url, {
89
+ const resp = await fetchFn(url, {
81
90
  headers: {
82
91
  "User-Agent": "Mozilla/5.0 (compatible; VoiceAgent/1.0; +https://github.com/AssemblyAI/aai)",
83
92
  Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
84
93
  },
85
94
  redirect: "follow",
86
- signal: ctx.abortSignal ?? AbortSignal.timeout(15_000),
95
+ signal: fetchSignal(ctx.abortSignal),
87
96
  });
88
97
  if (!resp.ok) {
89
98
  return { error: `Failed to fetch: ${resp.status} ${resp.statusText}`, url };
@@ -109,15 +118,15 @@ const fetchJsonParams = z.object({
109
118
  .describe("Optional HTTP headers to include in the request")
110
119
  .optional(),
111
120
  });
112
- function createFetchJson() {
121
+ function createFetchJson(fetchFn = globalThis.fetch) {
113
122
  return {
114
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.",
115
124
  parameters: fetchJsonParams,
116
125
  async execute(args, ctx) {
117
126
  const { url, headers } = args;
118
- const resp = await fetch(url, {
127
+ const resp = await fetchFn(url, {
119
128
  ...(headers && { headers }),
120
- signal: ctx.abortSignal ?? AbortSignal.timeout(15_000),
129
+ signal: fetchSignal(ctx.abortSignal),
121
130
  });
122
131
  if (!resp.ok) {
123
132
  return { error: `HTTP ${resp.status} ${resp.statusText}`, url };
@@ -152,7 +161,6 @@ function createRunCode() {
152
161
  error: capture,
153
162
  debug: capture,
154
163
  };
155
- const RUN_CODE_TIMEOUT = 5_000;
156
164
  const AsyncFunction = Object.getPrototypeOf(async () => { }).constructor;
157
165
  try {
158
166
  const fn = new AsyncFunction("console", code);
@@ -164,7 +172,7 @@ function createRunCode() {
164
172
  return result || "Code ran successfully (no output)";
165
173
  }
166
174
  catch (err) {
167
- return { error: err instanceof Error ? err.message : String(err) };
175
+ return { error: errorMessage(err) };
168
176
  }
169
177
  },
170
178
  };
@@ -189,79 +197,113 @@ function createVectorSearch(vectorSearchFn) {
189
197
  },
190
198
  };
191
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
+ */
192
224
  export function getBuiltinToolDefs(names, opts) {
193
225
  const defs = {};
194
226
  for (const name of names) {
195
- switch (name) {
196
- case "web_search":
197
- defs[name] = createWebSearch();
198
- break;
199
- case "visit_webpage":
200
- defs[name] = createVisitWebpage();
201
- break;
202
- case "fetch_json":
203
- defs[name] = createFetchJson();
204
- break;
205
- case "run_code":
206
- defs[name] = createRunCode();
207
- break;
208
- case "vector_search":
209
- if (opts?.vectorSearch) {
210
- defs[name] = createVectorSearch(opts.vectorSearch);
211
- }
212
- break;
213
- case "memory": {
214
- const mt = memoryTools();
215
- for (const [toolName, toolDef] of Object.entries(mt)) {
216
- defs[toolName] = toolDef;
217
- }
218
- break;
219
- }
220
- }
227
+ for (const [k, v] of resolveBuiltin(name, opts))
228
+ defs[k] = v;
221
229
  }
222
230
  return defs;
223
231
  }
224
- /** All available tool creators, keyed by builtin tool name. */
225
- const TOOL_CREATORS = {
226
- web_search: createWebSearch,
227
- visit_webpage: createVisitWebpage,
228
- fetch_json: createFetchJson,
229
- run_code: createRunCode,
230
- // vector_search uses a stub for schema generation
231
- vector_search: () => createVectorSearch(async () => ""),
232
- };
233
- /** Builtin names that expand to multiple tools. */
234
- const MULTI_TOOL_BUILTINS = {
235
- memory: memoryTools,
236
- };
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 ──────────────────────────────────────────────────────────
237
241
  /**
238
- * Returns JSON tool schemas for the specified builtin tools.
242
+ * Returns a standard set of KV-backed memory tools: `save_memory`,
243
+ * `recall_memory`, `list_memories`, and `forget_memory`.
239
244
  *
240
- * Used by both the worker (to report schemas) and the server (to
241
- * assemble tool lists for the LLM).
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
+ * ```
242
256
  */
243
- export function getBuiltinToolSchemas(names) {
244
- return names.flatMap((name) => {
245
- // Multi-tool builtins (e.g. "memory" → save_memory, recall_memory, etc.)
246
- const multiCreator = MULTI_TOOL_BUILTINS[name];
247
- if (multiCreator) {
248
- return Object.entries(multiCreator()).map(([toolName, def]) => ({
249
- name: toolName,
250
- description: def.description,
251
- parameters: z.toJSONSchema(def.parameters ?? EMPTY_PARAMS),
252
- }));
253
- }
254
- const creator = TOOL_CREATORS[name];
255
- if (!creator)
256
- return [];
257
- const def = creator();
258
- return [
259
- {
260
- name,
261
- description: def.description,
262
- parameters: z.toJSONSchema(def.parameters ?? EMPTY_PARAMS),
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 };
263
270
  },
264
- ];
265
- });
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
+ };
266
308
  }
267
309
  //# sourceMappingURL=builtin_tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin_tools.js","sourceRoot":"","sources":["../../sdk/builtin_tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin_tools.js","sourceRoot":"","sources":["../../sdk/builtin_tools.ts"],"names":[],"mappings":"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"}