@rudderjs/ai 1.17.2 → 1.18.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 (377) hide show
  1. package/README.md +19 -1274
  2. package/dist/budget-orm/index.d.ts +1 -95
  3. package/dist/budget-orm/index.d.ts.map +1 -1
  4. package/dist/budget-orm/index.js +4 -176
  5. package/dist/budget-orm/index.js.map +1 -1
  6. package/dist/chat-mentions.d.ts +1 -58
  7. package/dist/chat-mentions.d.ts.map +1 -1
  8. package/dist/chat-mentions.js +4 -80
  9. package/dist/chat-mentions.js.map +1 -1
  10. package/dist/commands/ai-eval.d.ts +1 -92
  11. package/dist/commands/ai-eval.d.ts.map +1 -1
  12. package/dist/commands/ai-eval.js +4 -377
  13. package/dist/commands/ai-eval.js.map +1 -1
  14. package/dist/commands/make-agent.d.ts +1 -2
  15. package/dist/commands/make-agent.d.ts.map +1 -1
  16. package/dist/commands/make-agent.js +4 -22
  17. package/dist/commands/make-agent.js.map +1 -1
  18. package/dist/computer-use/index.d.ts +1 -52
  19. package/dist/computer-use/index.d.ts.map +1 -1
  20. package/dist/computer-use/index.js +4 -50
  21. package/dist/computer-use/index.js.map +1 -1
  22. package/dist/conversation-orm/index.d.ts +1 -108
  23. package/dist/conversation-orm/index.d.ts.map +1 -1
  24. package/dist/conversation-orm/index.js +4 -214
  25. package/dist/conversation-orm/index.js.map +1 -1
  26. package/dist/doctor.d.ts +1 -1
  27. package/dist/doctor.d.ts.map +1 -1
  28. package/dist/doctor.js +4 -65
  29. package/dist/doctor.js.map +1 -1
  30. package/dist/eval/index.d.ts +1 -270
  31. package/dist/eval/index.d.ts.map +1 -1
  32. package/dist/eval/index.js +4 -509
  33. package/dist/eval/index.js.map +1 -1
  34. package/dist/gateway/index.d.ts +1 -10
  35. package/dist/gateway/index.d.ts.map +1 -1
  36. package/dist/gateway/index.js +4 -10
  37. package/dist/gateway/index.js.map +1 -1
  38. package/dist/index.d.ts +1 -66
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -78
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/index.d.ts +1 -15
  43. package/dist/mcp/index.d.ts.map +1 -1
  44. package/dist/mcp/index.js +4 -14
  45. package/dist/mcp/index.js.map +1 -1
  46. package/dist/memory-embedding/index.d.ts +1 -120
  47. package/dist/memory-embedding/index.d.ts.map +1 -1
  48. package/dist/memory-embedding/index.js +4 -228
  49. package/dist/memory-embedding/index.js.map +1 -1
  50. package/dist/memory-orm/index.d.ts +1 -117
  51. package/dist/memory-orm/index.d.ts.map +1 -1
  52. package/dist/memory-orm/index.js +4 -186
  53. package/dist/memory-orm/index.js.map +1 -1
  54. package/dist/node/index.d.ts +1 -2
  55. package/dist/node/index.d.ts.map +1 -1
  56. package/dist/node/index.js +4 -2
  57. package/dist/node/index.js.map +1 -1
  58. package/dist/observers.d.ts +1 -129
  59. package/dist/observers.d.ts.map +1 -1
  60. package/dist/observers.js +4 -39
  61. package/dist/observers.js.map +1 -1
  62. package/dist/react/index.d.ts +1 -15
  63. package/dist/react/index.d.ts.map +1 -1
  64. package/dist/react/index.js +4 -15
  65. package/dist/react/index.js.map +1 -1
  66. package/dist/server/index.d.ts +1 -1
  67. package/dist/server/index.d.ts.map +1 -1
  68. package/dist/server/index.js +4 -1
  69. package/dist/server/index.js.map +1 -1
  70. package/package.json +9 -13
  71. package/boost/guidelines.md +0 -260
  72. package/boost/skills/ai-agents/SKILL.md +0 -240
  73. package/boost/skills/ai-tools/SKILL.md +0 -260
  74. package/dist/agent-run-store.d.ts +0 -161
  75. package/dist/agent-run-store.d.ts.map +0 -1
  76. package/dist/agent-run-store.js +0 -98
  77. package/dist/agent-run-store.js.map +0 -1
  78. package/dist/agent-sse.d.ts +0 -153
  79. package/dist/agent-sse.d.ts.map +0 -1
  80. package/dist/agent-sse.js +0 -282
  81. package/dist/agent-sse.js.map +0 -1
  82. package/dist/agent.d.ts +0 -508
  83. package/dist/agent.d.ts.map +0 -1
  84. package/dist/agent.js +0 -1538
  85. package/dist/agent.js.map +0 -1
  86. package/dist/attachment.d.ts +0 -31
  87. package/dist/attachment.d.ts.map +0 -1
  88. package/dist/attachment.js +0 -89
  89. package/dist/attachment.js.map +0 -1
  90. package/dist/audio.d.ts +0 -45
  91. package/dist/audio.d.ts.map +0 -1
  92. package/dist/audio.js +0 -93
  93. package/dist/audio.js.map +0 -1
  94. package/dist/base64.d.ts +0 -7
  95. package/dist/base64.d.ts.map +0 -1
  96. package/dist/base64.js +0 -39
  97. package/dist/base64.js.map +0 -1
  98. package/dist/budget/pricing.d.ts +0 -124
  99. package/dist/budget/pricing.d.ts.map +0 -1
  100. package/dist/budget/pricing.js +0 -175
  101. package/dist/budget/pricing.js.map +0 -1
  102. package/dist/budget/storage.d.ts +0 -104
  103. package/dist/budget/storage.d.ts.map +0 -1
  104. package/dist/budget/storage.js +0 -0
  105. package/dist/budget/storage.js.map +0 -1
  106. package/dist/budget/with-budget.d.ts +0 -119
  107. package/dist/budget/with-budget.d.ts.map +0 -1
  108. package/dist/budget/with-budget.js +0 -175
  109. package/dist/budget/with-budget.js.map +0 -1
  110. package/dist/cached-embedding.d.ts +0 -14
  111. package/dist/cached-embedding.d.ts.map +0 -1
  112. package/dist/cached-embedding.js +0 -44
  113. package/dist/cached-embedding.js.map +0 -1
  114. package/dist/computer-use/actions.d.ts +0 -214
  115. package/dist/computer-use/actions.d.ts.map +0 -1
  116. package/dist/computer-use/actions.js +0 -48
  117. package/dist/computer-use/actions.js.map +0 -1
  118. package/dist/computer-use/errors.d.ts +0 -57
  119. package/dist/computer-use/errors.d.ts.map +0 -1
  120. package/dist/computer-use/errors.js +0 -76
  121. package/dist/computer-use/errors.js.map +0 -1
  122. package/dist/computer-use/playwright.d.ts +0 -76
  123. package/dist/computer-use/playwright.d.ts.map +0 -1
  124. package/dist/computer-use/playwright.js +0 -270
  125. package/dist/computer-use/playwright.js.map +0 -1
  126. package/dist/computer-use/tool.d.ts +0 -154
  127. package/dist/computer-use/tool.d.ts.map +0 -1
  128. package/dist/computer-use/tool.js +0 -210
  129. package/dist/computer-use/tool.js.map +0 -1
  130. package/dist/continuation-validation.d.ts +0 -85
  131. package/dist/continuation-validation.d.ts.map +0 -1
  132. package/dist/continuation-validation.js +0 -166
  133. package/dist/continuation-validation.js.map +0 -1
  134. package/dist/conversation-persistence.d.ts +0 -46
  135. package/dist/conversation-persistence.d.ts.map +0 -1
  136. package/dist/conversation-persistence.js +0 -176
  137. package/dist/conversation-persistence.js.map +0 -1
  138. package/dist/conversation.d.ts +0 -11
  139. package/dist/conversation.d.ts.map +0 -1
  140. package/dist/conversation.js +0 -55
  141. package/dist/conversation.js.map +0 -1
  142. package/dist/eval/fixtures.d.ts +0 -65
  143. package/dist/eval/fixtures.d.ts.map +0 -1
  144. package/dist/eval/fixtures.js +0 -110
  145. package/dist/eval/fixtures.js.map +0 -1
  146. package/dist/eval/html-reporter.d.ts +0 -25
  147. package/dist/eval/html-reporter.d.ts.map +0 -1
  148. package/dist/eval/html-reporter.js +0 -209
  149. package/dist/eval/html-reporter.js.map +0 -1
  150. package/dist/eval/json-reporter.d.ts +0 -43
  151. package/dist/eval/json-reporter.d.ts.map +0 -1
  152. package/dist/eval/json-reporter.js +0 -40
  153. package/dist/eval/json-reporter.js.map +0 -1
  154. package/dist/facade.d.ts +0 -96
  155. package/dist/facade.d.ts.map +0 -1
  156. package/dist/facade.js +0 -146
  157. package/dist/facade.js.map +0 -1
  158. package/dist/fake.d.ts +0 -201
  159. package/dist/fake.d.ts.map +0 -1
  160. package/dist/fake.js +0 -428
  161. package/dist/fake.js.map +0 -1
  162. package/dist/file-search.d.ts +0 -168
  163. package/dist/file-search.d.ts.map +0 -1
  164. package/dist/file-search.js +0 -158
  165. package/dist/file-search.js.map +0 -1
  166. package/dist/files.d.ts +0 -27
  167. package/dist/files.d.ts.map +0 -1
  168. package/dist/files.js +0 -44
  169. package/dist/files.js.map +0 -1
  170. package/dist/gateway/http-gateway-adapter.d.ts +0 -94
  171. package/dist/gateway/http-gateway-adapter.d.ts.map +0 -1
  172. package/dist/gateway/http-gateway-adapter.js +0 -106
  173. package/dist/gateway/http-gateway-adapter.js.map +0 -1
  174. package/dist/gateway/sse.d.ts +0 -28
  175. package/dist/gateway/sse.d.ts.map +0 -1
  176. package/dist/gateway/sse.js +0 -78
  177. package/dist/gateway/sse.js.map +0 -1
  178. package/dist/handoff.d.ts +0 -95
  179. package/dist/handoff.d.ts.map +0 -1
  180. package/dist/handoff.js +0 -78
  181. package/dist/handoff.js.map +0 -1
  182. package/dist/handoffs-driver.d.ts +0 -58
  183. package/dist/handoffs-driver.d.ts.map +0 -1
  184. package/dist/handoffs-driver.js +0 -103
  185. package/dist/handoffs-driver.js.map +0 -1
  186. package/dist/image.d.ts +0 -40
  187. package/dist/image.d.ts.map +0 -1
  188. package/dist/image.js +0 -109
  189. package/dist/image.js.map +0 -1
  190. package/dist/mcp/client-tools.d.ts +0 -39
  191. package/dist/mcp/client-tools.d.ts.map +0 -1
  192. package/dist/mcp/client-tools.js +0 -147
  193. package/dist/mcp/client-tools.js.map +0 -1
  194. package/dist/mcp/server-from-agent.d.ts +0 -24
  195. package/dist/mcp/server-from-agent.d.ts.map +0 -1
  196. package/dist/mcp/server-from-agent.js +0 -113
  197. package/dist/mcp/server-from-agent.js.map +0 -1
  198. package/dist/mcp/types.d.ts +0 -64
  199. package/dist/mcp/types.d.ts.map +0 -1
  200. package/dist/mcp/types.js +0 -6
  201. package/dist/mcp/types.js.map +0 -1
  202. package/dist/memory-extract.d.ts +0 -60
  203. package/dist/memory-extract.d.ts.map +0 -1
  204. package/dist/memory-extract.js +0 -163
  205. package/dist/memory-extract.js.map +0 -1
  206. package/dist/memory-inject.d.ts +0 -39
  207. package/dist/memory-inject.d.ts.map +0 -1
  208. package/dist/memory-inject.js +0 -135
  209. package/dist/memory-inject.js.map +0 -1
  210. package/dist/memory.d.ts +0 -55
  211. package/dist/memory.d.ts.map +0 -1
  212. package/dist/memory.js +0 -132
  213. package/dist/memory.js.map +0 -1
  214. package/dist/middleware.d.ts +0 -18
  215. package/dist/middleware.d.ts.map +0 -1
  216. package/dist/middleware.js +0 -72
  217. package/dist/middleware.js.map +0 -1
  218. package/dist/node/attachment.d.ts +0 -6
  219. package/dist/node/attachment.d.ts.map +0 -1
  220. package/dist/node/attachment.js +0 -35
  221. package/dist/node/attachment.js.map +0 -1
  222. package/dist/node/transcription.d.ts +0 -4
  223. package/dist/node/transcription.d.ts.map +0 -1
  224. package/dist/node/transcription.js +0 -8
  225. package/dist/node/transcription.js.map +0 -1
  226. package/dist/output.d.ts +0 -22
  227. package/dist/output.d.ts.map +0 -1
  228. package/dist/output.js +0 -60
  229. package/dist/output.js.map +0 -1
  230. package/dist/provider-tools.d.ts +0 -87
  231. package/dist/provider-tools.d.ts.map +0 -1
  232. package/dist/provider-tools.js +0 -189
  233. package/dist/provider-tools.js.map +0 -1
  234. package/dist/providers/anthropic.d.ts +0 -24
  235. package/dist/providers/anthropic.d.ts.map +0 -1
  236. package/dist/providers/anthropic.js +0 -405
  237. package/dist/providers/anthropic.js.map +0 -1
  238. package/dist/providers/azure.d.ts +0 -13
  239. package/dist/providers/azure.d.ts.map +0 -1
  240. package/dist/providers/azure.js +0 -15
  241. package/dist/providers/azure.js.map +0 -1
  242. package/dist/providers/bedrock.d.ts +0 -75
  243. package/dist/providers/bedrock.d.ts.map +0 -1
  244. package/dist/providers/bedrock.js +0 -181
  245. package/dist/providers/bedrock.js.map +0 -1
  246. package/dist/providers/cohere.d.ts +0 -13
  247. package/dist/providers/cohere.d.ts.map +0 -1
  248. package/dist/providers/cohere.js +0 -87
  249. package/dist/providers/cohere.js.map +0 -1
  250. package/dist/providers/deepseek.d.ts +0 -12
  251. package/dist/providers/deepseek.d.ts.map +0 -1
  252. package/dist/providers/deepseek.js +0 -15
  253. package/dist/providers/deepseek.js.map +0 -1
  254. package/dist/providers/elevenlabs.d.ts +0 -98
  255. package/dist/providers/elevenlabs.d.ts.map +0 -1
  256. package/dist/providers/elevenlabs.js +0 -229
  257. package/dist/providers/elevenlabs.js.map +0 -1
  258. package/dist/providers/google-cache-registry.d.ts +0 -132
  259. package/dist/providers/google-cache-registry.d.ts.map +0 -1
  260. package/dist/providers/google-cache-registry.js +0 -209
  261. package/dist/providers/google-cache-registry.js.map +0 -1
  262. package/dist/providers/google.d.ts +0 -38
  263. package/dist/providers/google.d.ts.map +0 -1
  264. package/dist/providers/google.js +0 -903
  265. package/dist/providers/google.js.map +0 -1
  266. package/dist/providers/groq.d.ts +0 -12
  267. package/dist/providers/groq.d.ts.map +0 -1
  268. package/dist/providers/groq.js +0 -15
  269. package/dist/providers/groq.js.map +0 -1
  270. package/dist/providers/jina.d.ts +0 -13
  271. package/dist/providers/jina.d.ts.map +0 -1
  272. package/dist/providers/jina.js +0 -90
  273. package/dist/providers/jina.js.map +0 -1
  274. package/dist/providers/mistral.d.ts +0 -13
  275. package/dist/providers/mistral.d.ts.map +0 -1
  276. package/dist/providers/mistral.js +0 -46
  277. package/dist/providers/mistral.js.map +0 -1
  278. package/dist/providers/ollama.d.ts +0 -11
  279. package/dist/providers/ollama.d.ts.map +0 -1
  280. package/dist/providers/ollama.js +0 -15
  281. package/dist/providers/ollama.js.map +0 -1
  282. package/dist/providers/openai.d.ts +0 -79
  283. package/dist/providers/openai.d.ts.map +0 -1
  284. package/dist/providers/openai.js +0 -792
  285. package/dist/providers/openai.js.map +0 -1
  286. package/dist/providers/openrouter.d.ts +0 -43
  287. package/dist/providers/openrouter.d.ts.map +0 -1
  288. package/dist/providers/openrouter.js +0 -21
  289. package/dist/providers/openrouter.js.map +0 -1
  290. package/dist/providers/voyage.d.ts +0 -91
  291. package/dist/providers/voyage.d.ts.map +0 -1
  292. package/dist/providers/voyage.js +0 -166
  293. package/dist/providers/voyage.js.map +0 -1
  294. package/dist/providers/xai.d.ts +0 -12
  295. package/dist/providers/xai.d.ts.map +0 -1
  296. package/dist/providers/xai.js +0 -15
  297. package/dist/providers/xai.js.map +0 -1
  298. package/dist/queue-job.d.ts +0 -100
  299. package/dist/queue-job.d.ts.map +0 -1
  300. package/dist/queue-job.js +0 -185
  301. package/dist/queue-job.js.map +0 -1
  302. package/dist/react/agent-run.d.ts +0 -111
  303. package/dist/react/agent-run.d.ts.map +0 -1
  304. package/dist/react/agent-run.js +0 -107
  305. package/dist/react/agent-run.js.map +0 -1
  306. package/dist/react/useAgentRun.d.ts +0 -68
  307. package/dist/react/useAgentRun.d.ts.map +0 -1
  308. package/dist/react/useAgentRun.js +0 -125
  309. package/dist/react/useAgentRun.js.map +0 -1
  310. package/dist/registry.d.ts +0 -45
  311. package/dist/registry.d.ts.map +0 -1
  312. package/dist/registry.js +0 -131
  313. package/dist/registry.js.map +0 -1
  314. package/dist/rerank.d.ts +0 -20
  315. package/dist/rerank.d.ts.map +0 -1
  316. package/dist/rerank.js +0 -40
  317. package/dist/rerank.js.map +0 -1
  318. package/dist/resume-approval.d.ts +0 -30
  319. package/dist/resume-approval.d.ts.map +0 -1
  320. package/dist/resume-approval.js +0 -147
  321. package/dist/resume-approval.js.map +0 -1
  322. package/dist/sanitize-conversation.d.ts +0 -43
  323. package/dist/sanitize-conversation.d.ts.map +0 -1
  324. package/dist/sanitize-conversation.js +0 -85
  325. package/dist/sanitize-conversation.js.map +0 -1
  326. package/dist/scoped-tool.d.ts +0 -98
  327. package/dist/scoped-tool.d.ts.map +0 -1
  328. package/dist/scoped-tool.js +0 -174
  329. package/dist/scoped-tool.js.map +0 -1
  330. package/dist/server/provider.d.ts +0 -22
  331. package/dist/server/provider.d.ts.map +0 -1
  332. package/dist/server/provider.js +0 -194
  333. package/dist/server/provider.js.map +0 -1
  334. package/dist/similarity-search.d.ts +0 -163
  335. package/dist/similarity-search.d.ts.map +0 -1
  336. package/dist/similarity-search.js +0 -147
  337. package/dist/similarity-search.js.map +0 -1
  338. package/dist/sub-agent-run-store.d.ts +0 -157
  339. package/dist/sub-agent-run-store.d.ts.map +0 -1
  340. package/dist/sub-agent-run-store.js +0 -87
  341. package/dist/sub-agent-run-store.js.map +0 -1
  342. package/dist/tool-execution.d.ts +0 -16
  343. package/dist/tool-execution.d.ts.map +0 -1
  344. package/dist/tool-execution.js +0 -498
  345. package/dist/tool-execution.js.map +0 -1
  346. package/dist/tool-helpers.d.ts +0 -77
  347. package/dist/tool-helpers.d.ts.map +0 -1
  348. package/dist/tool-helpers.js +0 -117
  349. package/dist/tool-helpers.js.map +0 -1
  350. package/dist/tool.d.ts +0 -216
  351. package/dist/tool.d.ts.map +0 -1
  352. package/dist/tool.js +0 -175
  353. package/dist/tool.js.map +0 -1
  354. package/dist/transcription.d.ts +0 -42
  355. package/dist/transcription.d.ts.map +0 -1
  356. package/dist/transcription.js +0 -77
  357. package/dist/transcription.js.map +0 -1
  358. package/dist/types.d.ts +0 -1020
  359. package/dist/types.d.ts.map +0 -1
  360. package/dist/types.js +0 -2
  361. package/dist/types.js.map +0 -1
  362. package/dist/util/hash.d.ts +0 -11
  363. package/dist/util/hash.d.ts.map +0 -1
  364. package/dist/util/hash.js +0 -23
  365. package/dist/util/hash.js.map +0 -1
  366. package/dist/vector-stores/index.d.ts +0 -96
  367. package/dist/vector-stores/index.d.ts.map +0 -1
  368. package/dist/vector-stores/index.js +0 -153
  369. package/dist/vector-stores/index.js.map +0 -1
  370. package/dist/vercel-protocol.d.ts +0 -18
  371. package/dist/vercel-protocol.d.ts.map +0 -1
  372. package/dist/vercel-protocol.js +0 -75
  373. package/dist/vercel-protocol.js.map +0 -1
  374. package/dist/zod-to-json-schema.d.ts +0 -16
  375. package/dist/zod-to-json-schema.d.ts.map +0 -1
  376. package/dist/zod-to-json-schema.js +0 -17
  377. package/dist/zod-to-json-schema.js.map +0 -1
@@ -1,378 +1,5 @@
1
- /**
2
- * `pnpm rudder ai:eval` discover `evals/**\/*.eval.ts` suites,
3
- * run each, and report. Console reporter by default; `--json` emits
4
- * a machine-readable envelope to stdout for CI.
5
- *
6
- * Registered from the CLI loader (`packages/cli/src/index.ts`)
7
- * — the AiProvider doesn't own this so it surfaces even when the
8
- * user app fails to boot, matching the `command:list --json`
9
- * graceful-degradation pattern from #349.
10
- */
11
- import { readdir } from 'node:fs/promises';
12
- import path from 'node:path';
13
- import { pathToFileURL } from 'node:url';
14
- import { runSuite, reportConsole, evalSuite, stepsFromResponse } from '../eval/index.js';
15
- import { reportJson } from '../eval/json-reporter.js';
16
- import { reportHtml } from '../eval/html-reporter.js';
17
- import { defaultFixturesDir, readFixture, writeFixture } from '../eval/fixtures.js';
18
- import { AiFake } from '../fake.js';
19
- /** Register the `ai:eval` command on the rudder runner. */
20
- export function registerAiEvalCommand(rudder) {
21
- rudder.command('ai:eval', async (rawArgs) => {
22
- const code = await runEvalCli(parseArgs(rawArgs));
23
- if (code !== 0)
24
- process.exit(code);
25
- }).description('Run eval suites — pnpm rudder ai:eval [name-pattern] [--bail] [--json] [--record|--replay] [--html <path>]');
26
- }
27
- // ─── Args parser ─────────────────────────────────────────
28
- const VALUE_FLAGS = new Set(['--html']);
29
- /**
30
- * Parse the rest-of-line. Recognizes:
31
- * - boolean flags: `--bail`, `--json`, `--record`, `--replay`
32
- * - value flags : `--html <path>` or `--html=<path>`
33
- * - one positional name filter (anything not consumed above)
34
- */
35
- export function parseArgs(args) {
36
- const positional = [];
37
- const opts = { bail: false, json: false };
38
- for (let i = 0; i < args.length; i++) {
39
- const a = args[i];
40
- if (!a.startsWith('--')) {
41
- positional.push(a);
42
- continue;
43
- }
44
- // `--flag=value` form
45
- const eq = a.indexOf('=');
46
- const name = eq >= 0 ? a.slice(0, eq) : a;
47
- const inline = eq >= 0 ? a.slice(eq + 1) : undefined;
48
- if (name === '--bail') {
49
- opts.bail = true;
50
- continue;
51
- }
52
- if (name === '--json') {
53
- opts.json = true;
54
- continue;
55
- }
56
- if (name === '--record') {
57
- opts.record = true;
58
- continue;
59
- }
60
- if (name === '--replay') {
61
- opts.replay = true;
62
- continue;
63
- }
64
- if (VALUE_FLAGS.has(name)) {
65
- const value = inline ?? args[i + 1];
66
- if (!inline)
67
- i++; // consumed the next arg
68
- if (!value)
69
- throw new Error(`[Rudder AI] ${name} requires a value`);
70
- if (name === '--html')
71
- opts.html = value;
72
- continue;
73
- }
74
- // unknown flag — surface as positional so the user sees the typo
75
- positional.push(a);
76
- }
77
- if (positional[0])
78
- opts.filter = positional[0];
79
- return opts;
80
- }
81
- // ─── Runner ──────────────────────────────────────────────
82
- /**
83
- * Execute the CLI flow. Returns the process exit code (0 = all pass,
84
- * 1 = at least one suite had a failure or no suites discovered).
85
- *
86
- * The handler is `process.exit`-free so tests can drive it directly.
87
- */
88
- export async function runEvalCli(opts, deps = {}) {
89
- const cwd = deps.cwd ?? process.cwd();
90
- const stdout = deps.stdout ?? process.stdout;
91
- const stderr = deps.stderr ?? process.stderr;
92
- if (opts.record && opts.replay) {
93
- stderr.write('[ai:eval] --record and --replay are mutually exclusive\n');
94
- return 1;
95
- }
96
- const pattern = await Promise.resolve((deps.configPattern ?? loadConfigPattern)()) ?? 'evals/**/*.eval.ts';
97
- const discover = deps.discover ?? discoverSuiteFiles;
98
- const files = await discover(cwd, pattern);
99
- if (files.length === 0) {
100
- stderr.write(`[ai:eval] no suites found matching ${pattern}\n`);
101
- return opts.json ? emitJson(stdout, []) : 1;
102
- }
103
- const loader = deps.loadSuite ?? defaultSuiteLoader;
104
- const fixturesDir = deps.fixturesDir ?? defaultFixturesDir(cwd);
105
- const reports = [];
106
- const fullReports = [];
107
- let exitCode = 0;
108
- // `--replay` swaps the global runtime once, restored when we're done.
109
- // The per-case fixture is set on the AiFake instance inside the
110
- // wrapped agent factory just before each case's `agent.prompt()`.
111
- let fake = null;
112
- if (opts.replay)
113
- fake = AiFake.fake();
114
- try {
115
- for (const file of files) {
116
- let suite;
117
- try {
118
- suite = await loader(file);
119
- }
120
- catch (err) {
121
- stderr.write(`[ai:eval] failed to load ${path.relative(cwd, file)}: ${formatError(err)}\n`);
122
- exitCode = 1;
123
- if (opts.bail)
124
- break;
125
- continue;
126
- }
127
- if (!suite) {
128
- stderr.write(`[ai:eval] ${path.relative(cwd, file)} has no default eval suite — skipping\n`);
129
- continue;
130
- }
131
- if (opts.filter && !suite.name.toLowerCase().includes(opts.filter.toLowerCase()))
132
- continue;
133
- const decorated = await decorateForMode(suite, opts, { fixturesDir, stderr, fake });
134
- const report = await runSuite(decorated);
135
- fullReports.push(report);
136
- if (opts.json) {
137
- reports.push(reportJson(report));
138
- }
139
- else {
140
- reportConsole(report, { log: (s) => stdout.write(`${s}\n`) });
141
- }
142
- if (report.failed > 0) {
143
- exitCode = 1;
144
- if (opts.bail)
145
- break;
146
- }
147
- }
148
- }
149
- finally {
150
- if (fake)
151
- fake.restore();
152
- }
153
- if (opts.json)
154
- emitJson(stdout, reports);
155
- if (opts.html)
156
- await writeHtmlReport(opts.html, fullReports, cwd, stderr);
157
- return exitCode;
158
- }
159
- async function writeHtmlReport(htmlPath, reports, cwd, stderr) {
160
- const { writeFile, mkdir } = await import('node:fs/promises');
161
- const abs = path.isAbsolute(htmlPath) ? htmlPath : path.resolve(cwd, htmlPath);
162
- try {
163
- await mkdir(path.dirname(abs), { recursive: true });
164
- await writeFile(abs, reportHtml(reports));
165
- stderr.write(`[ai:eval] wrote HTML report → ${path.relative(cwd, abs)}\n`);
166
- }
167
- catch (err) {
168
- stderr.write(`[ai:eval] failed to write HTML report ${abs}: ${formatError(err)}\n`);
169
- }
170
- }
171
- function emitJson(stdout, suites) {
172
- stdout.write(`${JSON.stringify({ suites }, null, 2)}\n`);
173
- return 0;
174
- }
175
- function formatError(err) {
176
- return err instanceof Error ? err.message : String(err);
177
- }
178
- /**
179
- * Wrap a suite so each case captures the response (`--record`) or
180
- * pre-loads the fake's sequence (`--replay`) before running. A
181
- * normal run returns the suite untouched.
182
- *
183
- * Implemented as a per-case `agent` / `assert` decoration so the
184
- * runner stays unchanged — `runSuite` doesn't need to know about
185
- * the fixture format. The original `agent`/`assert` for each case
186
- * are still called; we just slip work in around them.
187
- *
188
- * For replay, fixtures load up-front (sync factory contract) so the
189
- * AiFake is primed before each `agent.prompt()` runs.
190
- */
191
- async function decorateForMode(suite, opts, ctx) {
192
- if (!opts.record && !opts.replay)
193
- return suite;
194
- // Pre-load every fixture for replay so the per-case factory can
195
- // call `respondWithSequence` synchronously.
196
- const replaySteps = new Map();
197
- if (opts.replay) {
198
- for (let i = 0; i < suite.spec.cases.length; i++) {
199
- const c = suite.spec.cases[i];
200
- const caseName = c.name ?? `case-${i}`;
201
- try {
202
- const fixture = await readFixture(ctx.fixturesDir, suite.name, caseName);
203
- if (fixture)
204
- replaySteps.set(caseName, fixture.steps);
205
- else
206
- ctx.stderr.write(`[ai:eval] no fixture for ${suite.name}/${caseName} — running against live provider\n`);
207
- }
208
- catch (err) {
209
- ctx.stderr.write(`[ai:eval] fixture load error for ${suite.name}/${caseName}: ${formatError(err)}\n`);
210
- }
211
- }
212
- }
213
- const wrapped = suite.spec.cases.map((c, i) => {
214
- const caseName = c.name ?? `case-${i}`;
215
- const baseFactory = c.agent ?? suite.spec.agent;
216
- const baseAssert = c.assert;
217
- const factory = opts.replay
218
- ? wrapReplayFactory(baseFactory, replaySteps.get(caseName), ctx.fake)
219
- : baseFactory;
220
- const assert = opts.record
221
- ? wrapRecordAssert(baseAssert, suite.name, caseName, c.input, ctx)
222
- : baseAssert;
223
- const out = {
224
- input: c.input,
225
- assert,
226
- agent: factory,
227
- };
228
- if (c.name)
229
- out.name = c.name;
230
- if (c.timeout !== undefined)
231
- out.timeout = c.timeout;
232
- if (c.skip !== undefined)
233
- out.skip = c.skip;
234
- return out;
235
- });
236
- const newSpec = {
237
- agent: suite.spec.agent,
238
- cases: wrapped,
239
- };
240
- if (suite.spec.timeout !== undefined)
241
- newSpec.timeout = suite.spec.timeout;
242
- return evalSuite(suite.name, newSpec);
243
- }
244
- /**
245
- * Replay path: before each case runs, prime the shared `AiFake`
246
- * with the case's recorded steps. When the fixture is missing the
247
- * factory still returns the agent — it'll hit whatever the AiFake
248
- * is currently scripted to return (typically falling back to the
249
- * default ambient response, which surfaces as an obvious diff in
250
- * the case's assertion).
251
- */
252
- function wrapReplayFactory(base, steps, fake) {
253
- return () => {
254
- if (fake && steps)
255
- fake.respondWithSequence(steps);
256
- return base();
257
- };
258
- }
259
- /**
260
- * Record path: after each case's assertion runs, capture the
261
- * agent response's assistant turns to the fixture file. Wrapping
262
- * the assert is the cleanest hook — the runner already passes
263
- * `response` into it, and the wrapped fn still returns the
264
- * original assertion's result.
265
- */
266
- function wrapRecordAssert(base, suite, caseName, input, ctx) {
267
- return async (response, mctx) => {
268
- try {
269
- const file = await writeFixture(ctx.fixturesDir, suite, caseName, {
270
- input,
271
- steps: stepsFromResponse(response),
272
- });
273
- ctx.stderr.write(`[ai:eval] recorded ${path.relative(process.cwd(), file)}\n`);
274
- }
275
- catch (err) {
276
- ctx.stderr.write(`[ai:eval] failed to record ${suite}/${caseName}: ${formatError(err)}\n`);
277
- }
278
- return base(response, mctx);
279
- };
280
- }
281
- // ─── File discovery ──────────────────────────────────────
282
- /**
283
- * Recursive walk constrained to a `<dir>/**\/*<suffix>` shape.
284
- * Returns absolute paths sorted lexicographically for stable test
285
- * output and predictable `--bail` ordering.
286
- */
287
- export async function discoverSuiteFiles(cwd, pattern) {
288
- const { root, suffix } = parsePattern(pattern);
289
- const absRoot = path.resolve(cwd, root);
290
- const out = [];
291
- await walk(absRoot, suffix, out);
292
- return out.sort();
293
- }
294
- /**
295
- * Tiny pattern parser — supports `<dir>/**\/*<suffix>` and bare
296
- * `*<suffix>` (current directory). Anything more elaborate is
297
- * deferred to userland (run a custom script that imports `runSuite`).
298
- *
299
- * Examples:
300
- * `evals/**\/*.eval.ts` → root=`evals`, suffix=`.eval.ts`
301
- * `tests/agents/**\/*.ts` → root=`tests/agents`, suffix=`.ts`
302
- * `*.eval.ts` → root=`.`, suffix=`.eval.ts`
303
- */
304
- function parsePattern(pattern) {
305
- const doubleStar = pattern.indexOf('**');
306
- let prefix;
307
- let postfix;
308
- if (doubleStar >= 0) {
309
- prefix = pattern.slice(0, doubleStar).replace(/\/$/, '');
310
- postfix = pattern.slice(doubleStar + 2).replace(/^\//, '');
311
- }
312
- else {
313
- const lastSlash = pattern.lastIndexOf('/');
314
- prefix = lastSlash >= 0 ? pattern.slice(0, lastSlash) : '';
315
- postfix = lastSlash >= 0 ? pattern.slice(lastSlash + 1) : pattern;
316
- }
317
- if (!postfix.startsWith('*')) {
318
- throw new Error(`[Rudder AI] Unsupported eval pattern "${pattern}". ` +
319
- `Expected <dir>/**/*<suffix> or *<suffix>.`);
320
- }
321
- return {
322
- root: prefix || '.',
323
- suffix: postfix.slice(1),
324
- };
325
- }
326
- async function walk(dir, suffix, out) {
327
- let entries;
328
- try {
329
- entries = await readdir(dir, { withFileTypes: true });
330
- }
331
- catch (err) {
332
- if (err.code === 'ENOENT')
333
- return;
334
- throw err;
335
- }
336
- for (const entry of entries) {
337
- const p = path.join(dir, entry.name);
338
- if (entry.isDirectory()) {
339
- if (entry.name === 'node_modules' || entry.name.startsWith('.'))
340
- continue;
341
- await walk(p, suffix, out);
342
- }
343
- else if (entry.isFile() && entry.name.endsWith(suffix)) {
344
- out.push(p);
345
- }
346
- }
347
- }
348
- // ─── Suite loader ────────────────────────────────────────
349
- async function defaultSuiteLoader(file) {
350
- const mod = await import(pathToFileURL(file).href);
351
- const candidate = (mod['default'] ?? mod['suite']);
352
- if (!candidate || typeof candidate.name !== 'string' || !candidate.spec)
353
- return null;
354
- return candidate;
355
- }
356
- // ─── Config lookup ───────────────────────────────────────
357
- /**
358
- * Read `config('ai').eval.pattern` from the booted app. Returns
359
- * `null` (default pattern) when `@rudderjs/core` isn't loadable
360
- * or the app didn't boot — the CLI must still work in
361
- * introspective mode (#349).
362
- */
363
- async function loadConfigPattern() {
364
- try {
365
- // Dynamic import so the static graph doesn't pin `@rudderjs/core`
366
- // (optional peer). Falls back to default when core isn't loadable
367
- // or the app didn't boot.
368
- const core = await import('@rudderjs/core');
369
- if (typeof core.config !== 'function')
370
- return null;
371
- const cfg = core.config('ai');
372
- return cfg?.eval?.pattern ?? null;
373
- }
374
- catch {
375
- return null;
376
- }
377
- }
1
+ // @rudderjs/ai is deprecated. The AI engine now lives in @gemstack/ai-sdk.
2
+ // This module re-exports it for backwards compatibility; import from
3
+ // '@gemstack/ai-sdk/commands/ai-eval' directly in new code.
4
+ export * from '@gemstack/ai-sdk/commands/ai-eval';
378
5
  //# sourceMappingURL=ai-eval.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-eval.js","sourceRoot":"","sources":["../../src/commands/ai-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-eval.js","sourceRoot":"","sources":["../../src/commands/ai-eval.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qEAAqE;AACrE,4DAA4D;AAC5D,cAAc,mCAAmC,CAAA"}
@@ -1,3 +1,2 @@
1
- import type { MakeSpec } from '@rudderjs/console';
2
- export declare const makeAgentSpec: MakeSpec;
1
+ export * from '@gemstack/ai-sdk/commands/make-agent';
3
2
  //# sourceMappingURL=make-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-agent.d.ts","sourceRoot":"","sources":["../../src/commands/make-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,eAAO,MAAM,aAAa,EAAE,QAqB3B,CAAA"}
1
+ {"version":3,"file":"make-agent.d.ts","sourceRoot":"","sources":["../../src/commands/make-agent.ts"],"names":[],"mappings":"AAGA,cAAc,sCAAsC,CAAA"}
@@ -1,23 +1,5 @@
1
- export const makeAgentSpec = {
2
- command: 'make:agent',
3
- description: 'Create a new AI agent class',
4
- label: 'Agent created',
5
- suffix: 'Agent',
6
- directory: 'app/Agents',
7
- stub: (className) => `import { Agent } from '@rudderjs/ai'
8
- import type { HasTools, AnyTool } from '@rudderjs/ai'
9
-
10
- export class ${className} extends Agent implements HasTools {
11
- instructions(): string {
12
- return 'You are a helpful assistant.'
13
- }
14
-
15
- // model(): string | undefined { return 'anthropic/claude-sonnet-4-5' }
16
-
17
- tools(): AnyTool[] {
18
- return []
19
- }
20
- }
21
- `,
22
- };
1
+ // @rudderjs/ai is deprecated. The AI engine now lives in @gemstack/ai-sdk.
2
+ // This module re-exports it for backwards compatibility; import from
3
+ // '@gemstack/ai-sdk/commands/make-agent' directly in new code.
4
+ export * from '@gemstack/ai-sdk/commands/make-agent';
23
5
  //# sourceMappingURL=make-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-agent.js","sourceRoot":"","sources":["../../src/commands/make-agent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAa;IACrC,OAAO,EAAM,YAAY;IACzB,WAAW,EAAE,6BAA6B;IAC1C,KAAK,EAAQ,eAAe;IAC5B,MAAM,EAAO,OAAO;IACpB,SAAS,EAAI,YAAY;IACzB,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;;;eAGR,SAAS;;;;;;;;;;;CAWvB;CACA,CAAA"}
1
+ {"version":3,"file":"make-agent.js","sourceRoot":"","sources":["../../src/commands/make-agent.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qEAAqE;AACrE,+DAA+D;AAC/D,cAAc,sCAAsC,CAAA"}
@@ -1,53 +1,2 @@
1
- /**
2
- * `@rudderjs/ai/computer-use` — Anthropic computer-use abstraction (#A7).
3
- *
4
- * Phase 1 (this entry) ships the action vocabulary + Playwright
5
- * executor. Phase 2 will add `computerUseTool({ page })` — the agent
6
- * tool factory that maps to Anthropic's native `computer_20250124`
7
- * tool block and routes execution through the executor here.
8
- *
9
- * # Quick example (manual / phase-1 surface)
10
- *
11
- * ```ts
12
- * import { chromium } from 'playwright'
13
- * import { executeComputerAction, makeExecutorState } from '@rudderjs/ai/computer-use'
14
- *
15
- * const browser = await chromium.launch()
16
- * const page = await browser.newPage()
17
- * await page.setViewportSize({ width: 1280, height: 800 })
18
- * await page.goto('https://example.com')
19
- *
20
- * const state = makeExecutorState()
21
- * const screen = await executeComputerAction(page, { action: 'screenshot' }, state)
22
- * if (screen.type === 'image') {
23
- * // screen.data is a PNG Uint8Array
24
- * }
25
- *
26
- * await executeComputerAction(page, { action: 'left_click', coordinate: [400, 200] }, state)
27
- * ```
28
- *
29
- * Phase 2 will collapse this to:
30
- *
31
- * ```ts
32
- * import { computerUseTool } from '@rudderjs/ai/computer-use'
33
- *
34
- * class BrowserAgent extends Agent {
35
- * model = 'anthropic/claude-opus-4-7'
36
- * tools() { return [computerUseTool({ page })] }
37
- * }
38
- * ```
39
- *
40
- * # Anthropic-only in v1
41
- *
42
- * The action vocabulary mirrors Anthropic's `computer_20250124` schema
43
- * verbatim. Phase 2's tool factory throws `ComputerUseProviderError` at
44
- * agent boot for non-Anthropic models — see plan
45
- * `docs/plans/2026-05-10-ai-computer-use.md`.
46
- */
47
- export type { ComputerAction, ComputerActionResult, ComputerExecutorState, Coordinate, PageLike, PageMouseLike, PageKeyboardLike, } from './actions.js';
48
- export { makeExecutorState } from './actions.js';
49
- export { executeComputerAction, parseModifiers, normalizeKey, normalizeChord, SCROLL_PIXELS_PER_CLICK, MOUSE_MOVE_STEPS, } from './playwright.js';
50
- export type { ComputerUseTool, ComputerUseToolOptions, } from './tool.js';
51
- export { computerUseTool, isComputerUseTool, COMPUTER_USE_MARKER, COMPUTER_USE_TOOL_NAME, } from './tool.js';
52
- export { ComputerUseLimitError, ComputerUseProviderError, isAnthropicLikeModel, } from './errors.js';
1
+ export * from '@gemstack/ai-sdk/computer-use';
53
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/computer-use/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AAIxB,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/computer-use/index.ts"],"names":[],"mappings":"AAGA,cAAc,+BAA+B,CAAA"}
@@ -1,51 +1,5 @@
1
- /**
2
- * `@rudderjs/ai/computer-use` Anthropic computer-use abstraction (#A7).
3
- *
4
- * Phase 1 (this entry) ships the action vocabulary + Playwright
5
- * executor. Phase 2 will add `computerUseTool({ page })` — the agent
6
- * tool factory that maps to Anthropic's native `computer_20250124`
7
- * tool block and routes execution through the executor here.
8
- *
9
- * # Quick example (manual / phase-1 surface)
10
- *
11
- * ```ts
12
- * import { chromium } from 'playwright'
13
- * import { executeComputerAction, makeExecutorState } from '@rudderjs/ai/computer-use'
14
- *
15
- * const browser = await chromium.launch()
16
- * const page = await browser.newPage()
17
- * await page.setViewportSize({ width: 1280, height: 800 })
18
- * await page.goto('https://example.com')
19
- *
20
- * const state = makeExecutorState()
21
- * const screen = await executeComputerAction(page, { action: 'screenshot' }, state)
22
- * if (screen.type === 'image') {
23
- * // screen.data is a PNG Uint8Array
24
- * }
25
- *
26
- * await executeComputerAction(page, { action: 'left_click', coordinate: [400, 200] }, state)
27
- * ```
28
- *
29
- * Phase 2 will collapse this to:
30
- *
31
- * ```ts
32
- * import { computerUseTool } from '@rudderjs/ai/computer-use'
33
- *
34
- * class BrowserAgent extends Agent {
35
- * model = 'anthropic/claude-opus-4-7'
36
- * tools() { return [computerUseTool({ page })] }
37
- * }
38
- * ```
39
- *
40
- * # Anthropic-only in v1
41
- *
42
- * The action vocabulary mirrors Anthropic's `computer_20250124` schema
43
- * verbatim. Phase 2's tool factory throws `ComputerUseProviderError` at
44
- * agent boot for non-Anthropic models — see plan
45
- * `docs/plans/2026-05-10-ai-computer-use.md`.
46
- */
47
- export { makeExecutorState } from './actions.js';
48
- export { executeComputerAction, parseModifiers, normalizeKey, normalizeChord, SCROLL_PIXELS_PER_CLICK, MOUSE_MOVE_STEPS, } from './playwright.js';
49
- export { computerUseTool, isComputerUseTool, COMPUTER_USE_MARKER, COMPUTER_USE_TOOL_NAME, } from './tool.js';
50
- export { ComputerUseLimitError, ComputerUseProviderError, isAnthropicLikeModel, } from './errors.js';
1
+ // @rudderjs/ai is deprecated. The AI engine now lives in @gemstack/ai-sdk.
2
+ // This module re-exports it for backwards compatibility; import from
3
+ // '@gemstack/ai-sdk/computer-use' directly in new code.
4
+ export * from '@gemstack/ai-sdk/computer-use';
51
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/computer-use/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAYH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AASxB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/computer-use/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qEAAqE;AACrE,wDAAwD;AACxD,cAAc,+BAA+B,CAAA"}