kemdicode-mcp 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +486 -0
- package/dist/ai/agents.d.ts +40 -0
- package/dist/ai/agents.d.ts.map +1 -0
- package/dist/ai/agents.js +164 -0
- package/dist/ai/agents.js.map +1 -0
- package/dist/ai/client.d.ts +73 -0
- package/dist/ai/client.d.ts.map +1 -0
- package/dist/ai/client.js +235 -0
- package/dist/ai/client.js.map +1 -0
- package/dist/ai/execute.d.ts +61 -0
- package/dist/ai/execute.d.ts.map +1 -0
- package/dist/ai/execute.js +98 -0
- package/dist/ai/execute.js.map +1 -0
- package/dist/ai/file-context.d.ts +44 -0
- package/dist/ai/file-context.d.ts.map +1 -0
- package/dist/ai/file-context.js +220 -0
- package/dist/ai/file-context.js.map +1 -0
- package/dist/ai/index.d.ts +14 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +21 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/model-spec.d.ts +33 -0
- package/dist/ai/model-spec.d.ts.map +1 -0
- package/dist/ai/model-spec.js +106 -0
- package/dist/ai/model-spec.js.map +1 -0
- package/dist/ai/providers/anthropic.provider.d.ts +23 -0
- package/dist/ai/providers/anthropic.provider.d.ts.map +1 -0
- package/dist/ai/providers/anthropic.provider.js +135 -0
- package/dist/ai/providers/anthropic.provider.js.map +1 -0
- package/dist/ai/providers/gemini.provider.d.ts +20 -0
- package/dist/ai/providers/gemini.provider.d.ts.map +1 -0
- package/dist/ai/providers/gemini.provider.js +113 -0
- package/dist/ai/providers/gemini.provider.js.map +1 -0
- package/dist/ai/providers/index.d.ts +13 -0
- package/dist/ai/providers/index.d.ts.map +1 -0
- package/dist/ai/providers/index.js +12 -0
- package/dist/ai/providers/index.js.map +1 -0
- package/dist/ai/providers/openai-compat.provider.d.ts +13 -0
- package/dist/ai/providers/openai-compat.provider.d.ts.map +1 -0
- package/dist/ai/providers/openai-compat.provider.js +68 -0
- package/dist/ai/providers/openai-compat.provider.js.map +1 -0
- package/dist/ai/providers/openai-shared.d.ts +41 -0
- package/dist/ai/providers/openai-shared.d.ts.map +1 -0
- package/dist/ai/providers/openai-shared.js +67 -0
- package/dist/ai/providers/openai-shared.js.map +1 -0
- package/dist/ai/providers/openai.provider.d.ts +22 -0
- package/dist/ai/providers/openai.provider.d.ts.map +1 -0
- package/dist/ai/providers/openai.provider.js +74 -0
- package/dist/ai/providers/openai.provider.js.map +1 -0
- package/dist/ai/providers/registry.d.ts +33 -0
- package/dist/ai/providers/registry.d.ts.map +1 -0
- package/dist/ai/providers/registry.js +137 -0
- package/dist/ai/providers/registry.js.map +1 -0
- package/dist/ai/providers/types.d.ts +59 -0
- package/dist/ai/providers/types.d.ts.map +1 -0
- package/dist/ai/providers/types.js +58 -0
- package/dist/ai/providers/types.js.map +1 -0
- package/dist/ai/workspace-editor.d.ts +59 -0
- package/dist/ai/workspace-editor.d.ts.map +1 -0
- package/dist/ai/workspace-editor.js +155 -0
- package/dist/ai/workspace-editor.js.map +1 -0
- package/dist/config/defaults.d.ts +31 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +100 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +45 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +44 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +101 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +338 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/schema.d.ts +382 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +150 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +189 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +32 -0
- package/dist/config/types.js.map +1 -0
- package/dist/constants.d.ts +92 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +100 -0
- package/dist/constants.js.map +1 -0
- package/dist/context/agent-monitor.d.ts +173 -0
- package/dist/context/agent-monitor.d.ts.map +1 -0
- package/dist/context/agent-monitor.js +958 -0
- package/dist/context/agent-monitor.js.map +1 -0
- package/dist/context/feedback-loop.d.ts +73 -0
- package/dist/context/feedback-loop.d.ts.map +1 -0
- package/dist/context/feedback-loop.js +303 -0
- package/dist/context/feedback-loop.js.map +1 -0
- package/dist/context/index.d.ts +29 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +29 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/integration.d.ts +83 -0
- package/dist/context/integration.d.ts.map +1 -0
- package/dist/context/integration.js +276 -0
- package/dist/context/integration.js.map +1 -0
- package/dist/context/iteration-tracker.d.ts +87 -0
- package/dist/context/iteration-tracker.d.ts.map +1 -0
- package/dist/context/iteration-tracker.js +333 -0
- package/dist/context/iteration-tracker.js.map +1 -0
- package/dist/context/storage.d.ts +234 -0
- package/dist/context/storage.d.ts.map +1 -0
- package/dist/context/storage.js +513 -0
- package/dist/context/storage.js.map +1 -0
- package/dist/context/types.d.ts +396 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +125 -0
- package/dist/context/types.js.map +1 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +207 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/redis/connection.d.ts +111 -0
- package/dist/infrastructure/redis/connection.d.ts.map +1 -0
- package/dist/infrastructure/redis/connection.js +242 -0
- package/dist/infrastructure/redis/connection.js.map +1 -0
- package/dist/infrastructure/redis/index.d.ts +2 -0
- package/dist/infrastructure/redis/index.d.ts.map +1 -0
- package/dist/infrastructure/redis/index.js +2 -0
- package/dist/infrastructure/redis/index.js.map +1 -0
- package/dist/infrastructure/redis/redis-backed-service.d.ts +35 -0
- package/dist/infrastructure/redis/redis-backed-service.d.ts.map +1 -0
- package/dist/infrastructure/redis/redis-backed-service.js +55 -0
- package/dist/infrastructure/redis/redis-backed-service.js.map +1 -0
- package/dist/kanban/board-store.d.ts +222 -0
- package/dist/kanban/board-store.d.ts.map +1 -0
- package/dist/kanban/board-store.js +486 -0
- package/dist/kanban/board-store.js.map +1 -0
- package/dist/kanban/index.d.ts +33 -0
- package/dist/kanban/index.d.ts.map +1 -0
- package/dist/kanban/index.js +37 -0
- package/dist/kanban/index.js.map +1 -0
- package/dist/kanban/kanban-store.d.ts +236 -0
- package/dist/kanban/kanban-store.d.ts.map +1 -0
- package/dist/kanban/kanban-store.js +854 -0
- package/dist/kanban/kanban-store.js.map +1 -0
- package/dist/kanban/membership-store.d.ts +230 -0
- package/dist/kanban/membership-store.d.ts.map +1 -0
- package/dist/kanban/membership-store.js +384 -0
- package/dist/kanban/membership-store.js.map +1 -0
- package/dist/kanban/migration.d.ts +131 -0
- package/dist/kanban/migration.d.ts.map +1 -0
- package/dist/kanban/migration.js +275 -0
- package/dist/kanban/migration.js.map +1 -0
- package/dist/kanban/types.d.ts +314 -0
- package/dist/kanban/types.d.ts.map +1 -0
- package/dist/kanban/types.js +126 -0
- package/dist/kanban/types.js.map +1 -0
- package/dist/kanban/workspace-store.d.ts +193 -0
- package/dist/kanban/workspace-store.d.ts.map +1 -0
- package/dist/kanban/workspace-store.js +386 -0
- package/dist/kanban/workspace-store.js.map +1 -0
- package/dist/loci/graph-storage.d.ts +120 -0
- package/dist/loci/graph-storage.d.ts.map +1 -0
- package/dist/loci/graph-storage.js +489 -0
- package/dist/loci/graph-storage.js.map +1 -0
- package/dist/loci/graph-traversal.d.ts +56 -0
- package/dist/loci/graph-traversal.d.ts.map +1 -0
- package/dist/loci/graph-traversal.js +291 -0
- package/dist/loci/graph-traversal.js.map +1 -0
- package/dist/loci/index.d.ts +30 -0
- package/dist/loci/index.d.ts.map +1 -0
- package/dist/loci/index.js +27 -0
- package/dist/loci/index.js.map +1 -0
- package/dist/loci/loci-manager.d.ts +119 -0
- package/dist/loci/loci-manager.d.ts.map +1 -0
- package/dist/loci/loci-manager.js +435 -0
- package/dist/loci/loci-manager.js.map +1 -0
- package/dist/loci/sequence-tracker.d.ts +89 -0
- package/dist/loci/sequence-tracker.d.ts.map +1 -0
- package/dist/loci/sequence-tracker.js +311 -0
- package/dist/loci/sequence-tracker.js.map +1 -0
- package/dist/loci/types.d.ts +306 -0
- package/dist/loci/types.d.ts.map +1 -0
- package/dist/loci/types.js +143 -0
- package/dist/loci/types.js.map +1 -0
- package/dist/mpc/auth.d.ts +67 -0
- package/dist/mpc/auth.d.ts.map +1 -0
- package/dist/mpc/auth.js +173 -0
- package/dist/mpc/auth.js.map +1 -0
- package/dist/mpc/crypto.d.ts +139 -0
- package/dist/mpc/crypto.d.ts.map +1 -0
- package/dist/mpc/crypto.js +287 -0
- package/dist/mpc/crypto.js.map +1 -0
- package/dist/mpc/index.d.ts +30 -0
- package/dist/mpc/index.d.ts.map +1 -0
- package/dist/mpc/index.js +27 -0
- package/dist/mpc/index.js.map +1 -0
- package/dist/mpc/redis-store.d.ts +88 -0
- package/dist/mpc/redis-store.d.ts.map +1 -0
- package/dist/mpc/redis-store.js +337 -0
- package/dist/mpc/redis-store.js.map +1 -0
- package/dist/mpc/share-manager.d.ts +59 -0
- package/dist/mpc/share-manager.d.ts.map +1 -0
- package/dist/mpc/share-manager.js +254 -0
- package/dist/mpc/share-manager.js.map +1 -0
- package/dist/mpc/types.d.ts +213 -0
- package/dist/mpc/types.d.ts.map +1 -0
- package/dist/mpc/types.js +42 -0
- package/dist/mpc/types.js.map +1 -0
- package/dist/recursive/index.d.ts +27 -0
- package/dist/recursive/index.d.ts.map +1 -0
- package/dist/recursive/index.js +27 -0
- package/dist/recursive/index.js.map +1 -0
- package/dist/recursive/tool-invoker.d.ts +51 -0
- package/dist/recursive/tool-invoker.d.ts.map +1 -0
- package/dist/recursive/tool-invoker.js +293 -0
- package/dist/recursive/tool-invoker.js.map +1 -0
- package/dist/recursive/types.d.ts +110 -0
- package/dist/recursive/types.d.ts.map +1 -0
- package/dist/recursive/types.js +52 -0
- package/dist/recursive/types.js.map +1 -0
- package/dist/rl/dopamine.d.ts +96 -0
- package/dist/rl/dopamine.d.ts.map +1 -0
- package/dist/rl/dopamine.js +242 -0
- package/dist/rl/dopamine.js.map +1 -0
- package/dist/rl/index.d.ts +30 -0
- package/dist/rl/index.d.ts.map +1 -0
- package/dist/rl/index.js +27 -0
- package/dist/rl/index.js.map +1 -0
- package/dist/rl/potential.d.ts +78 -0
- package/dist/rl/potential.d.ts.map +1 -0
- package/dist/rl/potential.js +152 -0
- package/dist/rl/potential.js.map +1 -0
- package/dist/rl/rewards.d.ts +92 -0
- package/dist/rl/rewards.d.ts.map +1 -0
- package/dist/rl/rewards.js +278 -0
- package/dist/rl/rewards.js.map +1 -0
- package/dist/rl/state-tracker.d.ts +107 -0
- package/dist/rl/state-tracker.d.ts.map +1 -0
- package/dist/rl/state-tracker.js +285 -0
- package/dist/rl/state-tracker.js.map +1 -0
- package/dist/rl/types.d.ts +274 -0
- package/dist/rl/types.d.ts.map +1 -0
- package/dist/rl/types.js +145 -0
- package/dist/rl/types.js.map +1 -0
- package/dist/runtime/crypto.d.ts +87 -0
- package/dist/runtime/crypto.d.ts.map +1 -0
- package/dist/runtime/crypto.js +226 -0
- package/dist/runtime/crypto.js.map +1 -0
- package/dist/runtime/http.d.ts +111 -0
- package/dist/runtime/http.d.ts.map +1 -0
- package/dist/runtime/http.js +350 -0
- package/dist/runtime/http.js.map +1 -0
- package/dist/runtime/index.d.ts +48 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +43 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/net.d.ts +42 -0
- package/dist/runtime/net.d.ts.map +1 -0
- package/dist/runtime/net.js +108 -0
- package/dist/runtime/net.js.map +1 -0
- package/dist/runtime/process.d.ts +54 -0
- package/dist/runtime/process.d.ts.map +1 -0
- package/dist/runtime/process.js +247 -0
- package/dist/runtime/process.js.map +1 -0
- package/dist/runtime/types.d.ts +143 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +19 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/server/http-server.d.ts +26 -0
- package/dist/server/http-server.d.ts.map +1 -0
- package/dist/server/http-server.js +290 -0
- package/dist/server/http-server.js.map +1 -0
- package/dist/server/index.d.ts +22 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +25 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/progress.d.ts +74 -0
- package/dist/server/progress.d.ts.map +1 -0
- package/dist/server/progress.js +174 -0
- package/dist/server/progress.js.map +1 -0
- package/dist/server/session-server.d.ts +76 -0
- package/dist/server/session-server.d.ts.map +1 -0
- package/dist/server/session-server.js +186 -0
- package/dist/server/session-server.js.map +1 -0
- package/dist/server/types.d.ts +82 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +25 -0
- package/dist/server/types.js.map +1 -0
- package/dist/session/cwd-resolver.d.ts +136 -0
- package/dist/session/cwd-resolver.d.ts.map +1 -0
- package/dist/session/cwd-resolver.js +715 -0
- package/dist/session/cwd-resolver.js.map +1 -0
- package/dist/session/index.d.ts +27 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +27 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/manager.d.ts +296 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +605 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/session/types.d.ts +152 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +60 -0
- package/dist/session/types.js.map +1 -0
- package/dist/tools/agents/agent-alert.tool.d.ts +20 -0
- package/dist/tools/agents/agent-alert.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-alert.tool.js +103 -0
- package/dist/tools/agents/agent-alert.tool.js.map +1 -0
- package/dist/tools/agents/agent-history.tool.d.ts +20 -0
- package/dist/tools/agents/agent-history.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-history.tool.js +133 -0
- package/dist/tools/agents/agent-history.tool.js.map +1 -0
- package/dist/tools/agents/agent-inject.tool.d.ts +39 -0
- package/dist/tools/agents/agent-inject.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-inject.tool.js +121 -0
- package/dist/tools/agents/agent-inject.tool.js.map +1 -0
- package/dist/tools/agents/agent-list.tool.d.ts +20 -0
- package/dist/tools/agents/agent-list.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-list.tool.js +86 -0
- package/dist/tools/agents/agent-list.tool.js.map +1 -0
- package/dist/tools/agents/agent-register.tool.d.ts +20 -0
- package/dist/tools/agents/agent-register.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-register.tool.js +114 -0
- package/dist/tools/agents/agent-register.tool.js.map +1 -0
- package/dist/tools/agents/agent-summary.tool.d.ts +20 -0
- package/dist/tools/agents/agent-summary.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-summary.tool.js +99 -0
- package/dist/tools/agents/agent-summary.tool.js.map +1 -0
- package/dist/tools/agents/agent-watch.tool.d.ts +20 -0
- package/dist/tools/agents/agent-watch.tool.d.ts.map +1 -0
- package/dist/tools/agents/agent-watch.tool.js +56 -0
- package/dist/tools/agents/agent-watch.tool.js.map +1 -0
- package/dist/tools/agents/index.d.ts +41 -0
- package/dist/tools/agents/index.d.ts.map +1 -0
- package/dist/tools/agents/index.js +41 -0
- package/dist/tools/agents/index.js.map +1 -0
- package/dist/tools/agents/monitor.tool.d.ts +20 -0
- package/dist/tools/agents/monitor.tool.d.ts.map +1 -0
- package/dist/tools/agents/monitor.tool.js +314 -0
- package/dist/tools/agents/monitor.tool.js.map +1 -0
- package/dist/tools/agents/queue-message.tool.d.ts +20 -0
- package/dist/tools/agents/queue-message.tool.d.ts.map +1 -0
- package/dist/tools/agents/queue-message.tool.js +176 -0
- package/dist/tools/agents/queue-message.tool.js.map +1 -0
- package/dist/tools/ask-ai.tool.d.ts +20 -0
- package/dist/tools/ask-ai.tool.d.ts.map +1 -0
- package/dist/tools/ask-ai.tool.js +49 -0
- package/dist/tools/ask-ai.tool.js.map +1 -0
- package/dist/tools/batch.tool.d.ts +42 -0
- package/dist/tools/batch.tool.d.ts.map +1 -0
- package/dist/tools/batch.tool.js +146 -0
- package/dist/tools/batch.tool.js.map +1 -0
- package/dist/tools/brainstorm.tool.d.ts +20 -0
- package/dist/tools/brainstorm.tool.d.ts.map +1 -0
- package/dist/tools/brainstorm.tool.js +86 -0
- package/dist/tools/brainstorm.tool.js.map +1 -0
- package/dist/tools/code/code-outline.tool.d.ts +20 -0
- package/dist/tools/code/code-outline.tool.d.ts.map +1 -0
- package/dist/tools/code/code-outline.tool.js +803 -0
- package/dist/tools/code/code-outline.tool.js.map +1 -0
- package/dist/tools/code/find-definition.tool.d.ts +20 -0
- package/dist/tools/code/find-definition.tool.d.ts.map +1 -0
- package/dist/tools/code/find-definition.tool.js +218 -0
- package/dist/tools/code/find-definition.tool.js.map +1 -0
- package/dist/tools/code/find-references.tool.d.ts +20 -0
- package/dist/tools/code/find-references.tool.d.ts.map +1 -0
- package/dist/tools/code/find-references.tool.js +207 -0
- package/dist/tools/code/find-references.tool.js.map +1 -0
- package/dist/tools/code/find-symbols.tool.d.ts +20 -0
- package/dist/tools/code/find-symbols.tool.d.ts.map +1 -0
- package/dist/tools/code/find-symbols.tool.js +367 -0
- package/dist/tools/code/find-symbols.tool.js.map +1 -0
- package/dist/tools/code/index.d.ts +34 -0
- package/dist/tools/code/index.d.ts.map +1 -0
- package/dist/tools/code/index.js +35 -0
- package/dist/tools/code/index.js.map +1 -0
- package/dist/tools/code/insert-after-symbol.tool.d.ts +20 -0
- package/dist/tools/code/insert-after-symbol.tool.d.ts.map +1 -0
- package/dist/tools/code/insert-after-symbol.tool.js +224 -0
- package/dist/tools/code/insert-after-symbol.tool.js.map +1 -0
- package/dist/tools/code/insert-before-symbol.tool.d.ts +20 -0
- package/dist/tools/code/insert-before-symbol.tool.d.ts.map +1 -0
- package/dist/tools/code/insert-before-symbol.tool.js +136 -0
- package/dist/tools/code/insert-before-symbol.tool.js.map +1 -0
- package/dist/tools/code/rename-symbol.tool.d.ts +20 -0
- package/dist/tools/code/rename-symbol.tool.d.ts.map +1 -0
- package/dist/tools/code/rename-symbol.tool.js +255 -0
- package/dist/tools/code/rename-symbol.tool.js.map +1 -0
- package/dist/tools/code/semantic-search.tool.d.ts +20 -0
- package/dist/tools/code/semantic-search.tool.d.ts.map +1 -0
- package/dist/tools/code/semantic-search.tool.js +172 -0
- package/dist/tools/code/semantic-search.tool.js.map +1 -0
- package/dist/tools/code/symbol-search.d.ts +39 -0
- package/dist/tools/code/symbol-search.d.ts.map +1 -0
- package/dist/tools/code/symbol-search.js +118 -0
- package/dist/tools/code/symbol-search.js.map +1 -0
- package/dist/tools/context/feedback.tool.d.ts +20 -0
- package/dist/tools/context/feedback.tool.d.ts.map +1 -0
- package/dist/tools/context/feedback.tool.js +176 -0
- package/dist/tools/context/feedback.tool.js.map +1 -0
- package/dist/tools/context/get-shared-context.tool.d.ts +20 -0
- package/dist/tools/context/get-shared-context.tool.d.ts.map +1 -0
- package/dist/tools/context/get-shared-context.tool.js +83 -0
- package/dist/tools/context/get-shared-context.tool.js.map +1 -0
- package/dist/tools/context/index.d.ts +26 -0
- package/dist/tools/context/index.d.ts.map +1 -0
- package/dist/tools/context/index.js +26 -0
- package/dist/tools/context/index.js.map +1 -0
- package/dist/tools/context/shared-thoughts.tool.d.ts +20 -0
- package/dist/tools/context/shared-thoughts.tool.d.ts.map +1 -0
- package/dist/tools/context/shared-thoughts.tool.js +199 -0
- package/dist/tools/context/shared-thoughts.tool.js.map +1 -0
- package/dist/tools/edit/delete-lines.tool.d.ts +20 -0
- package/dist/tools/edit/delete-lines.tool.d.ts.map +1 -0
- package/dist/tools/edit/delete-lines.tool.js +88 -0
- package/dist/tools/edit/delete-lines.tool.js.map +1 -0
- package/dist/tools/edit/edit-shared.d.ts +55 -0
- package/dist/tools/edit/edit-shared.d.ts.map +1 -0
- package/dist/tools/edit/edit-shared.js +122 -0
- package/dist/tools/edit/edit-shared.js.map +1 -0
- package/dist/tools/edit/index.d.ts +29 -0
- package/dist/tools/edit/index.d.ts.map +1 -0
- package/dist/tools/edit/index.js +29 -0
- package/dist/tools/edit/index.js.map +1 -0
- package/dist/tools/edit/insert-at-line.tool.d.ts +20 -0
- package/dist/tools/edit/insert-at-line.tool.d.ts.map +1 -0
- package/dist/tools/edit/insert-at-line.tool.js +92 -0
- package/dist/tools/edit/insert-at-line.tool.js.map +1 -0
- package/dist/tools/edit/replace-content.tool.d.ts +20 -0
- package/dist/tools/edit/replace-content.tool.d.ts.map +1 -0
- package/dist/tools/edit/replace-content.tool.js +214 -0
- package/dist/tools/edit/replace-content.tool.js.map +1 -0
- package/dist/tools/edit/replace-lines.tool.d.ts +20 -0
- package/dist/tools/edit/replace-lines.tool.d.ts.map +1 -0
- package/dist/tools/edit/replace-lines.tool.js +97 -0
- package/dist/tools/edit/replace-lines.tool.js.map +1 -0
- package/dist/tools/file/file-diff.tool.d.ts +20 -0
- package/dist/tools/file/file-diff.tool.d.ts.map +1 -0
- package/dist/tools/file/file-diff.tool.js +359 -0
- package/dist/tools/file/file-diff.tool.js.map +1 -0
- package/dist/tools/file/file-read.tool.d.ts +20 -0
- package/dist/tools/file/file-read.tool.d.ts.map +1 -0
- package/dist/tools/file/file-read.tool.js +270 -0
- package/dist/tools/file/file-read.tool.js.map +1 -0
- package/dist/tools/file/file-search.tool.d.ts +20 -0
- package/dist/tools/file/file-search.tool.d.ts.map +1 -0
- package/dist/tools/file/file-search.tool.js +339 -0
- package/dist/tools/file/file-search.tool.js.map +1 -0
- package/dist/tools/file/file-tree.tool.d.ts +49 -0
- package/dist/tools/file/file-tree.tool.d.ts.map +1 -0
- package/dist/tools/file/file-tree.tool.js +398 -0
- package/dist/tools/file/file-tree.tool.js.map +1 -0
- package/dist/tools/file/file-write.tool.d.ts +20 -0
- package/dist/tools/file/file-write.tool.d.ts.map +1 -0
- package/dist/tools/file/file-write.tool.js +204 -0
- package/dist/tools/file/file-write.tool.js.map +1 -0
- package/dist/tools/file/index.d.ts +31 -0
- package/dist/tools/file/index.d.ts.map +1 -0
- package/dist/tools/file/index.js +31 -0
- package/dist/tools/file/index.js.map +1 -0
- package/dist/tools/git/git-blame.tool.d.ts +20 -0
- package/dist/tools/git/git-blame.tool.d.ts.map +1 -0
- package/dist/tools/git/git-blame.tool.js +138 -0
- package/dist/tools/git/git-blame.tool.js.map +1 -0
- package/dist/tools/git/git-branch.tool.d.ts +20 -0
- package/dist/tools/git/git-branch.tool.d.ts.map +1 -0
- package/dist/tools/git/git-branch.tool.js +158 -0
- package/dist/tools/git/git-branch.tool.js.map +1 -0
- package/dist/tools/git/git-diff.tool.d.ts +20 -0
- package/dist/tools/git/git-diff.tool.d.ts.map +1 -0
- package/dist/tools/git/git-diff.tool.js +117 -0
- package/dist/tools/git/git-diff.tool.js.map +1 -0
- package/dist/tools/git/git-log.tool.d.ts +20 -0
- package/dist/tools/git/git-log.tool.d.ts.map +1 -0
- package/dist/tools/git/git-log.tool.js +150 -0
- package/dist/tools/git/git-log.tool.js.map +1 -0
- package/dist/tools/git/git-status.tool.d.ts +20 -0
- package/dist/tools/git/git-status.tool.d.ts.map +1 -0
- package/dist/tools/git/git-status.tool.js +81 -0
- package/dist/tools/git/git-status.tool.js.map +1 -0
- package/dist/tools/git/index.d.ts +31 -0
- package/dist/tools/git/index.d.ts.map +1 -0
- package/dist/tools/git/index.js +32 -0
- package/dist/tools/git/index.js.map +1 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +170 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/kanban/board-create.tool.d.ts +20 -0
- package/dist/tools/kanban/board-create.tool.d.ts.map +1 -0
- package/dist/tools/kanban/board-create.tool.js +92 -0
- package/dist/tools/kanban/board-create.tool.js.map +1 -0
- package/dist/tools/kanban/board-invite.tool.d.ts +20 -0
- package/dist/tools/kanban/board-invite.tool.d.ts.map +1 -0
- package/dist/tools/kanban/board-invite.tool.js +96 -0
- package/dist/tools/kanban/board-invite.tool.js.map +1 -0
- package/dist/tools/kanban/board-list.tool.d.ts +20 -0
- package/dist/tools/kanban/board-list.tool.d.ts.map +1 -0
- package/dist/tools/kanban/board-list.tool.js +94 -0
- package/dist/tools/kanban/board-list.tool.js.map +1 -0
- package/dist/tools/kanban/board-members.tool.d.ts +20 -0
- package/dist/tools/kanban/board-members.tool.d.ts.map +1 -0
- package/dist/tools/kanban/board-members.tool.js +153 -0
- package/dist/tools/kanban/board-members.tool.js.map +1 -0
- package/dist/tools/kanban/board-share.tool.d.ts +20 -0
- package/dist/tools/kanban/board-share.tool.d.ts.map +1 -0
- package/dist/tools/kanban/board-share.tool.js +91 -0
- package/dist/tools/kanban/board-share.tool.js.map +1 -0
- package/dist/tools/kanban/board-status.tool.d.ts +20 -0
- package/dist/tools/kanban/board-status.tool.d.ts.map +1 -0
- package/dist/tools/kanban/board-status.tool.js +79 -0
- package/dist/tools/kanban/board-status.tool.js.map +1 -0
- package/dist/tools/kanban/index.d.ts +42 -0
- package/dist/tools/kanban/index.d.ts.map +1 -0
- package/dist/tools/kanban/index.js +46 -0
- package/dist/tools/kanban/index.js.map +1 -0
- package/dist/tools/kanban/task-assign.tool.d.ts +20 -0
- package/dist/tools/kanban/task-assign.tool.d.ts.map +1 -0
- package/dist/tools/kanban/task-assign.tool.js +103 -0
- package/dist/tools/kanban/task-assign.tool.js.map +1 -0
- package/dist/tools/kanban/task-claim.tool.d.ts +20 -0
- package/dist/tools/kanban/task-claim.tool.d.ts.map +1 -0
- package/dist/tools/kanban/task-claim.tool.js +107 -0
- package/dist/tools/kanban/task-claim.tool.js.map +1 -0
- package/dist/tools/kanban/task-create.tool.d.ts +20 -0
- package/dist/tools/kanban/task-create.tool.d.ts.map +1 -0
- package/dist/tools/kanban/task-create.tool.js +123 -0
- package/dist/tools/kanban/task-create.tool.js.map +1 -0
- package/dist/tools/kanban/task-list.tool.d.ts +20 -0
- package/dist/tools/kanban/task-list.tool.d.ts.map +1 -0
- package/dist/tools/kanban/task-list.tool.js +95 -0
- package/dist/tools/kanban/task-list.tool.js.map +1 -0
- package/dist/tools/kanban/task-push-multi.tool.d.ts +20 -0
- package/dist/tools/kanban/task-push-multi.tool.d.ts.map +1 -0
- package/dist/tools/kanban/task-push-multi.tool.js +273 -0
- package/dist/tools/kanban/task-push-multi.tool.js.map +1 -0
- package/dist/tools/kanban/task-update.tool.d.ts +20 -0
- package/dist/tools/kanban/task-update.tool.d.ts.map +1 -0
- package/dist/tools/kanban/task-update.tool.js +173 -0
- package/dist/tools/kanban/task-update.tool.js.map +1 -0
- package/dist/tools/kanban/workspace-create.tool.d.ts +20 -0
- package/dist/tools/kanban/workspace-create.tool.d.ts.map +1 -0
- package/dist/tools/kanban/workspace-create.tool.js +84 -0
- package/dist/tools/kanban/workspace-create.tool.js.map +1 -0
- package/dist/tools/kanban/workspace-join.tool.d.ts +20 -0
- package/dist/tools/kanban/workspace-join.tool.d.ts.map +1 -0
- package/dist/tools/kanban/workspace-join.tool.js +76 -0
- package/dist/tools/kanban/workspace-join.tool.js.map +1 -0
- package/dist/tools/kanban/workspace-leave.tool.d.ts +20 -0
- package/dist/tools/kanban/workspace-leave.tool.d.ts.map +1 -0
- package/dist/tools/kanban/workspace-leave.tool.js +74 -0
- package/dist/tools/kanban/workspace-leave.tool.js.map +1 -0
- package/dist/tools/kanban/workspace-list.tool.d.ts +20 -0
- package/dist/tools/kanban/workspace-list.tool.d.ts.map +1 -0
- package/dist/tools/kanban/workspace-list.tool.js +75 -0
- package/dist/tools/kanban/workspace-list.tool.js.map +1 -0
- package/dist/tools/loci/graph-find-path.tool.d.ts +38 -0
- package/dist/tools/loci/graph-find-path.tool.d.ts.map +1 -0
- package/dist/tools/loci/graph-find-path.tool.js +133 -0
- package/dist/tools/loci/graph-find-path.tool.js.map +1 -0
- package/dist/tools/loci/graph-query.tool.d.ts +55 -0
- package/dist/tools/loci/graph-query.tool.d.ts.map +1 -0
- package/dist/tools/loci/graph-query.tool.js +98 -0
- package/dist/tools/loci/graph-query.tool.js.map +1 -0
- package/dist/tools/loci/index.d.ts +27 -0
- package/dist/tools/loci/index.d.ts.map +1 -0
- package/dist/tools/loci/index.js +27 -0
- package/dist/tools/loci/index.js.map +1 -0
- package/dist/tools/loci/loci-recall.tool.d.ts +33 -0
- package/dist/tools/loci/loci-recall.tool.d.ts.map +1 -0
- package/dist/tools/loci/loci-recall.tool.js +156 -0
- package/dist/tools/loci/loci-recall.tool.js.map +1 -0
- package/dist/tools/loci/sequence-recommend.tool.d.ts +33 -0
- package/dist/tools/loci/sequence-recommend.tool.d.ts.map +1 -0
- package/dist/tools/loci/sequence-recommend.tool.js +114 -0
- package/dist/tools/loci/sequence-recommend.tool.js.map +1 -0
- package/dist/tools/memory/delete-memory.tool.d.ts +20 -0
- package/dist/tools/memory/delete-memory.tool.d.ts.map +1 -0
- package/dist/tools/memory/delete-memory.tool.js +96 -0
- package/dist/tools/memory/delete-memory.tool.js.map +1 -0
- package/dist/tools/memory/edit-memory.tool.d.ts +20 -0
- package/dist/tools/memory/edit-memory.tool.d.ts.map +1 -0
- package/dist/tools/memory/edit-memory.tool.js +172 -0
- package/dist/tools/memory/edit-memory.tool.js.map +1 -0
- package/dist/tools/memory/index.d.ts +31 -0
- package/dist/tools/memory/index.d.ts.map +1 -0
- package/dist/tools/memory/index.js +31 -0
- package/dist/tools/memory/index.js.map +1 -0
- package/dist/tools/memory/list-memories.tool.d.ts +20 -0
- package/dist/tools/memory/list-memories.tool.d.ts.map +1 -0
- package/dist/tools/memory/list-memories.tool.js +142 -0
- package/dist/tools/memory/list-memories.tool.js.map +1 -0
- package/dist/tools/memory/read-memory.tool.d.ts +20 -0
- package/dist/tools/memory/read-memory.tool.d.ts.map +1 -0
- package/dist/tools/memory/read-memory.tool.js +98 -0
- package/dist/tools/memory/read-memory.tool.js.map +1 -0
- package/dist/tools/memory/write-memory.tool.d.ts +20 -0
- package/dist/tools/memory/write-memory.tool.d.ts.map +1 -0
- package/dist/tools/memory/write-memory.tool.js +162 -0
- package/dist/tools/memory/write-memory.tool.js.map +1 -0
- package/dist/tools/mpc/index.d.ts +27 -0
- package/dist/tools/mpc/index.d.ts.map +1 -0
- package/dist/tools/mpc/index.js +27 -0
- package/dist/tools/mpc/index.js.map +1 -0
- package/dist/tools/mpc/mpc-distribute.tool.d.ts +36 -0
- package/dist/tools/mpc/mpc-distribute.tool.d.ts.map +1 -0
- package/dist/tools/mpc/mpc-distribute.tool.js +129 -0
- package/dist/tools/mpc/mpc-distribute.tool.js.map +1 -0
- package/dist/tools/mpc/mpc-reconstruct.tool.d.ts +28 -0
- package/dist/tools/mpc/mpc-reconstruct.tool.d.ts.map +1 -0
- package/dist/tools/mpc/mpc-reconstruct.tool.js +125 -0
- package/dist/tools/mpc/mpc-reconstruct.tool.js.map +1 -0
- package/dist/tools/mpc/mpc-split.tool.d.ts +43 -0
- package/dist/tools/mpc/mpc-split.tool.d.ts.map +1 -0
- package/dist/tools/mpc/mpc-split.tool.js +120 -0
- package/dist/tools/mpc/mpc-split.tool.js.map +1 -0
- package/dist/tools/mpc/mpc-status.tool.d.ts +33 -0
- package/dist/tools/mpc/mpc-status.tool.d.ts.map +1 -0
- package/dist/tools/mpc/mpc-status.tool.js +129 -0
- package/dist/tools/mpc/mpc-status.tool.js.map +1 -0
- package/dist/tools/multi-llm/consensus-prompt.tool.d.ts +9 -0
- package/dist/tools/multi-llm/consensus-prompt.tool.d.ts.map +1 -0
- package/dist/tools/multi-llm/consensus-prompt.tool.js +165 -0
- package/dist/tools/multi-llm/consensus-prompt.tool.js.map +1 -0
- package/dist/tools/multi-llm/index.d.ts +8 -0
- package/dist/tools/multi-llm/index.d.ts.map +1 -0
- package/dist/tools/multi-llm/index.js +8 -0
- package/dist/tools/multi-llm/index.js.map +1 -0
- package/dist/tools/multi-llm/multi-prompt.tool.d.ts +9 -0
- package/dist/tools/multi-llm/multi-prompt.tool.d.ts.map +1 -0
- package/dist/tools/multi-llm/multi-prompt.tool.js +90 -0
- package/dist/tools/multi-llm/multi-prompt.tool.js.map +1 -0
- package/dist/tools/project/check-types.tool.d.ts +20 -0
- package/dist/tools/project/check-types.tool.d.ts.map +1 -0
- package/dist/tools/project/check-types.tool.js +254 -0
- package/dist/tools/project/check-types.tool.js.map +1 -0
- package/dist/tools/project/index.d.ts +35 -0
- package/dist/tools/project/index.d.ts.map +1 -0
- package/dist/tools/project/index.js +35 -0
- package/dist/tools/project/index.js.map +1 -0
- package/dist/tools/project/project-info.tool.d.ts +20 -0
- package/dist/tools/project/project-info.tool.d.ts.map +1 -0
- package/dist/tools/project/project-info.tool.js +364 -0
- package/dist/tools/project/project-info.tool.js.map +1 -0
- package/dist/tools/project/run-lint.tool.d.ts +20 -0
- package/dist/tools/project/run-lint.tool.d.ts.map +1 -0
- package/dist/tools/project/run-lint.tool.js +279 -0
- package/dist/tools/project/run-lint.tool.js.map +1 -0
- package/dist/tools/project/run-script.tool.d.ts +20 -0
- package/dist/tools/project/run-script.tool.d.ts.map +1 -0
- package/dist/tools/project/run-script.tool.js +141 -0
- package/dist/tools/project/run-script.tool.js.map +1 -0
- package/dist/tools/project/run-tests.tool.d.ts +20 -0
- package/dist/tools/project/run-tests.tool.d.ts.map +1 -0
- package/dist/tools/project/run-tests.tool.js +357 -0
- package/dist/tools/project/run-tests.tool.js.map +1 -0
- package/dist/tools/recursive/index.d.ts +28 -0
- package/dist/tools/recursive/index.d.ts.map +1 -0
- package/dist/tools/recursive/index.js +28 -0
- package/dist/tools/recursive/index.js.map +1 -0
- package/dist/tools/recursive/invocation-log.tool.d.ts +20 -0
- package/dist/tools/recursive/invocation-log.tool.d.ts.map +1 -0
- package/dist/tools/recursive/invocation-log.tool.js +110 -0
- package/dist/tools/recursive/invocation-log.tool.js.map +1 -0
- package/dist/tools/recursive/invoke-batch.tool.d.ts +20 -0
- package/dist/tools/recursive/invoke-batch.tool.d.ts.map +1 -0
- package/dist/tools/recursive/invoke-batch.tool.js +99 -0
- package/dist/tools/recursive/invoke-batch.tool.js.map +1 -0
- package/dist/tools/recursive/invoke-tool.tool.d.ts +20 -0
- package/dist/tools/recursive/invoke-tool.tool.d.ts.map +1 -0
- package/dist/tools/recursive/invoke-tool.tool.js +100 -0
- package/dist/tools/recursive/invoke-tool.tool.js.map +1 -0
- package/dist/tools/registry.d.ts +261 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +462 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/rl/index.d.ts +25 -0
- package/dist/tools/rl/index.d.ts.map +1 -0
- package/dist/tools/rl/index.js +25 -0
- package/dist/tools/rl/index.js.map +1 -0
- package/dist/tools/rl/rl-dopamine-log.tool.d.ts +32 -0
- package/dist/tools/rl/rl-dopamine-log.tool.d.ts.map +1 -0
- package/dist/tools/rl/rl-dopamine-log.tool.js +112 -0
- package/dist/tools/rl/rl-dopamine-log.tool.js.map +1 -0
- package/dist/tools/rl/rl-reward-stats.tool.d.ts +33 -0
- package/dist/tools/rl/rl-reward-stats.tool.d.ts.map +1 -0
- package/dist/tools/rl/rl-reward-stats.tool.js +100 -0
- package/dist/tools/rl/rl-reward-stats.tool.js.map +1 -0
- package/dist/tools/session/index.d.ts +28 -0
- package/dist/tools/session/index.d.ts.map +1 -0
- package/dist/tools/session/index.js +28 -0
- package/dist/tools/session/index.js.map +1 -0
- package/dist/tools/session/session-create.tool.d.ts +35 -0
- package/dist/tools/session/session-create.tool.d.ts.map +1 -0
- package/dist/tools/session/session-create.tool.js +74 -0
- package/dist/tools/session/session-create.tool.js.map +1 -0
- package/dist/tools/session/session-delete.tool.d.ts +32 -0
- package/dist/tools/session/session-delete.tool.d.ts.map +1 -0
- package/dist/tools/session/session-delete.tool.js +94 -0
- package/dist/tools/session/session-delete.tool.js.map +1 -0
- package/dist/tools/session/session-info.tool.d.ts +30 -0
- package/dist/tools/session/session-info.tool.d.ts.map +1 -0
- package/dist/tools/session/session-info.tool.js +89 -0
- package/dist/tools/session/session-info.tool.js.map +1 -0
- package/dist/tools/session/session-list.tool.d.ts +43 -0
- package/dist/tools/session/session-list.tool.d.ts.map +1 -0
- package/dist/tools/session/session-list.tool.js +85 -0
- package/dist/tools/session/session-list.tool.js.map +1 -0
- package/dist/tools/session/session-switch.tool.d.ts +32 -0
- package/dist/tools/session/session-switch.tool.d.ts.map +1 -0
- package/dist/tools/session/session-switch.tool.js +75 -0
- package/dist/tools/session/session-switch.tool.js.map +1 -0
- package/dist/tools/simple-tools.d.ts +23 -0
- package/dist/tools/simple-tools.d.ts.map +1 -0
- package/dist/tools/simple-tools.js +73 -0
- package/dist/tools/simple-tools.js.map +1 -0
- package/dist/tools/specialized/analyze-deps.tool.d.ts +20 -0
- package/dist/tools/specialized/analyze-deps.tool.d.ts.map +1 -0
- package/dist/tools/specialized/analyze-deps.tool.js +102 -0
- package/dist/tools/specialized/analyze-deps.tool.js.map +1 -0
- package/dist/tools/specialized/auto-fix-agent.tool.d.ts +12 -0
- package/dist/tools/specialized/auto-fix-agent.tool.d.ts.map +1 -0
- package/dist/tools/specialized/auto-fix-agent.tool.js +154 -0
- package/dist/tools/specialized/auto-fix-agent.tool.js.map +1 -0
- package/dist/tools/specialized/auto-fix.tool.d.ts +20 -0
- package/dist/tools/specialized/auto-fix.tool.d.ts.map +1 -0
- package/dist/tools/specialized/auto-fix.tool.js +264 -0
- package/dist/tools/specialized/auto-fix.tool.js.map +1 -0
- package/dist/tools/specialized/code-review.tool.d.ts +20 -0
- package/dist/tools/specialized/code-review.tool.d.ts.map +1 -0
- package/dist/tools/specialized/code-review.tool.js +140 -0
- package/dist/tools/specialized/code-review.tool.js.map +1 -0
- package/dist/tools/specialized/explain-code.tool.d.ts +20 -0
- package/dist/tools/specialized/explain-code.tool.d.ts.map +1 -0
- package/dist/tools/specialized/explain-code.tool.js +90 -0
- package/dist/tools/specialized/explain-code.tool.js.map +1 -0
- package/dist/tools/specialized/fix-bug.tool.d.ts +20 -0
- package/dist/tools/specialized/fix-bug.tool.d.ts.map +1 -0
- package/dist/tools/specialized/fix-bug.tool.js +107 -0
- package/dist/tools/specialized/fix-bug.tool.js.map +1 -0
- package/dist/tools/specialized/index.d.ts +26 -0
- package/dist/tools/specialized/index.d.ts.map +1 -0
- package/dist/tools/specialized/index.js +26 -0
- package/dist/tools/specialized/index.js.map +1 -0
- package/dist/tools/specialized/refactor.tool.d.ts +20 -0
- package/dist/tools/specialized/refactor.tool.d.ts.map +1 -0
- package/dist/tools/specialized/refactor.tool.js +115 -0
- package/dist/tools/specialized/refactor.tool.js.map +1 -0
- package/dist/tools/specialized/write-tests.tool.d.ts +20 -0
- package/dist/tools/specialized/write-tests.tool.d.ts.map +1 -0
- package/dist/tools/specialized/write-tests.tool.js +115 -0
- package/dist/tools/specialized/write-tests.tool.js.map +1 -0
- package/dist/tools/system/ai-config.tool.d.ts +13 -0
- package/dist/tools/system/ai-config.tool.d.ts.map +1 -0
- package/dist/tools/system/ai-config.tool.js +252 -0
- package/dist/tools/system/ai-config.tool.js.map +1 -0
- package/dist/tools/system/ai-models.tool.d.ts +45 -0
- package/dist/tools/system/ai-models.tool.d.ts.map +1 -0
- package/dist/tools/system/ai-models.tool.js +194 -0
- package/dist/tools/system/ai-models.tool.js.map +1 -0
- package/dist/tools/system/config.tool.d.ts +57 -0
- package/dist/tools/system/config.tool.d.ts.map +1 -0
- package/dist/tools/system/config.tool.js +320 -0
- package/dist/tools/system/config.tool.js.map +1 -0
- package/dist/tools/system/env-info.tool.d.ts +20 -0
- package/dist/tools/system/env-info.tool.d.ts.map +1 -0
- package/dist/tools/system/env-info.tool.js +228 -0
- package/dist/tools/system/env-info.tool.js.map +1 -0
- package/dist/tools/system/index.d.ts +37 -0
- package/dist/tools/system/index.d.ts.map +1 -0
- package/dist/tools/system/index.js +37 -0
- package/dist/tools/system/index.js.map +1 -0
- package/dist/tools/system/memory-usage.tool.d.ts +20 -0
- package/dist/tools/system/memory-usage.tool.d.ts.map +1 -0
- package/dist/tools/system/memory-usage.tool.js +223 -0
- package/dist/tools/system/memory-usage.tool.js.map +1 -0
- package/dist/tools/system/process-list.tool.d.ts +20 -0
- package/dist/tools/system/process-list.tool.d.ts.map +1 -0
- package/dist/tools/system/process-list.tool.js +202 -0
- package/dist/tools/system/process-list.tool.js.map +1 -0
- package/dist/tools/system/shell-exec.tool.d.ts +20 -0
- package/dist/tools/system/shell-exec.tool.d.ts.map +1 -0
- package/dist/tools/system/shell-exec.tool.js +293 -0
- package/dist/tools/system/shell-exec.tool.js.map +1 -0
- package/dist/tools/timeout-test.tool.d.ts +20 -0
- package/dist/tools/timeout-test.tool.d.ts.map +1 -0
- package/dist/tools/timeout-test.tool.js +46 -0
- package/dist/tools/timeout-test.tool.js.map +1 -0
- package/dist/tree-sitter/index.d.ts +27 -0
- package/dist/tree-sitter/index.d.ts.map +1 -0
- package/dist/tree-sitter/index.js +27 -0
- package/dist/tree-sitter/index.js.map +1 -0
- package/dist/tree-sitter/parser-manager.d.ts +83 -0
- package/dist/tree-sitter/parser-manager.d.ts.map +1 -0
- package/dist/tree-sitter/parser-manager.js +430 -0
- package/dist/tree-sitter/parser-manager.js.map +1 -0
- package/dist/tree-sitter/types.d.ts +117 -0
- package/dist/tree-sitter/types.d.ts.map +1 -0
- package/dist/tree-sitter/types.js +375 -0
- package/dist/tree-sitter/types.js.map +1 -0
- package/dist/types/file-types.d.ts +277 -0
- package/dist/types/file-types.d.ts.map +1 -0
- package/dist/types/file-types.js +75 -0
- package/dist/types/file-types.js.map +1 -0
- package/dist/types/git-types.d.ts +270 -0
- package/dist/types/git-types.d.ts.map +1 -0
- package/dist/types/git-types.js +26 -0
- package/dist/types/git-types.js.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +31 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/tool-types.d.ts +231 -0
- package/dist/types/tool-types.d.ts.map +1 -0
- package/dist/types/tool-types.js +30 -0
- package/dist/types/tool-types.js.map +1 -0
- package/dist/utils/bun-file.d.ts +99 -0
- package/dist/utils/bun-file.d.ts.map +1 -0
- package/dist/utils/bun-file.js +393 -0
- package/dist/utils/bun-file.js.map +1 -0
- package/dist/utils/cache.d.ts +124 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +228 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/commandExecutor.d.ts +54 -0
- package/dist/utils/commandExecutor.d.ts.map +1 -0
- package/dist/utils/commandExecutor.js +165 -0
- package/dist/utils/commandExecutor.js.map +1 -0
- package/dist/utils/edit-utils.d.ts +72 -0
- package/dist/utils/edit-utils.d.ts.map +1 -0
- package/dist/utils/edit-utils.js +129 -0
- package/dist/utils/edit-utils.js.map +1 -0
- package/dist/utils/errors.d.ts +170 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +304 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-utils.d.ts +195 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +401 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/git-utils.d.ts +204 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +352 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/dist/utils/languageDetection.d.ts +54 -0
- package/dist/utils/languageDetection.d.ts.map +1 -0
- package/dist/utils/languageDetection.js +340 -0
- package/dist/utils/languageDetection.js.map +1 -0
- package/dist/utils/logger.d.ts +207 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +484 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/process-utils.d.ts +196 -0
- package/dist/utils/process-utils.d.ts.map +1 -0
- package/dist/utils/process-utils.js +302 -0
- package/dist/utils/process-utils.js.map +1 -0
- package/dist/utils/projectContext.enhanced.d.ts +71 -0
- package/dist/utils/projectContext.enhanced.d.ts.map +1 -0
- package/dist/utils/projectContext.enhanced.js +816 -0
- package/dist/utils/projectContext.enhanced.js.map +1 -0
- package/dist/utils/security.d.ts +123 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +337 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/utils/validation.d.ts +163 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +558 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/version.d.ts +17 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +17 -0
- package/dist/version.js.map +1 -0
- package/kemdi-code-mcp-logo.png +0 -0
- package/package.json +136 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Google Gemini Provider
|
|
3
|
+
* Native Google GenAI SDK with thinking budget support.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import { GoogleGenAI } from '@google/genai';
|
|
8
|
+
import { Logger } from '../../utils/logger.js';
|
|
9
|
+
export class GeminiProvider {
|
|
10
|
+
id = 'gemini';
|
|
11
|
+
client = null;
|
|
12
|
+
init(config) {
|
|
13
|
+
this.client = new GoogleGenAI({ apiKey: config.apiKey });
|
|
14
|
+
Logger.info(`Gemini provider initialized`);
|
|
15
|
+
}
|
|
16
|
+
isInitialized() {
|
|
17
|
+
return this.client !== null;
|
|
18
|
+
}
|
|
19
|
+
async complete(request) {
|
|
20
|
+
if (!this.client)
|
|
21
|
+
throw new Error('Gemini provider not initialized');
|
|
22
|
+
// Build contents from messages
|
|
23
|
+
let systemInstruction;
|
|
24
|
+
const contents = [];
|
|
25
|
+
for (const msg of request.messages) {
|
|
26
|
+
if (msg.role === 'system') {
|
|
27
|
+
systemInstruction = msg.content;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
contents.push({
|
|
31
|
+
role: msg.role === 'assistant' ? 'model' : 'user',
|
|
32
|
+
parts: [{ text: msg.content }],
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Build config
|
|
37
|
+
const config = {
|
|
38
|
+
maxOutputTokens: request.maxTokens ?? 8192,
|
|
39
|
+
};
|
|
40
|
+
if (request.temperature !== undefined) {
|
|
41
|
+
config.temperature = request.temperature;
|
|
42
|
+
}
|
|
43
|
+
// Add thinking budget
|
|
44
|
+
if (request.thinking?.thinkingBudget && request.thinking.thinkingBudget > 0) {
|
|
45
|
+
config.thinkingConfig = {
|
|
46
|
+
thinkingBudget: request.thinking.thinkingBudget,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (systemInstruction) {
|
|
50
|
+
config.systemInstruction = systemInstruction;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const response = await this.client.models.generateContent({
|
|
54
|
+
model: request.model,
|
|
55
|
+
contents,
|
|
56
|
+
config,
|
|
57
|
+
});
|
|
58
|
+
let content = '';
|
|
59
|
+
let thinkingContent = '';
|
|
60
|
+
if (response.candidates && response.candidates.length > 0) {
|
|
61
|
+
const candidate = response.candidates[0];
|
|
62
|
+
if (candidate.content?.parts) {
|
|
63
|
+
for (const part of candidate.content.parts) {
|
|
64
|
+
if (part.thought) {
|
|
65
|
+
thinkingContent += part.text || '';
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
content += part.text || '';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Fallback to response.text if no content extracted
|
|
74
|
+
if (!content && response.text) {
|
|
75
|
+
content = response.text;
|
|
76
|
+
}
|
|
77
|
+
const fullContent = thinkingContent
|
|
78
|
+
? `<thinking>\n${thinkingContent}\n</thinking>\n\n${content}`
|
|
79
|
+
: content;
|
|
80
|
+
return {
|
|
81
|
+
content: fullContent,
|
|
82
|
+
model: request.model,
|
|
83
|
+
usage: response.usageMetadata
|
|
84
|
+
? {
|
|
85
|
+
promptTokens: response.usageMetadata.promptTokenCount ?? 0,
|
|
86
|
+
completionTokens: response.usageMetadata.candidatesTokenCount ?? 0,
|
|
87
|
+
totalTokens: response.usageMetadata.totalTokenCount ?? 0,
|
|
88
|
+
}
|
|
89
|
+
: undefined,
|
|
90
|
+
finishReason: response.candidates?.[0]?.finishReason || undefined,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
throw new Error(`Gemini API error: ${error instanceof Error ? error.message : String(error)}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async listModels() {
|
|
98
|
+
if (!this.client)
|
|
99
|
+
throw new Error('Gemini provider not initialized');
|
|
100
|
+
const response = await this.client.models.list();
|
|
101
|
+
const models = [];
|
|
102
|
+
for (const model of response.page) {
|
|
103
|
+
if (model.name) {
|
|
104
|
+
models.push({
|
|
105
|
+
id: model.name.replace('models/', ''),
|
|
106
|
+
name: model.displayName || undefined,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return models;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=gemini.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../../../src/ai/providers/gemini.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Providers Module
|
|
3
|
+
*
|
|
4
|
+
* @license GPL-3.0
|
|
5
|
+
*/
|
|
6
|
+
export type { ProviderId, ThinkingConfig, ProviderConfig, UnifiedCompletionRequest, LLMProvider, } from './types.js';
|
|
7
|
+
export { PROVIDER_ALIASES, ALL_PROVIDER_NAMES, PROVIDER_BASE_URLS, PROVIDER_ENV_KEYS, PROVIDER_DISPLAY_NAMES, } from './types.js';
|
|
8
|
+
export { registerBuiltinProviders, setProviderConfig, getProvider, isProviderAvailable, listProviders, } from './registry.js';
|
|
9
|
+
export { OpenAIProvider } from './openai.provider.js';
|
|
10
|
+
export { AnthropicProvider } from './anthropic.provider.js';
|
|
11
|
+
export { GeminiProvider } from './gemini.provider.js';
|
|
12
|
+
export { createOpenAICompatProvider } from './openai-compat.provider.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Providers Module
|
|
3
|
+
*
|
|
4
|
+
* @license GPL-3.0
|
|
5
|
+
*/
|
|
6
|
+
export { PROVIDER_ALIASES, ALL_PROVIDER_NAMES, PROVIDER_BASE_URLS, PROVIDER_ENV_KEYS, PROVIDER_DISPLAY_NAMES, } from './types.js';
|
|
7
|
+
export { registerBuiltinProviders, setProviderConfig, getProvider, isProviderAvailable, listProviders, } from './registry.js';
|
|
8
|
+
export { OpenAIProvider } from './openai.provider.js';
|
|
9
|
+
export { AnthropicProvider } from './anthropic.provider.js';
|
|
10
|
+
export { GeminiProvider } from './gemini.provider.js';
|
|
11
|
+
export { createOpenAICompatProvider } from './openai-compat.provider.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - OpenAI-Compatible Provider
|
|
3
|
+
* Factory for providers using OpenAI-compatible APIs (Groq, DeepSeek, Ollama, OpenRouter).
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import type { LLMProvider, ProviderId } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create an OpenAI-compatible provider for a given provider ID.
|
|
10
|
+
* Uses the OpenAI SDK with a custom baseURL.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createOpenAICompatProvider(providerId: ProviderId): LLMProvider;
|
|
13
|
+
//# sourceMappingURL=openai-compat.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compat.provider.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/openai-compat.provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAA4C,MAAM,YAAY,CAAC;AAUpG;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CA2D9E"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - OpenAI-Compatible Provider
|
|
3
|
+
* Factory for providers using OpenAI-compatible APIs (Groq, DeepSeek, Ollama, OpenRouter).
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import OpenAI from 'openai';
|
|
8
|
+
import { PROVIDER_BASE_URLS } from './types.js';
|
|
9
|
+
import { mapMessagesToOpenAI, buildCompletionResponse, handleStreaming, listModelsFromClient, } from './openai-shared.js';
|
|
10
|
+
import { Logger } from '../../utils/logger.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create an OpenAI-compatible provider for a given provider ID.
|
|
13
|
+
* Uses the OpenAI SDK with a custom baseURL.
|
|
14
|
+
*/
|
|
15
|
+
export function createOpenAICompatProvider(providerId) {
|
|
16
|
+
let client = null;
|
|
17
|
+
return {
|
|
18
|
+
id: providerId,
|
|
19
|
+
init(config) {
|
|
20
|
+
const baseURL = config.baseURL || PROVIDER_BASE_URLS[providerId];
|
|
21
|
+
client = new OpenAI({
|
|
22
|
+
baseURL,
|
|
23
|
+
apiKey: config.apiKey || 'not-needed',
|
|
24
|
+
timeout: 120_000,
|
|
25
|
+
maxRetries: 3,
|
|
26
|
+
});
|
|
27
|
+
Logger.info(`${providerId} provider initialized (OpenAI-compatible: ${baseURL})`);
|
|
28
|
+
},
|
|
29
|
+
isInitialized() {
|
|
30
|
+
return client !== null;
|
|
31
|
+
},
|
|
32
|
+
async complete(request) {
|
|
33
|
+
if (!client)
|
|
34
|
+
throw new Error(`${providerId} provider not initialized`);
|
|
35
|
+
const messages = mapMessagesToOpenAI(request.messages);
|
|
36
|
+
const baseParams = {
|
|
37
|
+
model: request.model,
|
|
38
|
+
messages,
|
|
39
|
+
max_tokens: request.maxTokens ?? 8192,
|
|
40
|
+
temperature: request.temperature ?? 0.7,
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
if (request.stream && request.onProgress) {
|
|
44
|
+
const stream = await client.chat.completions.create({
|
|
45
|
+
...baseParams,
|
|
46
|
+
stream: true,
|
|
47
|
+
});
|
|
48
|
+
return await handleStreaming(stream, request.model, request.onProgress);
|
|
49
|
+
}
|
|
50
|
+
// Non-streaming
|
|
51
|
+
const response = (await client.chat.completions.create(baseParams));
|
|
52
|
+
return buildCompletionResponse(response);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error instanceof OpenAI.APIError) {
|
|
56
|
+
throw new Error(`${providerId} API error: ${error.status} ${error.message}`);
|
|
57
|
+
}
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
async listModels() {
|
|
62
|
+
if (!client)
|
|
63
|
+
throw new Error(`${providerId} provider not initialized`);
|
|
64
|
+
return listModelsFromClient(client);
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=openai-compat.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compat.provider.js","sourceRoot":"","sources":["../../../src/ai/providers/openai-compat.provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAsB;IAC/D,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,OAAO;QACL,EAAE,EAAE,UAAU;QAEd,IAAI,CAAC,MAAsB;YACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,GAAG,IAAI,MAAM,CAAC;gBAClB,OAAO;gBACP,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,YAAY;gBACrC,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,6CAA6C,OAAO,GAAG,CAAC,CAAC;QACpF,CAAC;QAED,aAAa;YACX,OAAO,MAAM,KAAK,IAAI,CAAC;QACzB,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,OAAiC;YAC9C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,2BAA2B,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEvD,MAAM,UAAU,GAAG;gBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ;gBACR,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;aACxC,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;wBAClD,GAAG,UAAU;wBACb,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;oBAEH,OAAO,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1E,CAAC;gBAED,gBAAgB;gBAChB,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAmB,CAAC;gBACtF,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,eAAe,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,KAAK,CAAC,UAAU;YACd,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,2BAA2B,CAAC,CAAC;YACvE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Shared OpenAI SDK Utilities
|
|
3
|
+
* Common logic shared between OpenAI and OpenAI-compatible providers.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import type OpenAI from 'openai';
|
|
8
|
+
import type { ChatCompletionMessageParam, ChatCompletionChunk } from 'openai/resources/chat/completions';
|
|
9
|
+
import type { ChatCompletion } from 'openai/resources/chat/completions';
|
|
10
|
+
import type { CompletionResponse } from '../client.js';
|
|
11
|
+
import type { Message } from '../client.js';
|
|
12
|
+
/** Extended delta with reasoning_content for o-series / DeepSeek models */
|
|
13
|
+
export interface ReasoningDelta extends ChatCompletionChunk.Choice.Delta {
|
|
14
|
+
reasoning_content?: string;
|
|
15
|
+
}
|
|
16
|
+
/** Extended message with reasoning_content */
|
|
17
|
+
export interface ReasoningMessage {
|
|
18
|
+
content: string | null;
|
|
19
|
+
reasoning_content?: string;
|
|
20
|
+
role: 'assistant';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Map internal Message[] to OpenAI ChatCompletionMessageParam[].
|
|
24
|
+
*/
|
|
25
|
+
export declare function mapMessagesToOpenAI(messages: Message[]): ChatCompletionMessageParam[];
|
|
26
|
+
/**
|
|
27
|
+
* Build a CompletionResponse from a non-streaming ChatCompletion.
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildCompletionResponse(response: ChatCompletion): CompletionResponse;
|
|
30
|
+
/**
|
|
31
|
+
* Handle a streaming chat completion, accumulating content and calling onProgress.
|
|
32
|
+
*/
|
|
33
|
+
export declare function handleStreaming(stream: AsyncIterable<ChatCompletionChunk>, model: string, onProgress?: (chunk: string) => void): Promise<CompletionResponse>;
|
|
34
|
+
/**
|
|
35
|
+
* List models from an OpenAI client, iterating the async page response.
|
|
36
|
+
*/
|
|
37
|
+
export declare function listModelsFromClient(client: OpenAI): Promise<Array<{
|
|
38
|
+
id: string;
|
|
39
|
+
name?: string;
|
|
40
|
+
}>>;
|
|
41
|
+
//# sourceMappingURL=openai-shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-shared.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/openai-shared.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,WAAW,cAAe,SAAQ,mBAAmB,CAAC,MAAM,CAAC,KAAK;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,0BAA0B,EAAE,CAKrF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,kBAAkB,CAiBpF;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAO/C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Shared OpenAI SDK Utilities
|
|
3
|
+
* Common logic shared between OpenAI and OpenAI-compatible providers.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Map internal Message[] to OpenAI ChatCompletionMessageParam[].
|
|
9
|
+
*/
|
|
10
|
+
export function mapMessagesToOpenAI(messages) {
|
|
11
|
+
return messages.map((m) => ({
|
|
12
|
+
role: m.role,
|
|
13
|
+
content: m.content,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a CompletionResponse from a non-streaming ChatCompletion.
|
|
18
|
+
*/
|
|
19
|
+
export function buildCompletionResponse(response) {
|
|
20
|
+
const choice = response.choices[0];
|
|
21
|
+
const message = choice?.message;
|
|
22
|
+
const content = message?.content || message?.reasoning_content || '';
|
|
23
|
+
return {
|
|
24
|
+
content,
|
|
25
|
+
model: response.model,
|
|
26
|
+
usage: response.usage
|
|
27
|
+
? {
|
|
28
|
+
promptTokens: response.usage.prompt_tokens,
|
|
29
|
+
completionTokens: response.usage.completion_tokens,
|
|
30
|
+
totalTokens: response.usage.total_tokens,
|
|
31
|
+
}
|
|
32
|
+
: undefined,
|
|
33
|
+
finishReason: choice?.finish_reason || undefined,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Handle a streaming chat completion, accumulating content and calling onProgress.
|
|
38
|
+
*/
|
|
39
|
+
export async function handleStreaming(stream, model, onProgress) {
|
|
40
|
+
let content = '';
|
|
41
|
+
let finishReason;
|
|
42
|
+
for await (const chunk of stream) {
|
|
43
|
+
const delta = chunk.choices[0]?.delta?.content || '';
|
|
44
|
+
const reasoning = chunk.choices[0]?.delta?.reasoning_content || '';
|
|
45
|
+
const text = delta || reasoning;
|
|
46
|
+
if (text) {
|
|
47
|
+
content += text;
|
|
48
|
+
onProgress?.(text);
|
|
49
|
+
}
|
|
50
|
+
if (chunk.choices[0]?.finish_reason) {
|
|
51
|
+
finishReason = chunk.choices[0].finish_reason;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { content, model, finishReason };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* List models from an OpenAI client, iterating the async page response.
|
|
58
|
+
*/
|
|
59
|
+
export async function listModelsFromClient(client) {
|
|
60
|
+
const response = await client.models.list();
|
|
61
|
+
const models = [];
|
|
62
|
+
for await (const model of response) {
|
|
63
|
+
models.push({ id: model.id });
|
|
64
|
+
}
|
|
65
|
+
return models;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=openai-shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-shared.js","sourceRoot":"","sources":["../../../src/ai/providers/openai-shared.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAmB;IACrD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAwB;IAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAuC,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;IAErE,OAAO;QACL,OAAO;QACP,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACnB,CAAC,CAAC;gBACE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;gBAC1C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB;gBAClD,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;aACzC;YACH,CAAC,CAAC,SAAS;QACb,YAAY,EAAE,MAAM,EAAE,aAAa,IAAI,SAAS;KACjD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA0C,EAC1C,KAAa,EACb,UAAoC;IAEpC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,YAAgC,CAAC;IAErC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;QACrD,MAAM,SAAS,GAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAwB,EAAE,iBAAiB,IAAI,EAAE,CAAC;QACvF,MAAM,IAAI,GAAG,KAAK,IAAI,SAAS,CAAC;QAEhC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,IAAI,CAAC;YAChB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YACpC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAyC,EAAE,CAAC;IACxD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - OpenAI Provider
|
|
3
|
+
* Native OpenAI SDK provider with reasoning effort support for o-series models.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import type { CompletionResponse } from '../client.js';
|
|
8
|
+
import type { LLMProvider, ProviderConfig, UnifiedCompletionRequest } from './types.js';
|
|
9
|
+
export declare class OpenAIProvider implements LLMProvider {
|
|
10
|
+
readonly id: "openai";
|
|
11
|
+
private client;
|
|
12
|
+
init(config: ProviderConfig): void;
|
|
13
|
+
isInitialized(): boolean;
|
|
14
|
+
complete(request: UnifiedCompletionRequest): Promise<CompletionResponse>;
|
|
15
|
+
private completeStreaming;
|
|
16
|
+
private completeNonStreaming;
|
|
17
|
+
listModels(): Promise<Array<{
|
|
18
|
+
id: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
}>>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=openai.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.provider.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/openai.provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AASxF,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,EAAE,EAAG,QAAQ,CAAU;IAChC,OAAO,CAAC,MAAM,CAAuB;IAErC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAUlC,aAAa,IAAI,OAAO;IAIlB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAmChE,iBAAiB;YAYjB,oBAAoB;IAU5B,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAIlE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - OpenAI Provider
|
|
3
|
+
* Native OpenAI SDK provider with reasoning effort support for o-series models.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import OpenAI from 'openai';
|
|
8
|
+
import { mapMessagesToOpenAI, buildCompletionResponse, handleStreaming, listModelsFromClient, } from './openai-shared.js';
|
|
9
|
+
import { Logger } from '../../utils/logger.js';
|
|
10
|
+
export class OpenAIProvider {
|
|
11
|
+
id = 'openai';
|
|
12
|
+
client = null;
|
|
13
|
+
init(config) {
|
|
14
|
+
this.client = new OpenAI({
|
|
15
|
+
baseURL: config.baseURL || 'https://api.openai.com/v1',
|
|
16
|
+
apiKey: config.apiKey,
|
|
17
|
+
timeout: 120_000,
|
|
18
|
+
maxRetries: 3,
|
|
19
|
+
});
|
|
20
|
+
Logger.info(`OpenAI provider initialized`);
|
|
21
|
+
}
|
|
22
|
+
isInitialized() {
|
|
23
|
+
return this.client !== null;
|
|
24
|
+
}
|
|
25
|
+
async complete(request) {
|
|
26
|
+
if (!this.client)
|
|
27
|
+
throw new Error('OpenAI provider not initialized');
|
|
28
|
+
const messages = mapMessagesToOpenAI(request.messages);
|
|
29
|
+
const isReasoning = !!request.thinking?.reasoningEffort;
|
|
30
|
+
// Build params: o-series models require different param names and don't support temperature
|
|
31
|
+
const baseParams = {
|
|
32
|
+
model: request.model,
|
|
33
|
+
messages,
|
|
34
|
+
};
|
|
35
|
+
if (isReasoning) {
|
|
36
|
+
// o-series models: use max_completion_tokens, no temperature, add reasoning_effort
|
|
37
|
+
baseParams.max_completion_tokens = request.maxTokens ?? 8192;
|
|
38
|
+
baseParams.reasoning_effort = request.thinking.reasoningEffort;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
baseParams.max_tokens = request.maxTokens ?? 8192;
|
|
42
|
+
baseParams.temperature = request.temperature ?? 0.7;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
if (request.stream && request.onProgress) {
|
|
46
|
+
return await this.completeStreaming(baseParams, request);
|
|
47
|
+
}
|
|
48
|
+
return await this.completeNonStreaming(baseParams);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (error instanceof OpenAI.APIError) {
|
|
52
|
+
throw new Error(`OpenAI API error: ${error.status} ${error.message}`);
|
|
53
|
+
}
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async completeStreaming(baseParams, request) {
|
|
58
|
+
const stream = await this.client.chat.completions.create({
|
|
59
|
+
...baseParams,
|
|
60
|
+
stream: true,
|
|
61
|
+
});
|
|
62
|
+
return handleStreaming(stream, request.model, request.onProgress);
|
|
63
|
+
}
|
|
64
|
+
async completeNonStreaming(baseParams) {
|
|
65
|
+
const response = (await this.client.chat.completions.create(baseParams));
|
|
66
|
+
return buildCompletionResponse(response);
|
|
67
|
+
}
|
|
68
|
+
async listModels() {
|
|
69
|
+
if (!this.client)
|
|
70
|
+
throw new Error('OpenAI provider not initialized');
|
|
71
|
+
return listModelsFromClient(this.client);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=openai.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.provider.js","sourceRoot":"","sources":["../../../src/ai/providers/openai.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Provider Registry
|
|
3
|
+
* Singleton registry for all LLM providers with lazy initialization.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import type { LLMProvider, ProviderId, ProviderConfig } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Register all built-in providers (called once at startup).
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerBuiltinProviders(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Set configuration override for a provider (from config file or tool).
|
|
14
|
+
*/
|
|
15
|
+
export declare function setProviderConfig(id: ProviderId, config: Partial<ProviderConfig>): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get a provider by ID. Lazily initializes if needed.
|
|
18
|
+
* Throws if provider is not available (no API key, init failed, etc.)
|
|
19
|
+
*/
|
|
20
|
+
export declare function getProvider(id: ProviderId): LLMProvider;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a provider is available (has API key configured).
|
|
23
|
+
*/
|
|
24
|
+
export declare function isProviderAvailable(id: ProviderId): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* List all registered providers with their availability status.
|
|
27
|
+
*/
|
|
28
|
+
export declare function listProviders(): Array<{
|
|
29
|
+
id: ProviderId;
|
|
30
|
+
available: boolean;
|
|
31
|
+
initialized: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAc1E;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAY/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAYvF;AAmDD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAgBvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAW3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,KAAK,CAAC;IACrC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAQD"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - Provider Registry
|
|
3
|
+
* Singleton registry for all LLM providers with lazy initialization.
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import { PROVIDER_ENV_KEYS, PROVIDER_BASE_URLS } from './types.js';
|
|
8
|
+
import { OpenAIProvider } from './openai.provider.js';
|
|
9
|
+
import { AnthropicProvider } from './anthropic.provider.js';
|
|
10
|
+
import { GeminiProvider } from './gemini.provider.js';
|
|
11
|
+
import { createOpenAICompatProvider } from './openai-compat.provider.js';
|
|
12
|
+
import { Logger } from '../../utils/logger.js';
|
|
13
|
+
/** Registry of all providers */
|
|
14
|
+
const providers = new Map();
|
|
15
|
+
/** Manual config overrides per provider */
|
|
16
|
+
const providerConfigs = new Map();
|
|
17
|
+
/**
|
|
18
|
+
* Register all built-in providers (called once at startup).
|
|
19
|
+
*/
|
|
20
|
+
export function registerBuiltinProviders() {
|
|
21
|
+
if (providers.size > 0)
|
|
22
|
+
return; // Already registered
|
|
23
|
+
providers.set('openai', new OpenAIProvider());
|
|
24
|
+
providers.set('anthropic', new AnthropicProvider());
|
|
25
|
+
providers.set('gemini', new GeminiProvider());
|
|
26
|
+
providers.set('groq', createOpenAICompatProvider('groq'));
|
|
27
|
+
providers.set('deepseek', createOpenAICompatProvider('deepseek'));
|
|
28
|
+
providers.set('ollama', createOpenAICompatProvider('ollama'));
|
|
29
|
+
providers.set('openrouter', createOpenAICompatProvider('openrouter'));
|
|
30
|
+
Logger.info(`Registered ${providers.size} LLM providers`);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Set configuration override for a provider (from config file or tool).
|
|
34
|
+
*/
|
|
35
|
+
export function setProviderConfig(id, config) {
|
|
36
|
+
const existing = providerConfigs.get(id);
|
|
37
|
+
providerConfigs.set(id, { ...existing, ...config });
|
|
38
|
+
// Reset provider so it re-initializes with new config on next use
|
|
39
|
+
const provider = providers.get(id);
|
|
40
|
+
if (provider?.isInitialized()) {
|
|
41
|
+
// Re-create the provider to reset state
|
|
42
|
+
if (id === 'openai')
|
|
43
|
+
providers.set(id, new OpenAIProvider());
|
|
44
|
+
else if (id === 'anthropic')
|
|
45
|
+
providers.set(id, new AnthropicProvider());
|
|
46
|
+
else if (id === 'gemini')
|
|
47
|
+
providers.set(id, new GeminiProvider());
|
|
48
|
+
else
|
|
49
|
+
providers.set(id, createOpenAICompatProvider(id));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolve API key for a provider from environment variables or config.
|
|
54
|
+
*/
|
|
55
|
+
function resolveApiKey(id) {
|
|
56
|
+
// Check manual config first
|
|
57
|
+
const configKey = providerConfigs.get(id)?.apiKey;
|
|
58
|
+
if (configKey)
|
|
59
|
+
return configKey;
|
|
60
|
+
// Check environment variables
|
|
61
|
+
const envKeys = PROVIDER_ENV_KEYS[id];
|
|
62
|
+
for (const envKey of envKeys) {
|
|
63
|
+
const value = process.env[envKey];
|
|
64
|
+
if (value)
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Ensure a provider is initialized. Lazy initialization on first use.
|
|
71
|
+
*/
|
|
72
|
+
function ensureInitialized(provider) {
|
|
73
|
+
if (provider.isInitialized())
|
|
74
|
+
return true;
|
|
75
|
+
const apiKey = resolveApiKey(provider.id);
|
|
76
|
+
// Ollama doesn't need an API key
|
|
77
|
+
if (!apiKey && provider.id !== 'ollama') {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const overrides = providerConfigs.get(provider.id);
|
|
81
|
+
const config = {
|
|
82
|
+
id: provider.id,
|
|
83
|
+
apiKey: apiKey || '',
|
|
84
|
+
baseURL: overrides?.baseURL || PROVIDER_BASE_URLS[provider.id],
|
|
85
|
+
};
|
|
86
|
+
try {
|
|
87
|
+
provider.init(config);
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
Logger.warn(`Failed to initialize ${provider.id} provider: ${error instanceof Error ? error.message : String(error)}`);
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get a provider by ID. Lazily initializes if needed.
|
|
97
|
+
* Throws if provider is not available (no API key, init failed, etc.)
|
|
98
|
+
*/
|
|
99
|
+
export function getProvider(id) {
|
|
100
|
+
registerBuiltinProviders();
|
|
101
|
+
const provider = providers.get(id);
|
|
102
|
+
if (!provider) {
|
|
103
|
+
throw new Error(`Unknown provider: ${id}`);
|
|
104
|
+
}
|
|
105
|
+
if (!ensureInitialized(provider)) {
|
|
106
|
+
const envKeys = PROVIDER_ENV_KEYS[id];
|
|
107
|
+
throw new Error(`Provider "${id}" is not configured. Set API key via: ${envKeys.join(' or ')}`);
|
|
108
|
+
}
|
|
109
|
+
return provider;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Check if a provider is available (has API key configured).
|
|
113
|
+
*/
|
|
114
|
+
export function isProviderAvailable(id) {
|
|
115
|
+
registerBuiltinProviders();
|
|
116
|
+
const provider = providers.get(id);
|
|
117
|
+
if (!provider)
|
|
118
|
+
return false;
|
|
119
|
+
if (provider.isInitialized())
|
|
120
|
+
return true;
|
|
121
|
+
// Check if we can initialize (has API key)
|
|
122
|
+
if (id === 'ollama')
|
|
123
|
+
return true; // Always available
|
|
124
|
+
return resolveApiKey(id) !== undefined;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* List all registered providers with their availability status.
|
|
128
|
+
*/
|
|
129
|
+
export function listProviders() {
|
|
130
|
+
registerBuiltinProviders();
|
|
131
|
+
return Array.from(providers.entries()).map(([id, provider]) => ({
|
|
132
|
+
id,
|
|
133
|
+
available: isProviderAvailable(id),
|
|
134
|
+
initialized: provider.isInitialized(),
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=registry.js.map
|