agent-orcha 0.0.7 → 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 (259) hide show
  1. package/README.md +86 -28
  2. package/dist/lib/agents/agent-executor.d.ts.map +1 -1
  3. package/dist/lib/agents/agent-executor.js +23 -7
  4. package/dist/lib/agents/agent-executor.js.map +1 -1
  5. package/dist/lib/agents/react-loop.d.ts.map +1 -1
  6. package/dist/lib/agents/react-loop.js +27 -0
  7. package/dist/lib/agents/react-loop.js.map +1 -1
  8. package/dist/lib/functions/simple-function-wrapper.js +3 -3
  9. package/dist/lib/functions/simple-function-wrapper.js.map +1 -1
  10. package/dist/lib/knowledge/knowledge-store.d.ts +1 -1
  11. package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -1
  12. package/dist/lib/knowledge/knowledge-store.js +25 -4
  13. package/dist/lib/knowledge/knowledge-store.js.map +1 -1
  14. package/dist/lib/knowledge/loaders/file-loaders.d.ts +0 -1
  15. package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -1
  16. package/dist/lib/knowledge/loaders/file-loaders.js +7 -15
  17. package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -1
  18. package/dist/lib/knowledge/sqlite-store.d.ts.map +1 -1
  19. package/dist/lib/knowledge/sqlite-store.js +19 -10
  20. package/dist/lib/knowledge/sqlite-store.js.map +1 -1
  21. package/dist/lib/knowledge/types.d.ts +13 -13
  22. package/dist/lib/llm/index.d.ts +1 -1
  23. package/dist/lib/llm/index.d.ts.map +1 -1
  24. package/dist/lib/llm/index.js +1 -1
  25. package/dist/lib/llm/index.js.map +1 -1
  26. package/dist/lib/llm/llm-config.d.ts +51 -8
  27. package/dist/lib/llm/llm-config.d.ts.map +1 -1
  28. package/dist/lib/llm/llm-config.js +161 -17
  29. package/dist/lib/llm/llm-config.js.map +1 -1
  30. package/dist/lib/llm/llm-factory.d.ts +1 -2
  31. package/dist/lib/llm/llm-factory.d.ts.map +1 -1
  32. package/dist/lib/llm/llm-factory.js +41 -8
  33. package/dist/lib/llm/llm-factory.js.map +1 -1
  34. package/dist/lib/llm/providers/openai-chat-model.d.ts +10 -0
  35. package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -1
  36. package/dist/lib/llm/providers/openai-chat-model.js +37 -5
  37. package/dist/lib/llm/providers/openai-chat-model.js.map +1 -1
  38. package/dist/lib/llm/providers/openai-embeddings.d.ts.map +1 -1
  39. package/dist/lib/llm/providers/openai-embeddings.js +41 -10
  40. package/dist/lib/llm/providers/openai-embeddings.js.map +1 -1
  41. package/dist/lib/local-llm/binary-manager.d.ts +66 -0
  42. package/dist/lib/local-llm/binary-manager.d.ts.map +1 -0
  43. package/dist/lib/local-llm/binary-manager.js +441 -0
  44. package/dist/lib/local-llm/binary-manager.js.map +1 -0
  45. package/dist/lib/local-llm/engine-interface.d.ts +47 -0
  46. package/dist/lib/local-llm/engine-interface.d.ts.map +1 -0
  47. package/dist/lib/local-llm/engine-interface.js +2 -0
  48. package/dist/lib/local-llm/engine-interface.js.map +1 -0
  49. package/dist/lib/local-llm/engine-registry.d.ts +20 -0
  50. package/dist/lib/local-llm/engine-registry.d.ts.map +1 -0
  51. package/dist/lib/local-llm/engine-registry.js +56 -0
  52. package/dist/lib/local-llm/engine-registry.js.map +1 -0
  53. package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts +31 -0
  54. package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts.map +1 -0
  55. package/dist/lib/local-llm/engines/llama-cpp-engine.js +164 -0
  56. package/dist/lib/local-llm/engines/llama-cpp-engine.js.map +1 -0
  57. package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts +31 -0
  58. package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts.map +1 -0
  59. package/dist/lib/local-llm/engines/mlx-serve-engine.js +161 -0
  60. package/dist/lib/local-llm/engines/mlx-serve-engine.js.map +1 -0
  61. package/dist/lib/local-llm/gguf-reader.d.ts +20 -0
  62. package/dist/lib/local-llm/gguf-reader.d.ts.map +1 -0
  63. package/dist/lib/local-llm/gguf-reader.js +190 -0
  64. package/dist/lib/local-llm/gguf-reader.js.map +1 -0
  65. package/dist/lib/local-llm/index.d.ts +9 -0
  66. package/dist/lib/local-llm/index.d.ts.map +1 -0
  67. package/dist/lib/local-llm/index.js +6 -0
  68. package/dist/lib/local-llm/index.js.map +1 -0
  69. package/dist/lib/local-llm/llama-server-process.d.ts +42 -0
  70. package/dist/lib/local-llm/llama-server-process.d.ts.map +1 -0
  71. package/dist/lib/local-llm/llama-server-process.js +237 -0
  72. package/dist/lib/local-llm/llama-server-process.js.map +1 -0
  73. package/dist/lib/local-llm/mlx-binary-manager.d.ts +33 -0
  74. package/dist/lib/local-llm/mlx-binary-manager.d.ts.map +1 -0
  75. package/dist/lib/local-llm/mlx-binary-manager.js +211 -0
  76. package/dist/lib/local-llm/mlx-binary-manager.js.map +1 -0
  77. package/dist/lib/local-llm/mlx-server-process.d.ts +26 -0
  78. package/dist/lib/local-llm/mlx-server-process.d.ts.map +1 -0
  79. package/dist/lib/local-llm/mlx-server-process.js +210 -0
  80. package/dist/lib/local-llm/mlx-server-process.js.map +1 -0
  81. package/dist/lib/local-llm/model-manager.d.ts +33 -0
  82. package/dist/lib/local-llm/model-manager.d.ts.map +1 -0
  83. package/dist/lib/local-llm/model-manager.js +591 -0
  84. package/dist/lib/local-llm/model-manager.js.map +1 -0
  85. package/dist/lib/local-llm/types.d.ts +51 -0
  86. package/dist/lib/local-llm/types.d.ts.map +1 -0
  87. package/dist/lib/local-llm/types.js +2 -0
  88. package/dist/lib/local-llm/types.js.map +1 -0
  89. package/dist/lib/logger.d.ts +2 -0
  90. package/dist/lib/logger.d.ts.map +1 -1
  91. package/dist/lib/logger.js +68 -5
  92. package/dist/lib/logger.js.map +1 -1
  93. package/dist/lib/orchestrator.d.ts +9 -0
  94. package/dist/lib/orchestrator.d.ts.map +1 -1
  95. package/dist/lib/orchestrator.js +151 -3
  96. package/dist/lib/orchestrator.js.map +1 -1
  97. package/dist/lib/sandbox/cdp-client.d.ts +2 -1
  98. package/dist/lib/sandbox/cdp-client.d.ts.map +1 -1
  99. package/dist/lib/sandbox/cdp-client.js +33 -7
  100. package/dist/lib/sandbox/cdp-client.js.map +1 -1
  101. package/dist/lib/sandbox/index.d.ts +1 -0
  102. package/dist/lib/sandbox/index.d.ts.map +1 -1
  103. package/dist/lib/sandbox/index.js +1 -0
  104. package/dist/lib/sandbox/index.js.map +1 -1
  105. package/dist/lib/sandbox/page-readiness.d.ts.map +1 -1
  106. package/dist/lib/sandbox/page-readiness.js +33 -0
  107. package/dist/lib/sandbox/page-readiness.js.map +1 -1
  108. package/dist/lib/sandbox/sandbox-browser.d.ts.map +1 -1
  109. package/dist/lib/sandbox/sandbox-browser.js +14 -1
  110. package/dist/lib/sandbox/sandbox-browser.js.map +1 -1
  111. package/dist/lib/sandbox/sandbox-container.d.ts +39 -0
  112. package/dist/lib/sandbox/sandbox-container.d.ts.map +1 -0
  113. package/dist/lib/sandbox/sandbox-container.js +176 -0
  114. package/dist/lib/sandbox/sandbox-container.js.map +1 -0
  115. package/dist/lib/sandbox/sandbox-file.d.ts.map +1 -1
  116. package/dist/lib/sandbox/sandbox-file.js +5 -4
  117. package/dist/lib/sandbox/sandbox-file.js.map +1 -1
  118. package/dist/lib/sandbox/sandbox-shell.d.ts +2 -1
  119. package/dist/lib/sandbox/sandbox-shell.d.ts.map +1 -1
  120. package/dist/lib/sandbox/sandbox-shell.js +42 -24
  121. package/dist/lib/sandbox/sandbox-shell.js.map +1 -1
  122. package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -1
  123. package/dist/lib/sandbox/sandbox-web.js +27 -2
  124. package/dist/lib/sandbox/sandbox-web.js.map +1 -1
  125. package/dist/lib/sandbox/vision-browser.d.ts.map +1 -1
  126. package/dist/lib/sandbox/vision-browser.js +9 -0
  127. package/dist/lib/sandbox/vision-browser.js.map +1 -1
  128. package/dist/lib/sea/app-window.d.ts +7 -0
  129. package/dist/lib/sea/app-window.d.ts.map +1 -0
  130. package/dist/lib/sea/app-window.js +95 -0
  131. package/dist/lib/sea/app-window.js.map +1 -0
  132. package/dist/lib/sea/bootstrap.d.ts +18 -0
  133. package/dist/lib/sea/bootstrap.d.ts.map +1 -0
  134. package/dist/lib/sea/bootstrap.js +103 -0
  135. package/dist/lib/sea/bootstrap.js.map +1 -0
  136. package/dist/lib/sea/sqlite-vec-shim.d.ts +3 -0
  137. package/dist/lib/sea/sqlite-vec-shim.d.ts.map +1 -0
  138. package/dist/lib/sea/sqlite-vec-shim.js +10 -0
  139. package/dist/lib/sea/sqlite-vec-shim.js.map +1 -0
  140. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts +1 -2
  141. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts.map +1 -1
  142. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js +7 -13
  143. package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js.map +1 -1
  144. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts.map +1 -1
  145. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js +2 -4
  146. package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js.map +1 -1
  147. package/dist/lib/tools/built-in/knowledge-search.tool.js +4 -4
  148. package/dist/lib/tools/built-in/knowledge-search.tool.js.map +1 -1
  149. package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts.map +1 -1
  150. package/dist/lib/tools/built-in/knowledge-sql.tool.js +70 -37
  151. package/dist/lib/tools/built-in/knowledge-sql.tool.js.map +1 -1
  152. package/dist/lib/tools/built-in/knowledge-tools-factory.js +2 -2
  153. package/dist/lib/tools/built-in/knowledge-tools-factory.js.map +1 -1
  154. package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts +1 -2
  155. package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts.map +1 -1
  156. package/dist/lib/tools/built-in/knowledge-traverse.tool.js +5 -11
  157. package/dist/lib/tools/built-in/knowledge-traverse.tool.js.map +1 -1
  158. package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -1
  159. package/dist/lib/tools/workspace/workspace-tools.js +5 -4
  160. package/dist/lib/tools/workspace/workspace-tools.js.map +1 -1
  161. package/dist/lib/types/tool-factory.d.ts.map +1 -1
  162. package/dist/lib/types/tool-factory.js +9 -2
  163. package/dist/lib/types/tool-factory.js.map +1 -1
  164. package/dist/lib/utils/document-extract.d.ts +10 -0
  165. package/dist/lib/utils/document-extract.d.ts.map +1 -0
  166. package/dist/lib/utils/document-extract.js +149 -0
  167. package/dist/lib/utils/document-extract.js.map +1 -0
  168. package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -1
  169. package/dist/lib/workflows/react-workflow-executor.js +20 -14
  170. package/dist/lib/workflows/react-workflow-executor.js.map +1 -1
  171. package/dist/lib/workflows/types.d.ts +71 -45
  172. package/dist/lib/workflows/types.d.ts.map +1 -1
  173. package/dist/lib/workflows/types.js +10 -0
  174. package/dist/lib/workflows/types.js.map +1 -1
  175. package/dist/public/assets/logo.png +0 -0
  176. package/dist/public/chat.html +3 -78
  177. package/dist/public/index.html +3 -330
  178. package/dist/public/src/components/AgentComposer.js +132 -132
  179. package/dist/public/src/components/AgentsView.js +1231 -350
  180. package/dist/public/src/components/AppRoot.js +101 -39
  181. package/dist/public/src/components/GraphView.js +11 -13
  182. package/dist/public/src/components/IdeView.js +133 -98
  183. package/dist/public/src/components/KnowledgeView.js +94 -130
  184. package/dist/public/src/components/LlmView.js +15 -19
  185. package/dist/public/src/components/LocalLlmView.js +2440 -0
  186. package/dist/public/src/components/LogViewer.js +155 -0
  187. package/dist/public/src/components/McpView.js +41 -49
  188. package/dist/public/src/components/MonitorView.js +79 -126
  189. package/dist/public/src/components/NavBar.js +16 -26
  190. package/dist/public/src/components/StandaloneChat.js +136 -150
  191. package/dist/public/src/services/ApiService.js +196 -2
  192. package/dist/public/src/services/SessionStore.js +6 -3
  193. package/dist/public/src/services/StreamManager.js +183 -0
  194. package/dist/public/src/store.js +1 -1
  195. package/dist/public/src/utils/card.js +21 -0
  196. package/dist/public/src/utils/markdown.js +1 -7
  197. package/dist/public/styles.css +2777 -0
  198. package/dist/src/cli/commands/init.d.ts.map +1 -1
  199. package/dist/src/cli/commands/init.js +7 -1
  200. package/dist/src/cli/commands/init.js.map +1 -1
  201. package/dist/src/cli/commands/start.d.ts.map +1 -1
  202. package/dist/src/cli/commands/start.js +28 -5
  203. package/dist/src/cli/commands/start.js.map +1 -1
  204. package/dist/src/cli/index.js +13 -2
  205. package/dist/src/cli/index.js.map +1 -1
  206. package/dist/src/index.js +7 -1
  207. package/dist/src/index.js.map +1 -1
  208. package/dist/src/routes/agents.route.d.ts.map +1 -1
  209. package/dist/src/routes/agents.route.js +2 -0
  210. package/dist/src/routes/agents.route.js.map +1 -1
  211. package/dist/src/routes/chat.route.d.ts.map +1 -1
  212. package/dist/src/routes/chat.route.js +3 -2
  213. package/dist/src/routes/chat.route.js.map +1 -1
  214. package/dist/src/routes/llm.route.d.ts.map +1 -1
  215. package/dist/src/routes/llm.route.js +227 -7
  216. package/dist/src/routes/llm.route.js.map +1 -1
  217. package/dist/src/routes/local-llm.route.d.ts +3 -0
  218. package/dist/src/routes/local-llm.route.d.ts.map +1 -0
  219. package/dist/src/routes/local-llm.route.js +688 -0
  220. package/dist/src/routes/local-llm.route.js.map +1 -0
  221. package/dist/src/routes/logs.route.d.ts +3 -0
  222. package/dist/src/routes/logs.route.d.ts.map +1 -0
  223. package/dist/src/routes/logs.route.js +24 -0
  224. package/dist/src/routes/logs.route.js.map +1 -0
  225. package/dist/src/routes/vnc.route.d.ts +10 -1
  226. package/dist/src/routes/vnc.route.d.ts.map +1 -1
  227. package/dist/src/routes/vnc.route.js +37 -12
  228. package/dist/src/routes/vnc.route.js.map +1 -1
  229. package/dist/src/routes/workflows.route.d.ts.map +1 -1
  230. package/dist/src/routes/workflows.route.js +24 -0
  231. package/dist/src/routes/workflows.route.js.map +1 -1
  232. package/dist/src/server.d.ts.map +1 -1
  233. package/dist/src/server.js +24 -2
  234. package/dist/src/server.js.map +1 -1
  235. package/dist/templates/agents/actor.agent.yaml +34 -0
  236. package/dist/templates/agents/architect.agent.yaml +0 -1
  237. package/dist/templates/agents/chatbot.agent.yaml +0 -1
  238. package/dist/templates/agents/corporate.agent.yaml +0 -1
  239. package/dist/templates/agents/functions.agent.yaml +29 -0
  240. package/dist/templates/agents/investment-analyst.agent.yaml +0 -1
  241. package/dist/templates/agents/music-librarian.agent.yaml +3 -27
  242. package/dist/templates/agents/network-security.agent.yaml +0 -1
  243. package/dist/templates/agents/transport-security.agent.yaml +0 -1
  244. package/dist/templates/agents/web-engineer.agent.yaml +3 -4
  245. package/dist/templates/agents/web-pilot.agent.yaml +0 -1
  246. package/dist/templates/knowledge/patient-records.knowledge.yaml +20 -0
  247. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_0.pdf +0 -0
  248. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_1.pdf +0 -0
  249. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_10.pdf +0 -0
  250. package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_11.pdf +0 -0
  251. package/dist/templates/knowledge/web-docs.knowledge.yaml +1 -1
  252. package/dist/templates/llm.json +73 -10
  253. package/dist/templates/skills/orcha-builder/SKILL.md +56 -3
  254. package/dist/templates/workflows/example.workflow.yaml +27 -35
  255. package/dist/templates/workflows/react-example.workflow.yaml +14 -19
  256. package/dist/templates/workflows/team-chat.workflow.yaml +47 -0
  257. package/package.json +14 -6
  258. package/dist/public/src/components/SkillsView.js +0 -137
  259. package/dist/public/src/components/WorkflowsView.js +0 -568
@@ -0,0 +1,51 @@
1
+ export interface LocalModel {
2
+ id: string;
3
+ fileName: string;
4
+ filePath: string;
5
+ sizeBytes: number;
6
+ repo?: string;
7
+ downloadedAt: string;
8
+ type: 'gguf' | 'mlx';
9
+ }
10
+ export interface LocalLlmStatus {
11
+ running: boolean;
12
+ port?: number;
13
+ activeModel: string | null;
14
+ available: boolean;
15
+ contextSize?: number | null;
16
+ }
17
+ export interface HuggingFaceGgufFile {
18
+ fileName: string;
19
+ sizeBytes: number;
20
+ }
21
+ export interface HuggingFaceModelResult {
22
+ repoId: string;
23
+ author: string;
24
+ modelName: string;
25
+ likes: number;
26
+ downloads: number;
27
+ tags: string[];
28
+ pipelineTag: string;
29
+ ggufFiles: HuggingFaceGgufFile[];
30
+ }
31
+ export interface DownloadProgress {
32
+ fileName: string;
33
+ downloadedBytes: number;
34
+ totalBytes: number;
35
+ percent: number;
36
+ }
37
+ export interface ActiveDownload {
38
+ repo: string;
39
+ fileName: string;
40
+ progress: DownloadProgress;
41
+ }
42
+ export interface InterruptedDownload {
43
+ fileName: string;
44
+ repo?: string;
45
+ downloadedBytes: number;
46
+ }
47
+ export interface LocalLlmState {
48
+ lastActiveModel: string | null;
49
+ port?: number;
50
+ }
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/local-llm/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/local-llm/types.ts"],"names":[],"mappings":""}
@@ -6,6 +6,8 @@ export interface LogEntry {
6
6
  component?: string;
7
7
  }
8
8
  export declare function getRecentLogs(limit?: number): LogEntry[];
9
+ export declare function subscribeToLogs(cb: (entry: LogEntry) => void): void;
10
+ export declare function unsubscribeFromLogs(cb: (entry: LogEntry) => void): void;
9
11
  /**
10
12
  * Shared Pino configuration that can be used by both the standalone logger and Fastify
11
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAExD;AAED;;GAEG;AACH,wBAAgB,aAAa;;;;;;;;;;;EAiB5B;AAUD,eAAO,MAAM,UAAU,6BAAqB,CAAC;AA4E7C,eAAO,MAAM,MAAM;oBA3DC,MAAM,WAAW,OAAO,EAAE;oBAO1B,MAAM,WAAW,OAAO,EAAE;qBAQzB,MAAM,WAAW,OAAO,EAAE;qBAa1B,MAAM,WAAW,OAAO,EAAE;qBAO1B,MAAM,WAAW,OAAO,EAAE;qBAO1B,MAAM,WAAW,OAAO,EAAE;CAiBM,CAAC;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM;oBAtE1B,MAAM,WAAW,OAAO,EAAE;oBAO1B,MAAM,WAAW,OAAO,EAAE;qBAQzB,MAAM,WAAW,OAAO,EAAE;qBAa1B,MAAM,WAAW,OAAO,EAAE;qBAO1B,MAAM,WAAW,OAAO,EAAE;qBAO1B,MAAM,WAAW,OAAO,EAAE;EA+B9C"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyCD,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAExD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAEnE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAEvE;AAuCD;;GAEG;AACH,wBAAgB,aAAa;;;;;;;;;;;EAmB5B;AAeD,eAAO,MAAM,UAAU,6BAAqB,CAAC;AA+E7C,eAAO,MAAM,MAAM;oBA9DC,MAAM,WAAW,OAAO,EAAE;oBAQ1B,MAAM,WAAW,OAAO,EAAE;qBAQzB,MAAM,WAAW,OAAO,EAAE;qBAa1B,MAAM,WAAW,OAAO,EAAE;qBAQ1B,MAAM,WAAW,OAAO,EAAE;qBAQ1B,MAAM,WAAW,OAAO,EAAE;CAiBM,CAAC;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM;oBAzE1B,MAAM,WAAW,OAAO,EAAE;oBAQ1B,MAAM,WAAW,OAAO,EAAE;qBAQzB,MAAM,WAAW,OAAO,EAAE;qBAa1B,MAAM,WAAW,OAAO,EAAE;qBAQ1B,MAAM,WAAW,OAAO,EAAE;qBAQ1B,MAAM,WAAW,OAAO,EAAE;EA+B9C"}
@@ -1,10 +1,13 @@
1
1
  import pino from 'pino';
2
+ import { Writable } from 'stream';
3
+ import { isSea } from "./sea/bootstrap.js";
2
4
  class LogBuffer {
3
5
  buffer;
4
6
  maxSize;
5
7
  index = 0;
6
8
  full = false;
7
- constructor(maxSize = 200) {
9
+ subscribers = new Set();
10
+ constructor(maxSize = 500) {
8
11
  this.maxSize = maxSize;
9
12
  this.buffer = new Array(maxSize);
10
13
  }
@@ -13,6 +16,8 @@ class LogBuffer {
13
16
  this.index = (this.index + 1) % this.maxSize;
14
17
  if (this.index === 0)
15
18
  this.full = true;
19
+ for (const cb of this.subscribers)
20
+ cb(entry);
16
21
  }
17
22
  getEntries(limit) {
18
23
  const entries = this.full
@@ -20,20 +25,70 @@ class LogBuffer {
20
25
  : this.buffer.slice(0, this.index);
21
26
  return limit ? entries.slice(-limit) : entries;
22
27
  }
28
+ subscribe(cb) {
29
+ this.subscribers.add(cb);
30
+ }
31
+ unsubscribe(cb) {
32
+ this.subscribers.delete(cb);
33
+ }
23
34
  }
24
- const logBuffer = new LogBuffer(200);
35
+ const logBuffer = new LogBuffer(500);
25
36
  export function getRecentLogs(limit) {
26
37
  return logBuffer.getEntries(limit);
27
38
  }
39
+ export function subscribeToLogs(cb) {
40
+ logBuffer.subscribe(cb);
41
+ }
42
+ export function unsubscribeFromLogs(cb) {
43
+ logBuffer.unsubscribe(cb);
44
+ }
45
+ // ANSI color codes for log levels
46
+ const LEVEL_COLORS = {
47
+ 10: '\x1b[90m', // trace — gray
48
+ 20: '\x1b[36m', // debug — cyan
49
+ 30: '\x1b[32m', // info — green
50
+ 40: '\x1b[33m', // warn — yellow
51
+ 50: '\x1b[31m', // error — red
52
+ 60: '\x1b[35m', // fatal — magenta
53
+ };
54
+ const LEVEL_LABELS = {
55
+ 10: 'TRACE', 20: 'DEBUG', 30: 'INFO', 40: 'WARN', 50: 'ERROR', 60: 'FATAL',
56
+ };
57
+ const RESET = '\x1b[0m';
58
+ /**
59
+ * Lightweight pino destination that formats JSON log lines with colors.
60
+ * Runs in-process (no worker threads) so it works inside SEA binaries.
61
+ */
62
+ function createPrettyDestination() {
63
+ return new Writable({
64
+ write(chunk, _encoding, callback) {
65
+ try {
66
+ const obj = JSON.parse(chunk.toString());
67
+ const color = LEVEL_COLORS[obj.level] || '';
68
+ const label = LEVEL_LABELS[obj.level] || 'LOG';
69
+ const time = obj.time ? new Date(obj.time).toLocaleTimeString('en-GB', { hour12: false }) : '';
70
+ const comp = obj.component ? `${obj.component} ` : '';
71
+ const msg = obj.msg || '';
72
+ process.stdout.write(`${color}${time} ${label.padEnd(5)}${RESET} ${comp}${msg}\n`);
73
+ }
74
+ catch {
75
+ process.stdout.write(chunk);
76
+ }
77
+ callback();
78
+ },
79
+ });
80
+ }
28
81
  /**
29
82
  * Shared Pino configuration that can be used by both the standalone logger and Fastify
30
83
  */
31
84
  export function getPinoConfig() {
32
85
  const logLevel = process.env.LOG_LEVEL || 'debug';
33
86
  const isDevelopment = process.env.NODE_ENV !== 'production';
87
+ // pino-pretty uses worker threads with dynamic require() — not available in SEA binaries
88
+ const usePretty = isDevelopment && !isSea();
34
89
  return {
35
90
  level: logLevel,
36
- transport: isDevelopment
91
+ transport: usePretty
37
92
  ? {
38
93
  target: 'pino-pretty',
39
94
  options: {
@@ -47,16 +102,21 @@ export function getPinoConfig() {
47
102
  };
48
103
  }
49
104
  /**
50
- * Create a pino logger instance
105
+ * Create a pino logger instance.
106
+ * In SEA mode, uses an in-process pretty formatter instead of raw JSON.
51
107
  */
52
108
  function createPinoLogger() {
109
+ if (isSea()) {
110
+ const logLevel = process.env.LOG_LEVEL || 'debug';
111
+ return pino({ level: logLevel }, createPrettyDestination());
112
+ }
53
113
  return pino(getPinoConfig());
54
114
  }
55
115
  // Export the raw pino instance for use in the application
56
116
  export const pinoLogger = createPinoLogger();
57
117
  /**
58
118
  * Create a wrapper that accepts console-like API and converts to pino API.
59
- * Warn/error/fatal levels are also captured in the in-memory ring buffer.
119
+ * All levels are captured in the in-memory ring buffer for the log viewer.
60
120
  */
61
121
  function createLoggerWrapper(pinoInstance, component) {
62
122
  const capture = (level, message) => {
@@ -69,6 +129,7 @@ function createLoggerWrapper(pinoInstance, component) {
69
129
  };
70
130
  return {
71
131
  info: (message, ...args) => {
132
+ capture('info', message);
72
133
  if (args.length > 0) {
73
134
  pinoInstance.info({ data: args }, message);
74
135
  }
@@ -101,6 +162,7 @@ function createLoggerWrapper(pinoInstance, component) {
101
162
  }
102
163
  },
103
164
  debug: (message, ...args) => {
165
+ capture('debug', message);
104
166
  if (args.length > 0) {
105
167
  pinoInstance.debug({ data: args }, message);
106
168
  }
@@ -109,6 +171,7 @@ function createLoggerWrapper(pinoInstance, component) {
109
171
  }
110
172
  },
111
173
  trace: (message, ...args) => {
174
+ capture('trace', message);
112
175
  if (args.length > 0) {
113
176
  pinoInstance.trace({ data: args }, message);
114
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"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"}
@@ -45,11 +45,15 @@ export declare class Orchestrator {
45
45
  private memoryManager;
46
46
  private integrationManager;
47
47
  private triggerManager;
48
+ private sandboxContainer;
48
49
  private initialized;
49
50
  constructor(config: OrchestratorConfig);
50
51
  initialize(): Promise<void>;
52
+ private checkLlmReadiness;
51
53
  private loadMCPConfig;
52
54
  private loadSandboxConfig;
55
+ private isRunningInContainer;
56
+ private launchSandboxContainer;
53
57
  private buildSandboxTools;
54
58
  private buildWorkspaceToolsMap;
55
59
  private buildDiagnosticsReport;
@@ -64,6 +68,7 @@ export declare class Orchestrator {
64
68
  get integrations(): IntegrationAccessor;
65
69
  get triggers(): TriggerAccessor;
66
70
  get workspaceRoot(): string;
71
+ get llmConfigPath(): string;
67
72
  get memory(): MemoryAccessor;
68
73
  get longTermMemory(): LongTermMemoryAccessor;
69
74
  unloadFile(relativePath: string): Promise<string>;
@@ -85,6 +90,10 @@ export declare class Orchestrator {
85
90
  * Resumes a ReAct workflow with the user's answer to an interrupt.
86
91
  */
87
92
  resumeReactWorkflow(name: string, threadId: string, answer: string): Promise<WorkflowResult>;
93
+ streamResumeReactWorkflow(name: string, threadId: string, answer: string): AsyncGenerator<{
94
+ type: 'status' | 'result';
95
+ data: unknown;
96
+ }, void, unknown>;
88
97
  /**
89
98
  * Gets all active interrupts for a workflow.
90
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../lib/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../lib/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import * as fs from 'fs/promises';
2
+ import { existsSync } from 'node:fs';
2
3
  import * as path from 'path';
3
4
  import { AgentLoader } from "./agents/agent-loader.js";
4
5
  import { AgentExecutor } from "./agents/agent-executor.js";
@@ -13,7 +14,8 @@ import { SkillLoader } from "./skills/index.js";
13
14
  import { ToolRegistry } from "./tools/tool-registry.js";
14
15
  import { ToolDiscovery } from "./tools/tool-discovery.js";
15
16
  import { MCPConfigSchema } from "./mcp/types.js";
16
- import { loadLLMConfig, listModelConfigs } from "./llm/llm-config.js";
17
+ import { loadLLMConfig, getLLMConfig, listModelConfigs, getModelConfig, getEmbeddingConfig, resolveApiKey } from "./llm/llm-config.js";
18
+ import { detectProvider } from "./llm/provider-detector.js";
17
19
  import { LLMFactory } from "./llm/llm-factory.js";
18
20
  import { resolveAgentLLMRef } from "./llm/types.js";
19
21
  import { ConversationStore } from "./memory/conversation-store.js";
@@ -23,11 +25,14 @@ import { VmExecutor } from "./sandbox/vm-executor.js";
23
25
  import { createSandboxExecTool } from "./sandbox/sandbox-exec.js";
24
26
  import { createSandboxWebFetchTool, createSandboxWebSearchTool } from "./sandbox/sandbox-web.js";
25
27
  import { createSandboxShellTool } from "./sandbox/sandbox-shell.js";
28
+ import { SandboxContainer } from "./sandbox/sandbox-container.js";
26
29
  import { createFileTools } from "./sandbox/sandbox-file.js";
27
30
  import { createBrowserTools } from "./sandbox/sandbox-browser.js";
28
31
  import { createVisionBrowserTools } from "./sandbox/vision-browser.js";
29
32
  import { SandboxConfigSchema } from "./sandbox/types.js";
30
33
  import { substituteEnvVars } from "./utils/env-substitution.js";
34
+ import { engineRegistry } from "./local-llm/engine-registry.js";
35
+ import { ModelManager } from "./local-llm/model-manager.js";
31
36
  import { buildWorkspaceTools } from "./tools/workspace/workspace-tools.js";
32
37
  import { IntegrationManager } from "./integrations/integration-manager.js";
33
38
  import { logger, getRecentLogs } from "./logger.js";
@@ -52,6 +57,7 @@ export class Orchestrator {
52
57
  memoryManager;
53
58
  integrationManager = null;
54
59
  triggerManager = null;
60
+ sandboxContainer = null;
55
61
  initialized = false;
56
62
  constructor(config) {
57
63
  this.config = {
@@ -82,6 +88,10 @@ export class Orchestrator {
82
88
  // Load LLM config first - required for agents and embeddings
83
89
  logger.info('[Orchestrator] Loading LLM config...');
84
90
  await loadLLMConfig(this.config.llmConfigPath);
91
+ // Kill any orphaned llama-server / mlx-serve processes from a previous run, then set base dir
92
+ engineRegistry.killAllOrphans();
93
+ engineRegistry.setBaseDir(this.config.workspaceRoot);
94
+ await this.checkLlmReadiness();
85
95
  await this.loadMCPConfig();
86
96
  await this.mcpClient.initialize();
87
97
  // Load function tools and skills
@@ -108,6 +118,38 @@ export class Orchestrator {
108
118
  this.integrationManager = new IntegrationManager();
109
119
  await this.integrationManager.start(this);
110
120
  }
121
+ async checkLlmReadiness() {
122
+ const issues = [];
123
+ const manager = new ModelManager(this.config.workspaceRoot);
124
+ const llmConfig = getLLMConfig();
125
+ const hasDefaultModel = llmConfig?.models['default'] !== undefined;
126
+ const hasDefaultEmb = llmConfig?.embeddings['default'] !== undefined;
127
+ const checks = [
128
+ ['Chat model', hasDefaultModel, () => getModelConfig('default')],
129
+ ['Embedding', hasDefaultEmb, () => getEmbeddingConfig('default')],
130
+ ];
131
+ for (const [label, hasDefault, getConfig] of checks) {
132
+ if (!hasDefault) {
133
+ issues.push(`${label}: no default configured`);
134
+ continue;
135
+ }
136
+ const config = getConfig();
137
+ const provider = detectProvider(config);
138
+ if (provider === 'local' && !config.baseUrl) {
139
+ const filePath = await manager.findModelFile(config.model);
140
+ if (!filePath)
141
+ issues.push(`${label}: model "${config.model}" not downloaded`);
142
+ }
143
+ else if (provider !== 'local') {
144
+ const key = resolveApiKey(provider, config.apiKey);
145
+ if (!key)
146
+ issues.push(`${label}: no API key for ${provider}`);
147
+ }
148
+ }
149
+ if (issues.length > 0) {
150
+ logger.warn(`[Orchestrator] LLM not ready — ${issues.join('; ')}. Open the Studio and go to the LLM tab to set up your models.`);
151
+ }
152
+ }
111
153
  async loadMCPConfig() {
112
154
  try {
113
155
  const content = await fs.readFile(this.config.mcpConfigPath, 'utf-8');
@@ -135,11 +177,48 @@ export class Orchestrator {
135
177
  }
136
178
  if (this.sandboxConfig.enabled) {
137
179
  this.vmExecutor = new VmExecutor();
180
+ // When running locally (not in Docker), try to auto-launch the sandbox container
181
+ if (!this.isRunningInContainer()) {
182
+ await this.launchSandboxContainer();
183
+ }
138
184
  }
139
185
  else {
140
186
  this.vmExecutor = null;
141
187
  }
142
188
  }
189
+ isRunningInContainer() {
190
+ if (existsSync('/.dockerenv'))
191
+ return true;
192
+ if (existsSync('/run/.containerenv'))
193
+ return true;
194
+ return process.env['BROWSER_SANDBOX'] === 'true';
195
+ }
196
+ async launchSandboxContainer() {
197
+ const container = new SandboxContainer();
198
+ if (!container.detectDocker()) {
199
+ logger.warn('');
200
+ logger.warn('╔════════════════════════════════════════════════════════════════╗');
201
+ logger.warn('║ SANDBOX: Docker not detected on this system ║');
202
+ logger.warn('║ ║');
203
+ logger.warn('║ The following sandbox tools are NOT available: ║');
204
+ logger.warn('║ - sandbox:shell (shell command execution) ║');
205
+ logger.warn('║ - sandbox:browser_* (web browser automation) ║');
206
+ logger.warn('║ - sandbox:vision_* (vision browser automation) ║');
207
+ logger.warn('║ ║');
208
+ logger.warn('║ To enable these features, install Docker Desktop: ║');
209
+ logger.warn('║ https://www.docker.com/products/docker-desktop ║');
210
+ logger.warn('║ ║');
211
+ logger.warn('║ Tools still available: sandbox:exec, sandbox:web_fetch, ║');
212
+ logger.warn('║ sandbox:web_search, sandbox:file_* ║');
213
+ logger.warn('╚════════════════════════════════════════════════════════════════╝');
214
+ logger.warn('');
215
+ return;
216
+ }
217
+ const started = await container.start();
218
+ if (started) {
219
+ this.sandboxContainer = container;
220
+ }
221
+ }
143
222
  buildSandboxTools() {
144
223
  const tools = new Map();
145
224
  if (!this.sandboxConfig?.enabled || !this.vmExecutor) {
@@ -148,7 +227,7 @@ export class Orchestrator {
148
227
  tools.set('exec', createSandboxExecTool(this.vmExecutor, this.sandboxConfig));
149
228
  tools.set('web_fetch', createSandboxWebFetchTool(this.sandboxConfig));
150
229
  tools.set('web_search', createSandboxWebSearchTool());
151
- tools.set('shell', createSandboxShellTool(this.sandboxConfig));
230
+ tools.set('shell', createSandboxShellTool(this.sandboxConfig, this.sandboxContainer ?? undefined));
152
231
  const fileTools = createFileTools(this.sandboxConfig);
153
232
  for (const ft of fileTools) {
154
233
  tools.set(ft.name.replace('sandbox_file_', 'file_'), ft);
@@ -199,7 +278,16 @@ export class Orchestrator {
199
278
  skills.push({ name, exists: this.skillLoader.has(name) });
200
279
  }
201
280
  }
202
- return { name: agent.name, llm: { name: llmName, exists: modelNames.includes(llmName) }, tools, skills };
281
+ // Check if the LLM name resolves to a concrete config (handles both direct names and pointer names like 'default')
282
+ let llmExists = modelNames.includes(llmName);
283
+ if (!llmExists) {
284
+ try {
285
+ getModelConfig(llmName);
286
+ llmExists = true;
287
+ }
288
+ catch { /* not found */ }
289
+ }
290
+ return { name: agent.name, llm: { name: llmName, exists: llmExists }, tools, skills };
203
291
  }));
204
292
  // Knowledge diagnostics
205
293
  const knowledgeStatuses = await this.knowledgeStoreManager.getAllStatuses();
@@ -314,6 +402,9 @@ export class Orchestrator {
314
402
  get workspaceRoot() {
315
403
  return this.config.workspaceRoot;
316
404
  }
405
+ get llmConfigPath() {
406
+ return this.config.llmConfigPath;
407
+ }
317
408
  get memory() {
318
409
  return {
319
410
  getStore: () => this.conversationStore,
@@ -597,6 +688,58 @@ export class Orchestrator {
597
688
  }
598
689
  return this.reactWorkflowExecutor.resumeWithAnswer(definition, threadId, answer);
599
690
  }
691
+ async *streamResumeReactWorkflow(name, threadId, answer) {
692
+ this.ensureInitialized();
693
+ const definition = this.workflowLoader.get(name);
694
+ if (!definition) {
695
+ throw new Error(`Workflow not found: ${name}`);
696
+ }
697
+ if (definition.type !== 'react') {
698
+ throw new Error(`Workflow "${name}" is not a ReAct workflow`);
699
+ }
700
+ const statusQueue = [];
701
+ let resolveNext = null;
702
+ let isComplete = false;
703
+ const onStatus = (status) => {
704
+ statusQueue.push({ type: 'status', data: status });
705
+ if (resolveNext) {
706
+ resolveNext();
707
+ resolveNext = null;
708
+ }
709
+ };
710
+ const executionPromise = this.reactWorkflowExecutor
711
+ .resumeWithAnswer(definition, threadId, answer, onStatus)
712
+ .then((result) => {
713
+ isComplete = true;
714
+ statusQueue.push({ type: 'result', data: result });
715
+ if (resolveNext) {
716
+ resolveNext();
717
+ resolveNext = null;
718
+ }
719
+ })
720
+ .catch((error) => {
721
+ isComplete = true;
722
+ statusQueue.push({
723
+ type: 'result',
724
+ data: { error: error instanceof Error ? error.message : String(error) },
725
+ });
726
+ if (resolveNext) {
727
+ resolveNext();
728
+ resolveNext = null;
729
+ }
730
+ });
731
+ while (!isComplete || statusQueue.length > 0) {
732
+ if (statusQueue.length > 0) {
733
+ yield statusQueue.shift();
734
+ }
735
+ else {
736
+ await new Promise((resolve) => {
737
+ resolveNext = resolve;
738
+ });
739
+ }
740
+ }
741
+ await executionPromise;
742
+ }
600
743
  /**
601
744
  * Gets all active interrupts for a workflow.
602
745
  */
@@ -612,6 +755,8 @@ export class Orchestrator {
612
755
  return this.interruptManager.getInterrupt(threadId);
613
756
  }
614
757
  async close() {
758
+ // Stop all local engine processes before anything else
759
+ await engineRegistry.unloadAll();
615
760
  if (this.triggerManager) {
616
761
  this.triggerManager.close();
617
762
  }
@@ -633,6 +778,9 @@ export class Orchestrator {
633
778
  if (this.knowledgeStoreManager) {
634
779
  this.knowledgeStoreManager.close();
635
780
  }
781
+ if (this.sandboxContainer) {
782
+ await this.sandboxContainer.stop();
783
+ }
636
784
  }
637
785
  ensureInitialized() {
638
786
  if (!this.initialized) {