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
@@ -7,31 +7,41 @@ import type { LLMProvider } from './provider-detector.ts';
7
7
  export declare function resolveApiKey(provider: LLMProvider, apiKey?: string): string | undefined;
8
8
  export declare const ModelConfigSchema: z.ZodObject<{
9
9
  provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
10
+ engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
10
11
  baseUrl: z.ZodOptional<z.ZodString>;
11
12
  apiKey: z.ZodOptional<z.ZodString>;
12
13
  model: z.ZodString;
13
14
  temperature: z.ZodOptional<z.ZodNumber>;
14
15
  maxTokens: z.ZodOptional<z.ZodNumber>;
15
16
  thinkingBudget: z.ZodOptional<z.ZodNumber>;
17
+ reasoningBudget: z.ZodOptional<z.ZodNumber>;
18
+ contextSize: z.ZodOptional<z.ZodNumber>;
16
19
  }, "strip", z.ZodTypeAny, {
17
20
  model: string;
18
21
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
22
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
19
23
  baseUrl?: string | undefined;
20
24
  apiKey?: string | undefined;
21
25
  temperature?: number | undefined;
22
26
  maxTokens?: number | undefined;
23
27
  thinkingBudget?: number | undefined;
28
+ reasoningBudget?: number | undefined;
29
+ contextSize?: number | undefined;
24
30
  }, {
25
31
  model: string;
26
32
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
33
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
27
34
  baseUrl?: string | undefined;
28
35
  apiKey?: string | undefined;
29
36
  temperature?: number | undefined;
30
37
  maxTokens?: number | undefined;
31
38
  thinkingBudget?: number | undefined;
39
+ reasoningBudget?: number | undefined;
40
+ contextSize?: number | undefined;
32
41
  }>;
33
42
  export declare const EmbeddingModelConfigSchema: z.ZodObject<{
34
43
  provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
44
+ engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
35
45
  baseUrl: z.ZodOptional<z.ZodString>;
36
46
  apiKey: z.ZodOptional<z.ZodString>;
37
47
  model: z.ZodString;
@@ -40,6 +50,7 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
40
50
  }, "strip", z.ZodTypeAny, {
41
51
  model: string;
42
52
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
53
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
43
54
  baseUrl?: string | undefined;
44
55
  apiKey?: string | undefined;
45
56
  dimensions?: number | undefined;
@@ -47,6 +58,7 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
47
58
  }, {
48
59
  model: string;
49
60
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
61
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
50
62
  baseUrl?: string | undefined;
51
63
  apiKey?: string | undefined;
52
64
  dimensions?: number | undefined;
@@ -54,33 +66,43 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
54
66
  }>;
55
67
  export declare const LLMJsonConfigSchema: z.ZodObject<{
56
68
  version: z.ZodDefault<z.ZodString>;
57
- models: z.ZodRecord<z.ZodString, z.ZodObject<{
69
+ models: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
58
70
  provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
71
+ engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
59
72
  baseUrl: z.ZodOptional<z.ZodString>;
60
73
  apiKey: z.ZodOptional<z.ZodString>;
61
74
  model: z.ZodString;
62
75
  temperature: z.ZodOptional<z.ZodNumber>;
63
76
  maxTokens: z.ZodOptional<z.ZodNumber>;
64
77
  thinkingBudget: z.ZodOptional<z.ZodNumber>;
78
+ reasoningBudget: z.ZodOptional<z.ZodNumber>;
79
+ contextSize: z.ZodOptional<z.ZodNumber>;
65
80
  }, "strip", z.ZodTypeAny, {
66
81
  model: string;
67
82
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
83
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
68
84
  baseUrl?: string | undefined;
69
85
  apiKey?: string | undefined;
70
86
  temperature?: number | undefined;
71
87
  maxTokens?: number | undefined;
72
88
  thinkingBudget?: number | undefined;
89
+ reasoningBudget?: number | undefined;
90
+ contextSize?: number | undefined;
73
91
  }, {
74
92
  model: string;
75
93
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
94
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
76
95
  baseUrl?: string | undefined;
77
96
  apiKey?: string | undefined;
78
97
  temperature?: number | undefined;
79
98
  maxTokens?: number | undefined;
80
99
  thinkingBudget?: number | undefined;
81
- }>>;
82
- embeddings: z.ZodRecord<z.ZodString, z.ZodObject<{
100
+ reasoningBudget?: number | undefined;
101
+ contextSize?: number | undefined;
102
+ }>]>>;
103
+ embeddings: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
83
104
  provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
105
+ engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
84
106
  baseUrl: z.ZodOptional<z.ZodString>;
85
107
  apiKey: z.ZodOptional<z.ZodString>;
86
108
  model: z.ZodString;
@@ -89,6 +111,7 @@ export declare const LLMJsonConfigSchema: z.ZodObject<{
89
111
  }, "strip", z.ZodTypeAny, {
90
112
  model: string;
91
113
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
114
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
92
115
  baseUrl?: string | undefined;
93
116
  apiKey?: string | undefined;
94
117
  dimensions?: number | undefined;
@@ -96,49 +119,61 @@ export declare const LLMJsonConfigSchema: z.ZodObject<{
96
119
  }, {
97
120
  model: string;
98
121
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
122
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
99
123
  baseUrl?: string | undefined;
100
124
  apiKey?: string | undefined;
101
125
  dimensions?: number | undefined;
102
126
  eosToken?: string | undefined;
103
- }>>;
127
+ }>]>>;
128
+ engineUrls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
104
129
  }, "strip", z.ZodTypeAny, {
105
130
  version: string;
106
- models: Record<string, {
131
+ models: Record<string, string | {
107
132
  model: string;
108
133
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
134
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
109
135
  baseUrl?: string | undefined;
110
136
  apiKey?: string | undefined;
111
137
  temperature?: number | undefined;
112
138
  maxTokens?: number | undefined;
113
139
  thinkingBudget?: number | undefined;
140
+ reasoningBudget?: number | undefined;
141
+ contextSize?: number | undefined;
114
142
  }>;
115
- embeddings: Record<string, {
143
+ embeddings: Record<string, string | {
116
144
  model: string;
117
145
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
146
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
118
147
  baseUrl?: string | undefined;
119
148
  apiKey?: string | undefined;
120
149
  dimensions?: number | undefined;
121
150
  eosToken?: string | undefined;
122
151
  }>;
152
+ engineUrls?: Record<string, string> | undefined;
123
153
  }, {
124
- models: Record<string, {
154
+ models: Record<string, string | {
125
155
  model: string;
126
156
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
157
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
127
158
  baseUrl?: string | undefined;
128
159
  apiKey?: string | undefined;
129
160
  temperature?: number | undefined;
130
161
  maxTokens?: number | undefined;
131
162
  thinkingBudget?: number | undefined;
163
+ reasoningBudget?: number | undefined;
164
+ contextSize?: number | undefined;
132
165
  }>;
133
- embeddings: Record<string, {
166
+ embeddings: Record<string, string | {
134
167
  model: string;
135
168
  provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
169
+ engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
136
170
  baseUrl?: string | undefined;
137
171
  apiKey?: string | undefined;
138
172
  dimensions?: number | undefined;
139
173
  eosToken?: string | undefined;
140
174
  }>;
141
175
  version?: string | undefined;
176
+ engineUrls?: Record<string, string> | undefined;
142
177
  }>;
143
178
  export type ModelConfig = z.infer<typeof ModelConfigSchema>;
144
179
  export type EmbeddingModelConfig = z.infer<typeof EmbeddingModelConfigSchema>;
@@ -146,7 +181,15 @@ export type LLMJsonConfig = z.infer<typeof LLMJsonConfigSchema>;
146
181
  export declare function loadLLMConfig(llmJsonPath: string): Promise<LLMJsonConfig>;
147
182
  export declare function getModelConfig(name: string): ModelConfig;
148
183
  export declare function getEmbeddingConfig(name: string): EmbeddingModelConfig;
184
+ /**
185
+ * Resolve the actual key name that `default` (or any pointer) references.
186
+ * Returns the resolved key name, or the input if it's already a concrete entry.
187
+ */
188
+ export declare function resolveDefaultName(section: 'models' | 'embeddings', name?: string): string;
149
189
  export declare function listModelConfigs(): string[];
150
190
  export declare function listEmbeddingConfigs(): string[];
151
191
  export declare function isLLMConfigLoaded(): boolean;
192
+ export declare function getLLMConfig(): LLMJsonConfig | null;
193
+ export declare function getLLMConfigPath(): string | null;
194
+ export declare function saveLLMConfig(llmJsonPath: string, config: LLMJsonConfig): Promise<void>;
152
195
  //# sourceMappingURL=llm-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIxF;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAKhE,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAU/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAYxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAYrE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAK3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAK/C;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
1
+ {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQxF;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAgDhE,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6B/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAgBxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAgBrE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,YAAY,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAKrG;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAM3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAK/C;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,YAAY,IAAI,aAAa,GAAG,IAAI,CAEnD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAgDD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7F"}
@@ -13,24 +13,32 @@ const PROVIDER_ENV_VARS = {
13
13
  * Priority: explicit apiKey in config > provider-specific env var.
14
14
  */
15
15
  export function resolveApiKey(provider, apiKey) {
16
- if (apiKey)
16
+ if (apiKey) {
17
+ const resolved = substituteEnvVars(apiKey);
18
+ if (resolved !== apiKey)
19
+ return resolved || undefined;
17
20
  return apiKey;
21
+ }
18
22
  const envVar = PROVIDER_ENV_VARS[provider];
19
23
  return process.env[envVar];
20
24
  }
21
25
  // Schema for individual model configuration
22
26
  export const ModelConfigSchema = z.object({
23
27
  provider: z.enum(['openai', 'gemini', 'anthropic', 'local']).optional(),
28
+ engine: z.enum(['llama-cpp', 'mlx-serve', 'ollama', 'lmstudio']).optional(),
24
29
  baseUrl: z.string().optional(),
25
30
  apiKey: z.string().optional(),
26
31
  model: z.string(),
27
32
  temperature: z.number().min(0).max(2).optional(),
28
33
  maxTokens: z.number().optional(),
29
34
  thinkingBudget: z.number().optional(),
35
+ reasoningBudget: z.number().optional(),
36
+ contextSize: z.number().optional(),
30
37
  });
31
38
  // Schema for individual embedding configuration
32
39
  export const EmbeddingModelConfigSchema = z.object({
33
40
  provider: z.enum(['openai', 'gemini', 'anthropic', 'local']).optional(),
41
+ engine: z.enum(['llama-cpp', 'mlx-serve', 'ollama', 'lmstudio']).optional(),
34
42
  baseUrl: z.string().optional(),
35
43
  apiKey: z.string().optional(),
36
44
  model: z.string(),
@@ -38,28 +46,91 @@ export const EmbeddingModelConfigSchema = z.object({
38
46
  eosToken: z.string().optional(), // EOS token to append to text (e.g., for Nomic models)
39
47
  });
40
48
  // Schema for the entire llm.json file
49
+ // `default` (and any key) can be either a full config object or a string pointer to another key
41
50
  export const LLMJsonConfigSchema = z.object({
42
51
  version: z.string().default('1.0'),
43
- models: z.record(z.string(), ModelConfigSchema),
44
- embeddings: z.record(z.string(), EmbeddingModelConfigSchema),
52
+ models: z.record(z.string(), z.union([z.string(), ModelConfigSchema])),
53
+ embeddings: z.record(z.string(), z.union([z.string(), EmbeddingModelConfigSchema])),
54
+ engineUrls: z.record(z.string(), z.string()).optional(),
45
55
  });
46
56
  // Singleton config manager
47
- let loadedConfig = null;
57
+ let loadedConfig = null; // runtime (env vars resolved)
58
+ let rawConfig = null; // disk-safe (${...} references preserved)
59
+ let loadedConfigPath = null;
60
+ /**
61
+ * Detect engine/provider key name from a model config object.
62
+ * Prefers `engine` (e.g. 'llama-cpp', 'mlx-serve'), falls back to `provider`.
63
+ */
64
+ function detectKeyName(entry) {
65
+ return entry.engine || entry.provider || 'unknown';
66
+ }
67
+ /**
68
+ * Migrate old format where `default` is a full config object to the new pointer format.
69
+ * Moves the object to a named key and sets `default` to that key string.
70
+ */
71
+ function migrateSection(section) {
72
+ const defaultVal = section['default'];
73
+ if (defaultVal && typeof defaultVal === 'object') {
74
+ const keyName = detectKeyName(defaultVal);
75
+ section[keyName] = defaultVal;
76
+ section['default'] = keyName;
77
+ // Also migrate `default_old` if present (legacy backup key)
78
+ const oldVal = section['default_old'];
79
+ if (oldVal && typeof oldVal === 'object') {
80
+ const oldKey = detectKeyName(oldVal);
81
+ if (!section[oldKey]) {
82
+ section[oldKey] = oldVal;
83
+ }
84
+ delete section['default_old'];
85
+ }
86
+ // Migrate `local-llama` legacy key
87
+ const localLlama = section['local-llama'];
88
+ if (localLlama && typeof localLlama === 'object') {
89
+ const llamaKey = detectKeyName(localLlama);
90
+ if (!section[llamaKey] || section['default'] !== llamaKey) {
91
+ section[llamaKey] = localLlama;
92
+ }
93
+ delete section['local-llama'];
94
+ }
95
+ return true;
96
+ }
97
+ return false;
98
+ }
48
99
  export async function loadLLMConfig(llmJsonPath) {
49
100
  const content = await fs.readFile(llmJsonPath, 'utf-8');
50
- const parsed = JSON.parse(substituteEnvVars(content));
51
- const validated = LLMJsonConfigSchema.parse(parsed);
52
- loadedConfig = validated;
53
- logger.info(`[LLMConfig] Loaded ${Object.keys(validated.models).length} model(s), ${Object.keys(validated.embeddings).length} embedding(s)`);
54
- return validated;
101
+ // Parse raw (no env substitution) — this is what we write back to disk
102
+ const rawParsed = LLMJsonConfigSchema.parse(JSON.parse(content));
103
+ // Parse resolved (with env substitution) — this is what runtime uses
104
+ const resolvedParsed = LLMJsonConfigSchema.parse(JSON.parse(substituteEnvVars(content)));
105
+ // Auto-migrate old format (default = object) to new format (default = string pointer)
106
+ // Migrate both raw and resolved configs identically
107
+ let migrated = false;
108
+ migrated = migrateSection(rawParsed.models) || migrated;
109
+ migrated = migrateSection(rawParsed.embeddings) || migrated;
110
+ migrateSection(resolvedParsed.models);
111
+ migrateSection(resolvedParsed.embeddings);
112
+ rawConfig = rawParsed;
113
+ loadedConfig = resolvedParsed;
114
+ loadedConfigPath = llmJsonPath;
115
+ if (migrated) {
116
+ logger.info('[LLMConfig] Migrated old format to pointer-based config');
117
+ // Write the RAW config (preserves ${...} env var references)
118
+ await fs.writeFile(llmJsonPath, JSON.stringify(rawParsed, null, 2));
119
+ }
120
+ logger.info(`[LLMConfig] Loaded ${Object.keys(resolvedParsed.models).length} model(s), ${Object.keys(resolvedParsed.embeddings).length} embedding(s)`);
121
+ return resolvedParsed;
55
122
  }
56
123
  export function getModelConfig(name) {
57
124
  if (!loadedConfig) {
58
125
  throw new Error('LLM config not loaded. Call loadLLMConfig() first.');
59
126
  }
60
- const config = loadedConfig.models[name];
61
- if (!config) {
62
- const available = Object.keys(loadedConfig.models).join(', ');
127
+ let config = loadedConfig.models[name];
128
+ // Dereference string pointer (one level)
129
+ if (typeof config === 'string') {
130
+ config = loadedConfig.models[config];
131
+ }
132
+ if (!config || typeof config === 'string') {
133
+ const available = Object.keys(loadedConfig.models).filter(k => typeof loadedConfig.models[k] !== 'string').join(', ');
63
134
  throw new Error(`Model config "${name}" not found. Available: ${available}`);
64
135
  }
65
136
  return config;
@@ -68,26 +139,99 @@ export function getEmbeddingConfig(name) {
68
139
  if (!loadedConfig) {
69
140
  throw new Error('LLM config not loaded. Call loadLLMConfig() first.');
70
141
  }
71
- const config = loadedConfig.embeddings[name];
72
- if (!config) {
73
- const available = Object.keys(loadedConfig.embeddings).join(', ');
142
+ let config = loadedConfig.embeddings[name];
143
+ // Dereference string pointer (one level)
144
+ if (typeof config === 'string') {
145
+ config = loadedConfig.embeddings[config];
146
+ }
147
+ if (!config || typeof config === 'string') {
148
+ const available = Object.keys(loadedConfig.embeddings).filter(k => typeof loadedConfig.embeddings[k] !== 'string').join(', ');
74
149
  throw new Error(`Embedding config "${name}" not found. Available: ${available}`);
75
150
  }
76
151
  return config;
77
152
  }
153
+ /**
154
+ * Resolve the actual key name that `default` (or any pointer) references.
155
+ * Returns the resolved key name, or the input if it's already a concrete entry.
156
+ */
157
+ export function resolveDefaultName(section, name = 'default') {
158
+ if (!loadedConfig)
159
+ return name;
160
+ const val = loadedConfig[section][name];
161
+ if (typeof val === 'string')
162
+ return val;
163
+ return name;
164
+ }
78
165
  export function listModelConfigs() {
79
166
  if (!loadedConfig) {
80
167
  return [];
81
168
  }
82
- return Object.keys(loadedConfig.models);
169
+ // Filter out string pointers — only return concrete config entries
170
+ return Object.keys(loadedConfig.models).filter(k => typeof loadedConfig.models[k] !== 'string');
83
171
  }
84
172
  export function listEmbeddingConfigs() {
85
173
  if (!loadedConfig) {
86
174
  return [];
87
175
  }
88
- return Object.keys(loadedConfig.embeddings);
176
+ return Object.keys(loadedConfig.embeddings).filter(k => typeof loadedConfig.embeddings[k] !== 'string');
89
177
  }
90
178
  export function isLLMConfigLoaded() {
91
179
  return loadedConfig !== null;
92
180
  }
181
+ export function getLLMConfig() {
182
+ return loadedConfig;
183
+ }
184
+ export function getLLMConfigPath() {
185
+ return loadedConfigPath;
186
+ }
187
+ /**
188
+ * Sync changes from the resolved runtime config into rawConfig,
189
+ * preserving ${...} env var references in apiKey fields.
190
+ */
191
+ function syncToRaw(config) {
192
+ if (!rawConfig) {
193
+ rawConfig = structuredClone(config);
194
+ return;
195
+ }
196
+ for (const section of ['models', 'embeddings']) {
197
+ const rawSection = rawConfig[section];
198
+ const newSection = config[section];
199
+ // Remove keys that were deleted
200
+ for (const key of Object.keys(rawSection)) {
201
+ if (!(key in newSection))
202
+ delete rawSection[key];
203
+ }
204
+ // Add/update keys
205
+ for (const [key, value] of Object.entries(newSection)) {
206
+ if (typeof value === 'string') {
207
+ // String pointer (e.g. "default": "llama-cpp")
208
+ rawSection[key] = value;
209
+ }
210
+ else {
211
+ const rawEntry = rawSection[key];
212
+ if (rawEntry && typeof rawEntry === 'object') {
213
+ // Existing entry — preserve ${...} apiKey reference
214
+ const rawApiKey = rawEntry.apiKey;
215
+ rawSection[key] = { ...value };
216
+ if (rawApiKey && typeof rawApiKey === 'string' && rawApiKey.includes('${')) {
217
+ rawSection[key].apiKey = rawApiKey;
218
+ }
219
+ }
220
+ else {
221
+ // New entry — write as-is
222
+ rawSection[key] = { ...value };
223
+ }
224
+ }
225
+ }
226
+ }
227
+ // Sync top-level fields
228
+ rawConfig.version = config.version;
229
+ rawConfig.engineUrls = config.engineUrls ? { ...config.engineUrls } : undefined;
230
+ }
231
+ export async function saveLLMConfig(llmJsonPath, config) {
232
+ syncToRaw(config);
233
+ await fs.writeFile(llmJsonPath, JSON.stringify(rawConfig, null, 2));
234
+ loadedConfig = config;
235
+ logger.info(`[LLMConfig] Saved config with ${Object.keys(config.models).length} model(s), ${Object.keys(config.embeddings).length} embedding(s)`);
236
+ }
93
237
  //# sourceMappingURL=llm-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,10 @@ export declare class LLMFactory {
6
6
  * Create an LLM instance from a config name (defined in llm.json)
7
7
  * @param ref - Config name as string, or object with name and optional temperature override
8
8
  */
9
- static create(ref?: AgentLLMRef): ChatModel;
9
+ static create(ref?: AgentLLMRef): Promise<ChatModel>;
10
10
  private static createOpenAI;
11
11
  private static createGemini;
12
12
  private static createAnthropic;
13
- private static createLocal;
14
13
  private static getCacheKey;
15
14
  static clearCache(): void;
16
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-factory.d.ts","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAIlE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqC;IAE7D;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,GAAE,WAAuB,GAAG,SAAS;IAsCtD,OAAO,CAAC,MAAM,CAAC,YAAY;IAa3B,OAAO,CAAC,MAAM,CAAC,YAAY;IAU3B,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}
1
+ {"version":3,"file":"llm-factory.d.ts","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAKlE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqC;IAE7D;;;OAGG;WACU,MAAM,CAAC,GAAG,GAAE,WAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;IA+DrE,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B,OAAO,CAAC,MAAM,CAAC,YAAY;IAU3B,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}
@@ -1,9 +1,10 @@
1
1
  import { OpenAIChatModel } from "./providers/openai-chat-model.js";
2
2
  import { AnthropicChatModel } from "./providers/anthropic-chat-model.js";
3
3
  import { GeminiChatModel } from "./providers/gemini-chat-model.js";
4
- import { getModelConfig, resolveApiKey } from "./llm-config.js";
4
+ import { getModelConfig, getLLMConfig, getLLMConfigPath, saveLLMConfig, resolveApiKey } from "./llm-config.js";
5
5
  import { resolveAgentLLMRef } from "./types.js";
6
6
  import { detectProvider } from "./provider-detector.js";
7
+ import { engineRegistry } from "../local-llm/engine-registry.js";
7
8
  import { logger } from "../logger.js";
8
9
  export class LLMFactory {
9
10
  static instances = new Map();
@@ -11,7 +12,7 @@ export class LLMFactory {
11
12
  * Create an LLM instance from a config name (defined in llm.json)
12
13
  * @param ref - Config name as string, or object with name and optional temperature override
13
14
  */
14
- static create(ref = 'default') {
15
+ static async create(ref = 'default') {
15
16
  const { name, temperature: tempOverride } = resolveAgentLLMRef(ref);
16
17
  const config = getModelConfig(name);
17
18
  const provider = detectProvider(config);
@@ -22,6 +23,29 @@ export class LLMFactory {
22
23
  if (cached) {
23
24
  return cached;
24
25
  }
26
+ // Auto-start local engine if needed (skip if user provides their own baseUrl)
27
+ if (provider === 'local' && !config.baseUrl) {
28
+ const engineName = config.engine ?? 'llama-cpp';
29
+ const engine = engineRegistry.getEngine(engineName);
30
+ if (!engine)
31
+ throw new Error(`Unknown local engine: ${engineName}`);
32
+ await engine.ensureRunningChat(config.model, {
33
+ contextSize: config.contextSize,
34
+ reasoningBudget: config.reasoningBudget,
35
+ });
36
+ // Persist auto-detected contextSize to llm.json
37
+ if (!config.contextSize) {
38
+ const detectedCtx = engine.getChatStatus().contextSize;
39
+ if (detectedCtx) {
40
+ config.contextSize = detectedCtx;
41
+ const fullConfig = getLLMConfig();
42
+ const configPath = getLLMConfigPath();
43
+ if (fullConfig && configPath) {
44
+ await saveLLMConfig(configPath, fullConfig);
45
+ }
46
+ }
47
+ }
48
+ }
25
49
  logger.info(`[LLMFactory] Creating LLM: ${name} (provider: ${provider}, model: ${config.model}, temp: ${temperature ?? 'default'})`);
26
50
  let llm;
27
51
  switch (provider) {
@@ -35,7 +59,7 @@ export class LLMFactory {
35
59
  llm = this.createAnthropic(config, temperature);
36
60
  break;
37
61
  case 'local':
38
- llm = this.createLocal(config, temperature, 'local');
62
+ llm = this.createOpenAI(config, temperature, 'local');
39
63
  break;
40
64
  default:
41
65
  throw new Error(`Unsupported provider: ${provider}`);
@@ -45,13 +69,25 @@ export class LLMFactory {
45
69
  }
46
70
  static createOpenAI(config, temperature, provider = 'openai') {
47
71
  const apiKey = resolveApiKey(provider, config.apiKey);
72
+ let baseURL = config.baseUrl;
73
+ let supportsVision = true;
74
+ if (provider === 'local' && !baseURL) {
75
+ const engineName = config.engine ?? 'llama-cpp';
76
+ const engine = engineRegistry.getEngine(engineName);
77
+ baseURL = (engine?.getChatBaseUrl() ?? 'http://127.0.0.1:9990') + '/v1';
78
+ supportsVision = engine?.getChatStatus().supportsVision ?? false;
79
+ }
48
80
  return new OpenAIChatModel({
49
81
  modelName: config.model,
50
82
  apiKey,
51
- maxTokens: config.maxTokens,
83
+ maxTokens: config.maxTokens ?? (provider === 'local' ? 4096 : undefined),
52
84
  streamUsage: true,
53
- baseURL: config.baseUrl,
85
+ baseURL,
54
86
  provider: provider,
87
+ supportsVision,
88
+ ...(provider === 'local' && config.reasoningBudget ? { reasoningBudget: config.reasoningBudget } : {}),
89
+ ...(config.engine ? { engine: config.engine } : {}),
90
+ ...(config.contextSize ? { contextSize: config.contextSize } : {}),
55
91
  ...(temperature !== undefined ? { temperature } : {}),
56
92
  });
57
93
  }
@@ -75,9 +111,6 @@ export class LLMFactory {
75
111
  ...(temperature !== undefined ? { temperature } : {}),
76
112
  });
77
113
  }
78
- static createLocal(config, temperature, provider = 'local') {
79
- return this.createOpenAI(config, temperature, provider);
80
- }
81
114
  static getCacheKey(name, temperature) {
82
115
  return `${name}-${temperature}`;
83
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-factory.js","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-factory.js","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ interface OpenAIChatModelOptions {
7
7
  baseURL?: string;
8
8
  streamUsage?: boolean;
9
9
  provider?: 'openai' | 'local';
10
+ supportsVision?: boolean;
11
+ reasoningBudget?: number;
12
+ engine?: string;
13
+ contextSize?: number;
10
14
  }
11
15
  export declare class OpenAIChatModel implements ChatModel {
12
16
  private client;
@@ -15,10 +19,14 @@ export declare class OpenAIChatModel implements ChatModel {
15
19
  private maxTokens?;
16
20
  private streamUsage;
17
21
  private provider;
22
+ private supportsVision;
18
23
  private isReasoningModel;
24
+ private reasoningBudget;
19
25
  private boundTools?;
20
26
  private cachedProviderTools?;
21
27
  private structuredSchema?;
28
+ private engine?;
29
+ private contextSize?;
22
30
  constructor(options: OpenAIChatModelOptions);
23
31
  /**
24
32
  * OpenAI tool messages only accept string or text-part arrays — no image_url.
@@ -28,6 +36,8 @@ export declare class OpenAIChatModel implements ChatModel {
28
36
  private toOpenAIMessages;
29
37
  private toOpenAITools;
30
38
  private parseToolCalls;
39
+ /** Build Ollama-specific options (num_ctx) when engine is ollama */
40
+ private ollamaOptions;
31
41
  invoke(messages: BaseMessage[]): Promise<ChatModelResponse>;
32
42
  stream(messages: BaseMessage[], options?: {
33
43
  signal?: AbortSignal;