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.
- package/README.md +250 -1275
- package/dist/lib/agents/agent-executor.d.ts +4 -2
- package/dist/lib/agents/agent-executor.d.ts.map +1 -1
- package/dist/lib/agents/agent-executor.js +85 -53
- package/dist/lib/agents/agent-executor.js.map +1 -1
- package/dist/lib/agents/agent-loader.d.ts +3 -0
- package/dist/lib/agents/agent-loader.d.ts.map +1 -1
- package/dist/lib/agents/agent-loader.js +10 -1
- package/dist/lib/agents/agent-loader.js.map +1 -1
- package/dist/lib/agents/react-loop.d.ts.map +1 -1
- package/dist/lib/agents/react-loop.js +207 -142
- package/dist/lib/agents/react-loop.js.map +1 -1
- package/dist/lib/agents/types.d.ts +181 -18
- package/dist/lib/agents/types.d.ts.map +1 -1
- package/dist/lib/agents/types.js +18 -2
- package/dist/lib/agents/types.js.map +1 -1
- package/dist/lib/functions/function-loader.d.ts +2 -0
- package/dist/lib/functions/function-loader.d.ts.map +1 -1
- package/dist/lib/functions/function-loader.js +10 -0
- package/dist/lib/functions/function-loader.js.map +1 -1
- package/dist/lib/functions/simple-function-wrapper.js +3 -3
- package/dist/lib/functions/simple-function-wrapper.js.map +1 -1
- package/dist/lib/integrations/email.d.ts +38 -0
- package/dist/lib/integrations/email.d.ts.map +1 -0
- package/dist/lib/integrations/email.js +249 -0
- package/dist/lib/integrations/email.js.map +1 -0
- package/dist/lib/integrations/integration-manager.d.ts +5 -0
- package/dist/lib/integrations/integration-manager.d.ts.map +1 -1
- package/dist/lib/integrations/integration-manager.js +53 -3
- package/dist/lib/integrations/integration-manager.js.map +1 -1
- package/dist/lib/integrations/types.d.ts +187 -4
- package/dist/lib/integrations/types.d.ts.map +1 -1
- package/dist/lib/integrations/types.js +24 -1
- package/dist/lib/integrations/types.js.map +1 -1
- package/dist/lib/knowledge/knowledge-store.d.ts +7 -1
- package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -1
- package/dist/lib/knowledge/knowledge-store.js +96 -8
- package/dist/lib/knowledge/knowledge-store.js.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.d.ts +8 -3
- package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.js +96 -75
- package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -1
- package/dist/lib/knowledge/loaders/web-loader.d.ts +12 -3
- package/dist/lib/knowledge/loaders/web-loader.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/web-loader.js +56 -22
- package/dist/lib/knowledge/loaders/web-loader.js.map +1 -1
- package/dist/lib/knowledge/sqlite-store.d.ts.map +1 -1
- package/dist/lib/knowledge/sqlite-store.js +19 -10
- package/dist/lib/knowledge/sqlite-store.js.map +1 -1
- package/dist/lib/knowledge/types.d.ts +69 -33
- package/dist/lib/knowledge/types.d.ts.map +1 -1
- package/dist/lib/knowledge/types.js +18 -3
- package/dist/lib/knowledge/types.js.map +1 -1
- package/dist/lib/llm/index.d.ts +1 -1
- package/dist/lib/llm/index.d.ts.map +1 -1
- package/dist/lib/llm/index.js +1 -1
- package/dist/lib/llm/index.js.map +1 -1
- package/dist/lib/llm/llm-call-logger.d.ts +3 -1
- package/dist/lib/llm/llm-call-logger.d.ts.map +1 -1
- package/dist/lib/llm/llm-call-logger.js +31 -26
- package/dist/lib/llm/llm-call-logger.js.map +1 -1
- package/dist/lib/llm/llm-config.d.ts +59 -8
- package/dist/lib/llm/llm-config.d.ts.map +1 -1
- package/dist/lib/llm/llm-config.js +163 -17
- package/dist/lib/llm/llm-config.js.map +1 -1
- package/dist/lib/llm/llm-factory.d.ts +1 -2
- package/dist/lib/llm/llm-factory.d.ts.map +1 -1
- package/dist/lib/llm/llm-factory.js +44 -8
- package/dist/lib/llm/llm-factory.js.map +1 -1
- package/dist/lib/llm/providers/anthropic-chat-model.d.ts +5 -1
- package/dist/lib/llm/providers/anthropic-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/anthropic-chat-model.js +118 -42
- package/dist/lib/llm/providers/anthropic-chat-model.js.map +1 -1
- package/dist/lib/llm/providers/gemini-chat-model.d.ts +3 -2
- package/dist/lib/llm/providers/gemini-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/gemini-chat-model.js +83 -24
- package/dist/lib/llm/providers/gemini-chat-model.js.map +1 -1
- package/dist/lib/llm/providers/openai-chat-model.d.ts +20 -1
- package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/openai-chat-model.js +265 -32
- package/dist/lib/llm/providers/openai-chat-model.js.map +1 -1
- package/dist/lib/llm/providers/openai-embeddings.d.ts.map +1 -1
- package/dist/lib/llm/providers/openai-embeddings.js +41 -10
- package/dist/lib/llm/providers/openai-embeddings.js.map +1 -1
- package/dist/lib/local-llm/binary-manager.d.ts +66 -0
- package/dist/lib/local-llm/binary-manager.d.ts.map +1 -0
- package/dist/lib/local-llm/binary-manager.js +441 -0
- package/dist/lib/local-llm/binary-manager.js.map +1 -0
- package/dist/lib/local-llm/engine-interface.d.ts +47 -0
- package/dist/lib/local-llm/engine-interface.d.ts.map +1 -0
- package/dist/lib/local-llm/engine-interface.js +2 -0
- package/dist/lib/local-llm/engine-interface.js.map +1 -0
- package/dist/lib/local-llm/engine-registry.d.ts +20 -0
- package/dist/lib/local-llm/engine-registry.d.ts.map +1 -0
- package/dist/lib/local-llm/engine-registry.js +56 -0
- package/dist/lib/local-llm/engine-registry.js.map +1 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts +31 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts.map +1 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.js +164 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.js.map +1 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts +31 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts.map +1 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.js +161 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.js.map +1 -0
- package/dist/lib/local-llm/gguf-reader.d.ts +20 -0
- package/dist/lib/local-llm/gguf-reader.d.ts.map +1 -0
- package/dist/lib/local-llm/gguf-reader.js +190 -0
- package/dist/lib/local-llm/gguf-reader.js.map +1 -0
- package/dist/lib/local-llm/index.d.ts +9 -0
- package/dist/lib/local-llm/index.d.ts.map +1 -0
- package/dist/lib/local-llm/index.js +6 -0
- package/dist/lib/local-llm/index.js.map +1 -0
- package/dist/lib/local-llm/llama-server-process.d.ts +42 -0
- package/dist/lib/local-llm/llama-server-process.d.ts.map +1 -0
- package/dist/lib/local-llm/llama-server-process.js +237 -0
- package/dist/lib/local-llm/llama-server-process.js.map +1 -0
- package/dist/lib/local-llm/mlx-binary-manager.d.ts +33 -0
- package/dist/lib/local-llm/mlx-binary-manager.d.ts.map +1 -0
- package/dist/lib/local-llm/mlx-binary-manager.js +211 -0
- package/dist/lib/local-llm/mlx-binary-manager.js.map +1 -0
- package/dist/lib/local-llm/mlx-server-process.d.ts +26 -0
- package/dist/lib/local-llm/mlx-server-process.d.ts.map +1 -0
- package/dist/lib/local-llm/mlx-server-process.js +210 -0
- package/dist/lib/local-llm/mlx-server-process.js.map +1 -0
- package/dist/lib/local-llm/model-manager.d.ts +33 -0
- package/dist/lib/local-llm/model-manager.d.ts.map +1 -0
- package/dist/lib/local-llm/model-manager.js +591 -0
- package/dist/lib/local-llm/model-manager.js.map +1 -0
- package/dist/lib/local-llm/types.d.ts +51 -0
- package/dist/lib/local-llm/types.d.ts.map +1 -0
- package/dist/lib/local-llm/types.js +2 -0
- package/dist/lib/local-llm/types.js.map +1 -0
- package/dist/lib/logger.d.ts +2 -0
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +68 -6
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/mcp/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp/mcp-client.js +5 -3
- package/dist/lib/mcp/mcp-client.js.map +1 -1
- package/dist/lib/mcp/types.d.ts +0 -9
- package/dist/lib/mcp/types.d.ts.map +1 -1
- package/dist/lib/mcp/types.js +1 -2
- package/dist/lib/mcp/types.js.map +1 -1
- package/dist/lib/memory/memory-manager.d.ts +1 -0
- package/dist/lib/memory/memory-manager.d.ts.map +1 -1
- package/dist/lib/memory/memory-manager.js +9 -0
- package/dist/lib/memory/memory-manager.js.map +1 -1
- package/dist/lib/orchestrator.d.ts +11 -8
- package/dist/lib/orchestrator.d.ts.map +1 -1
- package/dist/lib/orchestrator.js +246 -5
- package/dist/lib/orchestrator.js.map +1 -1
- package/dist/lib/sandbox/cdp-client.d.ts +15 -0
- package/dist/lib/sandbox/cdp-client.d.ts.map +1 -0
- package/dist/lib/sandbox/cdp-client.js +139 -0
- package/dist/lib/sandbox/cdp-client.js.map +1 -0
- package/dist/lib/sandbox/html-to-markdown.d.ts +9 -1
- package/dist/lib/sandbox/html-to-markdown.d.ts.map +1 -1
- package/dist/lib/sandbox/html-to-markdown.js +67 -10
- package/dist/lib/sandbox/html-to-markdown.js.map +1 -1
- package/dist/lib/sandbox/index.d.ts +6 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -1
- package/dist/lib/sandbox/index.js +5 -0
- package/dist/lib/sandbox/index.js.map +1 -1
- package/dist/lib/sandbox/page-readiness.d.ts +37 -0
- package/dist/lib/sandbox/page-readiness.d.ts.map +1 -0
- package/dist/lib/sandbox/page-readiness.js +268 -0
- package/dist/lib/sandbox/page-readiness.js.map +1 -0
- package/dist/lib/sandbox/sandbox-browser.d.ts +4 -0
- package/dist/lib/sandbox/sandbox-browser.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-browser.js +316 -0
- package/dist/lib/sandbox/sandbox-browser.js.map +1 -0
- package/dist/lib/sandbox/sandbox-container.d.ts +39 -0
- package/dist/lib/sandbox/sandbox-container.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-container.js +176 -0
- package/dist/lib/sandbox/sandbox-container.js.map +1 -0
- package/dist/lib/sandbox/sandbox-file.d.ts +4 -0
- package/dist/lib/sandbox/sandbox-file.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-file.js +169 -0
- package/dist/lib/sandbox/sandbox-file.js.map +1 -0
- package/dist/lib/sandbox/sandbox-shell.d.ts +5 -0
- package/dist/lib/sandbox/sandbox-shell.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-shell.js +111 -0
- package/dist/lib/sandbox/sandbox-shell.js.map +1 -0
- package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -1
- package/dist/lib/sandbox/sandbox-web.js +64 -24
- package/dist/lib/sandbox/sandbox-web.js.map +1 -1
- package/dist/lib/sandbox/types.d.ts +9 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -1
- package/dist/lib/sandbox/types.js +1 -0
- package/dist/lib/sandbox/types.js.map +1 -1
- package/dist/lib/sandbox/vision-browser.d.ts +4 -0
- package/dist/lib/sandbox/vision-browser.d.ts.map +1 -0
- package/dist/lib/sandbox/vision-browser.js +298 -0
- package/dist/lib/sandbox/vision-browser.js.map +1 -0
- package/dist/lib/sea/app-window.d.ts +7 -0
- package/dist/lib/sea/app-window.d.ts.map +1 -0
- package/dist/lib/sea/app-window.js +95 -0
- package/dist/lib/sea/app-window.js.map +1 -0
- package/dist/lib/sea/bootstrap.d.ts +18 -0
- package/dist/lib/sea/bootstrap.d.ts.map +1 -0
- package/dist/lib/sea/bootstrap.js +103 -0
- package/dist/lib/sea/bootstrap.js.map +1 -0
- package/dist/lib/sea/sqlite-vec-shim.d.ts +3 -0
- package/dist/lib/sea/sqlite-vec-shim.d.ts.map +1 -0
- package/dist/lib/sea/sqlite-vec-shim.js +10 -0
- package/dist/lib/sea/sqlite-vec-shim.js.map +1 -0
- package/dist/lib/skills/skill-loader.d.ts +2 -0
- package/dist/lib/skills/skill-loader.d.ts.map +1 -1
- package/dist/lib/skills/skill-loader.js +12 -1
- package/dist/lib/skills/skill-loader.js.map +1 -1
- package/dist/lib/tasks/task-manager.d.ts +3 -1
- package/dist/lib/tasks/task-manager.d.ts.map +1 -1
- package/dist/lib/tasks/task-manager.js +11 -0
- package/dist/lib/tasks/task-manager.js.map +1 -1
- package/dist/lib/tasks/task-store.d.ts +1 -1
- package/dist/lib/tasks/task-store.d.ts.map +1 -1
- package/dist/lib/tasks/task-store.js.map +1 -1
- package/dist/lib/tasks/types.d.ts +18 -0
- package/dist/lib/tasks/types.d.ts.map +1 -1
- package/dist/lib/tools/built-in/integration-tools.d.ts +4 -0
- package/dist/lib/tools/built-in/integration-tools.d.ts.map +1 -0
- package/dist/lib/tools/built-in/integration-tools.js +47 -0
- package/dist/lib/tools/built-in/integration-tools.js.map +1 -0
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts +1 -2
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js +17 -17
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js +2 -4
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-search.tool.js +4 -4
- package/dist/lib/tools/built-in/knowledge-search.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-sql.tool.js +74 -40
- package/dist/lib/tools/built-in/knowledge-sql.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-tools-factory.js +2 -2
- package/dist/lib/tools/built-in/knowledge-tools-factory.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts +1 -2
- package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-traverse.tool.js +5 -11
- package/dist/lib/tools/built-in/knowledge-traverse.tool.js.map +1 -1
- package/dist/lib/tools/built-in/query-validators.d.ts.map +1 -1
- package/dist/lib/tools/built-in/query-validators.js +4 -0
- package/dist/lib/tools/built-in/query-validators.js.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.d.ts +1 -0
- package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.js +44 -4
- package/dist/lib/tools/workspace/workspace-tools.js.map +1 -1
- package/dist/lib/triggers/cron-trigger.d.ts +1 -1
- package/dist/lib/triggers/cron-trigger.d.ts.map +1 -1
- package/dist/lib/triggers/cron-trigger.js.map +1 -1
- package/dist/lib/triggers/trigger-manager.d.ts +1 -0
- package/dist/lib/triggers/trigger-manager.d.ts.map +1 -1
- package/dist/lib/triggers/trigger-manager.js +26 -0
- package/dist/lib/triggers/trigger-manager.js.map +1 -1
- package/dist/lib/triggers/webhook-trigger.d.ts +1 -1
- package/dist/lib/triggers/webhook-trigger.d.ts.map +1 -1
- package/dist/lib/triggers/webhook-trigger.js.map +1 -1
- package/dist/lib/types/llm-types.d.ts +22 -4
- package/dist/lib/types/llm-types.d.ts.map +1 -1
- package/dist/lib/types/llm-types.js +50 -0
- package/dist/lib/types/llm-types.js.map +1 -1
- package/dist/lib/types/tool-factory.d.ts +2 -2
- package/dist/lib/types/tool-factory.d.ts.map +1 -1
- package/dist/lib/types/tool-factory.js +9 -2
- package/dist/lib/types/tool-factory.js.map +1 -1
- package/dist/lib/utils/document-extract.d.ts +10 -0
- package/dist/lib/utils/document-extract.d.ts.map +1 -0
- package/dist/lib/utils/document-extract.js +149 -0
- package/dist/lib/utils/document-extract.js.map +1 -0
- package/dist/lib/utils/env-substitution.d.ts +6 -0
- package/dist/lib/utils/env-substitution.d.ts.map +1 -0
- package/dist/lib/utils/env-substitution.js +15 -0
- package/dist/lib/utils/env-substitution.js.map +1 -0
- package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -1
- package/dist/lib/workflows/react-workflow-executor.js +23 -17
- package/dist/lib/workflows/react-workflow-executor.js.map +1 -1
- package/dist/lib/workflows/types.d.ts +81 -55
- package/dist/lib/workflows/types.d.ts.map +1 -1
- package/dist/lib/workflows/types.js +10 -0
- package/dist/lib/workflows/types.js.map +1 -1
- package/dist/lib/workflows/workflow-loader.d.ts +3 -0
- package/dist/lib/workflows/workflow-loader.d.ts.map +1 -1
- package/dist/lib/workflows/workflow-loader.js +10 -1
- package/dist/lib/workflows/workflow-loader.js.map +1 -1
- package/dist/public/assets/logo.png +0 -0
- package/dist/public/chat.html +39 -0
- package/dist/public/index.html +6 -176
- package/dist/public/src/components/AgentComposer.js +807 -0
- package/dist/public/src/components/AgentsView.js +1812 -508
- package/dist/public/src/components/AppRoot.js +125 -38
- package/dist/public/src/components/GraphView.js +382 -300
- package/dist/public/src/components/IdeView.js +277 -86
- package/dist/public/src/components/KnowledgeView.js +94 -130
- package/dist/public/src/components/LlmView.js +15 -19
- package/dist/public/src/components/LocalLlmView.js +2440 -0
- package/dist/public/src/components/LogViewer.js +155 -0
- package/dist/public/src/components/McpView.js +41 -49
- package/dist/public/src/components/MonitorView.js +174 -83
- package/dist/public/src/components/NavBar.js +16 -26
- package/dist/public/src/components/StandaloneChat.js +875 -0
- package/dist/public/src/services/ApiService.js +203 -4
- package/dist/public/src/services/SessionStore.js +86 -0
- package/dist/public/src/services/StreamManager.js +183 -0
- package/dist/public/src/store.js +1 -3
- package/dist/public/src/utils/card.js +21 -0
- package/dist/public/src/utils/markdown.js +7 -0
- package/dist/public/styles.css +2777 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +7 -1
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/start.d.ts.map +1 -1
- package/dist/src/cli/commands/start.js +28 -5
- package/dist/src/cli/commands/start.js.map +1 -1
- package/dist/src/cli/index.js +19 -5
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/index.js +7 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/middleware/auth.d.ts.map +1 -1
- package/dist/src/middleware/auth.js +28 -6
- package/dist/src/middleware/auth.js.map +1 -1
- package/dist/src/middleware/rate-limit.d.ts +8 -0
- package/dist/src/middleware/rate-limit.d.ts.map +1 -0
- package/dist/src/middleware/rate-limit.js +21 -0
- package/dist/src/middleware/rate-limit.js.map +1 -0
- package/dist/src/routes/agents.route.d.ts.map +1 -1
- package/dist/src/routes/agents.route.js +138 -10
- package/dist/src/routes/agents.route.js.map +1 -1
- package/dist/src/routes/chat.route.d.ts +3 -0
- package/dist/src/routes/chat.route.d.ts.map +1 -0
- package/dist/src/routes/chat.route.js +156 -0
- package/dist/src/routes/chat.route.js.map +1 -0
- package/dist/src/routes/files.route.d.ts.map +1 -1
- package/dist/src/routes/files.route.js +37 -2
- package/dist/src/routes/files.route.js.map +1 -1
- package/dist/src/routes/llm.route.d.ts.map +1 -1
- package/dist/src/routes/llm.route.js +263 -8
- package/dist/src/routes/llm.route.js.map +1 -1
- package/dist/src/routes/local-llm.route.d.ts +3 -0
- package/dist/src/routes/local-llm.route.d.ts.map +1 -0
- package/dist/src/routes/local-llm.route.js +688 -0
- package/dist/src/routes/local-llm.route.js.map +1 -0
- package/dist/src/routes/logs.route.d.ts +3 -0
- package/dist/src/routes/logs.route.d.ts.map +1 -0
- package/dist/src/routes/logs.route.js +24 -0
- package/dist/src/routes/logs.route.js.map +1 -0
- package/dist/src/routes/tasks.route.d.ts.map +1 -1
- package/dist/src/routes/tasks.route.js +15 -1
- package/dist/src/routes/tasks.route.js.map +1 -1
- package/dist/src/routes/vnc.route.d.ts +12 -0
- package/dist/src/routes/vnc.route.d.ts.map +1 -0
- package/dist/src/routes/vnc.route.js +74 -0
- package/dist/src/routes/vnc.route.js.map +1 -0
- package/dist/src/routes/workflows.route.d.ts.map +1 -1
- package/dist/src/routes/workflows.route.js +24 -0
- package/dist/src/routes/workflows.route.js.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +29 -3
- package/dist/src/server.js.map +1 -1
- package/dist/templates/Demo.md +152 -0
- package/dist/templates/README.md +12 -3
- package/dist/templates/agents/actor.agent.yaml +34 -0
- package/dist/templates/agents/architect.agent.yaml +20 -13
- package/dist/templates/agents/chatbot.agent.yaml +23 -27
- package/dist/templates/agents/corporate.agent.yaml +64 -0
- package/dist/templates/agents/functions.agent.yaml +29 -0
- package/dist/templates/agents/investment-analyst.agent.yaml +79 -0
- package/dist/templates/agents/music-librarian.agent.yaml +46 -0
- package/dist/templates/agents/network-security.agent.yaml +81 -0
- package/dist/templates/agents/transport-security.agent.yaml +69 -0
- package/dist/templates/agents/web-engineer.agent.yaml +98 -0
- package/dist/templates/agents/web-pilot.agent.yaml +57 -0
- package/dist/templates/knowledge/music-store/LICENSE.md +11 -0
- package/dist/templates/knowledge/music-store/musicstore.sqlite +0 -0
- package/dist/templates/knowledge/music-store/tables.png +0 -0
- package/dist/templates/knowledge/music-store.knowledge.yaml +138 -0
- package/dist/templates/knowledge/org-chart/personnel.csv +21 -21
- package/dist/templates/knowledge/org-chart.knowledge.yaml +4 -0
- package/dist/templates/knowledge/patient-records.knowledge.yaml +20 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_0.pdf +0 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_1.pdf +0 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_10.pdf +0 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_11.pdf +0 -0
- package/dist/templates/knowledge/pet-store.knowledge.yaml +3 -0
- package/dist/templates/knowledge/security-incidents/incidents.json +55935 -0
- package/dist/templates/knowledge/security-incidents.knowledge.yaml +46 -0
- package/dist/templates/knowledge/{example.knowledge.yaml → transcripts.knowledge.yaml} +9 -5
- package/dist/templates/knowledge/transport-ot/systems.csv +117 -0
- package/dist/templates/knowledge/transport-ot.knowledge.yaml +55 -0
- package/dist/templates/knowledge/web-docs.knowledge.yaml +1 -1
- package/dist/templates/llm.json +62 -22
- package/dist/templates/mcp.json +7 -4
- package/dist/templates/skills/orcha-builder/SKILL.md +148 -215
- package/dist/templates/skills/pii-guard/SKILL.md +22 -0
- package/dist/templates/skills/sandbox/SKILL.md +25 -48
- package/dist/templates/skills/web-pilot/SKILL.md +51 -0
- package/dist/templates/workflows/example.workflow.yaml +27 -35
- package/dist/templates/workflows/react-example.workflow.yaml +14 -19
- package/dist/templates/workflows/team-chat.workflow.yaml +47 -0
- package/package.json +17 -4
- package/dist/public/src/components/SkillsView.js +0 -137
- package/dist/public/src/components/WorkflowsView.js +0 -416
- package/dist/templates/agents/knowledge-broker.agent.yaml +0 -39
- package/dist/templates/agents/sandbox.agent.yaml +0 -56
|
@@ -7,28 +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>;
|
|
16
|
+
thinkingBudget: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
reasoningBudget: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
contextSize: z.ZodOptional<z.ZodNumber>;
|
|
15
19
|
}, "strip", z.ZodTypeAny, {
|
|
16
20
|
model: string;
|
|
17
21
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
22
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
18
23
|
baseUrl?: string | undefined;
|
|
19
24
|
apiKey?: string | undefined;
|
|
20
25
|
temperature?: number | undefined;
|
|
21
26
|
maxTokens?: number | undefined;
|
|
27
|
+
thinkingBudget?: number | undefined;
|
|
28
|
+
reasoningBudget?: number | undefined;
|
|
29
|
+
contextSize?: number | undefined;
|
|
22
30
|
}, {
|
|
23
31
|
model: string;
|
|
24
32
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
33
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
25
34
|
baseUrl?: string | undefined;
|
|
26
35
|
apiKey?: string | undefined;
|
|
27
36
|
temperature?: number | undefined;
|
|
28
37
|
maxTokens?: number | undefined;
|
|
38
|
+
thinkingBudget?: number | undefined;
|
|
39
|
+
reasoningBudget?: number | undefined;
|
|
40
|
+
contextSize?: number | undefined;
|
|
29
41
|
}>;
|
|
30
42
|
export declare const EmbeddingModelConfigSchema: z.ZodObject<{
|
|
31
43
|
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
44
|
+
engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
|
|
32
45
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
33
46
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
34
47
|
model: z.ZodString;
|
|
@@ -37,6 +50,7 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
|
|
|
37
50
|
}, "strip", z.ZodTypeAny, {
|
|
38
51
|
model: string;
|
|
39
52
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
53
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
40
54
|
baseUrl?: string | undefined;
|
|
41
55
|
apiKey?: string | undefined;
|
|
42
56
|
dimensions?: number | undefined;
|
|
@@ -44,6 +58,7 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
|
|
|
44
58
|
}, {
|
|
45
59
|
model: string;
|
|
46
60
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
61
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
47
62
|
baseUrl?: string | undefined;
|
|
48
63
|
apiKey?: string | undefined;
|
|
49
64
|
dimensions?: number | undefined;
|
|
@@ -51,30 +66,43 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
|
|
|
51
66
|
}>;
|
|
52
67
|
export declare const LLMJsonConfigSchema: z.ZodObject<{
|
|
53
68
|
version: z.ZodDefault<z.ZodString>;
|
|
54
|
-
models: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
69
|
+
models: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
55
70
|
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
71
|
+
engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
|
|
56
72
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
57
73
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
58
74
|
model: z.ZodString;
|
|
59
75
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
60
76
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
thinkingBudget: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
reasoningBudget: z.ZodOptional<z.ZodNumber>;
|
|
79
|
+
contextSize: z.ZodOptional<z.ZodNumber>;
|
|
61
80
|
}, "strip", z.ZodTypeAny, {
|
|
62
81
|
model: string;
|
|
63
82
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
83
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
64
84
|
baseUrl?: string | undefined;
|
|
65
85
|
apiKey?: string | undefined;
|
|
66
86
|
temperature?: number | undefined;
|
|
67
87
|
maxTokens?: number | undefined;
|
|
88
|
+
thinkingBudget?: number | undefined;
|
|
89
|
+
reasoningBudget?: number | undefined;
|
|
90
|
+
contextSize?: number | undefined;
|
|
68
91
|
}, {
|
|
69
92
|
model: string;
|
|
70
93
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
94
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
71
95
|
baseUrl?: string | undefined;
|
|
72
96
|
apiKey?: string | undefined;
|
|
73
97
|
temperature?: number | undefined;
|
|
74
98
|
maxTokens?: number | undefined;
|
|
75
|
-
|
|
76
|
-
|
|
99
|
+
thinkingBudget?: number | undefined;
|
|
100
|
+
reasoningBudget?: number | undefined;
|
|
101
|
+
contextSize?: number | undefined;
|
|
102
|
+
}>]>>;
|
|
103
|
+
embeddings: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
77
104
|
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
105
|
+
engine: z.ZodOptional<z.ZodEnum<["llama-cpp", "mlx-serve", "ollama", "lmstudio"]>>;
|
|
78
106
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
79
107
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
80
108
|
model: z.ZodString;
|
|
@@ -83,6 +111,7 @@ export declare const LLMJsonConfigSchema: z.ZodObject<{
|
|
|
83
111
|
}, "strip", z.ZodTypeAny, {
|
|
84
112
|
model: string;
|
|
85
113
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
114
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
86
115
|
baseUrl?: string | undefined;
|
|
87
116
|
apiKey?: string | undefined;
|
|
88
117
|
dimensions?: number | undefined;
|
|
@@ -90,47 +119,61 @@ export declare const LLMJsonConfigSchema: z.ZodObject<{
|
|
|
90
119
|
}, {
|
|
91
120
|
model: string;
|
|
92
121
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
122
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
93
123
|
baseUrl?: string | undefined;
|
|
94
124
|
apiKey?: string | undefined;
|
|
95
125
|
dimensions?: number | undefined;
|
|
96
126
|
eosToken?: string | undefined;
|
|
97
|
-
}>>;
|
|
127
|
+
}>]>>;
|
|
128
|
+
engineUrls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
98
129
|
}, "strip", z.ZodTypeAny, {
|
|
99
130
|
version: string;
|
|
100
|
-
models: Record<string, {
|
|
131
|
+
models: Record<string, string | {
|
|
101
132
|
model: string;
|
|
102
133
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
134
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
103
135
|
baseUrl?: string | undefined;
|
|
104
136
|
apiKey?: string | undefined;
|
|
105
137
|
temperature?: number | undefined;
|
|
106
138
|
maxTokens?: number | undefined;
|
|
139
|
+
thinkingBudget?: number | undefined;
|
|
140
|
+
reasoningBudget?: number | undefined;
|
|
141
|
+
contextSize?: number | undefined;
|
|
107
142
|
}>;
|
|
108
|
-
embeddings: Record<string, {
|
|
143
|
+
embeddings: Record<string, string | {
|
|
109
144
|
model: string;
|
|
110
145
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
146
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
111
147
|
baseUrl?: string | undefined;
|
|
112
148
|
apiKey?: string | undefined;
|
|
113
149
|
dimensions?: number | undefined;
|
|
114
150
|
eosToken?: string | undefined;
|
|
115
151
|
}>;
|
|
152
|
+
engineUrls?: Record<string, string> | undefined;
|
|
116
153
|
}, {
|
|
117
|
-
models: Record<string, {
|
|
154
|
+
models: Record<string, string | {
|
|
118
155
|
model: string;
|
|
119
156
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
157
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
120
158
|
baseUrl?: string | undefined;
|
|
121
159
|
apiKey?: string | undefined;
|
|
122
160
|
temperature?: number | undefined;
|
|
123
161
|
maxTokens?: number | undefined;
|
|
162
|
+
thinkingBudget?: number | undefined;
|
|
163
|
+
reasoningBudget?: number | undefined;
|
|
164
|
+
contextSize?: number | undefined;
|
|
124
165
|
}>;
|
|
125
|
-
embeddings: Record<string, {
|
|
166
|
+
embeddings: Record<string, string | {
|
|
126
167
|
model: string;
|
|
127
168
|
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
169
|
+
engine?: "llama-cpp" | "mlx-serve" | "ollama" | "lmstudio" | undefined;
|
|
128
170
|
baseUrl?: string | undefined;
|
|
129
171
|
apiKey?: string | undefined;
|
|
130
172
|
dimensions?: number | undefined;
|
|
131
173
|
eosToken?: string | undefined;
|
|
132
174
|
}>;
|
|
133
175
|
version?: string | undefined;
|
|
176
|
+
engineUrls?: Record<string, string> | undefined;
|
|
134
177
|
}>;
|
|
135
178
|
export type ModelConfig = z.infer<typeof ModelConfigSchema>;
|
|
136
179
|
export type EmbeddingModelConfig = z.infer<typeof EmbeddingModelConfigSchema>;
|
|
@@ -138,7 +181,15 @@ export type LLMJsonConfig = z.infer<typeof LLMJsonConfigSchema>;
|
|
|
138
181
|
export declare function loadLLMConfig(llmJsonPath: string): Promise<LLMJsonConfig>;
|
|
139
182
|
export declare function getModelConfig(name: string): ModelConfig;
|
|
140
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;
|
|
141
189
|
export declare function listModelConfigs(): string[];
|
|
142
190
|
export declare function listEmbeddingConfigs(): string[];
|
|
143
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>;
|
|
144
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;
|
|
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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs/promises';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
+
import { substituteEnvVars } from "../utils/env-substitution.js";
|
|
3
4
|
import { logger } from "../logger.js";
|
|
4
5
|
const PROVIDER_ENV_VARS = {
|
|
5
6
|
openai: 'OPENAI_API_KEY',
|
|
@@ -12,23 +13,32 @@ const PROVIDER_ENV_VARS = {
|
|
|
12
13
|
* Priority: explicit apiKey in config > provider-specific env var.
|
|
13
14
|
*/
|
|
14
15
|
export function resolveApiKey(provider, apiKey) {
|
|
15
|
-
if (apiKey)
|
|
16
|
+
if (apiKey) {
|
|
17
|
+
const resolved = substituteEnvVars(apiKey);
|
|
18
|
+
if (resolved !== apiKey)
|
|
19
|
+
return resolved || undefined;
|
|
16
20
|
return apiKey;
|
|
21
|
+
}
|
|
17
22
|
const envVar = PROVIDER_ENV_VARS[provider];
|
|
18
23
|
return process.env[envVar];
|
|
19
24
|
}
|
|
20
25
|
// Schema for individual model configuration
|
|
21
26
|
export const ModelConfigSchema = z.object({
|
|
22
27
|
provider: z.enum(['openai', 'gemini', 'anthropic', 'local']).optional(),
|
|
28
|
+
engine: z.enum(['llama-cpp', 'mlx-serve', 'ollama', 'lmstudio']).optional(),
|
|
23
29
|
baseUrl: z.string().optional(),
|
|
24
30
|
apiKey: z.string().optional(),
|
|
25
31
|
model: z.string(),
|
|
26
32
|
temperature: z.number().min(0).max(2).optional(),
|
|
27
33
|
maxTokens: z.number().optional(),
|
|
34
|
+
thinkingBudget: z.number().optional(),
|
|
35
|
+
reasoningBudget: z.number().optional(),
|
|
36
|
+
contextSize: z.number().optional(),
|
|
28
37
|
});
|
|
29
38
|
// Schema for individual embedding configuration
|
|
30
39
|
export const EmbeddingModelConfigSchema = z.object({
|
|
31
40
|
provider: z.enum(['openai', 'gemini', 'anthropic', 'local']).optional(),
|
|
41
|
+
engine: z.enum(['llama-cpp', 'mlx-serve', 'ollama', 'lmstudio']).optional(),
|
|
32
42
|
baseUrl: z.string().optional(),
|
|
33
43
|
apiKey: z.string().optional(),
|
|
34
44
|
model: z.string(),
|
|
@@ -36,28 +46,91 @@ export const EmbeddingModelConfigSchema = z.object({
|
|
|
36
46
|
eosToken: z.string().optional(), // EOS token to append to text (e.g., for Nomic models)
|
|
37
47
|
});
|
|
38
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
|
|
39
50
|
export const LLMJsonConfigSchema = z.object({
|
|
40
51
|
version: z.string().default('1.0'),
|
|
41
|
-
models: z.record(z.string(), ModelConfigSchema),
|
|
42
|
-
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(),
|
|
43
55
|
});
|
|
44
56
|
// Singleton config manager
|
|
45
|
-
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
|
+
}
|
|
46
99
|
export async function loadLLMConfig(llmJsonPath) {
|
|
47
100
|
const content = await fs.readFile(llmJsonPath, 'utf-8');
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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;
|
|
53
122
|
}
|
|
54
123
|
export function getModelConfig(name) {
|
|
55
124
|
if (!loadedConfig) {
|
|
56
125
|
throw new Error('LLM config not loaded. Call loadLLMConfig() first.');
|
|
57
126
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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(', ');
|
|
61
134
|
throw new Error(`Model config "${name}" not found. Available: ${available}`);
|
|
62
135
|
}
|
|
63
136
|
return config;
|
|
@@ -66,26 +139,99 @@ export function getEmbeddingConfig(name) {
|
|
|
66
139
|
if (!loadedConfig) {
|
|
67
140
|
throw new Error('LLM config not loaded. Call loadLLMConfig() first.');
|
|
68
141
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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(', ');
|
|
72
149
|
throw new Error(`Embedding config "${name}" not found. Available: ${available}`);
|
|
73
150
|
}
|
|
74
151
|
return config;
|
|
75
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
|
+
}
|
|
76
165
|
export function listModelConfigs() {
|
|
77
166
|
if (!loadedConfig) {
|
|
78
167
|
return [];
|
|
79
168
|
}
|
|
80
|
-
return
|
|
169
|
+
// Filter out string pointers — only return concrete config entries
|
|
170
|
+
return Object.keys(loadedConfig.models).filter(k => typeof loadedConfig.models[k] !== 'string');
|
|
81
171
|
}
|
|
82
172
|
export function listEmbeddingConfigs() {
|
|
83
173
|
if (!loadedConfig) {
|
|
84
174
|
return [];
|
|
85
175
|
}
|
|
86
|
-
return Object.keys(loadedConfig.embeddings);
|
|
176
|
+
return Object.keys(loadedConfig.embeddings).filter(k => typeof loadedConfig.embeddings[k] !== 'string');
|
|
87
177
|
}
|
|
88
178
|
export function isLLMConfigLoaded() {
|
|
89
179
|
return loadedConfig !== null;
|
|
90
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
|
+
}
|
|
91
237
|
//# sourceMappingURL=llm-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,MAAM,iBAAiB,GAAgC;IACrD,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,gBAAgB;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAqB,EAAE,MAAe;IAClE,IAAI,MAAM;
|
|
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;
|
|
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.
|
|
62
|
+
llm = this.createOpenAI(config, temperature, 'local');
|
|
39
63
|
break;
|
|
40
64
|
default:
|
|
41
65
|
throw new Error(`Unsupported provider: ${provider}`);
|
|
@@ -45,12 +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
|
|
85
|
+
baseURL,
|
|
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 } : {}),
|
|
54
91
|
...(temperature !== undefined ? { temperature } : {}),
|
|
55
92
|
});
|
|
56
93
|
}
|
|
@@ -68,13 +105,12 @@ export class LLMFactory {
|
|
|
68
105
|
return new AnthropicChatModel({
|
|
69
106
|
modelName: config.model,
|
|
70
107
|
apiKey,
|
|
108
|
+
baseURL: config.baseUrl,
|
|
71
109
|
maxTokens: config.maxTokens,
|
|
110
|
+
thinkingBudget: config.thinkingBudget,
|
|
72
111
|
...(temperature !== undefined ? { temperature } : {}),
|
|
73
112
|
});
|
|
74
113
|
}
|
|
75
|
-
static createLocal(config, temperature, provider = 'local') {
|
|
76
|
-
return this.createOpenAI(config, temperature, provider);
|
|
77
|
-
}
|
|
78
114
|
static getCacheKey(name, temperature) {
|
|
79
115
|
return `${name}-${temperature}`;
|
|
80
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-factory.js","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAoB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-factory.js","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ChatModel, type ChatModelResponse, type BaseMessage, type StructuredTool } from '../../types/llm-types.ts';
|
|
2
2
|
interface AnthropicChatModelOptions {
|
|
3
3
|
apiKey?: string;
|
|
4
|
+
baseURL?: string;
|
|
4
5
|
modelName: string;
|
|
5
6
|
temperature?: number;
|
|
6
7
|
maxTokens?: number;
|
|
8
|
+
thinkingBudget?: number;
|
|
7
9
|
}
|
|
8
10
|
export declare class AnthropicChatModel implements ChatModel {
|
|
9
11
|
private client;
|
|
10
12
|
private modelName;
|
|
11
13
|
private temperature?;
|
|
12
14
|
private maxTokens;
|
|
15
|
+
private thinkingBudget?;
|
|
13
16
|
private boundTools?;
|
|
17
|
+
private cachedProviderTools?;
|
|
14
18
|
private structuredSchema?;
|
|
15
19
|
constructor(options: AnthropicChatModelOptions);
|
|
16
20
|
private extractSystemAndMessages;
|