agent-orcha 0.0.5 → 0.0.8

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 (404) hide show
  1. package/README.md +250 -1275
  2. package/dist/lib/agents/agent-executor.d.ts +4 -2
  3. package/dist/lib/agents/agent-executor.d.ts.map +1 -1
  4. package/dist/lib/agents/agent-executor.js +85 -53
  5. package/dist/lib/agents/agent-executor.js.map +1 -1
  6. package/dist/lib/agents/agent-loader.d.ts +3 -0
  7. package/dist/lib/agents/agent-loader.d.ts.map +1 -1
  8. package/dist/lib/agents/agent-loader.js +10 -1
  9. package/dist/lib/agents/agent-loader.js.map +1 -1
  10. package/dist/lib/agents/react-loop.d.ts.map +1 -1
  11. package/dist/lib/agents/react-loop.js +207 -142
  12. package/dist/lib/agents/react-loop.js.map +1 -1
  13. package/dist/lib/agents/types.d.ts +181 -18
  14. package/dist/lib/agents/types.d.ts.map +1 -1
  15. package/dist/lib/agents/types.js +18 -2
  16. package/dist/lib/agents/types.js.map +1 -1
  17. package/dist/lib/functions/function-loader.d.ts +2 -0
  18. package/dist/lib/functions/function-loader.d.ts.map +1 -1
  19. package/dist/lib/functions/function-loader.js +10 -0
  20. package/dist/lib/functions/function-loader.js.map +1 -1
  21. package/dist/lib/functions/simple-function-wrapper.js +3 -3
  22. package/dist/lib/functions/simple-function-wrapper.js.map +1 -1
  23. package/dist/lib/integrations/email.d.ts +38 -0
  24. package/dist/lib/integrations/email.d.ts.map +1 -0
  25. package/dist/lib/integrations/email.js +249 -0
  26. package/dist/lib/integrations/email.js.map +1 -0
  27. package/dist/lib/integrations/integration-manager.d.ts +5 -0
  28. package/dist/lib/integrations/integration-manager.d.ts.map +1 -1
  29. package/dist/lib/integrations/integration-manager.js +53 -3
  30. package/dist/lib/integrations/integration-manager.js.map +1 -1
  31. package/dist/lib/integrations/types.d.ts +187 -4
  32. package/dist/lib/integrations/types.d.ts.map +1 -1
  33. package/dist/lib/integrations/types.js +24 -1
  34. package/dist/lib/integrations/types.js.map +1 -1
  35. package/dist/lib/knowledge/knowledge-store.d.ts +7 -1
  36. package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -1
  37. package/dist/lib/knowledge/knowledge-store.js +96 -8
  38. package/dist/lib/knowledge/knowledge-store.js.map +1 -1
  39. package/dist/lib/knowledge/loaders/file-loaders.d.ts +8 -3
  40. package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -1
  41. package/dist/lib/knowledge/loaders/file-loaders.js +96 -75
  42. package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -1
  43. package/dist/lib/knowledge/loaders/web-loader.d.ts +12 -3
  44. package/dist/lib/knowledge/loaders/web-loader.d.ts.map +1 -1
  45. package/dist/lib/knowledge/loaders/web-loader.js +56 -22
  46. package/dist/lib/knowledge/loaders/web-loader.js.map +1 -1
  47. package/dist/lib/knowledge/sqlite-store.d.ts.map +1 -1
  48. package/dist/lib/knowledge/sqlite-store.js +19 -10
  49. package/dist/lib/knowledge/sqlite-store.js.map +1 -1
  50. package/dist/lib/knowledge/types.d.ts +69 -33
  51. package/dist/lib/knowledge/types.d.ts.map +1 -1
  52. package/dist/lib/knowledge/types.js +18 -3
  53. package/dist/lib/knowledge/types.js.map +1 -1
  54. package/dist/lib/llm/index.d.ts +1 -1
  55. package/dist/lib/llm/index.d.ts.map +1 -1
  56. package/dist/lib/llm/index.js +1 -1
  57. package/dist/lib/llm/index.js.map +1 -1
  58. package/dist/lib/llm/llm-call-logger.d.ts +3 -1
  59. package/dist/lib/llm/llm-call-logger.d.ts.map +1 -1
  60. package/dist/lib/llm/llm-call-logger.js +31 -26
  61. package/dist/lib/llm/llm-call-logger.js.map +1 -1
  62. package/dist/lib/llm/llm-config.d.ts +59 -8
  63. package/dist/lib/llm/llm-config.d.ts.map +1 -1
  64. package/dist/lib/llm/llm-config.js +163 -17
  65. package/dist/lib/llm/llm-config.js.map +1 -1
  66. package/dist/lib/llm/llm-factory.d.ts +1 -2
  67. package/dist/lib/llm/llm-factory.d.ts.map +1 -1
  68. package/dist/lib/llm/llm-factory.js +44 -8
  69. package/dist/lib/llm/llm-factory.js.map +1 -1
  70. package/dist/lib/llm/providers/anthropic-chat-model.d.ts +5 -1
  71. package/dist/lib/llm/providers/anthropic-chat-model.d.ts.map +1 -1
  72. package/dist/lib/llm/providers/anthropic-chat-model.js +118 -42
  73. package/dist/lib/llm/providers/anthropic-chat-model.js.map +1 -1
  74. package/dist/lib/llm/providers/gemini-chat-model.d.ts +3 -2
  75. package/dist/lib/llm/providers/gemini-chat-model.d.ts.map +1 -1
  76. package/dist/lib/llm/providers/gemini-chat-model.js +83 -24
  77. package/dist/lib/llm/providers/gemini-chat-model.js.map +1 -1
  78. package/dist/lib/llm/providers/openai-chat-model.d.ts +20 -1
  79. package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -1
  80. package/dist/lib/llm/providers/openai-chat-model.js +265 -32
  81. package/dist/lib/llm/providers/openai-chat-model.js.map +1 -1
  82. package/dist/lib/llm/providers/openai-embeddings.d.ts.map +1 -1
  83. package/dist/lib/llm/providers/openai-embeddings.js +41 -10
  84. package/dist/lib/llm/providers/openai-embeddings.js.map +1 -1
  85. package/dist/lib/local-llm/binary-manager.d.ts +66 -0
  86. package/dist/lib/local-llm/binary-manager.d.ts.map +1 -0
  87. package/dist/lib/local-llm/binary-manager.js +441 -0
  88. package/dist/lib/local-llm/binary-manager.js.map +1 -0
  89. package/dist/lib/local-llm/engine-interface.d.ts +47 -0
  90. package/dist/lib/local-llm/engine-interface.d.ts.map +1 -0
  91. package/dist/lib/local-llm/engine-interface.js +2 -0
  92. package/dist/lib/local-llm/engine-interface.js.map +1 -0
  93. package/dist/lib/local-llm/engine-registry.d.ts +20 -0
  94. package/dist/lib/local-llm/engine-registry.d.ts.map +1 -0
  95. package/dist/lib/local-llm/engine-registry.js +56 -0
  96. package/dist/lib/local-llm/engine-registry.js.map +1 -0
  97. package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts +31 -0
  98. package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts.map +1 -0
  99. package/dist/lib/local-llm/engines/llama-cpp-engine.js +164 -0
  100. package/dist/lib/local-llm/engines/llama-cpp-engine.js.map +1 -0
  101. package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts +31 -0
  102. package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts.map +1 -0
  103. package/dist/lib/local-llm/engines/mlx-serve-engine.js +161 -0
  104. package/dist/lib/local-llm/engines/mlx-serve-engine.js.map +1 -0
  105. package/dist/lib/local-llm/gguf-reader.d.ts +20 -0
  106. package/dist/lib/local-llm/gguf-reader.d.ts.map +1 -0
  107. package/dist/lib/local-llm/gguf-reader.js +190 -0
  108. package/dist/lib/local-llm/gguf-reader.js.map +1 -0
  109. package/dist/lib/local-llm/index.d.ts +9 -0
  110. package/dist/lib/local-llm/index.d.ts.map +1 -0
  111. package/dist/lib/local-llm/index.js +6 -0
  112. package/dist/lib/local-llm/index.js.map +1 -0
  113. package/dist/lib/local-llm/llama-server-process.d.ts +42 -0
  114. package/dist/lib/local-llm/llama-server-process.d.ts.map +1 -0
  115. package/dist/lib/local-llm/llama-server-process.js +237 -0
  116. package/dist/lib/local-llm/llama-server-process.js.map +1 -0
  117. package/dist/lib/local-llm/mlx-binary-manager.d.ts +33 -0
  118. package/dist/lib/local-llm/mlx-binary-manager.d.ts.map +1 -0
  119. package/dist/lib/local-llm/mlx-binary-manager.js +211 -0
  120. package/dist/lib/local-llm/mlx-binary-manager.js.map +1 -0
  121. package/dist/lib/local-llm/mlx-server-process.d.ts +26 -0
  122. package/dist/lib/local-llm/mlx-server-process.d.ts.map +1 -0
  123. package/dist/lib/local-llm/mlx-server-process.js +210 -0
  124. package/dist/lib/local-llm/mlx-server-process.js.map +1 -0
  125. package/dist/lib/local-llm/model-manager.d.ts +33 -0
  126. package/dist/lib/local-llm/model-manager.d.ts.map +1 -0
  127. package/dist/lib/local-llm/model-manager.js +591 -0
  128. package/dist/lib/local-llm/model-manager.js.map +1 -0
  129. package/dist/lib/local-llm/types.d.ts +51 -0
  130. package/dist/lib/local-llm/types.d.ts.map +1 -0
  131. package/dist/lib/local-llm/types.js +2 -0
  132. package/dist/lib/local-llm/types.js.map +1 -0
  133. package/dist/lib/logger.d.ts +2 -0
  134. package/dist/lib/logger.d.ts.map +1 -1
  135. package/dist/lib/logger.js +68 -6
  136. package/dist/lib/logger.js.map +1 -1
  137. package/dist/lib/mcp/mcp-client.d.ts.map +1 -1
  138. package/dist/lib/mcp/mcp-client.js +5 -3
  139. package/dist/lib/mcp/mcp-client.js.map +1 -1
  140. package/dist/lib/mcp/types.d.ts +0 -9
  141. package/dist/lib/mcp/types.d.ts.map +1 -1
  142. package/dist/lib/mcp/types.js +1 -2
  143. package/dist/lib/mcp/types.js.map +1 -1
  144. package/dist/lib/memory/memory-manager.d.ts +1 -0
  145. package/dist/lib/memory/memory-manager.d.ts.map +1 -1
  146. package/dist/lib/memory/memory-manager.js +9 -0
  147. package/dist/lib/memory/memory-manager.js.map +1 -1
  148. package/dist/lib/orchestrator.d.ts +11 -8
  149. package/dist/lib/orchestrator.d.ts.map +1 -1
  150. package/dist/lib/orchestrator.js +246 -5
  151. package/dist/lib/orchestrator.js.map +1 -1
  152. package/dist/lib/sandbox/cdp-client.d.ts +15 -0
  153. package/dist/lib/sandbox/cdp-client.d.ts.map +1 -0
  154. package/dist/lib/sandbox/cdp-client.js +139 -0
  155. package/dist/lib/sandbox/cdp-client.js.map +1 -0
  156. package/dist/lib/sandbox/html-to-markdown.d.ts +9 -1
  157. package/dist/lib/sandbox/html-to-markdown.d.ts.map +1 -1
  158. package/dist/lib/sandbox/html-to-markdown.js +67 -10
  159. package/dist/lib/sandbox/html-to-markdown.js.map +1 -1
  160. package/dist/lib/sandbox/index.d.ts +6 -0
  161. package/dist/lib/sandbox/index.d.ts.map +1 -1
  162. package/dist/lib/sandbox/index.js +5 -0
  163. package/dist/lib/sandbox/index.js.map +1 -1
  164. package/dist/lib/sandbox/page-readiness.d.ts +37 -0
  165. package/dist/lib/sandbox/page-readiness.d.ts.map +1 -0
  166. package/dist/lib/sandbox/page-readiness.js +268 -0
  167. package/dist/lib/sandbox/page-readiness.js.map +1 -0
  168. package/dist/lib/sandbox/sandbox-browser.d.ts +4 -0
  169. package/dist/lib/sandbox/sandbox-browser.d.ts.map +1 -0
  170. package/dist/lib/sandbox/sandbox-browser.js +316 -0
  171. package/dist/lib/sandbox/sandbox-browser.js.map +1 -0
  172. package/dist/lib/sandbox/sandbox-container.d.ts +39 -0
  173. package/dist/lib/sandbox/sandbox-container.d.ts.map +1 -0
  174. package/dist/lib/sandbox/sandbox-container.js +176 -0
  175. package/dist/lib/sandbox/sandbox-container.js.map +1 -0
  176. package/dist/lib/sandbox/sandbox-file.d.ts +4 -0
  177. package/dist/lib/sandbox/sandbox-file.d.ts.map +1 -0
  178. package/dist/lib/sandbox/sandbox-file.js +169 -0
  179. package/dist/lib/sandbox/sandbox-file.js.map +1 -0
  180. package/dist/lib/sandbox/sandbox-shell.d.ts +5 -0
  181. package/dist/lib/sandbox/sandbox-shell.d.ts.map +1 -0
  182. package/dist/lib/sandbox/sandbox-shell.js +111 -0
  183. package/dist/lib/sandbox/sandbox-shell.js.map +1 -0
  184. package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -1
  185. package/dist/lib/sandbox/sandbox-web.js +64 -24
  186. package/dist/lib/sandbox/sandbox-web.js.map +1 -1
  187. package/dist/lib/sandbox/types.d.ts +9 -0
  188. package/dist/lib/sandbox/types.d.ts.map +1 -1
  189. package/dist/lib/sandbox/types.js +1 -0
  190. package/dist/lib/sandbox/types.js.map +1 -1
  191. package/dist/lib/sandbox/vision-browser.d.ts +4 -0
  192. package/dist/lib/sandbox/vision-browser.d.ts.map +1 -0
  193. package/dist/lib/sandbox/vision-browser.js +298 -0
  194. package/dist/lib/sandbox/vision-browser.js.map +1 -0
  195. package/dist/lib/sea/app-window.d.ts +7 -0
  196. package/dist/lib/sea/app-window.d.ts.map +1 -0
  197. package/dist/lib/sea/app-window.js +95 -0
  198. package/dist/lib/sea/app-window.js.map +1 -0
  199. package/dist/lib/sea/bootstrap.d.ts +18 -0
  200. package/dist/lib/sea/bootstrap.d.ts.map +1 -0
  201. package/dist/lib/sea/bootstrap.js +103 -0
  202. package/dist/lib/sea/bootstrap.js.map +1 -0
  203. package/dist/lib/sea/sqlite-vec-shim.d.ts +3 -0
  204. package/dist/lib/sea/sqlite-vec-shim.d.ts.map +1 -0
  205. package/dist/lib/sea/sqlite-vec-shim.js +10 -0
  206. package/dist/lib/sea/sqlite-vec-shim.js.map +1 -0
  207. package/dist/lib/skills/skill-loader.d.ts +2 -0
  208. package/dist/lib/skills/skill-loader.d.ts.map +1 -1
  209. package/dist/lib/skills/skill-loader.js +12 -1
  210. package/dist/lib/skills/skill-loader.js.map +1 -1
  211. package/dist/lib/tasks/task-manager.d.ts +3 -1
  212. package/dist/lib/tasks/task-manager.d.ts.map +1 -1
  213. package/dist/lib/tasks/task-manager.js +11 -0
  214. package/dist/lib/tasks/task-manager.js.map +1 -1
  215. package/dist/lib/tasks/task-store.d.ts +1 -1
  216. package/dist/lib/tasks/task-store.d.ts.map +1 -1
  217. package/dist/lib/tasks/task-store.js.map +1 -1
  218. package/dist/lib/tasks/types.d.ts +18 -0
  219. package/dist/lib/tasks/types.d.ts.map +1 -1
  220. package/dist/lib/tools/built-in/integration-tools.d.ts +4 -0
  221. package/dist/lib/tools/built-in/integration-tools.d.ts.map +1 -0
  222. package/dist/lib/tools/built-in/integration-tools.js +47 -0
  223. package/dist/lib/tools/built-in/integration-tools.js.map +1 -0
  224. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts +1 -2
  225. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts.map +1 -1
  226. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js +17 -17
  227. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js.map +1 -1
  228. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts.map +1 -1
  229. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js +2 -4
  230. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js.map +1 -1
  231. package/dist/lib/tools/built-in/knowledge-search.tool.js +4 -4
  232. package/dist/lib/tools/built-in/knowledge-search.tool.js.map +1 -1
  233. package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts.map +1 -1
  234. package/dist/lib/tools/built-in/knowledge-sql.tool.js +74 -40
  235. package/dist/lib/tools/built-in/knowledge-sql.tool.js.map +1 -1
  236. package/dist/lib/tools/built-in/knowledge-tools-factory.js +2 -2
  237. package/dist/lib/tools/built-in/knowledge-tools-factory.js.map +1 -1
  238. package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts +1 -2
  239. package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts.map +1 -1
  240. package/dist/lib/tools/built-in/knowledge-traverse.tool.js +5 -11
  241. package/dist/lib/tools/built-in/knowledge-traverse.tool.js.map +1 -1
  242. package/dist/lib/tools/built-in/query-validators.d.ts.map +1 -1
  243. package/dist/lib/tools/built-in/query-validators.js +4 -0
  244. package/dist/lib/tools/built-in/query-validators.js.map +1 -1
  245. package/dist/lib/tools/workspace/workspace-tools.d.ts +1 -0
  246. package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -1
  247. package/dist/lib/tools/workspace/workspace-tools.js +44 -4
  248. package/dist/lib/tools/workspace/workspace-tools.js.map +1 -1
  249. package/dist/lib/triggers/cron-trigger.d.ts +1 -1
  250. package/dist/lib/triggers/cron-trigger.d.ts.map +1 -1
  251. package/dist/lib/triggers/cron-trigger.js.map +1 -1
  252. package/dist/lib/triggers/trigger-manager.d.ts +1 -0
  253. package/dist/lib/triggers/trigger-manager.d.ts.map +1 -1
  254. package/dist/lib/triggers/trigger-manager.js +26 -0
  255. package/dist/lib/triggers/trigger-manager.js.map +1 -1
  256. package/dist/lib/triggers/webhook-trigger.d.ts +1 -1
  257. package/dist/lib/triggers/webhook-trigger.d.ts.map +1 -1
  258. package/dist/lib/triggers/webhook-trigger.js.map +1 -1
  259. package/dist/lib/types/llm-types.d.ts +22 -4
  260. package/dist/lib/types/llm-types.d.ts.map +1 -1
  261. package/dist/lib/types/llm-types.js +50 -0
  262. package/dist/lib/types/llm-types.js.map +1 -1
  263. package/dist/lib/types/tool-factory.d.ts +2 -2
  264. package/dist/lib/types/tool-factory.d.ts.map +1 -1
  265. package/dist/lib/types/tool-factory.js +9 -2
  266. package/dist/lib/types/tool-factory.js.map +1 -1
  267. package/dist/lib/utils/document-extract.d.ts +10 -0
  268. package/dist/lib/utils/document-extract.d.ts.map +1 -0
  269. package/dist/lib/utils/document-extract.js +149 -0
  270. package/dist/lib/utils/document-extract.js.map +1 -0
  271. package/dist/lib/utils/env-substitution.d.ts +6 -0
  272. package/dist/lib/utils/env-substitution.d.ts.map +1 -0
  273. package/dist/lib/utils/env-substitution.js +15 -0
  274. package/dist/lib/utils/env-substitution.js.map +1 -0
  275. package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -1
  276. package/dist/lib/workflows/react-workflow-executor.js +23 -17
  277. package/dist/lib/workflows/react-workflow-executor.js.map +1 -1
  278. package/dist/lib/workflows/types.d.ts +81 -55
  279. package/dist/lib/workflows/types.d.ts.map +1 -1
  280. package/dist/lib/workflows/types.js +10 -0
  281. package/dist/lib/workflows/types.js.map +1 -1
  282. package/dist/lib/workflows/workflow-loader.d.ts +3 -0
  283. package/dist/lib/workflows/workflow-loader.d.ts.map +1 -1
  284. package/dist/lib/workflows/workflow-loader.js +10 -1
  285. package/dist/lib/workflows/workflow-loader.js.map +1 -1
  286. package/dist/public/assets/logo.png +0 -0
  287. package/dist/public/chat.html +39 -0
  288. package/dist/public/index.html +6 -176
  289. package/dist/public/src/components/AgentComposer.js +807 -0
  290. package/dist/public/src/components/AgentsView.js +1812 -508
  291. package/dist/public/src/components/AppRoot.js +125 -38
  292. package/dist/public/src/components/GraphView.js +382 -300
  293. package/dist/public/src/components/IdeView.js +277 -86
  294. package/dist/public/src/components/KnowledgeView.js +94 -130
  295. package/dist/public/src/components/LlmView.js +15 -19
  296. package/dist/public/src/components/LocalLlmView.js +2440 -0
  297. package/dist/public/src/components/LogViewer.js +155 -0
  298. package/dist/public/src/components/McpView.js +41 -49
  299. package/dist/public/src/components/MonitorView.js +174 -83
  300. package/dist/public/src/components/NavBar.js +16 -26
  301. package/dist/public/src/components/StandaloneChat.js +875 -0
  302. package/dist/public/src/services/ApiService.js +203 -4
  303. package/dist/public/src/services/SessionStore.js +86 -0
  304. package/dist/public/src/services/StreamManager.js +183 -0
  305. package/dist/public/src/store.js +1 -3
  306. package/dist/public/src/utils/card.js +21 -0
  307. package/dist/public/src/utils/markdown.js +7 -0
  308. package/dist/public/styles.css +2777 -0
  309. package/dist/src/cli/commands/init.d.ts.map +1 -1
  310. package/dist/src/cli/commands/init.js +7 -1
  311. package/dist/src/cli/commands/init.js.map +1 -1
  312. package/dist/src/cli/commands/start.d.ts.map +1 -1
  313. package/dist/src/cli/commands/start.js +28 -5
  314. package/dist/src/cli/commands/start.js.map +1 -1
  315. package/dist/src/cli/index.js +19 -5
  316. package/dist/src/cli/index.js.map +1 -1
  317. package/dist/src/index.js +7 -1
  318. package/dist/src/index.js.map +1 -1
  319. package/dist/src/middleware/auth.d.ts.map +1 -1
  320. package/dist/src/middleware/auth.js +28 -6
  321. package/dist/src/middleware/auth.js.map +1 -1
  322. package/dist/src/middleware/rate-limit.d.ts +8 -0
  323. package/dist/src/middleware/rate-limit.d.ts.map +1 -0
  324. package/dist/src/middleware/rate-limit.js +21 -0
  325. package/dist/src/middleware/rate-limit.js.map +1 -0
  326. package/dist/src/routes/agents.route.d.ts.map +1 -1
  327. package/dist/src/routes/agents.route.js +138 -10
  328. package/dist/src/routes/agents.route.js.map +1 -1
  329. package/dist/src/routes/chat.route.d.ts +3 -0
  330. package/dist/src/routes/chat.route.d.ts.map +1 -0
  331. package/dist/src/routes/chat.route.js +156 -0
  332. package/dist/src/routes/chat.route.js.map +1 -0
  333. package/dist/src/routes/files.route.d.ts.map +1 -1
  334. package/dist/src/routes/files.route.js +37 -2
  335. package/dist/src/routes/files.route.js.map +1 -1
  336. package/dist/src/routes/llm.route.d.ts.map +1 -1
  337. package/dist/src/routes/llm.route.js +263 -8
  338. package/dist/src/routes/llm.route.js.map +1 -1
  339. package/dist/src/routes/local-llm.route.d.ts +3 -0
  340. package/dist/src/routes/local-llm.route.d.ts.map +1 -0
  341. package/dist/src/routes/local-llm.route.js +688 -0
  342. package/dist/src/routes/local-llm.route.js.map +1 -0
  343. package/dist/src/routes/logs.route.d.ts +3 -0
  344. package/dist/src/routes/logs.route.d.ts.map +1 -0
  345. package/dist/src/routes/logs.route.js +24 -0
  346. package/dist/src/routes/logs.route.js.map +1 -0
  347. package/dist/src/routes/tasks.route.d.ts.map +1 -1
  348. package/dist/src/routes/tasks.route.js +15 -1
  349. package/dist/src/routes/tasks.route.js.map +1 -1
  350. package/dist/src/routes/vnc.route.d.ts +12 -0
  351. package/dist/src/routes/vnc.route.d.ts.map +1 -0
  352. package/dist/src/routes/vnc.route.js +74 -0
  353. package/dist/src/routes/vnc.route.js.map +1 -0
  354. package/dist/src/routes/workflows.route.d.ts.map +1 -1
  355. package/dist/src/routes/workflows.route.js +24 -0
  356. package/dist/src/routes/workflows.route.js.map +1 -1
  357. package/dist/src/server.d.ts.map +1 -1
  358. package/dist/src/server.js +29 -3
  359. package/dist/src/server.js.map +1 -1
  360. package/dist/templates/Demo.md +152 -0
  361. package/dist/templates/README.md +12 -3
  362. package/dist/templates/agents/actor.agent.yaml +34 -0
  363. package/dist/templates/agents/architect.agent.yaml +20 -13
  364. package/dist/templates/agents/chatbot.agent.yaml +23 -27
  365. package/dist/templates/agents/corporate.agent.yaml +64 -0
  366. package/dist/templates/agents/functions.agent.yaml +29 -0
  367. package/dist/templates/agents/investment-analyst.agent.yaml +79 -0
  368. package/dist/templates/agents/music-librarian.agent.yaml +46 -0
  369. package/dist/templates/agents/network-security.agent.yaml +81 -0
  370. package/dist/templates/agents/transport-security.agent.yaml +69 -0
  371. package/dist/templates/agents/web-engineer.agent.yaml +98 -0
  372. package/dist/templates/agents/web-pilot.agent.yaml +57 -0
  373. package/dist/templates/knowledge/music-store/LICENSE.md +11 -0
  374. package/dist/templates/knowledge/music-store/musicstore.sqlite +0 -0
  375. package/dist/templates/knowledge/music-store/tables.png +0 -0
  376. package/dist/templates/knowledge/music-store.knowledge.yaml +138 -0
  377. package/dist/templates/knowledge/org-chart/personnel.csv +21 -21
  378. package/dist/templates/knowledge/org-chart.knowledge.yaml +4 -0
  379. package/dist/templates/knowledge/patient-records.knowledge.yaml +20 -0
  380. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_0.pdf +0 -0
  381. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_1.pdf +0 -0
  382. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_10.pdf +0 -0
  383. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_11.pdf +0 -0
  384. package/dist/templates/knowledge/pet-store.knowledge.yaml +3 -0
  385. package/dist/templates/knowledge/security-incidents/incidents.json +55935 -0
  386. package/dist/templates/knowledge/security-incidents.knowledge.yaml +46 -0
  387. package/dist/templates/knowledge/{example.knowledge.yaml → transcripts.knowledge.yaml} +9 -5
  388. package/dist/templates/knowledge/transport-ot/systems.csv +117 -0
  389. package/dist/templates/knowledge/transport-ot.knowledge.yaml +55 -0
  390. package/dist/templates/knowledge/web-docs.knowledge.yaml +1 -1
  391. package/dist/templates/llm.json +62 -22
  392. package/dist/templates/mcp.json +7 -4
  393. package/dist/templates/skills/orcha-builder/SKILL.md +148 -215
  394. package/dist/templates/skills/pii-guard/SKILL.md +22 -0
  395. package/dist/templates/skills/sandbox/SKILL.md +25 -48
  396. package/dist/templates/skills/web-pilot/SKILL.md +51 -0
  397. package/dist/templates/workflows/example.workflow.yaml +27 -35
  398. package/dist/templates/workflows/react-example.workflow.yaml +14 -19
  399. package/dist/templates/workflows/team-chat.workflow.yaml +47 -0
  400. package/package.json +17 -4
  401. package/dist/public/src/components/SkillsView.js +0 -137
  402. package/dist/public/src/components/WorkflowsView.js +0 -416
  403. package/dist/templates/agents/knowledge-broker.agent.yaml +0 -39
  404. package/dist/templates/agents/sandbox.agent.yaml +0 -56
@@ -5,106 +5,95 @@ description: Documentation for creating and modifying ORCHA resources (agents, w
5
5
 
6
6
  # ORCHA Resource Schemas
7
7
 
8
- Use this reference when creating or modifying ORCHA resources. All resource files live in the workspace root under their respective directories.
9
-
10
- ---
11
-
12
8
  ## Agents (`agents/<name>.agent.yaml`)
13
9
 
14
10
  ```yaml
15
- name: my-agent # Unique identifier (kebab-case)
16
- description: What the agent does # Human-readable description
17
- version: "1.0.0" # Optional, defaults to 1.0.0
18
-
11
+ name: my-agent
12
+ description: What the agent does
19
13
  llm:
20
- name: default # LLM config name from llm.json
21
- temperature: 0.7 # 0.0 = deterministic, 1.0 = creative
22
-
14
+ name: default
15
+ temperature: 0.7
23
16
  prompt:
24
17
  system: |
25
- You are a helpful assistant.
26
- Your instructions go here.
18
+ Your system prompt here.
27
19
  inputVariables:
28
- - query # Variables injected at runtime
29
-
30
- tools: # Optional tool references
31
- - mcp:server-name # All tools from an MCP server
32
- - knowledge:store-name # Knowledge search tools
33
- - function:my-function # Custom function tool
34
- - builtin:tool-name # Built-in tool
35
- - sandbox:exec # Sandbox tools (exec, web_fetch, web_search)
36
- - workspace:read # Workspace tools (read, write, list, list_resources)
37
-
38
- skills: # Optional skills
39
- - skill-name # Skill name from skills directory
40
- # OR
41
- mode: all # Include all available skills
42
-
43
- output: # Optional output config
44
- format: text # text | json | structured
45
- schema: # Required if format is structured
46
- type: object
47
- properties:
48
- result:
49
- type: string
50
-
51
- memory: # Optional conversation memory
20
+ - query
21
+ tools: # mcp:<server> | knowledge:<store> | function:<name>
22
+ - mcp:server-name # builtin:<name> | sandbox:<tool> | workspace:<tool>
23
+ - knowledge:store-name # workspace: read, write, delete, list, list_resources, diagnostics
24
+ - sandbox:browser_navigate # sandbox: exec, shell, web_fetch, web_search
25
+ # sandbox: browser_navigate, browser_observe, browser_screenshot,
26
+ # browser_content, browser_click, browser_type, browser_evaluate
27
+ # sandbox: vision_screenshot, vision_navigate, vision_click,
28
+ # vision_type, vision_scroll, vision_key, vision_drag
29
+ # (requires EXPERIMENTAL_VISION=true)
30
+ # sandbox: file_read, file_write, file_edit, file_insert, file_replace_lines
31
+ # builtin: ask_user, save_memory
32
+ # (conditional: integration_post, integration_context, email_send)
33
+ skills:
34
+ - skill-name # or use mode: all to attach all skills
35
+ output:
36
+ format: text # text | structured
37
+ memory:
52
38
  enabled: true
53
- maxLines: 100 # Max conversation history lines
54
-
55
- metadata: # Optional metadata
56
- category: general
57
- tags:
58
- - example
59
-
60
- integrations: # Optional integrations
39
+ maxLines: 100
40
+ integrations:
61
41
  - type: collabnook
62
- url: wss://collabnook.com/ws
42
+ url: "wss://collabnook.com/ws" # optional — defaults to wss://collabnook.com/ws
63
43
  channel: general
64
- botName: MyBot
65
-
66
- triggers: # Optional triggers
44
+ botName: Bot
45
+ - type: email
46
+ imap:
47
+ host: imap.gmail.com
48
+ port: 993
49
+ smtp:
50
+ host: smtp.gmail.com
51
+ port: 587
52
+ auth:
53
+ user: agent@example.com
54
+ pass: pw
55
+ pollInterval: 60
56
+ folder: INBOX
57
+ triggers:
67
58
  - type: cron
68
- schedule: "*/5 * * * *" # Cron expression
59
+ schedule: "*/5 * * * *"
69
60
  input:
70
- query: "Periodic task"
61
+ query: "Task"
62
+ publish: true # or { enabled: true, password: "secret" }
63
+ sampleQuestions: # optional — clickable chips shown in chat UI on initial load
64
+ - "What can you help me with?"
65
+ - "Summarize the latest report"
71
66
  ```
72
67
 
73
- ---
68
+ Published agents are accessible at `/chat/<agent-name>` with optional per-agent password.
74
69
 
75
70
  ## Step-Based Workflows (`workflows/<name>.workflow.yaml`)
76
71
 
77
72
  ```yaml
78
73
  name: my-workflow
79
74
  description: What the workflow does
80
- version: "1.0.0"
81
- type: steps # "steps" for step-based workflows
82
-
75
+ type: steps
83
76
  input:
84
- schema: # Typed input fields
77
+ schema:
85
78
  query:
86
- type: string # string | number | boolean | array | object
79
+ type: string
87
80
  required: true
88
- description: "The user query"
89
-
90
81
  steps:
91
- - id: step-one # Unique step identifier (NOT "name")
92
- agent: agent-name # Agent to invoke
82
+ - id: step-one
83
+ agent: agent-name
93
84
  input:
94
- query: "{{query}}" # Variable interpolation
95
- output: # Output is an object (NOT a string)
96
- key: step_one_result # Variable name to store result
97
- extract: output # Optional: extract a specific field
98
-
85
+ query: "{{query}}"
86
+ output:
87
+ key: step_one_result
88
+ extract: output
99
89
  - id: step-two
100
90
  agent: another-agent
101
91
  input:
102
92
  query: "{{step_one_result}}"
103
93
  output:
104
94
  key: step_two_result
105
- condition: "{{step_one_result}}" # Optional: skip if falsy
106
-
107
- - parallel: # Parallel execution (no "name" key here)
95
+ condition: "{{step_one_result}}"
96
+ - parallel:
108
97
  - id: branch-a
109
98
  agent: agent-a
110
99
  input:
@@ -117,223 +106,167 @@ steps:
117
106
  query: "{{query}}"
118
107
  output:
119
108
  key: result_b
120
-
121
- config: # Optional workflow config
122
- timeout: 300000 # Default 300000ms
123
- onError: stop # stop | continue | retry
124
-
109
+ config:
110
+ timeout: 300000
111
+ onError: stop # stop | continue | retry
125
112
  output:
126
113
  result: "{{step_two_result}}"
114
+ chatOutputFormat: text # text | json
115
+ sampleQuestions:
116
+ - "Run the pipeline"
127
117
  ```
128
118
 
129
- ---
130
-
131
- ## LangGraph Workflows (`workflows/<name>.workflow.yaml`)
119
+ ## ReAct Workflows (`workflows/<name>.workflow.yaml`)
132
120
 
133
121
  ```yaml
134
- name: my-graph-workflow
135
- description: Graph-based workflow with tool and agent discovery
136
- version: "1.0.0"
137
- type: langgraph
138
-
122
+ name: my-react-workflow
123
+ description: Autonomous workflow with tool and agent discovery
124
+ type: react
139
125
  input:
140
- schema: # Typed input fields (same as step-based)
126
+ schema:
141
127
  query:
142
128
  type: string
143
129
  required: true
144
- description: "The user query"
145
-
146
- prompt: # REQUIRED for langgraph workflows
130
+ prompt:
147
131
  system: |
148
- You are a helpful assistant that uses available tools and agents.
149
- goal: "Answer the user's query using available tools"
150
-
132
+ You are a helpful assistant.
133
+ goal: "Answer the user's query"
151
134
  graph:
152
- model: default # LLM config name, defaults to "default"
135
+ model: default
153
136
  tools:
154
- sources: # Tool sources to discover
137
+ sources:
155
138
  - mcp
156
139
  - knowledge
157
140
  - function
158
141
  - builtin
159
- mode: all # all | none | include | exclude
160
- exclude: # Optional exclusion list
142
+ mode: all # all | none | include | exclude
143
+ exclude:
161
144
  - dangerous_tool
162
145
  agents:
163
- mode: all # all | none | include | exclude
146
+ mode: all
164
147
  exclude:
165
- - architect # Prevent recursive invocation
166
- executionMode: react # react | single-turn (default: react)
167
- maxIterations: 10 # Max tool-call loops (default: 10)
168
- timeout: 300000 # Timeout in ms (default: 300000)
169
-
148
+ - architect
149
+ executionMode: react # react | single-turn
150
+ maxIterations: 10
151
+ timeout: 300000
170
152
  output:
171
153
  result: "{{result}}"
154
+ chatOutputFormat: text # text | json
155
+ sampleQuestions:
156
+ - "What can you do?"
172
157
  ```
173
158
 
174
- ---
175
-
176
159
  ## Knowledge Stores (`knowledge/<name>.knowledge.yaml`)
177
160
 
178
161
  ```yaml
179
162
  name: my-knowledge
180
- description: What this knowledge store contains
181
-
163
+ description: What this store contains
182
164
  source:
183
- # Directory source
184
- type: directory # directory | file | database | web | s3
185
- path: ./docs # Relative to workspace root
186
- pattern: "**/*.md" # Glob pattern for file matching (NOT "glob")
187
- recursive: true # Default: true
188
-
189
- # --- OR file source ---
190
- # type: file
191
- # path: ./data/report.pdf
192
-
193
- # --- OR database source ---
194
- # type: database
195
- # connectionString: postgresql://user:pass@host:5432/db # postgresql://, mysql://, or sqlite://
196
- # query: "SELECT content FROM documents"
197
- # contentColumn: content # Default: "content"
198
- # metadataColumns: [id, title] # Optional
199
- # batchSize: 100 # Optional, default: 100
200
-
201
- # --- OR web source ---
202
- # type: web
203
- # url: https://example.com/docs
204
- # selector: ".main-content" # Optional CSS selector
205
- # headers: # Optional custom headers
206
- # Authorization: "Bearer token"
207
-
208
- loader: # REQUIRED (has defaults)
209
- type: text # text | pdf | csv | json | markdown
210
-
165
+ type: directory # directory | file | database | web
166
+ path: ./docs
167
+ pattern: "**/*.md"
168
+ # Web-specific: url, selector (html only), headers, jsonPath (dot-notation for nested arrays)
169
+ loader: # optional — defaults: html (web), text (file/directory)
170
+ type: text # text | pdf | csv | json | markdown | html
211
171
  splitter:
212
- type: recursive # character | recursive | token | markdown
172
+ type: recursive # character | recursive | token | markdown
213
173
  chunkSize: 1000
214
174
  chunkOverlap: 200
215
-
216
- embedding: default # String reference to llm.json config (NOT an object)
217
-
218
- search: # Optional
175
+ embedding: default # reference to llm.json config
176
+ search:
219
177
  defaultK: 4
220
- scoreThreshold: 0.5 # Optional minimum score
221
-
222
- graph: # Optional: enable graph entities via direct mapping
178
+ scoreThreshold: 0.5
179
+ reindex: # optional — periodic refresh
180
+ schedule: "0 * * * *" # cron expression
181
+ graph: # optional — works with database, csv, json (array of objects)
223
182
  directMapping:
224
183
  entities:
225
- - type: Person # Entity type label
226
- idColumn: id # Column for entity ID
227
- nameColumn: name # Optional: column for display name
228
- properties: # Columns to include as properties
229
- - email # String = same column name
230
- - { role: job_title } # Object = { propertyName: columnName }
231
- relationships: # Optional: define relationships
184
+ - type: Person
185
+ idColumn: id
186
+ nameColumn: name
187
+ properties:
188
+ - email
189
+ - role: job_title
190
+ relationships:
232
191
  - type: WORKS_FOR
233
- source: Person # Source entity type
234
- target: Organization # Target entity type
192
+ source: Person
193
+ target: Organization
235
194
  sourceIdColumn: person_id
236
195
  targetIdColumn: org_id
237
- groupNode: department # Optional: group by column
238
196
  ```
239
197
 
240
- ---
198
+ Web sources support all loader types. Use `loader.type: json` for APIs, `text` for raw content, `html` (default) for web pages with optional `selector`. Add `headers` for authenticated endpoints. Use `jsonPath` (e.g., `items` or `data.results`) to extract a nested array from the JSON response before parsing.
241
199
 
242
200
  ## Custom Functions (`functions/<name>.function.js`)
243
201
 
244
202
  ```javascript
245
- export const metadata = {
246
- name: "my-function",
247
- description: "What this function does",
248
- version: "1.0.0",
249
- tags: ["utility"]
250
- };
251
-
203
+ export const metadata = { name: "my-function", description: "What it does" };
252
204
  export const parameters = {
253
205
  type: "object",
254
- properties: {
255
- input: {
256
- type: "string",
257
- description: "The input parameter"
258
- }
259
- },
206
+ properties: { input: { type: "string", description: "Input" } },
260
207
  required: ["input"]
261
208
  };
262
-
263
209
  export default async function({ input }) {
264
- // Your logic here
265
210
  return { result: `Processed: ${input}` };
266
211
  }
267
212
  ```
268
213
 
269
- ---
214
+ Function parameters support automatic type coercion — if an LLM passes a number as a string, it is auto-coerced to the declared type.
270
215
 
271
216
  ## Skills (`skills/<name>/SKILL.md`)
272
217
 
273
- ```markdown
274
- ---
275
- name: my-skill
276
- description: What this skill teaches the agent
277
- ---
218
+ Markdown files with YAML frontmatter (`name`, `description`). Content is injected into the agent's system prompt. Add `sandbox: true` if the skill requires sandbox tools.
278
219
 
279
- # Skill Title
220
+ ## MCP Servers (`mcp.json`)
280
221
 
281
- Instructions, context, and knowledge that get injected into the agent's prompt.
282
- Use markdown formatting for structure.
222
+ ```json
223
+ { "servers": { "name": { "url": "https://example.com/mcp", "enabled": true } } }
283
224
  ```
284
225
 
285
- Skills with `sandbox: true` in frontmatter indicate they require sandbox tools.
286
-
287
- ---
288
-
289
- ## MCP Server Configuration (`mcp.json`)
226
+ Remote: `url`. Local: `command` + `args`. Optional: `headers`, `env`, `timeout`, `transport`, `description`. Transport is auto-detected. To add a server: read `mcp.json`, add entry, write back, then reference as `mcp:<name>` in agent tools.
290
227
 
291
- The `mcp.json` file in the workspace root configures external MCP servers. Agents reference them via `mcp:<server-name>` in their tools list.
228
+ ## LLM Configuration (`llm.json`)
292
229
 
293
230
  ```json
294
231
  {
295
- "version": "1.0.0",
296
- "servers": {
297
- "server-name": {
298
- "url": "https://example.com/mcp",
299
- "description": "What this server provides",
300
- "timeout": 30000,
301
- "enabled": true
302
- }
232
+ "default": "llama-cpp",
233
+ "llama-cpp": {
234
+ "engine": "llama-cpp",
235
+ "model": "qwen3-8b",
236
+ "temperature": 0.7,
237
+ "reasoningBudget": 4096,
238
+ "thinkingBudget": 4096
303
239
  },
304
- "globalOptions": {
305
- "throwOnLoadError": false,
306
- "prefixToolNameWithServerName": true,
307
- "additionalToolNamePrefix": "",
308
- "defaultToolTimeout": 30000
240
+ "ollama-model": {
241
+ "engine": "ollama",
242
+ "model": "llama3",
243
+ "temperature": 0.5
244
+ },
245
+ "embeddings": {
246
+ "engine": "llama-cpp",
247
+ "model": "nomic-embed",
248
+ "type": "embedding"
249
+ },
250
+ "engineUrls": {
251
+ "llama-cpp": "http://localhost:8080",
252
+ "mlx-serve": "http://localhost:8081",
253
+ "ollama": "http://localhost:11434",
254
+ "lmstudio": "http://localhost:1234"
309
255
  }
310
256
  }
311
257
  ```
312
258
 
313
- **Server config fields:**
314
- - `url` — Required for remote servers (auto-detects `streamable-http` transport)
315
- - `command` + `args` — Required for local stdio servers (auto-detects `stdio` transport)
316
- - `transport` — Explicit: `stdio`, `sse`, `streamable-http`, or `sse-only` (auto-detected if omitted)
317
- - `headers` — Optional HTTP headers (e.g. for auth)
318
- - `env` — Optional environment variables (for stdio servers)
319
- - `description` — Optional human-readable description
320
- - `timeout` — Request timeout in ms (default: 30000)
321
- - `enabled` — Set to `false` to disable without removing (default: true)
259
+ The `"default"` key is a string pointer to another config name. Engines: `llama-cpp`, `mlx-serve`, `ollama`, `lmstudio`. Use `reasoningBudget`/`thinkingBudget` for thinking models. Values support `${ENV_VAR}` substitution.
322
260
 
323
- **Adding a new MCP server:**
324
- 1. Read `mcp.json` first to preserve existing servers
325
- 2. Add the new server entry to the `servers` object
326
- 3. Write the updated `mcp.json` back
327
- 4. Create an agent that references it with `tools: [mcp:server-name]`
261
+ ## Environment Variable Substitution
328
262
 
329
- ---
263
+ All YAML and JSON config files support `${ENV_VAR}` and `${ENV_VAR:-default}` syntax. Use this for secrets, URLs, and any values that differ between environments.
330
264
 
331
265
  ## Best Practices
332
266
 
333
- - **Naming**: Use kebab-case for all resource names (e.g. `weather-bot`, `data-pipeline`)
334
- - **Temperature**: Use 0.0-0.3 for structured/deterministic tasks, 0.5-0.7 for creative/conversational
335
- - **Tools**: Only include tools the agent actually needs — fewer tools = better focus
336
- - **Prompts**: Be specific and include examples in system prompts; use inputVariables for dynamic content
337
- - **Read before write**: Always read an existing resource before modifying it to preserve fields you're not changing
338
- - **Uniqueness**: Check `workspace_list_resources` before creating to avoid name collisions
339
- - **Skills**: Use skills to share knowledge across multiple agents without duplicating prompt content
267
+ - Use kebab-case for all resource names
268
+ - Temperature: 0.0-0.3 for structured tasks, 0.5-0.7 for creative
269
+ - Only include tools the agent actually needs
270
+ - Always read existing resources before modifying them
271
+ - Check `workspace_list_resources` before creating to avoid name collisions
272
+ - Use skills to share knowledge across agents without duplicating prompts
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: pii-guard
3
+ description: PII and OWASP security filtering rules
4
+ ---
5
+
6
+ # PII Guard
7
+
8
+ ## Sensitive Data Categories (NEVER include in responses)
9
+
10
+ - SSN, tax IDs, government identifiers
11
+ - Salary, compensation, financial data
12
+ - Home addresses, personal phone numbers
13
+ - Dates of birth, ages
14
+ - Full email addresses (mask as j***@company.com)
15
+ - Medical, legal, or disciplinary records
16
+
17
+ ## Behavior
18
+
19
+ - **Default:** silently omit PII from responses — don't announce filtering
20
+ - **Explicit request:** decline politely citing company data policy
21
+ - **User provides PII:** refuse to process, store, or format it
22
+ - **Partial info OK:** name, title, department, general location, hire year
@@ -1,63 +1,40 @@
1
1
  ---
2
2
  name: sandbox
3
- description: Execute JavaScript code and fetch web content in an isolated sandbox
3
+ description: Execute JavaScript, shell commands, fetch web content, and control a browser
4
4
  sandbox: true
5
5
  ---
6
6
 
7
- # Sandbox Execution
7
+ # Sandbox Tools
8
8
 
9
- You have access to sandbox tools for running JavaScript code and fetching web content.
9
+ ## sandbox_exec
10
+ Run JavaScript in isolated VM. Use `console.log()` for output, `return` for result. No `fetch`/`require` — use `sandbox_web_fetch` for HTTP.
10
11
 
11
- ## Tool: sandbox_exec
12
+ ## sandbox_shell
13
+ Run shell commands in `/tmp` with limited permissions (Docker only).
12
14
 
13
- Execute JavaScript code in an isolated VM sandbox.
15
+ ## sandbox_web_fetch
16
+ Fetch web pages (auto-converted to markdown) or APIs (`raw: true`).
14
17
 
15
- **Parameters:**
16
- - `code` (required): JavaScript code to execute (runs in async context, so `await` works)
17
- - `timeout` (optional): Execution timeout in milliseconds
18
+ ## sandbox_web_search
19
+ Search DuckDuckGo. Params: `query`, `num_results`.
18
20
 
19
- **Returns:** JSON with `stdout` (console output), `result` (return value), and `error` (if any)
21
+ ## Browser Tools
20
22
 
21
- **Available globals:** JSON, Math, Date, Buffer, URL, URLSearchParams, TextEncoder, TextDecoder, setTimeout, and standard JS built-ins.
23
+ Observe Act Observe loop. Elements have short refs (e1, e2...) use them in click/type.
22
24
 
23
- **Not available:** `fetch`, `require`, file system access. Use `sandbox_web_fetch` for HTTP requests.
24
-
25
- ## Tool: sandbox_web_fetch
26
-
27
- Fetch web page content or API responses.
28
-
29
- **Parameters:**
30
- - `url` (required): HTTP or HTTPS URL to fetch
31
- - `raw` (optional): Return raw content without HTML-to-markdown conversion
32
- - `runScripts` (optional): Run page JavaScript before extracting content (default: true)
33
-
34
- **Returns:** JSON with `content`, `url`, `status`, and `truncated`
35
-
36
- ## Tool: sandbox_web_search
37
-
38
- Search the web using DuckDuckGo.
39
-
40
- **Parameters:**
41
- - `query` (required): Search query
42
- - `num_results` (optional): Max results to return (default 10)
43
-
44
- **Returns:** JSON with `results` (formatted list) and `query`
45
-
46
- ## Usage Examples
47
-
48
- Run JavaScript code:
49
- ```
50
- sandbox_exec({ code: "const sum = [1,2,3].reduce((a,b) => a+b, 0); console.log(sum); return sum;" })
51
- ```
52
-
53
- Fetch a web page:
54
- ```
55
- sandbox_web_fetch({ url: "https://example.com" })
56
- ```
25
+ | Tool | Use |
26
+ |------|-----|
27
+ | `sandbox_browser_observe` | Text snapshot with element refs. Primary verification tool. |
28
+ | `sandbox_browser_navigate` | Go to URL, wait for ready, return snapshot |
29
+ | `sandbox_browser_click` | Click by ref (`"e3"`) or text (`"Submit"`) |
30
+ | `sandbox_browser_type` | Type by ref (`"e5"`), dispatches input/change events |
31
+ | `sandbox_browser_content` | Page as markdown (optional selector) |
32
+ | `sandbox_browser_evaluate` | Run JS, reports side effects |
33
+ | `sandbox_browser_screenshot` | PNG screenshot (expensive, last resort) |
57
34
 
58
35
  ## Best Practices
59
36
 
60
- 1. Use `console.log()` for output and `return` for the final result
61
- 2. Use `sandbox_web_fetch` for HTTP requests instead of trying to use `fetch` in sandbox_exec
62
- 3. Check the `error` field in results to verify execution success
63
- 4. Handle errors gracefully — read `error` for diagnostics
37
+ 1. Use `sandbox_web_fetch` for HTTP not `fetch` in sandbox_exec
38
+ 2. Use observe to verify page state not screenshots
39
+ 3. Use refs from observe output in click/type don't guess selectors
40
+ 4. Check `sideEffects` in evaluate results
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: web-pilot
3
+ description: Browser automation — observe-act loop with refs
4
+ sandbox: true
5
+ ---
6
+
7
+ # Web Pilot
8
+
9
+ ## Tools
10
+
11
+ | Tool | Purpose |
12
+ |------|---------|
13
+ | `sandbox_browser_observe` | Text snapshot: URL, title, headings, textExcerpt, elements with refs |
14
+ | `sandbox_browser_navigate` | Go to URL, wait for ready, return snapshot with textExcerpt |
15
+ | `sandbox_browser_click` | Click by ref (e.g. "e3") or visible text |
16
+ | `sandbox_browser_type` | Type into input by ref (e.g. "e5") |
17
+ | `sandbox_browser_content` | Page as markdown (optional CSS selector) |
18
+ | `sandbox_browser_evaluate` | Run JS, reports side effects |
19
+ | `sandbox_browser_screenshot` | PNG screenshot (expensive, last resort) |
20
+ | `sandbox_web_search` | Search DuckDuckGo for URLs |
21
+
22
+ ## Workflow: Observe → Act → Observe
23
+
24
+ 1. **Navigate** → returns snapshot with element refs
25
+ 2. **Act** using refs from snapshot: `click({ ref: "e3" })` or `type({ ref: "e5", text: "hello" })`
26
+ 3. **Observe** → verify action worked
27
+ 4. Repeat. Screenshot only if text can't answer your question.
28
+
29
+ ## Refs
30
+
31
+ Observe output lists elements like:
32
+ ```
33
+ - button "Submit" [ref=e1]
34
+ - textbox [ref=e2] name=email placeholder="Enter email"
35
+ - link "Home" [ref=e3]
36
+ ```
37
+ Use refs in click/type: `{ "ref": "e1" }`. Refs update on each observe — always use latest.
38
+
39
+ ## Data Extraction Strategy
40
+
41
+ 1. **Check textExcerpt first** — observe/navigate returns the first 2000 chars of visible text. For many tasks this is enough.
42
+ 2. **Use content(selector)** over content() — target a specific section (e.g. `{ selector: "main" }` or `{ selector: ".repo-list" }`) to avoid huge dumps.
43
+ 3. **Use evaluate() for structured extraction** — `evaluate({ expression: "..." })` with JS that returns exactly the data you need (e.g. `[...document.querySelectorAll('.repo')].map(...)`)
44
+ 4. **Prefer web_fetch for read-only pages** — if you just need page content without interaction, `sandbox_web_fetch` is cheaper than navigating.
45
+ 5. **Never repeat a failed approach** — if a tool call returns nothing useful, switch to a different strategy immediately.
46
+
47
+ ## Patterns
48
+
49
+ - **Click by text:** `{ "text": "Accept cookies" }` (when ref unavailable)
50
+ - **Scroll:** evaluate `window.scrollBy(0, 500)` then observe
51
+ - **Dropdown:** evaluate with value set + change event dispatch