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,310 @@
1
+ "use strict";
2
+ /**
3
+ * Fast Context - Fast retrieval and summarization pipeline
4
+ * Minimizes tokens and latency with deterministic caching
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.FastContext = void 0;
8
+ exports.createFastContext = createFastContext;
9
+ exports.getQuickContext = getQuickContext;
10
+ /**
11
+ * Fast Context class for efficient context retrieval
12
+ */
13
+ class FastContext {
14
+ constructor(config = {}) {
15
+ this.cache = new Map();
16
+ this.sources = new Map();
17
+ this.config = {
18
+ maxTokens: 4000,
19
+ cacheEnabled: true,
20
+ cacheTTL: 300000, // 5 minutes
21
+ ...config
22
+ };
23
+ }
24
+ /**
25
+ * Register a context source
26
+ */
27
+ registerSource(id, type, contents, metadata) {
28
+ const sources = contents.map((content, i) => ({
29
+ id: `${id}_${i}`,
30
+ type,
31
+ content,
32
+ metadata
33
+ }));
34
+ this.sources.set(id, sources);
35
+ }
36
+ /**
37
+ * Register memory as a source
38
+ */
39
+ registerMemory(memory) {
40
+ const entries = memory.getAll();
41
+ const sources = entries.map((entry, i) => ({
42
+ id: `memory_${i}`,
43
+ type: 'memory',
44
+ content: entry.content,
45
+ metadata: entry.metadata
46
+ }));
47
+ this.sources.set('memory', sources);
48
+ }
49
+ /**
50
+ * Register knowledge base as a source
51
+ */
52
+ registerKnowledge(knowledge) {
53
+ // Store reference for dynamic retrieval
54
+ this._knowledgeBase = knowledge;
55
+ }
56
+ /**
57
+ * Get context for a query
58
+ */
59
+ async getContext(query) {
60
+ const startTime = Date.now();
61
+ // Check cache
62
+ const cacheKey = this.getCacheKey(query);
63
+ if (this.config.cacheEnabled) {
64
+ const cached = this.getFromCache(cacheKey);
65
+ if (cached) {
66
+ return {
67
+ ...cached.result,
68
+ cached: true,
69
+ latencyMs: Date.now() - startTime
70
+ };
71
+ }
72
+ }
73
+ // Gather relevant sources
74
+ const relevantSources = await this.gatherRelevantSources(query);
75
+ // Build context within token limit
76
+ const { context, sources, tokenCount } = await this.buildContext(relevantSources, query);
77
+ const result = {
78
+ context,
79
+ sources,
80
+ tokenCount,
81
+ cached: false,
82
+ latencyMs: Date.now() - startTime
83
+ };
84
+ // Cache result
85
+ if (this.config.cacheEnabled) {
86
+ this.addToCache(cacheKey, result);
87
+ }
88
+ return result;
89
+ }
90
+ /**
91
+ * Gather relevant sources for a query
92
+ */
93
+ async gatherRelevantSources(query) {
94
+ const allSources = [];
95
+ // Get from registered sources
96
+ for (const sources of this.sources.values()) {
97
+ allSources.push(...sources);
98
+ }
99
+ // Get from knowledge base if registered
100
+ const kb = this._knowledgeBase;
101
+ if (kb) {
102
+ try {
103
+ const kbResults = await kb.search(query, 10);
104
+ for (let i = 0; i < kbResults.length; i++) {
105
+ allSources.push({
106
+ id: `kb_${i}`,
107
+ type: 'knowledge',
108
+ content: kbResults[i].content,
109
+ relevance: kbResults[i].score
110
+ });
111
+ }
112
+ }
113
+ catch {
114
+ // Ignore knowledge base errors
115
+ }
116
+ }
117
+ // Score relevance if embedding provider available
118
+ if (this.config.embeddingProvider) {
119
+ await this.scoreRelevance(allSources, query);
120
+ }
121
+ else {
122
+ // Simple text matching fallback
123
+ this.scoreRelevanceSimple(allSources, query);
124
+ }
125
+ // Sort by relevance
126
+ allSources.sort((a, b) => (b.relevance || 0) - (a.relevance || 0));
127
+ return allSources;
128
+ }
129
+ /**
130
+ * Score relevance using embeddings
131
+ */
132
+ async scoreRelevance(sources, query) {
133
+ if (!this.config.embeddingProvider)
134
+ return;
135
+ const queryEmbedding = await this.config.embeddingProvider.embed(query);
136
+ for (const source of sources) {
137
+ if (source.relevance !== undefined)
138
+ continue; // Already scored
139
+ const sourceEmbedding = await this.config.embeddingProvider.embed(source.content);
140
+ source.relevance = this.cosineSimilarity(queryEmbedding, sourceEmbedding);
141
+ }
142
+ }
143
+ /**
144
+ * Simple text-based relevance scoring
145
+ */
146
+ scoreRelevanceSimple(sources, query) {
147
+ const queryWords = query.toLowerCase().split(/\s+/);
148
+ for (const source of sources) {
149
+ if (source.relevance !== undefined)
150
+ continue;
151
+ const contentLower = source.content.toLowerCase();
152
+ let score = 0;
153
+ for (const word of queryWords) {
154
+ if (contentLower.includes(word)) {
155
+ score += 1 / queryWords.length;
156
+ }
157
+ }
158
+ // Boost for exact phrase match
159
+ if (contentLower.includes(query.toLowerCase())) {
160
+ score += 0.5;
161
+ }
162
+ source.relevance = Math.min(score, 1);
163
+ }
164
+ }
165
+ /**
166
+ * Build context from sources within token limit
167
+ */
168
+ async buildContext(sources, query) {
169
+ const maxTokens = this.config.maxTokens || 4000;
170
+ const usedSources = [];
171
+ const contextParts = [];
172
+ let tokenCount = 0;
173
+ for (const source of sources) {
174
+ const sourceTokens = this.estimateTokens(source.content);
175
+ if (tokenCount + sourceTokens <= maxTokens) {
176
+ contextParts.push(source.content);
177
+ usedSources.push(source);
178
+ tokenCount += sourceTokens;
179
+ }
180
+ else if (this.config.summarizer && sourceTokens > 100) {
181
+ // Try to summarize if too long
182
+ const remainingTokens = maxTokens - tokenCount;
183
+ if (remainingTokens > 50) {
184
+ const summary = await this.config.summarizer(source.content, remainingTokens);
185
+ const summaryTokens = this.estimateTokens(summary);
186
+ if (tokenCount + summaryTokens <= maxTokens) {
187
+ contextParts.push(summary);
188
+ usedSources.push({ ...source, content: summary, metadata: { ...source.metadata, summarized: true } });
189
+ tokenCount += summaryTokens;
190
+ }
191
+ }
192
+ }
193
+ if (tokenCount >= maxTokens * 0.95)
194
+ break;
195
+ }
196
+ return {
197
+ context: contextParts.join('\n\n'),
198
+ sources: usedSources,
199
+ tokenCount
200
+ };
201
+ }
202
+ /**
203
+ * Get cache key for query
204
+ */
205
+ getCacheKey(query) {
206
+ // Simple hash
207
+ let hash = 0;
208
+ for (let i = 0; i < query.length; i++) {
209
+ const char = query.charCodeAt(i);
210
+ hash = ((hash << 5) - hash) + char;
211
+ hash = hash & hash;
212
+ }
213
+ return `ctx_${hash}`;
214
+ }
215
+ /**
216
+ * Get from cache
217
+ */
218
+ getFromCache(key) {
219
+ const entry = this.cache.get(key);
220
+ if (!entry)
221
+ return null;
222
+ // Check TTL
223
+ if (Date.now() - entry.timestamp > (this.config.cacheTTL || 300000)) {
224
+ this.cache.delete(key);
225
+ return null;
226
+ }
227
+ entry.hits++;
228
+ return entry;
229
+ }
230
+ /**
231
+ * Add to cache
232
+ */
233
+ addToCache(key, result) {
234
+ this.cache.set(key, {
235
+ result,
236
+ timestamp: Date.now(),
237
+ hits: 0
238
+ });
239
+ // Limit cache size
240
+ if (this.cache.size > 100) {
241
+ const oldest = Array.from(this.cache.entries())
242
+ .sort((a, b) => a[1].timestamp - b[1].timestamp)[0];
243
+ if (oldest) {
244
+ this.cache.delete(oldest[0]);
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * Clear cache
250
+ */
251
+ clearCache() {
252
+ this.cache.clear();
253
+ }
254
+ /**
255
+ * Get cache stats
256
+ */
257
+ getCacheStats() {
258
+ let totalHits = 0;
259
+ for (const entry of this.cache.values()) {
260
+ totalHits += entry.hits;
261
+ }
262
+ return { size: this.cache.size, totalHits };
263
+ }
264
+ /**
265
+ * Estimate token count
266
+ */
267
+ estimateTokens(text) {
268
+ return Math.ceil(text.length / 4);
269
+ }
270
+ /**
271
+ * Cosine similarity
272
+ */
273
+ cosineSimilarity(a, b) {
274
+ if (a.length !== b.length)
275
+ return 0;
276
+ let dotProduct = 0;
277
+ let normA = 0;
278
+ let normB = 0;
279
+ for (let i = 0; i < a.length; i++) {
280
+ dotProduct += a[i] * b[i];
281
+ normA += a[i] * a[i];
282
+ normB += b[i] * b[i];
283
+ }
284
+ const denominator = Math.sqrt(normA) * Math.sqrt(normB);
285
+ return denominator === 0 ? 0 : dotProduct / denominator;
286
+ }
287
+ /**
288
+ * Clear all sources
289
+ */
290
+ clearSources() {
291
+ this.sources.clear();
292
+ this._knowledgeBase = undefined;
293
+ }
294
+ }
295
+ exports.FastContext = FastContext;
296
+ /**
297
+ * Create a fast context instance
298
+ */
299
+ function createFastContext(config) {
300
+ return new FastContext(config);
301
+ }
302
+ /**
303
+ * Quick context retrieval
304
+ */
305
+ async function getQuickContext(query, sources, maxTokens) {
306
+ const fc = createFastContext({ maxTokens, cacheEnabled: false });
307
+ fc.registerSource('quick', 'custom', sources);
308
+ const result = await fc.getContext(query);
309
+ return result.context;
310
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Flow Display - Textual DAG visualization for workflows
3
+ */
4
+ export interface FlowNode {
5
+ id: string;
6
+ name: string;
7
+ type: 'agent' | 'tool' | 'condition' | 'parallel' | 'start' | 'end';
8
+ status?: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
9
+ children?: string[];
10
+ metadata?: Record<string, any>;
11
+ }
12
+ export interface FlowGraph {
13
+ nodes: Map<string, FlowNode>;
14
+ edges: Array<{
15
+ from: string;
16
+ to: string;
17
+ label?: string;
18
+ }>;
19
+ }
20
+ export interface FlowDisplayConfig {
21
+ showStatus?: boolean;
22
+ showMetadata?: boolean;
23
+ compact?: boolean;
24
+ maxWidth?: number;
25
+ }
26
+ /**
27
+ * Flow Display class for DAG visualization
28
+ */
29
+ export declare class FlowDisplay {
30
+ private graph;
31
+ private config;
32
+ constructor(config?: FlowDisplayConfig);
33
+ /**
34
+ * Add a node to the graph
35
+ */
36
+ addNode(node: FlowNode): void;
37
+ /**
38
+ * Add an edge between nodes
39
+ */
40
+ addEdge(from: string, to: string, label?: string): void;
41
+ /**
42
+ * Update node status
43
+ */
44
+ updateStatus(id: string, status: FlowNode['status']): void;
45
+ /**
46
+ * Build graph from workflow steps
47
+ */
48
+ fromWorkflowSteps(steps: Array<{
49
+ name: string;
50
+ type?: string;
51
+ condition?: string;
52
+ }>): void;
53
+ /**
54
+ * Render the graph as text
55
+ */
56
+ render(): string;
57
+ /**
58
+ * Render a single node and its children
59
+ */
60
+ private renderNode;
61
+ /**
62
+ * Format a node for display
63
+ */
64
+ private formatNode;
65
+ /**
66
+ * Render as simple ASCII box diagram
67
+ */
68
+ renderBoxes(): string;
69
+ /**
70
+ * Create a box for a node
71
+ */
72
+ private createBox;
73
+ /**
74
+ * Get status character
75
+ */
76
+ private getStatusChar;
77
+ /**
78
+ * Clear the graph
79
+ */
80
+ clear(): void;
81
+ /**
82
+ * Get graph data
83
+ */
84
+ getGraph(): FlowGraph;
85
+ /**
86
+ * Export to DOT format (for Graphviz)
87
+ */
88
+ toDot(): string;
89
+ }
90
+ /**
91
+ * Create a flow display instance
92
+ */
93
+ export declare function createFlowDisplay(config?: FlowDisplayConfig): FlowDisplay;
94
+ /**
95
+ * Quick render workflow steps
96
+ */
97
+ export declare function renderWorkflow(steps: Array<{
98
+ name: string;
99
+ type?: string;
100
+ }>): string;
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ /**
3
+ * Flow Display - Textual DAG visualization for workflows
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FlowDisplay = void 0;
7
+ exports.createFlowDisplay = createFlowDisplay;
8
+ exports.renderWorkflow = renderWorkflow;
9
+ /**
10
+ * Flow Display class for DAG visualization
11
+ */
12
+ class FlowDisplay {
13
+ constructor(config = {}) {
14
+ this.config = {
15
+ showStatus: true,
16
+ showMetadata: false,
17
+ compact: false,
18
+ maxWidth: 80,
19
+ ...config
20
+ };
21
+ this.graph = {
22
+ nodes: new Map(),
23
+ edges: []
24
+ };
25
+ }
26
+ /**
27
+ * Add a node to the graph
28
+ */
29
+ addNode(node) {
30
+ this.graph.nodes.set(node.id, node);
31
+ }
32
+ /**
33
+ * Add an edge between nodes
34
+ */
35
+ addEdge(from, to, label) {
36
+ this.graph.edges.push({ from, to, label });
37
+ }
38
+ /**
39
+ * Update node status
40
+ */
41
+ updateStatus(id, status) {
42
+ const node = this.graph.nodes.get(id);
43
+ if (node) {
44
+ node.status = status;
45
+ }
46
+ }
47
+ /**
48
+ * Build graph from workflow steps
49
+ */
50
+ fromWorkflowSteps(steps) {
51
+ this.graph.nodes.clear();
52
+ this.graph.edges = [];
53
+ // Add start node
54
+ this.addNode({ id: 'start', name: 'Start', type: 'start' });
55
+ let prevId = 'start';
56
+ for (let i = 0; i < steps.length; i++) {
57
+ const step = steps[i];
58
+ const id = `step_${i}`;
59
+ this.addNode({
60
+ id,
61
+ name: step.name,
62
+ type: step.type || 'agent',
63
+ status: 'pending'
64
+ });
65
+ this.addEdge(prevId, id, step.condition);
66
+ prevId = id;
67
+ }
68
+ // Add end node
69
+ this.addNode({ id: 'end', name: 'End', type: 'end' });
70
+ this.addEdge(prevId, 'end');
71
+ }
72
+ /**
73
+ * Render the graph as text
74
+ */
75
+ render() {
76
+ const lines = [];
77
+ const visited = new Set();
78
+ // Find root nodes (nodes with no incoming edges)
79
+ const hasIncoming = new Set(this.graph.edges.map(e => e.to));
80
+ const roots = Array.from(this.graph.nodes.keys()).filter(id => !hasIncoming.has(id));
81
+ if (roots.length === 0 && this.graph.nodes.size > 0) {
82
+ const firstKey = this.graph.nodes.keys().next().value;
83
+ if (firstKey)
84
+ roots.push(firstKey);
85
+ }
86
+ for (const root of roots) {
87
+ this.renderNode(root, '', true, lines, visited);
88
+ }
89
+ return lines.join('\n');
90
+ }
91
+ /**
92
+ * Render a single node and its children
93
+ */
94
+ renderNode(id, prefix, isLast, lines, visited) {
95
+ if (visited.has(id)) {
96
+ lines.push(`${prefix}${isLast ? '└── ' : '├── '}(cycle: ${id})`);
97
+ return;
98
+ }
99
+ visited.add(id);
100
+ const node = this.graph.nodes.get(id);
101
+ if (!node)
102
+ return;
103
+ const connector = isLast ? '└── ' : '├── ';
104
+ const nodeStr = this.formatNode(node);
105
+ lines.push(`${prefix}${connector}${nodeStr}`);
106
+ // Find children
107
+ const childEdges = this.graph.edges.filter(e => e.from === id);
108
+ const childPrefix = prefix + (isLast ? ' ' : '│ ');
109
+ for (let i = 0; i < childEdges.length; i++) {
110
+ const edge = childEdges[i];
111
+ const isLastChild = i === childEdges.length - 1;
112
+ if (edge.label) {
113
+ lines.push(`${childPrefix}${isLastChild ? '└' : '├'}─[${edge.label}]─┐`);
114
+ this.renderNode(edge.to, childPrefix + (isLastChild ? ' ' : '│ '), true, lines, visited);
115
+ }
116
+ else {
117
+ this.renderNode(edge.to, childPrefix, isLastChild, lines, visited);
118
+ }
119
+ }
120
+ }
121
+ /**
122
+ * Format a node for display
123
+ */
124
+ formatNode(node) {
125
+ const parts = [];
126
+ // Status indicator
127
+ if (this.config.showStatus && node.status) {
128
+ const statusIcons = {
129
+ pending: '○',
130
+ running: '◐',
131
+ completed: '●',
132
+ failed: '✗',
133
+ skipped: '◌'
134
+ };
135
+ parts.push(statusIcons[node.status] || '?');
136
+ }
137
+ // Type indicator
138
+ const typeIcons = {
139
+ agent: '🤖',
140
+ tool: '🔧',
141
+ condition: '❓',
142
+ parallel: '⫘',
143
+ start: '▶',
144
+ end: '■'
145
+ };
146
+ if (!this.config.compact) {
147
+ parts.push(typeIcons[node.type] || '□');
148
+ }
149
+ // Name
150
+ parts.push(node.name);
151
+ // Metadata
152
+ if (this.config.showMetadata && node.metadata) {
153
+ const meta = Object.entries(node.metadata)
154
+ .map(([k, v]) => `${k}=${v}`)
155
+ .join(', ');
156
+ if (meta) {
157
+ parts.push(`(${meta})`);
158
+ }
159
+ }
160
+ return parts.join(' ');
161
+ }
162
+ /**
163
+ * Render as simple ASCII box diagram
164
+ */
165
+ renderBoxes() {
166
+ const lines = [];
167
+ const nodeList = Array.from(this.graph.nodes.values());
168
+ for (let i = 0; i < nodeList.length; i++) {
169
+ const node = nodeList[i];
170
+ const box = this.createBox(node);
171
+ lines.push(...box);
172
+ if (i < nodeList.length - 1) {
173
+ lines.push(' │');
174
+ lines.push(' ▼');
175
+ }
176
+ }
177
+ return lines.join('\n');
178
+ }
179
+ /**
180
+ * Create a box for a node
181
+ */
182
+ createBox(node) {
183
+ const name = node.name;
184
+ const width = Math.max(name.length + 4, 20);
185
+ const padding = Math.floor((width - name.length - 2) / 2);
186
+ const statusChar = this.config.showStatus ? this.getStatusChar(node.status) : '';
187
+ const top = '┌' + '─'.repeat(width) + '┐';
188
+ const middle = '│' + ' '.repeat(padding) + statusChar + name + ' '.repeat(width - padding - name.length - statusChar.length) + '│';
189
+ const bottom = '└' + '─'.repeat(width) + '┘';
190
+ return [top, middle, bottom];
191
+ }
192
+ /**
193
+ * Get status character
194
+ */
195
+ getStatusChar(status) {
196
+ const chars = {
197
+ pending: '○ ',
198
+ running: '◐ ',
199
+ completed: '● ',
200
+ failed: '✗ ',
201
+ skipped: '◌ '
202
+ };
203
+ return status ? (chars[status] || '') : '';
204
+ }
205
+ /**
206
+ * Clear the graph
207
+ */
208
+ clear() {
209
+ this.graph.nodes.clear();
210
+ this.graph.edges = [];
211
+ }
212
+ /**
213
+ * Get graph data
214
+ */
215
+ getGraph() {
216
+ return this.graph;
217
+ }
218
+ /**
219
+ * Export to DOT format (for Graphviz)
220
+ */
221
+ toDot() {
222
+ const lines = ['digraph workflow {'];
223
+ lines.push(' rankdir=TB;');
224
+ lines.push(' node [shape=box];');
225
+ for (const [id, node] of this.graph.nodes) {
226
+ const label = node.name.replace(/"/g, '\\"');
227
+ const style = node.status === 'completed' ? 'filled' : '';
228
+ const fillcolor = node.status === 'completed' ? 'lightgreen' :
229
+ node.status === 'failed' ? 'lightcoral' : 'white';
230
+ lines.push(` "${id}" [label="${label}" style="${style}" fillcolor="${fillcolor}"];`);
231
+ }
232
+ for (const edge of this.graph.edges) {
233
+ const label = edge.label ? ` [label="${edge.label}"]` : '';
234
+ lines.push(` "${edge.from}" -> "${edge.to}"${label};`);
235
+ }
236
+ lines.push('}');
237
+ return lines.join('\n');
238
+ }
239
+ }
240
+ exports.FlowDisplay = FlowDisplay;
241
+ /**
242
+ * Create a flow display instance
243
+ */
244
+ function createFlowDisplay(config) {
245
+ return new FlowDisplay(config);
246
+ }
247
+ /**
248
+ * Quick render workflow steps
249
+ */
250
+ function renderWorkflow(steps) {
251
+ const display = createFlowDisplay();
252
+ display.fromWorkflowSteps(steps);
253
+ return display.render();
254
+ }