overai 1.4.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 (442) hide show
  1. package/README.md +248 -0
  2. package/dist/agent/context.d.ts +74 -0
  3. package/dist/agent/context.js +140 -0
  4. package/dist/agent/enhanced.d.ts +98 -0
  5. package/dist/agent/enhanced.js +293 -0
  6. package/dist/agent/handoff.d.ts +82 -0
  7. package/dist/agent/handoff.js +124 -0
  8. package/dist/agent/image.d.ts +57 -0
  9. package/dist/agent/image.js +116 -0
  10. package/dist/agent/index.d.ts +19 -0
  11. package/dist/agent/index.js +38 -0
  12. package/dist/agent/prompt-expander.d.ts +43 -0
  13. package/dist/agent/prompt-expander.js +99 -0
  14. package/dist/agent/proxy.d.ts +26 -0
  15. package/dist/agent/proxy.js +173 -0
  16. package/dist/agent/query-rewriter.d.ts +41 -0
  17. package/dist/agent/query-rewriter.js +94 -0
  18. package/dist/agent/research.d.ts +55 -0
  19. package/dist/agent/research.js +134 -0
  20. package/dist/agent/router.d.ts +141 -0
  21. package/dist/agent/router.js +209 -0
  22. package/dist/agent/simple.d.ts +289 -0
  23. package/dist/agent/simple.js +696 -0
  24. package/dist/agent/types.d.ts +56 -0
  25. package/dist/agent/types.js +165 -0
  26. package/dist/ai/agent-loop.d.ts +177 -0
  27. package/dist/ai/agent-loop.js +313 -0
  28. package/dist/ai/devtools.d.ts +74 -0
  29. package/dist/ai/devtools.js +216 -0
  30. package/dist/ai/embed.d.ts +71 -0
  31. package/dist/ai/embed.js +154 -0
  32. package/dist/ai/generate-image.d.ts +66 -0
  33. package/dist/ai/generate-image.js +138 -0
  34. package/dist/ai/generate-object.d.ts +132 -0
  35. package/dist/ai/generate-object.js +206 -0
  36. package/dist/ai/generate-text.d.ts +201 -0
  37. package/dist/ai/generate-text.js +253 -0
  38. package/dist/ai/index.d.ts +27 -0
  39. package/dist/ai/index.js +140 -0
  40. package/dist/ai/mcp.d.ts +181 -0
  41. package/dist/ai/mcp.js +234 -0
  42. package/dist/ai/middleware.d.ts +110 -0
  43. package/dist/ai/middleware.js +186 -0
  44. package/dist/ai/models.d.ts +67 -0
  45. package/dist/ai/models.js +249 -0
  46. package/dist/ai/multimodal.d.ts +125 -0
  47. package/dist/ai/multimodal.js +270 -0
  48. package/dist/ai/nextjs.d.ts +122 -0
  49. package/dist/ai/nextjs.js +218 -0
  50. package/dist/ai/server.d.ts +126 -0
  51. package/dist/ai/server.js +336 -0
  52. package/dist/ai/speech.d.ts +135 -0
  53. package/dist/ai/speech.js +296 -0
  54. package/dist/ai/telemetry.d.ts +162 -0
  55. package/dist/ai/telemetry.js +311 -0
  56. package/dist/ai/tool-approval.d.ts +225 -0
  57. package/dist/ai/tool-approval.js +407 -0
  58. package/dist/ai/tools.d.ts +93 -0
  59. package/dist/ai/tools.js +89 -0
  60. package/dist/ai/types.d.ts +47 -0
  61. package/dist/ai/types.js +5 -0
  62. package/dist/ai/ui-message.d.ts +218 -0
  63. package/dist/ai/ui-message.js +291 -0
  64. package/dist/auto/index.d.ts +62 -0
  65. package/dist/auto/index.js +163 -0
  66. package/dist/cache/index.d.ts +78 -0
  67. package/dist/cache/index.js +235 -0
  68. package/dist/cli/commands/agent.d.ts +30 -0
  69. package/dist/cli/commands/agent.js +151 -0
  70. package/dist/cli/commands/agents.d.ts +24 -0
  71. package/dist/cli/commands/agents.js +166 -0
  72. package/dist/cli/commands/approval.d.ts +10 -0
  73. package/dist/cli/commands/approval.js +253 -0
  74. package/dist/cli/commands/auto.d.ts +12 -0
  75. package/dist/cli/commands/auto.js +109 -0
  76. package/dist/cli/commands/autonomy.d.ts +5 -0
  77. package/dist/cli/commands/autonomy.js +152 -0
  78. package/dist/cli/commands/benchmark.d.ts +19 -0
  79. package/dist/cli/commands/benchmark.js +484 -0
  80. package/dist/cli/commands/cache.d.ts +9 -0
  81. package/dist/cli/commands/cache.js +143 -0
  82. package/dist/cli/commands/chat.d.ts +14 -0
  83. package/dist/cli/commands/chat.js +127 -0
  84. package/dist/cli/commands/checkpoints.d.ts +5 -0
  85. package/dist/cli/commands/checkpoints.js +236 -0
  86. package/dist/cli/commands/context.d.ts +11 -0
  87. package/dist/cli/commands/context.js +182 -0
  88. package/dist/cli/commands/cost.d.ts +5 -0
  89. package/dist/cli/commands/cost.js +146 -0
  90. package/dist/cli/commands/db.d.ts +9 -0
  91. package/dist/cli/commands/db.js +149 -0
  92. package/dist/cli/commands/embed.d.ts +20 -0
  93. package/dist/cli/commands/embed.js +375 -0
  94. package/dist/cli/commands/eval.d.ts +17 -0
  95. package/dist/cli/commands/eval.js +247 -0
  96. package/dist/cli/commands/external-agents.d.ts +5 -0
  97. package/dist/cli/commands/external-agents.js +170 -0
  98. package/dist/cli/commands/fast-context.d.ts +5 -0
  99. package/dist/cli/commands/fast-context.js +126 -0
  100. package/dist/cli/commands/flow.d.ts +5 -0
  101. package/dist/cli/commands/flow.js +141 -0
  102. package/dist/cli/commands/git.d.ts +5 -0
  103. package/dist/cli/commands/git.js +178 -0
  104. package/dist/cli/commands/graph-rag.d.ts +9 -0
  105. package/dist/cli/commands/graph-rag.js +131 -0
  106. package/dist/cli/commands/guardrail.d.ts +11 -0
  107. package/dist/cli/commands/guardrail.js +156 -0
  108. package/dist/cli/commands/handoff.d.ts +9 -0
  109. package/dist/cli/commands/handoff.js +133 -0
  110. package/dist/cli/commands/help.d.ts +8 -0
  111. package/dist/cli/commands/help.js +139 -0
  112. package/dist/cli/commands/image.d.ts +13 -0
  113. package/dist/cli/commands/image.js +192 -0
  114. package/dist/cli/commands/interactive.d.ts +6 -0
  115. package/dist/cli/commands/interactive.js +79 -0
  116. package/dist/cli/commands/jobs.d.ts +5 -0
  117. package/dist/cli/commands/jobs.js +282 -0
  118. package/dist/cli/commands/knowledge.d.ts +9 -0
  119. package/dist/cli/commands/knowledge.js +226 -0
  120. package/dist/cli/commands/llm.d.ts +21 -0
  121. package/dist/cli/commands/llm.js +748 -0
  122. package/dist/cli/commands/mcp.d.ts +9 -0
  123. package/dist/cli/commands/mcp.js +243 -0
  124. package/dist/cli/commands/memory.d.ts +10 -0
  125. package/dist/cli/commands/memory.js +198 -0
  126. package/dist/cli/commands/n8n.d.ts +5 -0
  127. package/dist/cli/commands/n8n.js +137 -0
  128. package/dist/cli/commands/observability.d.ts +16 -0
  129. package/dist/cli/commands/observability.js +335 -0
  130. package/dist/cli/commands/planning.d.ts +9 -0
  131. package/dist/cli/commands/planning.js +167 -0
  132. package/dist/cli/commands/prompt-expand.d.ts +11 -0
  133. package/dist/cli/commands/prompt-expand.js +100 -0
  134. package/dist/cli/commands/providers.d.ts +17 -0
  135. package/dist/cli/commands/providers.js +386 -0
  136. package/dist/cli/commands/query-rewrite.d.ts +12 -0
  137. package/dist/cli/commands/query-rewrite.js +102 -0
  138. package/dist/cli/commands/repo-map.d.ts +5 -0
  139. package/dist/cli/commands/repo-map.js +151 -0
  140. package/dist/cli/commands/reranker.d.ts +10 -0
  141. package/dist/cli/commands/reranker.js +144 -0
  142. package/dist/cli/commands/research.d.ts +12 -0
  143. package/dist/cli/commands/research.js +108 -0
  144. package/dist/cli/commands/router.d.ts +11 -0
  145. package/dist/cli/commands/router.js +142 -0
  146. package/dist/cli/commands/run.d.ts +14 -0
  147. package/dist/cli/commands/run.js +111 -0
  148. package/dist/cli/commands/sandbox.d.ts +5 -0
  149. package/dist/cli/commands/sandbox.js +135 -0
  150. package/dist/cli/commands/scheduler.d.ts +5 -0
  151. package/dist/cli/commands/scheduler.js +260 -0
  152. package/dist/cli/commands/session.d.ts +9 -0
  153. package/dist/cli/commands/session.js +238 -0
  154. package/dist/cli/commands/skills.d.ts +9 -0
  155. package/dist/cli/commands/skills.js +256 -0
  156. package/dist/cli/commands/telemetry.d.ts +9 -0
  157. package/dist/cli/commands/telemetry.js +146 -0
  158. package/dist/cli/commands/tools.d.ts +19 -0
  159. package/dist/cli/commands/tools.js +576 -0
  160. package/dist/cli/commands/vector.d.ts +10 -0
  161. package/dist/cli/commands/vector.js +171 -0
  162. package/dist/cli/commands/version.d.ts +8 -0
  163. package/dist/cli/commands/version.js +40 -0
  164. package/dist/cli/commands/voice.d.ts +10 -0
  165. package/dist/cli/commands/voice.js +162 -0
  166. package/dist/cli/commands/workflow.d.ts +13 -0
  167. package/dist/cli/commands/workflow.js +184 -0
  168. package/dist/cli/config/index.d.ts +6 -0
  169. package/dist/cli/config/index.js +22 -0
  170. package/dist/cli/config/load.d.ts +20 -0
  171. package/dist/cli/config/load.js +229 -0
  172. package/dist/cli/config/resolve.d.ts +28 -0
  173. package/dist/cli/config/resolve.js +70 -0
  174. package/dist/cli/config/schema.d.ts +15 -0
  175. package/dist/cli/config/schema.js +65 -0
  176. package/dist/cli/features/autonomy-mode.d.ts +98 -0
  177. package/dist/cli/features/autonomy-mode.js +266 -0
  178. package/dist/cli/features/background-jobs.d.ts +155 -0
  179. package/dist/cli/features/background-jobs.js +416 -0
  180. package/dist/cli/features/checkpoints.d.ts +126 -0
  181. package/dist/cli/features/checkpoints.js +288 -0
  182. package/dist/cli/features/cost-tracker.d.ts +101 -0
  183. package/dist/cli/features/cost-tracker.js +212 -0
  184. package/dist/cli/features/external-agents.d.ts +117 -0
  185. package/dist/cli/features/external-agents.js +296 -0
  186. package/dist/cli/features/fast-context.d.ts +126 -0
  187. package/dist/cli/features/fast-context.js +310 -0
  188. package/dist/cli/features/flow-display.d.ts +100 -0
  189. package/dist/cli/features/flow-display.js +254 -0
  190. package/dist/cli/features/git-integration.d.ts +138 -0
  191. package/dist/cli/features/git-integration.js +374 -0
  192. package/dist/cli/features/index.d.ts +17 -0
  193. package/dist/cli/features/index.js +102 -0
  194. package/dist/cli/features/interactive-tui.d.ts +114 -0
  195. package/dist/cli/features/interactive-tui.js +326 -0
  196. package/dist/cli/features/n8n-integration.d.ts +111 -0
  197. package/dist/cli/features/n8n-integration.js +299 -0
  198. package/dist/cli/features/repo-map.d.ts +101 -0
  199. package/dist/cli/features/repo-map.js +350 -0
  200. package/dist/cli/features/sandbox-executor.d.ts +89 -0
  201. package/dist/cli/features/sandbox-executor.js +314 -0
  202. package/dist/cli/features/scheduler.d.ts +111 -0
  203. package/dist/cli/features/scheduler.js +298 -0
  204. package/dist/cli/features/slash-commands.d.ts +77 -0
  205. package/dist/cli/features/slash-commands.js +316 -0
  206. package/dist/cli/index.d.ts +24 -0
  207. package/dist/cli/index.js +214 -0
  208. package/dist/cli/output/errors.d.ts +23 -0
  209. package/dist/cli/output/errors.js +36 -0
  210. package/dist/cli/output/json.d.ts +27 -0
  211. package/dist/cli/output/json.js +31 -0
  212. package/dist/cli/output/pretty.d.ts +13 -0
  213. package/dist/cli/output/pretty.js +31 -0
  214. package/dist/cli/runtime/env.d.ts +12 -0
  215. package/dist/cli/runtime/env.js +55 -0
  216. package/dist/cli/runtime/exit.d.ts +11 -0
  217. package/dist/cli/runtime/exit.js +49 -0
  218. package/dist/cli/runtime/index.d.ts +6 -0
  219. package/dist/cli/runtime/index.js +22 -0
  220. package/dist/cli/runtime/lazy.d.ts +18 -0
  221. package/dist/cli/runtime/lazy.js +85 -0
  222. package/dist/cli/spec/cli-spec.d.ts +87 -0
  223. package/dist/cli/spec/cli-spec.js +551 -0
  224. package/dist/cli/spec/index.d.ts +4 -0
  225. package/dist/cli/spec/index.js +20 -0
  226. package/dist/db/index.d.ts +6 -0
  227. package/dist/db/index.js +75 -0
  228. package/dist/db/types.d.ts +42 -0
  229. package/dist/db/types.js +2 -0
  230. package/dist/eval/index.d.ts +61 -0
  231. package/dist/eval/index.js +157 -0
  232. package/dist/events/index.d.ts +84 -0
  233. package/dist/events/index.js +153 -0
  234. package/dist/guardrails/index.d.ts +82 -0
  235. package/dist/guardrails/index.js +202 -0
  236. package/dist/guardrails/llm-guardrail.d.ts +46 -0
  237. package/dist/guardrails/llm-guardrail.js +112 -0
  238. package/dist/index.d.ts +92 -0
  239. package/dist/index.js +608 -0
  240. package/dist/integrations/computer-use.d.ts +182 -0
  241. package/dist/integrations/computer-use.js +356 -0
  242. package/dist/integrations/index.d.ts +7 -0
  243. package/dist/integrations/index.js +26 -0
  244. package/dist/integrations/observability/base.d.ts +123 -0
  245. package/dist/integrations/observability/base.js +183 -0
  246. package/dist/integrations/observability/index.d.ts +8 -0
  247. package/dist/integrations/observability/index.js +29 -0
  248. package/dist/integrations/observability/langfuse.d.ts +32 -0
  249. package/dist/integrations/observability/langfuse.js +174 -0
  250. package/dist/integrations/postgres.d.ts +162 -0
  251. package/dist/integrations/postgres.js +396 -0
  252. package/dist/integrations/slack.d.ts +145 -0
  253. package/dist/integrations/slack.js +270 -0
  254. package/dist/integrations/vector/base.d.ts +110 -0
  255. package/dist/integrations/vector/base.js +158 -0
  256. package/dist/integrations/vector/chroma.d.ts +25 -0
  257. package/dist/integrations/vector/chroma.js +143 -0
  258. package/dist/integrations/vector/index.d.ts +14 -0
  259. package/dist/integrations/vector/index.js +37 -0
  260. package/dist/integrations/vector/pinecone.d.ts +28 -0
  261. package/dist/integrations/vector/pinecone.js +172 -0
  262. package/dist/integrations/vector/qdrant.d.ts +25 -0
  263. package/dist/integrations/vector/qdrant.js +146 -0
  264. package/dist/integrations/vector/weaviate.d.ts +30 -0
  265. package/dist/integrations/vector/weaviate.js +206 -0
  266. package/dist/integrations/voice/base.d.ts +76 -0
  267. package/dist/integrations/voice/base.js +168 -0
  268. package/dist/integrations/voice/index.d.ts +6 -0
  269. package/dist/integrations/voice/index.js +26 -0
  270. package/dist/knowledge/chunking.d.ts +55 -0
  271. package/dist/knowledge/chunking.js +158 -0
  272. package/dist/knowledge/graph-rag.d.ts +125 -0
  273. package/dist/knowledge/graph-rag.js +289 -0
  274. package/dist/knowledge/index.d.ts +24 -0
  275. package/dist/knowledge/index.js +47 -0
  276. package/dist/knowledge/knowledge.d.ts +0 -0
  277. package/dist/knowledge/knowledge.js +1 -0
  278. package/dist/knowledge/rag.d.ts +80 -0
  279. package/dist/knowledge/rag.js +147 -0
  280. package/dist/knowledge/reranker.d.ts +86 -0
  281. package/dist/knowledge/reranker.js +196 -0
  282. package/dist/llm/backend-resolver.d.ts +77 -0
  283. package/dist/llm/backend-resolver.js +242 -0
  284. package/dist/llm/embeddings.d.ts +66 -0
  285. package/dist/llm/embeddings.js +294 -0
  286. package/dist/llm/index.d.ts +29 -0
  287. package/dist/llm/index.js +33 -0
  288. package/dist/llm/llm.d.ts +0 -0
  289. package/dist/llm/llm.js +1 -0
  290. package/dist/llm/openai.d.ts +39 -0
  291. package/dist/llm/openai.js +302 -0
  292. package/dist/llm/providers/ai-sdk/adapter.d.ts +121 -0
  293. package/dist/llm/providers/ai-sdk/adapter.js +399 -0
  294. package/dist/llm/providers/ai-sdk/backend.d.ts +49 -0
  295. package/dist/llm/providers/ai-sdk/backend.js +421 -0
  296. package/dist/llm/providers/ai-sdk/index.d.ts +69 -0
  297. package/dist/llm/providers/ai-sdk/index.js +200 -0
  298. package/dist/llm/providers/ai-sdk/middleware.d.ts +60 -0
  299. package/dist/llm/providers/ai-sdk/middleware.js +262 -0
  300. package/dist/llm/providers/ai-sdk/provider-map.d.ts +75 -0
  301. package/dist/llm/providers/ai-sdk/provider-map.js +258 -0
  302. package/dist/llm/providers/ai-sdk/types.d.ts +217 -0
  303. package/dist/llm/providers/ai-sdk/types.js +222 -0
  304. package/dist/llm/providers/anthropic.d.ts +33 -0
  305. package/dist/llm/providers/anthropic.js +291 -0
  306. package/dist/llm/providers/base.d.ts +25 -0
  307. package/dist/llm/providers/base.js +43 -0
  308. package/dist/llm/providers/google.d.ts +27 -0
  309. package/dist/llm/providers/google.js +275 -0
  310. package/dist/llm/providers/index.d.ts +107 -0
  311. package/dist/llm/providers/index.js +216 -0
  312. package/dist/llm/providers/openai.d.ts +18 -0
  313. package/dist/llm/providers/openai.js +203 -0
  314. package/dist/llm/providers/registry.d.ts +159 -0
  315. package/dist/llm/providers/registry.js +279 -0
  316. package/dist/llm/providers/types.d.ts +94 -0
  317. package/dist/llm/providers/types.js +5 -0
  318. package/dist/main.d.ts +0 -0
  319. package/dist/main.js +1 -0
  320. package/dist/memory/auto-memory.d.ts +136 -0
  321. package/dist/memory/auto-memory.js +301 -0
  322. package/dist/memory/file-memory.d.ts +88 -0
  323. package/dist/memory/file-memory.js +287 -0
  324. package/dist/memory/index.d.ts +26 -0
  325. package/dist/memory/index.js +41 -0
  326. package/dist/memory/memory.d.ts +92 -0
  327. package/dist/memory/memory.js +170 -0
  328. package/dist/observability/adapters/console.d.ts +33 -0
  329. package/dist/observability/adapters/console.js +71 -0
  330. package/dist/observability/adapters/external/arize.d.ts +20 -0
  331. package/dist/observability/adapters/external/arize.js +22 -0
  332. package/dist/observability/adapters/external/axiom.d.ts +20 -0
  333. package/dist/observability/adapters/external/axiom.js +22 -0
  334. package/dist/observability/adapters/external/braintrust.d.ts +20 -0
  335. package/dist/observability/adapters/external/braintrust.js +22 -0
  336. package/dist/observability/adapters/external/helicone.d.ts +20 -0
  337. package/dist/observability/adapters/external/helicone.js +22 -0
  338. package/dist/observability/adapters/external/laminar.d.ts +20 -0
  339. package/dist/observability/adapters/external/laminar.js +22 -0
  340. package/dist/observability/adapters/external/langfuse.d.ts +28 -0
  341. package/dist/observability/adapters/external/langfuse.js +186 -0
  342. package/dist/observability/adapters/external/langsmith.d.ts +21 -0
  343. package/dist/observability/adapters/external/langsmith.js +83 -0
  344. package/dist/observability/adapters/external/langwatch.d.ts +20 -0
  345. package/dist/observability/adapters/external/langwatch.js +22 -0
  346. package/dist/observability/adapters/external/maxim.d.ts +20 -0
  347. package/dist/observability/adapters/external/maxim.js +22 -0
  348. package/dist/observability/adapters/external/patronus.d.ts +20 -0
  349. package/dist/observability/adapters/external/patronus.js +22 -0
  350. package/dist/observability/adapters/external/scorecard.d.ts +20 -0
  351. package/dist/observability/adapters/external/scorecard.js +22 -0
  352. package/dist/observability/adapters/external/signoz.d.ts +20 -0
  353. package/dist/observability/adapters/external/signoz.js +22 -0
  354. package/dist/observability/adapters/external/traceloop.d.ts +20 -0
  355. package/dist/observability/adapters/external/traceloop.js +22 -0
  356. package/dist/observability/adapters/external/weave.d.ts +20 -0
  357. package/dist/observability/adapters/external/weave.js +22 -0
  358. package/dist/observability/adapters/index.d.ts +19 -0
  359. package/dist/observability/adapters/index.js +289 -0
  360. package/dist/observability/adapters/memory.d.ts +41 -0
  361. package/dist/observability/adapters/memory.js +190 -0
  362. package/dist/observability/adapters/noop.d.ts +25 -0
  363. package/dist/observability/adapters/noop.js +64 -0
  364. package/dist/observability/index.d.ts +47 -0
  365. package/dist/observability/index.js +115 -0
  366. package/dist/observability/types.d.ts +165 -0
  367. package/dist/observability/types.js +165 -0
  368. package/dist/planning/index.d.ts +253 -0
  369. package/dist/planning/index.js +475 -0
  370. package/dist/process/index.d.ts +25 -0
  371. package/dist/process/index.js +37 -0
  372. package/dist/process/process.d.ts +0 -0
  373. package/dist/process/process.js +1 -0
  374. package/dist/session/index.d.ts +111 -0
  375. package/dist/session/index.js +250 -0
  376. package/dist/skills/index.d.ts +70 -0
  377. package/dist/skills/index.js +233 -0
  378. package/dist/task/index.d.ts +25 -0
  379. package/dist/task/index.js +32 -0
  380. package/dist/task/task.d.ts +0 -0
  381. package/dist/task/task.js +1 -0
  382. package/dist/telemetry/index.d.ts +175 -0
  383. package/dist/telemetry/index.js +287 -0
  384. package/dist/tools/arxivTools.d.ts +32 -0
  385. package/dist/tools/arxivTools.js +81 -0
  386. package/dist/tools/base.d.ts +97 -0
  387. package/dist/tools/base.js +147 -0
  388. package/dist/tools/builtins/airweave.d.ts +32 -0
  389. package/dist/tools/builtins/airweave.js +119 -0
  390. package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
  391. package/dist/tools/builtins/bedrock-agentcore.js +233 -0
  392. package/dist/tools/builtins/code-execution.d.ts +36 -0
  393. package/dist/tools/builtins/code-execution.js +136 -0
  394. package/dist/tools/builtins/code-mode.d.ts +54 -0
  395. package/dist/tools/builtins/code-mode.js +167 -0
  396. package/dist/tools/builtins/custom.d.ts +42 -0
  397. package/dist/tools/builtins/custom.js +195 -0
  398. package/dist/tools/builtins/exa.d.ts +53 -0
  399. package/dist/tools/builtins/exa.js +112 -0
  400. package/dist/tools/builtins/firecrawl.d.ts +56 -0
  401. package/dist/tools/builtins/firecrawl.js +158 -0
  402. package/dist/tools/builtins/index.d.ts +45 -0
  403. package/dist/tools/builtins/index.js +180 -0
  404. package/dist/tools/builtins/parallel.d.ts +30 -0
  405. package/dist/tools/builtins/parallel.js +113 -0
  406. package/dist/tools/builtins/perplexity.d.ts +32 -0
  407. package/dist/tools/builtins/perplexity.js +113 -0
  408. package/dist/tools/builtins/superagent.d.ts +66 -0
  409. package/dist/tools/builtins/superagent.js +187 -0
  410. package/dist/tools/builtins/tavily.d.ts +99 -0
  411. package/dist/tools/builtins/tavily.js +285 -0
  412. package/dist/tools/builtins/valyu.d.ts +65 -0
  413. package/dist/tools/builtins/valyu.js +193 -0
  414. package/dist/tools/decorator.d.ts +91 -0
  415. package/dist/tools/decorator.js +165 -0
  416. package/dist/tools/index.d.ts +8 -0
  417. package/dist/tools/index.js +36 -0
  418. package/dist/tools/mcpSse.d.ts +43 -0
  419. package/dist/tools/mcpSse.js +110 -0
  420. package/dist/tools/registry/index.d.ts +9 -0
  421. package/dist/tools/registry/index.js +28 -0
  422. package/dist/tools/registry/middleware.d.ts +43 -0
  423. package/dist/tools/registry/middleware.js +220 -0
  424. package/dist/tools/registry/registry.d.ts +92 -0
  425. package/dist/tools/registry/registry.js +280 -0
  426. package/dist/tools/registry/types.d.ts +217 -0
  427. package/dist/tools/registry/types.js +49 -0
  428. package/dist/tools/test.d.ts +0 -0
  429. package/dist/tools/test.js +1 -0
  430. package/dist/tools/tools.d.ts +74 -0
  431. package/dist/tools/tools.js +133 -0
  432. package/dist/utils/logger.d.ts +25 -0
  433. package/dist/utils/logger.js +149 -0
  434. package/dist/utils/pretty-logger.d.ts +21 -0
  435. package/dist/utils/pretty-logger.js +248 -0
  436. package/dist/workflows/index.d.ts +118 -0
  437. package/dist/workflows/index.js +247 -0
  438. package/dist/workflows/loop.d.ts +0 -0
  439. package/dist/workflows/loop.js +1 -0
  440. package/dist/workflows/yaml-parser.d.ts +48 -0
  441. package/dist/workflows/yaml-parser.js +304 -0
  442. package/package.json +119 -0
@@ -0,0 +1,748 @@
1
+ "use strict";
2
+ /**
3
+ * LLM Command - AI SDK provider management and testing
4
+ *
5
+ * Subcommands:
6
+ * - providers: List available AI SDK providers
7
+ * - test: Test connectivity to a provider
8
+ * - validate: Validate provider configuration
9
+ * - run: Run a prompt with a specific model
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.execute = execute;
46
+ const pretty_logger_1 = require("../../utils/pretty-logger");
47
+ function outputJson(data) {
48
+ console.log(JSON.stringify(data, null, 2));
49
+ }
50
+ function formatSuccess(data) {
51
+ return { success: true, data };
52
+ }
53
+ function formatError(code, message) {
54
+ return { success: false, error: { code, message } };
55
+ }
56
+ const ERROR_CODES = {
57
+ INVALID_ARGS: 'INVALID_ARGS',
58
+ MISSING_ARG: 'MISSING_ARG',
59
+ };
60
+ // Exit codes specific to LLM commands
61
+ const LLM_EXIT_CODES = {
62
+ SUCCESS: 0,
63
+ GENERAL_ERROR: 1,
64
+ INVALID_ARGS: 2,
65
+ AUTH_ERROR: 3,
66
+ PROVIDER_NOT_FOUND: 4,
67
+ NETWORK_ERROR: 5,
68
+ TIMEOUT: 6,
69
+ };
70
+ async function execute(args, options) {
71
+ const subcommand = args[0] || 'providers';
72
+ const outputFormat = options.json ? 'json' : (options.output || 'pretty');
73
+ switch (subcommand) {
74
+ case 'providers':
75
+ await providersCommand(args.slice(1), options, outputFormat);
76
+ break;
77
+ case 'test':
78
+ await testCommand(args.slice(1), options, outputFormat);
79
+ break;
80
+ case 'validate':
81
+ await validateCommand(args.slice(1), options, outputFormat);
82
+ break;
83
+ case 'run':
84
+ await runCommand(args.slice(1), options, outputFormat);
85
+ break;
86
+ case 'models':
87
+ await modelsCommand(args.slice(1), options, outputFormat);
88
+ break;
89
+ case 'config':
90
+ await configCommand(args.slice(1), options, outputFormat);
91
+ break;
92
+ case 'trace':
93
+ await traceCommand(args.slice(1), options, outputFormat);
94
+ break;
95
+ case 'tools':
96
+ await toolsCommand(args.slice(1), options, outputFormat);
97
+ break;
98
+ case 'json':
99
+ await jsonCommand(args.slice(1), options, outputFormat);
100
+ break;
101
+ default:
102
+ if (outputFormat === 'json') {
103
+ outputJson(formatError(ERROR_CODES.INVALID_ARGS, `Unknown subcommand: ${subcommand}`));
104
+ }
105
+ else {
106
+ await pretty_logger_1.PrettyLogger.error(`Unknown subcommand: ${subcommand}`);
107
+ await pretty_logger_1.PrettyLogger.info('Available subcommands: providers, test, validate, run, models, config, trace, tools, json');
108
+ }
109
+ process.exit(LLM_EXIT_CODES.INVALID_ARGS);
110
+ }
111
+ }
112
+ /**
113
+ * List available AI SDK providers
114
+ */
115
+ async function providersCommand(args, options, outputFormat) {
116
+ try {
117
+ const { listSupportedProviders, AISDK_PROVIDERS, validateProviderApiKey, isAISDKAvailable, getAISDKVersion } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
118
+ const providers = listSupportedProviders();
119
+ const aiSdkAvailable = await isAISDKAvailable();
120
+ const aiSdkVersion = await getAISDKVersion();
121
+ const providerDetails = providers.map((id) => {
122
+ const info = AISDK_PROVIDERS[id];
123
+ const hasApiKey = validateProviderApiKey(id);
124
+ return {
125
+ id,
126
+ package: info?.package || 'custom',
127
+ envKey: info?.envKey || 'N/A',
128
+ hasApiKey,
129
+ status: hasApiKey ? 'ready' : 'missing_key'
130
+ };
131
+ });
132
+ if (outputFormat === 'json') {
133
+ outputJson(formatSuccess({
134
+ ai_sdk_available: aiSdkAvailable,
135
+ ai_sdk_version: aiSdkVersion,
136
+ providers: providerDetails,
137
+ total: providers.length
138
+ }));
139
+ }
140
+ else {
141
+ await pretty_logger_1.PrettyLogger.heading('AI SDK Providers');
142
+ if (aiSdkAvailable) {
143
+ await pretty_logger_1.PrettyLogger.success(`AI SDK: ${aiSdkVersion || 'installed'}`);
144
+ }
145
+ else {
146
+ await pretty_logger_1.PrettyLogger.warning('AI SDK not installed. Run: npm install ai');
147
+ }
148
+ await pretty_logger_1.PrettyLogger.newline();
149
+ await pretty_logger_1.PrettyLogger.plain(' Available Providers:');
150
+ for (const p of providerDetails) {
151
+ const status = p.hasApiKey ? '✅' : '⚠️';
152
+ const keyInfo = p.hasApiKey ? '🔑' : `Missing ${p.envKey}`;
153
+ await pretty_logger_1.PrettyLogger.plain(` ${status} ${p.id.padEnd(20)} ${keyInfo}`);
154
+ if (options.verbose) {
155
+ await pretty_logger_1.PrettyLogger.dim(` Package: ${p.package}`);
156
+ }
157
+ }
158
+ await pretty_logger_1.PrettyLogger.newline();
159
+ await pretty_logger_1.PrettyLogger.info('Set API keys via environment variables');
160
+ await pretty_logger_1.PrettyLogger.dim(' Example: export OPENAI_API_KEY=sk-...');
161
+ }
162
+ }
163
+ catch (error) {
164
+ handleError(error, outputFormat, 'Failed to list providers');
165
+ }
166
+ }
167
+ /**
168
+ * Test connectivity to a provider
169
+ */
170
+ async function testCommand(args, options, outputFormat) {
171
+ const providerId = args[0] || options.provider;
172
+ if (!providerId) {
173
+ if (outputFormat === 'json') {
174
+ outputJson(formatError(ERROR_CODES.MISSING_ARG, 'Provider ID required'));
175
+ }
176
+ else {
177
+ await pretty_logger_1.PrettyLogger.error('Provider ID required. Usage: llm test <provider>');
178
+ await pretty_logger_1.PrettyLogger.dim(' Example: praisonai-ts llm test openai');
179
+ }
180
+ process.exit(LLM_EXIT_CODES.INVALID_ARGS);
181
+ return;
182
+ }
183
+ try {
184
+ const { createAISDKBackend, validateProviderApiKey, getMissingApiKeyMessage, isProviderSupported } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
185
+ // Check if provider is supported
186
+ if (!isProviderSupported(providerId)) {
187
+ if (outputFormat === 'json') {
188
+ outputJson(formatError('PROVIDER_NOT_FOUND', `Provider '${providerId}' is not supported`));
189
+ }
190
+ else {
191
+ await pretty_logger_1.PrettyLogger.error(`Provider '${providerId}' is not supported`);
192
+ }
193
+ process.exit(LLM_EXIT_CODES.PROVIDER_NOT_FOUND);
194
+ return;
195
+ }
196
+ // Check API key
197
+ if (!validateProviderApiKey(providerId)) {
198
+ const msg = getMissingApiKeyMessage(providerId);
199
+ if (outputFormat === 'json') {
200
+ outputJson(formatError('AUTH_ERROR', msg));
201
+ }
202
+ else {
203
+ await pretty_logger_1.PrettyLogger.error(msg);
204
+ }
205
+ process.exit(LLM_EXIT_CODES.AUTH_ERROR);
206
+ return;
207
+ }
208
+ // Determine test model based on provider
209
+ const testModels = {
210
+ openai: 'gpt-4o-mini',
211
+ anthropic: 'claude-3-haiku-20240307',
212
+ google: 'gemini-1.5-flash',
213
+ groq: 'llama-3.1-8b-instant',
214
+ mistral: 'mistral-small-latest',
215
+ cohere: 'command-light',
216
+ deepseek: 'deepseek-chat',
217
+ };
218
+ const modelId = options.model || testModels[providerId] || 'default';
219
+ const modelString = `${providerId}/${modelId}`;
220
+ if (outputFormat !== 'json') {
221
+ await pretty_logger_1.PrettyLogger.info(`Testing ${modelString}...`);
222
+ }
223
+ const startTime = Date.now();
224
+ const backend = createAISDKBackend(modelString, {
225
+ timeout: options.timeout || 30000,
226
+ maxRetries: 0, // No retries for test
227
+ });
228
+ const result = await backend.generateText({
229
+ messages: [
230
+ { role: 'user', content: 'Say "OK" and nothing else.' }
231
+ ],
232
+ maxTokens: 10,
233
+ temperature: 0,
234
+ });
235
+ const duration = Date.now() - startTime;
236
+ if (outputFormat === 'json') {
237
+ outputJson(formatSuccess({
238
+ provider: providerId,
239
+ model: modelId,
240
+ status: 'success',
241
+ duration_ms: duration,
242
+ response: result.text,
243
+ usage: result.usage
244
+ }));
245
+ }
246
+ else {
247
+ await pretty_logger_1.PrettyLogger.success(`Connection successful! (${duration}ms)`);
248
+ await pretty_logger_1.PrettyLogger.plain(` Provider: ${providerId}`);
249
+ await pretty_logger_1.PrettyLogger.plain(` Model: ${modelId}`);
250
+ await pretty_logger_1.PrettyLogger.plain(` Response: ${result.text.trim()}`);
251
+ if (result.usage) {
252
+ await pretty_logger_1.PrettyLogger.dim(` Tokens: ${result.usage.totalTokens}`);
253
+ }
254
+ }
255
+ }
256
+ catch (error) {
257
+ handleError(error, outputFormat, `Failed to test provider '${providerId}'`);
258
+ }
259
+ }
260
+ /**
261
+ * Validate provider configuration
262
+ */
263
+ async function validateCommand(args, options, outputFormat) {
264
+ const providerId = args[0] || options.provider;
265
+ if (!providerId) {
266
+ if (outputFormat === 'json') {
267
+ outputJson(formatError(ERROR_CODES.MISSING_ARG, 'Provider ID required'));
268
+ }
269
+ else {
270
+ await pretty_logger_1.PrettyLogger.error('Provider ID required. Usage: llm validate --provider <id>');
271
+ }
272
+ process.exit(LLM_EXIT_CODES.INVALID_ARGS);
273
+ return;
274
+ }
275
+ try {
276
+ const { isProviderSupported, validateProviderApiKey, getProviderEnvKey, getProviderPackage, isAISDKAvailable } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
277
+ const checks = [];
278
+ // Check AI SDK availability
279
+ const aiSdkAvailable = await isAISDKAvailable();
280
+ checks.push({
281
+ name: 'AI SDK Installed',
282
+ passed: aiSdkAvailable,
283
+ message: aiSdkAvailable ? 'AI SDK is installed' : 'AI SDK not found. Run: npm install ai'
284
+ });
285
+ // Check provider support
286
+ const isSupported = isProviderSupported(providerId);
287
+ checks.push({
288
+ name: 'Provider Supported',
289
+ passed: isSupported,
290
+ message: isSupported ? `Provider '${providerId}' is supported` : `Provider '${providerId}' is not supported`
291
+ });
292
+ if (isSupported) {
293
+ // Check provider package
294
+ const pkg = getProviderPackage(providerId);
295
+ if (pkg) {
296
+ let pkgInstalled = false;
297
+ try {
298
+ require.resolve(pkg);
299
+ pkgInstalled = true;
300
+ }
301
+ catch {
302
+ pkgInstalled = false;
303
+ }
304
+ checks.push({
305
+ name: 'Provider Package',
306
+ passed: pkgInstalled,
307
+ message: pkgInstalled ? `${pkg} is installed` : `${pkg} not found. Run: npm install ${pkg}`
308
+ });
309
+ }
310
+ // Check API key
311
+ const hasApiKey = validateProviderApiKey(providerId);
312
+ const envKey = getProviderEnvKey(providerId);
313
+ checks.push({
314
+ name: 'API Key',
315
+ passed: hasApiKey,
316
+ message: hasApiKey
317
+ ? `${envKey} is set`
318
+ : `${envKey} is not set`
319
+ });
320
+ }
321
+ const allPassed = checks.every(c => c.passed);
322
+ if (outputFormat === 'json') {
323
+ outputJson(formatSuccess({
324
+ provider: providerId,
325
+ valid: allPassed,
326
+ checks
327
+ }));
328
+ }
329
+ else {
330
+ await pretty_logger_1.PrettyLogger.heading(`Validation: ${providerId}`);
331
+ for (const check of checks) {
332
+ const icon = check.passed ? '✅' : '❌';
333
+ await pretty_logger_1.PrettyLogger.plain(` ${icon} ${check.name}: ${check.message}`);
334
+ }
335
+ await pretty_logger_1.PrettyLogger.newline();
336
+ if (allPassed) {
337
+ await pretty_logger_1.PrettyLogger.success('All checks passed!');
338
+ }
339
+ else {
340
+ await pretty_logger_1.PrettyLogger.warning('Some checks failed. Fix the issues above.');
341
+ process.exit(LLM_EXIT_CODES.GENERAL_ERROR);
342
+ }
343
+ }
344
+ }
345
+ catch (error) {
346
+ handleError(error, outputFormat, `Failed to validate provider '${providerId}'`);
347
+ }
348
+ }
349
+ /**
350
+ * Run a prompt with a specific model
351
+ */
352
+ async function runCommand(args, options, outputFormat) {
353
+ const prompt = args.join(' ');
354
+ if (!prompt) {
355
+ if (outputFormat === 'json') {
356
+ outputJson(formatError(ERROR_CODES.MISSING_ARG, 'Prompt required'));
357
+ }
358
+ else {
359
+ await pretty_logger_1.PrettyLogger.error('Prompt required. Usage: llm run "<prompt>" --model <provider/model>');
360
+ await pretty_logger_1.PrettyLogger.dim(' Example: overai llm run "Hello!" --model openai/gpt-4o-mini');
361
+ }
362
+ process.exit(LLM_EXIT_CODES.INVALID_ARGS);
363
+ return;
364
+ }
365
+ const modelString = options.model || 'openai/gpt-4o-mini';
366
+ try {
367
+ const { createAISDKBackend } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
368
+ const backend = createAISDKBackend(modelString, {
369
+ timeout: options.timeout || 60000,
370
+ });
371
+ if (options.stream) {
372
+ // Streaming mode
373
+ if (outputFormat === 'json') {
374
+ // JSON streaming - output each chunk as JSON line
375
+ const stream = await backend.streamText({
376
+ messages: [{ role: 'user', content: prompt }],
377
+ });
378
+ process.stdout.write('{"type":"stream_start"}\n');
379
+ let fullText = '';
380
+ for await (const chunk of stream) {
381
+ if (chunk.text) {
382
+ fullText += chunk.text;
383
+ process.stdout.write(JSON.stringify({ type: 'text', text: chunk.text }) + '\n');
384
+ }
385
+ if (chunk.finishReason) {
386
+ process.stdout.write(JSON.stringify({
387
+ type: 'finish',
388
+ finishReason: chunk.finishReason,
389
+ usage: chunk.usage
390
+ }) + '\n');
391
+ }
392
+ }
393
+ process.stdout.write(JSON.stringify({ type: 'stream_end', fullText }) + '\n');
394
+ }
395
+ else {
396
+ // Pretty streaming - output text directly
397
+ const stream = await backend.streamText({
398
+ messages: [{ role: 'user', content: prompt }],
399
+ });
400
+ for await (const chunk of stream) {
401
+ if (chunk.text) {
402
+ process.stdout.write(chunk.text);
403
+ }
404
+ }
405
+ process.stdout.write('\n');
406
+ }
407
+ }
408
+ else {
409
+ // Non-streaming mode
410
+ const startTime = Date.now();
411
+ const result = await backend.generateText({
412
+ messages: [{ role: 'user', content: prompt }],
413
+ });
414
+ const duration = Date.now() - startTime;
415
+ if (outputFormat === 'json') {
416
+ outputJson(formatSuccess({
417
+ model: modelString,
418
+ text: result.text,
419
+ usage: result.usage,
420
+ finishReason: result.finishReason,
421
+ duration_ms: duration
422
+ }));
423
+ }
424
+ else {
425
+ await pretty_logger_1.PrettyLogger.plain(result.text);
426
+ if (options.verbose) {
427
+ await pretty_logger_1.PrettyLogger.newline();
428
+ await pretty_logger_1.PrettyLogger.dim(`Model: ${modelString}`);
429
+ await pretty_logger_1.PrettyLogger.dim(`Duration: ${duration}ms`);
430
+ if (result.usage) {
431
+ await pretty_logger_1.PrettyLogger.dim(`Tokens: ${result.usage.totalTokens} (prompt: ${result.usage.promptTokens}, completion: ${result.usage.completionTokens})`);
432
+ }
433
+ }
434
+ }
435
+ }
436
+ }
437
+ catch (error) {
438
+ handleError(error, outputFormat, `Failed to run prompt with model '${modelString}'`);
439
+ }
440
+ }
441
+ /**
442
+ * Handle errors with proper exit codes and formatting
443
+ */
444
+ /**
445
+ * List common models for each provider
446
+ */
447
+ async function modelsCommand(args, options, outputFormat) {
448
+ try {
449
+ const { listSupportedProviders, AISDK_PROVIDERS } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
450
+ // Common models per provider (not exhaustive)
451
+ const commonModels = {
452
+ openai: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'gpt-3.5-turbo', 'o1', 'o1-mini'],
453
+ anthropic: ['claude-3-5-sonnet-latest', 'claude-3-5-haiku-latest', 'claude-3-opus-latest'],
454
+ google: ['gemini-2.0-flash', 'gemini-1.5-pro', 'gemini-1.5-flash'],
455
+ groq: ['llama-3.3-70b-versatile', 'llama-3.1-8b-instant', 'mixtral-8x7b-32768'],
456
+ mistral: ['mistral-large-latest', 'mistral-small-latest', 'codestral-latest'],
457
+ cohere: ['command-r-plus', 'command-r', 'command-light'],
458
+ deepseek: ['deepseek-chat', 'deepseek-coder'],
459
+ xai: ['grok-2', 'grok-2-mini'],
460
+ };
461
+ const providers = listSupportedProviders();
462
+ const modelsData = providers.map((id) => ({
463
+ provider: id,
464
+ models: commonModels[id] || ['(check provider docs)'],
465
+ package: AISDK_PROVIDERS[id]?.package || 'custom'
466
+ }));
467
+ if (outputFormat === 'json') {
468
+ outputJson(formatSuccess({
469
+ note: 'This is not an exhaustive list. Check provider documentation for all available models.',
470
+ providers: modelsData
471
+ }));
472
+ }
473
+ else {
474
+ await pretty_logger_1.PrettyLogger.heading('Common Models by Provider');
475
+ await pretty_logger_1.PrettyLogger.dim('Note: This is not exhaustive. Check provider docs for all models.\n');
476
+ for (const p of modelsData) {
477
+ await pretty_logger_1.PrettyLogger.plain(` ${p.provider}:`);
478
+ for (const model of p.models) {
479
+ await pretty_logger_1.PrettyLogger.dim(` - ${model}`);
480
+ }
481
+ }
482
+ await pretty_logger_1.PrettyLogger.newline();
483
+ await pretty_logger_1.PrettyLogger.info('Usage: overai llm run "prompt" --model provider/model');
484
+ }
485
+ }
486
+ catch (error) {
487
+ handleError(error, outputFormat, 'Failed to list models');
488
+ }
489
+ }
490
+ /**
491
+ * Show resolved configuration (redacted)
492
+ */
493
+ async function configCommand(args, options, outputFormat) {
494
+ try {
495
+ const { SAFE_DEFAULTS, AISDK_PROVIDERS, PROVIDER_ALIASES } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
496
+ // Gather environment config (redacted)
497
+ const envConfig = {};
498
+ for (const [id, info] of Object.entries(AISDK_PROVIDERS)) {
499
+ const envKey = info.envKey;
500
+ if (envKey && process.env[envKey]) {
501
+ envConfig[envKey] = '****' + process.env[envKey].slice(-4);
502
+ }
503
+ }
504
+ const config = {
505
+ defaults: SAFE_DEFAULTS,
506
+ aliases: PROVIDER_ALIASES,
507
+ environment: envConfig,
508
+ model: options.model || 'openai/gpt-4o-mini',
509
+ timeout: options.timeout || SAFE_DEFAULTS.timeout,
510
+ };
511
+ if (outputFormat === 'json') {
512
+ outputJson(formatSuccess(config));
513
+ }
514
+ else {
515
+ await pretty_logger_1.PrettyLogger.heading('AI SDK Configuration');
516
+ await pretty_logger_1.PrettyLogger.plain(' Defaults:');
517
+ await pretty_logger_1.PrettyLogger.dim(` timeout: ${SAFE_DEFAULTS.timeout}ms`);
518
+ await pretty_logger_1.PrettyLogger.dim(` maxRetries: ${SAFE_DEFAULTS.maxRetries}`);
519
+ await pretty_logger_1.PrettyLogger.dim(` maxOutputTokens: ${SAFE_DEFAULTS.maxOutputTokens}`);
520
+ await pretty_logger_1.PrettyLogger.dim(` redactLogs: ${SAFE_DEFAULTS.redactLogs}`);
521
+ await pretty_logger_1.PrettyLogger.newline();
522
+ await pretty_logger_1.PrettyLogger.plain(' Provider Aliases:');
523
+ for (const [alias, target] of Object.entries(PROVIDER_ALIASES)) {
524
+ await pretty_logger_1.PrettyLogger.dim(` ${alias} → ${target}`);
525
+ }
526
+ await pretty_logger_1.PrettyLogger.newline();
527
+ await pretty_logger_1.PrettyLogger.plain(' Environment (redacted):');
528
+ if (Object.keys(envConfig).length === 0) {
529
+ await pretty_logger_1.PrettyLogger.dim(' No API keys detected');
530
+ }
531
+ else {
532
+ for (const [key, value] of Object.entries(envConfig)) {
533
+ await pretty_logger_1.PrettyLogger.dim(` ${key}: ${value}`);
534
+ }
535
+ }
536
+ }
537
+ }
538
+ catch (error) {
539
+ handleError(error, outputFormat, 'Failed to show config');
540
+ }
541
+ }
542
+ /**
543
+ * Demo trace/attribution headers
544
+ */
545
+ async function traceCommand(args, options, outputFormat) {
546
+ try {
547
+ const { createAISDKBackend, createAttributionMiddleware } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
548
+ const modelString = options.model || 'openai/gpt-4o-mini';
549
+ // Generate demo attribution context
550
+ const attribution = {
551
+ agentId: `agent-${Date.now().toString(36)}`,
552
+ runId: `run-${Math.random().toString(36).slice(2, 10)}`,
553
+ traceId: `trace-${Math.random().toString(36).slice(2, 10)}`,
554
+ sessionId: options.verbose ? `session-demo` : undefined,
555
+ };
556
+ if (outputFormat !== 'json') {
557
+ await pretty_logger_1.PrettyLogger.heading('Attribution Trace Demo');
558
+ await pretty_logger_1.PrettyLogger.info(`Running with model: ${modelString}`);
559
+ await pretty_logger_1.PrettyLogger.newline();
560
+ await pretty_logger_1.PrettyLogger.plain(' Attribution Context:');
561
+ await pretty_logger_1.PrettyLogger.dim(` agentId: ${attribution.agentId}`);
562
+ await pretty_logger_1.PrettyLogger.dim(` runId: ${attribution.runId}`);
563
+ await pretty_logger_1.PrettyLogger.dim(` traceId: ${attribution.traceId}`);
564
+ if (attribution.sessionId) {
565
+ await pretty_logger_1.PrettyLogger.dim(` sessionId: ${attribution.sessionId}`);
566
+ }
567
+ await pretty_logger_1.PrettyLogger.newline();
568
+ await pretty_logger_1.PrettyLogger.plain(' Headers injected:');
569
+ await pretty_logger_1.PrettyLogger.dim(` X-Agent-Id: ${attribution.agentId}`);
570
+ await pretty_logger_1.PrettyLogger.dim(` X-Run-Id: ${attribution.runId}`);
571
+ await pretty_logger_1.PrettyLogger.dim(` X-Trace-Id: ${attribution.traceId}`);
572
+ await pretty_logger_1.PrettyLogger.newline();
573
+ }
574
+ const backend = createAISDKBackend(modelString, {
575
+ timeout: options.timeout || 30000,
576
+ attribution,
577
+ });
578
+ const startTime = Date.now();
579
+ const result = await backend.generateText({
580
+ messages: [{ role: 'user', content: 'Say "Trace OK" and nothing else.' }],
581
+ maxTokens: 10,
582
+ });
583
+ const duration = Date.now() - startTime;
584
+ if (outputFormat === 'json') {
585
+ outputJson(formatSuccess({
586
+ attribution,
587
+ headers: {
588
+ 'X-Agent-Id': attribution.agentId,
589
+ 'X-Run-Id': attribution.runId,
590
+ 'X-Trace-Id': attribution.traceId,
591
+ },
592
+ response: result.text,
593
+ duration_ms: duration,
594
+ }));
595
+ }
596
+ else {
597
+ await pretty_logger_1.PrettyLogger.success(`Response: ${result.text.trim()} (${duration}ms)`);
598
+ await pretty_logger_1.PrettyLogger.newline();
599
+ await pretty_logger_1.PrettyLogger.info('Attribution headers are automatically injected into LLM requests.');
600
+ await pretty_logger_1.PrettyLogger.dim('Use --verbose for session ID.');
601
+ }
602
+ }
603
+ catch (error) {
604
+ handleError(error, outputFormat, 'Failed to run trace demo');
605
+ }
606
+ }
607
+ /**
608
+ * Demo tool calling - shows how tools work with AI SDK
609
+ * Note: AI SDK requires Zod schemas for tools, which requires runtime setup
610
+ */
611
+ async function toolsCommand(args, options, outputFormat) {
612
+ try {
613
+ const modelString = options.model || 'openai/gpt-4o-mini';
614
+ if (outputFormat !== 'json') {
615
+ await pretty_logger_1.PrettyLogger.heading('Tool Calling Demo');
616
+ await pretty_logger_1.PrettyLogger.info(`Model: ${modelString}`);
617
+ await pretty_logger_1.PrettyLogger.newline();
618
+ await pretty_logger_1.PrettyLogger.plain(' AI SDK Tool Calling requires Zod schemas.');
619
+ await pretty_logger_1.PrettyLogger.newline();
620
+ await pretty_logger_1.PrettyLogger.plain(' Example code:');
621
+ await pretty_logger_1.PrettyLogger.dim(` import { generateText, tool } from 'ai';`);
622
+ await pretty_logger_1.PrettyLogger.dim(` import { openai } from '@ai-sdk/openai';`);
623
+ await pretty_logger_1.PrettyLogger.dim(` import { z } from 'zod';`);
624
+ await pretty_logger_1.PrettyLogger.newline();
625
+ await pretty_logger_1.PrettyLogger.dim(` const tools = {`);
626
+ await pretty_logger_1.PrettyLogger.dim(` get_weather: tool({`);
627
+ await pretty_logger_1.PrettyLogger.dim(` description: 'Get weather for a city',`);
628
+ await pretty_logger_1.PrettyLogger.dim(` inputSchema: z.object({`);
629
+ await pretty_logger_1.PrettyLogger.dim(` city: z.string().describe('City name'),`);
630
+ await pretty_logger_1.PrettyLogger.dim(` }),`);
631
+ await pretty_logger_1.PrettyLogger.dim(` }),`);
632
+ await pretty_logger_1.PrettyLogger.dim(` };`);
633
+ await pretty_logger_1.PrettyLogger.newline();
634
+ await pretty_logger_1.PrettyLogger.dim(` const result = await generateText({`);
635
+ await pretty_logger_1.PrettyLogger.dim(` model: openai('gpt-4o-mini'),`);
636
+ await pretty_logger_1.PrettyLogger.dim(` messages: [{ role: 'user', content: 'Weather in Paris?' }],`);
637
+ await pretty_logger_1.PrettyLogger.dim(` tools,`);
638
+ await pretty_logger_1.PrettyLogger.dim(` });`);
639
+ await pretty_logger_1.PrettyLogger.newline();
640
+ await pretty_logger_1.PrettyLogger.info('See examples/ai-sdk/tool-calling.ts for a complete example.');
641
+ }
642
+ else {
643
+ outputJson(formatSuccess({
644
+ model: modelString,
645
+ note: 'AI SDK tool calling requires Zod schemas at runtime',
646
+ example: {
647
+ import: "import { generateText, tool } from 'ai'; import { z } from 'zod';",
648
+ tool: "tool({ description: '...', inputSchema: z.object({ city: z.string() }) })",
649
+ },
650
+ docs: 'See examples/ai-sdk/tool-calling.ts',
651
+ }));
652
+ }
653
+ }
654
+ catch (error) {
655
+ handleError(error, outputFormat, 'Failed to run tools demo');
656
+ }
657
+ }
658
+ /**
659
+ * Demo structured output (JSON schema) - shows how to use generateObject
660
+ * Note: AI SDK requires Zod schemas for structured output
661
+ */
662
+ async function jsonCommand(args, options, outputFormat) {
663
+ try {
664
+ const modelString = options.model || 'openai/gpt-4o-mini';
665
+ if (outputFormat !== 'json') {
666
+ await pretty_logger_1.PrettyLogger.heading('Structured Output (JSON) Demo');
667
+ await pretty_logger_1.PrettyLogger.info(`Model: ${modelString}`);
668
+ await pretty_logger_1.PrettyLogger.newline();
669
+ await pretty_logger_1.PrettyLogger.plain(' AI SDK Structured Output requires Zod schemas.');
670
+ await pretty_logger_1.PrettyLogger.newline();
671
+ await pretty_logger_1.PrettyLogger.plain(' Example code:');
672
+ await pretty_logger_1.PrettyLogger.dim(` import { generateObject } from 'ai';`);
673
+ await pretty_logger_1.PrettyLogger.dim(` import { openai } from '@ai-sdk/openai';`);
674
+ await pretty_logger_1.PrettyLogger.dim(` import { z } from 'zod';`);
675
+ await pretty_logger_1.PrettyLogger.newline();
676
+ await pretty_logger_1.PrettyLogger.dim(` const schema = z.object({`);
677
+ await pretty_logger_1.PrettyLogger.dim(` name: z.string(),`);
678
+ await pretty_logger_1.PrettyLogger.dim(` age: z.number(),`);
679
+ await pretty_logger_1.PrettyLogger.dim(` city: z.string(),`);
680
+ await pretty_logger_1.PrettyLogger.dim(` });`);
681
+ await pretty_logger_1.PrettyLogger.newline();
682
+ await pretty_logger_1.PrettyLogger.dim(` const result = await generateObject({`);
683
+ await pretty_logger_1.PrettyLogger.dim(` model: openai('gpt-4o-mini'),`);
684
+ await pretty_logger_1.PrettyLogger.dim(` schema,`);
685
+ await pretty_logger_1.PrettyLogger.dim(` prompt: 'Generate a fictional person profile.',`);
686
+ await pretty_logger_1.PrettyLogger.dim(` });`);
687
+ await pretty_logger_1.PrettyLogger.newline();
688
+ await pretty_logger_1.PrettyLogger.dim(` console.log(result.object); // { name: '...', age: 25, city: '...' }`);
689
+ await pretty_logger_1.PrettyLogger.newline();
690
+ await pretty_logger_1.PrettyLogger.info('See examples/ai-sdk/structured-output.ts for a complete example.');
691
+ }
692
+ else {
693
+ outputJson(formatSuccess({
694
+ model: modelString,
695
+ note: 'AI SDK structured output requires Zod schemas at runtime',
696
+ example: {
697
+ import: "import { generateObject } from 'ai'; import { z } from 'zod';",
698
+ schema: "z.object({ name: z.string(), age: z.number(), city: z.string() })",
699
+ },
700
+ docs: 'See examples/ai-sdk/structured-output.ts',
701
+ }));
702
+ }
703
+ }
704
+ catch (error) {
705
+ handleError(error, outputFormat, 'Failed to run JSON demo');
706
+ }
707
+ }
708
+ /**
709
+ * Handle errors with proper exit codes and formatting
710
+ */
711
+ async function handleError(error, outputFormat, context) {
712
+ const { AISDKError } = await Promise.resolve().then(() => __importStar(require('../../llm/providers/ai-sdk')));
713
+ let exitCode = LLM_EXIT_CODES.GENERAL_ERROR;
714
+ let errorCode = 'UNKNOWN_ERROR';
715
+ let message = context;
716
+ if (error instanceof AISDKError) {
717
+ message = `${context}: ${error.message}`;
718
+ errorCode = error.code;
719
+ switch (error.code) {
720
+ case 'AUTHENTICATION':
721
+ exitCode = 3; // AUTH_ERROR
722
+ break;
723
+ case 'PROVIDER_NOT_FOUND':
724
+ case 'MODEL_NOT_FOUND':
725
+ exitCode = 4; // PROVIDER_NOT_FOUND
726
+ break;
727
+ case 'NETWORK':
728
+ exitCode = 5; // NETWORK_ERROR
729
+ break;
730
+ case 'TIMEOUT':
731
+ exitCode = 6; // TIMEOUT
732
+ break;
733
+ case 'INVALID_REQUEST':
734
+ exitCode = 2; // INVALID_ARGS
735
+ break;
736
+ }
737
+ }
738
+ else if (error instanceof Error) {
739
+ message = `${context}: ${error.message}`;
740
+ }
741
+ if (outputFormat === 'json') {
742
+ outputJson(formatError(errorCode, message));
743
+ }
744
+ else {
745
+ await pretty_logger_1.PrettyLogger.error(message);
746
+ }
747
+ process.exit(exitCode);
748
+ }