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,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* MPC (Multi-Party Computation) Type Definitions
|
|
20
|
+
*
|
|
21
|
+
* Types for Shamir Secret Sharing based threshold cryptography
|
|
22
|
+
* for secure secret distribution among agents.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Individual share from Shamir Secret Sharing
|
|
26
|
+
*/
|
|
27
|
+
export interface MpcShare {
|
|
28
|
+
/** Unique share identifier */
|
|
29
|
+
id: string;
|
|
30
|
+
/** Index of this share (1-based for Shamir) */
|
|
31
|
+
index: number;
|
|
32
|
+
/** The share data (hex-encoded) */
|
|
33
|
+
data: string;
|
|
34
|
+
/** Agent ID this share is assigned to */
|
|
35
|
+
agentId: string;
|
|
36
|
+
/** Secret ID this share belongs to */
|
|
37
|
+
secretId: string;
|
|
38
|
+
/** Session ID */
|
|
39
|
+
sessionId: string;
|
|
40
|
+
/** When the share was created */
|
|
41
|
+
createdAt: number;
|
|
42
|
+
/** Optional encryption metadata */
|
|
43
|
+
encrypted?: boolean;
|
|
44
|
+
/** IV if encrypted */
|
|
45
|
+
iv?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Metadata about a shared secret
|
|
49
|
+
*/
|
|
50
|
+
export interface MpcSecretMetadata {
|
|
51
|
+
/** Unique secret identifier */
|
|
52
|
+
id: string;
|
|
53
|
+
/** Session this secret belongs to */
|
|
54
|
+
sessionId: string;
|
|
55
|
+
/** Total number of shares created */
|
|
56
|
+
totalShares: number;
|
|
57
|
+
/** Minimum shares required to reconstruct */
|
|
58
|
+
threshold: number;
|
|
59
|
+
/** Agent IDs holding shares */
|
|
60
|
+
holders: string[];
|
|
61
|
+
/** Who created/split the secret */
|
|
62
|
+
creatorAgentId: string;
|
|
63
|
+
/** When the secret was split */
|
|
64
|
+
createdAt: number;
|
|
65
|
+
/** Optional TTL in seconds */
|
|
66
|
+
ttl?: number;
|
|
67
|
+
/** Human-readable label */
|
|
68
|
+
label?: string;
|
|
69
|
+
/** Optional tags for categorization */
|
|
70
|
+
tags?: string[];
|
|
71
|
+
/** Secret type hint */
|
|
72
|
+
secretType?: 'api-key' | 'password' | 'private-key' | 'generic';
|
|
73
|
+
/** Hash of original secret for verification */
|
|
74
|
+
verificationHash?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Configuration for splitting a secret
|
|
78
|
+
*/
|
|
79
|
+
export interface MpcSplitConfig {
|
|
80
|
+
/** The secret to split */
|
|
81
|
+
secret: string;
|
|
82
|
+
/** Total number of shares to create */
|
|
83
|
+
totalShares: number;
|
|
84
|
+
/** Minimum shares needed to reconstruct */
|
|
85
|
+
threshold: number;
|
|
86
|
+
/** Session ID */
|
|
87
|
+
sessionId: string;
|
|
88
|
+
/** Agent who is splitting */
|
|
89
|
+
creatorAgentId: string;
|
|
90
|
+
/** Optional label */
|
|
91
|
+
label?: string;
|
|
92
|
+
/** Optional TTL in seconds */
|
|
93
|
+
ttl?: number;
|
|
94
|
+
/** Optional tags */
|
|
95
|
+
tags?: string[];
|
|
96
|
+
/** Secret type hint */
|
|
97
|
+
secretType?: MpcSecretMetadata['secretType'];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Result of splitting a secret
|
|
101
|
+
*/
|
|
102
|
+
export interface MpcSplitResult {
|
|
103
|
+
/** The secret metadata */
|
|
104
|
+
metadata: MpcSecretMetadata;
|
|
105
|
+
/** Generated shares (not yet distributed) */
|
|
106
|
+
shares: MpcShare[];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Distribution assignment
|
|
110
|
+
*/
|
|
111
|
+
export interface MpcDistribution {
|
|
112
|
+
/** Secret ID */
|
|
113
|
+
secretId: string;
|
|
114
|
+
/** Share index to agent mapping */
|
|
115
|
+
assignments: Array<{
|
|
116
|
+
shareIndex: number;
|
|
117
|
+
agentId: string;
|
|
118
|
+
}>;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Request to collect shares for reconstruction
|
|
122
|
+
*/
|
|
123
|
+
export interface MpcReconstructRequest {
|
|
124
|
+
/** Secret ID to reconstruct */
|
|
125
|
+
secretId: string;
|
|
126
|
+
/** Session ID */
|
|
127
|
+
sessionId: string;
|
|
128
|
+
/** Agent requesting reconstruction */
|
|
129
|
+
requestingAgentId: string;
|
|
130
|
+
/** Agent IDs to request shares from */
|
|
131
|
+
targetAgentIds?: string[];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Result of reconstruction attempt
|
|
135
|
+
*/
|
|
136
|
+
export interface MpcReconstructResult {
|
|
137
|
+
/** Whether reconstruction succeeded */
|
|
138
|
+
success: boolean;
|
|
139
|
+
/** The reconstructed secret (if successful) */
|
|
140
|
+
secret?: string;
|
|
141
|
+
/** Number of shares collected */
|
|
142
|
+
sharesCollected: number;
|
|
143
|
+
/** Threshold required */
|
|
144
|
+
thresholdRequired: number;
|
|
145
|
+
/** Error message if failed */
|
|
146
|
+
error?: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Status of a secret
|
|
150
|
+
*/
|
|
151
|
+
export interface MpcSecretStatus {
|
|
152
|
+
/** Secret metadata */
|
|
153
|
+
metadata: MpcSecretMetadata;
|
|
154
|
+
/** Distribution status per agent */
|
|
155
|
+
distribution: Array<{
|
|
156
|
+
agentId: string;
|
|
157
|
+
shareIndex: number;
|
|
158
|
+
delivered: boolean;
|
|
159
|
+
acknowledgedAt?: number;
|
|
160
|
+
}>;
|
|
161
|
+
/** Whether enough shares exist to reconstruct */
|
|
162
|
+
reconstructable: boolean;
|
|
163
|
+
/** Agents that have acknowledged receipt */
|
|
164
|
+
acknowledgedCount: number;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* MPC-specific message types for inter-agent communication
|
|
168
|
+
*/
|
|
169
|
+
export type MpcMessageType = 'mpc-share-request' | 'mpc-share-response' | 'mpc-share-delivery' | 'mpc-share-acknowledgment' | 'mpc-reconstruct-request' | 'mpc-reconstruct-contribution';
|
|
170
|
+
/**
|
|
171
|
+
* MPC share request message
|
|
172
|
+
*/
|
|
173
|
+
export interface MpcShareRequestMessage {
|
|
174
|
+
type: 'mpc-share-request';
|
|
175
|
+
secretId: string;
|
|
176
|
+
requestingAgentId: string;
|
|
177
|
+
reason?: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* MPC share response message
|
|
181
|
+
*/
|
|
182
|
+
export interface MpcShareResponseMessage {
|
|
183
|
+
type: 'mpc-share-response';
|
|
184
|
+
secretId: string;
|
|
185
|
+
shareIndex: number;
|
|
186
|
+
shareData: string;
|
|
187
|
+
fromAgentId: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Redis key patterns for MPC
|
|
191
|
+
*/
|
|
192
|
+
export declare const MPC_KEYS: {
|
|
193
|
+
/** Share storage: mpc:shares:{sessionId}:{secretId}:{agentId} */
|
|
194
|
+
readonly share: (sessionId: string, secretId: string, agentId: string) => string;
|
|
195
|
+
/** Secret metadata: mpc:secrets:{sessionId}:{secretId} */
|
|
196
|
+
readonly secret: (sessionId: string, secretId: string) => string;
|
|
197
|
+
/** Agent's secrets index: mpc:index:agent:{agentId} */
|
|
198
|
+
readonly agentIndex: (agentId: string) => string;
|
|
199
|
+
/** Session's secrets index: mpc:index:session:{sessionId} */
|
|
200
|
+
readonly sessionIndex: (sessionId: string) => string;
|
|
201
|
+
/** Pending share requests: mpc:pending:{secretId} */
|
|
202
|
+
readonly pending: (secretId: string) => string;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Agent roles allowed to perform MPC operations
|
|
206
|
+
*/
|
|
207
|
+
export declare const MPC_ALLOWED_ROLES: {
|
|
208
|
+
readonly split: readonly ["supervisor", "coordinator"];
|
|
209
|
+
readonly distribute: readonly ["supervisor", "coordinator"];
|
|
210
|
+
readonly reconstruct: readonly ["supervisor", "coordinator"];
|
|
211
|
+
readonly viewStatus: readonly ["supervisor", "coordinator", "worker", "specialist"];
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mpc/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Redis key patterns for MPC
|
|
20
|
+
*/
|
|
21
|
+
export const MPC_KEYS = {
|
|
22
|
+
/** Share storage: mpc:shares:{sessionId}:{secretId}:{agentId} */
|
|
23
|
+
share: (sessionId, secretId, agentId) => `mpc:shares:${sessionId}:${secretId}:${agentId}`,
|
|
24
|
+
/** Secret metadata: mpc:secrets:{sessionId}:{secretId} */
|
|
25
|
+
secret: (sessionId, secretId) => `mpc:secrets:${sessionId}:${secretId}`,
|
|
26
|
+
/** Agent's secrets index: mpc:index:agent:{agentId} */
|
|
27
|
+
agentIndex: (agentId) => `mpc:index:agent:${agentId}`,
|
|
28
|
+
/** Session's secrets index: mpc:index:session:{sessionId} */
|
|
29
|
+
sessionIndex: (sessionId) => `mpc:index:session:${sessionId}`,
|
|
30
|
+
/** Pending share requests: mpc:pending:{secretId} */
|
|
31
|
+
pending: (secretId) => `mpc:pending:${secretId}`,
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Agent roles allowed to perform MPC operations
|
|
35
|
+
*/
|
|
36
|
+
export const MPC_ALLOWED_ROLES = {
|
|
37
|
+
split: ['supervisor', 'coordinator'],
|
|
38
|
+
distribute: ['supervisor', 'coordinator'],
|
|
39
|
+
reconstruct: ['supervisor', 'coordinator'],
|
|
40
|
+
viewStatus: ['supervisor', 'coordinator', 'worker', 'specialist'],
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mpc/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA+LH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,iEAAiE;IACjE,KAAK,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE,CAC9D,cAAc,SAAS,IAAI,QAAQ,IAAI,OAAO,EAAE;IAElD,0DAA0D;IAC1D,MAAM,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,CAAC,eAAe,SAAS,IAAI,QAAQ,EAAE;IAEvF,uDAAuD;IACvD,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,mBAAmB,OAAO,EAAE;IAE7D,6DAA6D;IAC7D,YAAY,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,qBAAqB,SAAS,EAAE;IAErE,qDAAqD;IACrD,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,eAAe,QAAQ,EAAE;CAChD,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,CAAU;IAC7C,UAAU,EAAE,CAAC,YAAY,EAAE,aAAa,CAAU;IAClD,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,CAAU;IACnD,UAAU,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAU;CAClE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Recursive Tool Invocation Module
|
|
20
|
+
*
|
|
21
|
+
* Allows agents to safely invoke MCP tools from within tools.
|
|
22
|
+
*
|
|
23
|
+
* @module recursive
|
|
24
|
+
*/
|
|
25
|
+
export * from './types.js';
|
|
26
|
+
export * from './tool-invoker.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recursive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Recursive Tool Invocation Module
|
|
20
|
+
*
|
|
21
|
+
* Allows agents to safely invoke MCP tools from within tools.
|
|
22
|
+
*
|
|
23
|
+
* @module recursive
|
|
24
|
+
*/
|
|
25
|
+
export * from './types.js';
|
|
26
|
+
export * from './tool-invoker.js';
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recursive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { ToolInvocationRequest, ToolInvocationResult, InvocationContext, InvocationPolicy, SafetyCheckResult } from './types.js';
|
|
19
|
+
/**
|
|
20
|
+
* Check if invocation is allowed
|
|
21
|
+
*/
|
|
22
|
+
export declare function checkSafety(request: ToolInvocationRequest, policy?: InvocationPolicy): Promise<SafetyCheckResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Invoke a tool
|
|
25
|
+
*/
|
|
26
|
+
export declare function invokeTool(request: ToolInvocationRequest, policy?: InvocationPolicy): Promise<ToolInvocationResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Invoke multiple tools in batch
|
|
29
|
+
*/
|
|
30
|
+
export declare function invokeBatch(requests: ToolInvocationRequest[], policy?: InvocationPolicy, parallel?: boolean): Promise<ToolInvocationResult[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Get invocation log for an agent
|
|
33
|
+
*/
|
|
34
|
+
export declare function getInvocationLog(agentId: string, limit?: number): Promise<Array<{
|
|
35
|
+
invocationId: string;
|
|
36
|
+
toolName: string;
|
|
37
|
+
success: boolean;
|
|
38
|
+
error?: string;
|
|
39
|
+
duration: number;
|
|
40
|
+
depth: number;
|
|
41
|
+
timestamp: number;
|
|
42
|
+
}>>;
|
|
43
|
+
/**
|
|
44
|
+
* Get current invocation context for an agent
|
|
45
|
+
*/
|
|
46
|
+
export declare function getCurrentContext(agentId: string): InvocationContext | null;
|
|
47
|
+
/**
|
|
48
|
+
* Clear invocation context (for cleanup)
|
|
49
|
+
*/
|
|
50
|
+
export declare function clearContext(agentId: string): void;
|
|
51
|
+
//# sourceMappingURL=tool-invoker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-invoker.d.ts","sourceRoot":"","sources":["../../src/recursive/tool-invoker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAOlB,MAAM,YAAY,CAAC;AAyBpB;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,GAAE,gBAAiC,GACxC,OAAO,CAAC,iBAAiB,CAAC,CAiF5B;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,GAAE,gBAAiC,GACxC,OAAO,CAAC,oBAAoB,CAAC,CAyI/B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,qBAAqB,EAAE,EACjC,MAAM,GAAE,gBAAiC,EACzC,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAajC;AAyBD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAW,GACjB,OAAO,CACR,KAAK,CAAC;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CACH,CAMA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Tool Invoker
|
|
20
|
+
*
|
|
21
|
+
* Safe recursive tool invocation with rate limiting and depth control.
|
|
22
|
+
*
|
|
23
|
+
* @module recursive/tool-invoker
|
|
24
|
+
*/
|
|
25
|
+
import { getSharedRedis } from '../infrastructure/redis/connection.js';
|
|
26
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
27
|
+
import { Logger } from '../utils/logger.js';
|
|
28
|
+
import { getToolByName, executeTool } from '../tools/registry.js';
|
|
29
|
+
import { DEFAULT_POLICY, RECURSIVE_KEYS, INVOCATION_TTL, RATE_LIMIT_WINDOW, MAX_LOG_ENTRIES, } from './types.js';
|
|
30
|
+
/** Current invocation context (per-request) */
|
|
31
|
+
const contextStack = new Map();
|
|
32
|
+
const getRedis = getSharedRedis;
|
|
33
|
+
/**
|
|
34
|
+
* Read and normalize rate limit entry from Redis.
|
|
35
|
+
* Resets the window if expired.
|
|
36
|
+
*/
|
|
37
|
+
async function getRateLimitEntry(agentId) {
|
|
38
|
+
const client = await getRedis();
|
|
39
|
+
const rateLimitKey = RECURSIVE_KEYS.rateLimit(agentId);
|
|
40
|
+
const data = await client.get(rateLimitKey);
|
|
41
|
+
let entry = { count: 0, windowStart: Date.now() };
|
|
42
|
+
if (data) {
|
|
43
|
+
entry = JSON.parse(data);
|
|
44
|
+
if (Date.now() - entry.windowStart > RATE_LIMIT_WINDOW) {
|
|
45
|
+
entry = { count: 0, windowStart: Date.now() };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return entry;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if invocation is allowed
|
|
52
|
+
*/
|
|
53
|
+
export async function checkSafety(request, policy = DEFAULT_POLICY) {
|
|
54
|
+
// Check if tool is blocked
|
|
55
|
+
if (policy.blockedTools.includes(request.toolName)) {
|
|
56
|
+
return {
|
|
57
|
+
allowed: false,
|
|
58
|
+
reason: `Tool '${request.toolName}' cannot be invoked recursively`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Check if tool exists
|
|
62
|
+
const tool = getToolByName(request.toolName);
|
|
63
|
+
if (!tool) {
|
|
64
|
+
return {
|
|
65
|
+
allowed: false,
|
|
66
|
+
reason: `Tool '${request.toolName}' not found`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Check depth
|
|
70
|
+
const context = contextStack.get(request.agentId);
|
|
71
|
+
const currentDepth = context ? context.currentDepth + 1 : 1;
|
|
72
|
+
if (currentDepth > policy.maxDepth) {
|
|
73
|
+
return {
|
|
74
|
+
allowed: false,
|
|
75
|
+
reason: `Maximum invocation depth (${policy.maxDepth}) exceeded`,
|
|
76
|
+
currentDepth,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Prevent invoke-tool/invoke-batch from being called recursively more than 2 levels deep
|
|
80
|
+
// This allows: Agent -> invoke-tool -> SubAgent -> invoke-tool -> Tool
|
|
81
|
+
// But prevents: Agent -> invoke-tool -> ... -> invoke-tool (depth 3+)
|
|
82
|
+
if ((request.toolName === 'invoke-tool' || request.toolName === 'invoke-batch') &&
|
|
83
|
+
currentDepth > 2) {
|
|
84
|
+
return {
|
|
85
|
+
allowed: false,
|
|
86
|
+
reason: `Recursive tool invocation limited to depth 2 (current: ${currentDepth})`,
|
|
87
|
+
currentDepth,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// Check rate limit
|
|
91
|
+
const rateEntry = await getRateLimitEntry(request.agentId);
|
|
92
|
+
const resetIn = RATE_LIMIT_WINDOW - (Date.now() - rateEntry.windowStart);
|
|
93
|
+
if (rateEntry.count >= policy.maxInvocationsPerMinute) {
|
|
94
|
+
return {
|
|
95
|
+
allowed: false,
|
|
96
|
+
reason: 'Rate limit exceeded',
|
|
97
|
+
rateLimit: {
|
|
98
|
+
current: rateEntry.count,
|
|
99
|
+
max: policy.maxInvocationsPerMinute,
|
|
100
|
+
resetIn,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const rateLimit = {
|
|
105
|
+
current: rateEntry.count,
|
|
106
|
+
max: policy.maxInvocationsPerMinute,
|
|
107
|
+
resetIn,
|
|
108
|
+
};
|
|
109
|
+
// Check if approval required
|
|
110
|
+
if (policy.requiresApproval.includes(request.toolName)) {
|
|
111
|
+
return {
|
|
112
|
+
allowed: true,
|
|
113
|
+
requiresSupervisorApproval: true,
|
|
114
|
+
currentDepth,
|
|
115
|
+
rateLimit,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
allowed: true,
|
|
120
|
+
currentDepth,
|
|
121
|
+
rateLimit,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Invoke a tool
|
|
126
|
+
*/
|
|
127
|
+
export async function invokeTool(request, policy = DEFAULT_POLICY) {
|
|
128
|
+
const startTime = Date.now();
|
|
129
|
+
const invocationId = request.invocationId || uuidv4();
|
|
130
|
+
// Safety check
|
|
131
|
+
const safety = await checkSafety(request, policy);
|
|
132
|
+
if (!safety.allowed) {
|
|
133
|
+
return {
|
|
134
|
+
invocationId,
|
|
135
|
+
success: false,
|
|
136
|
+
error: safety.reason,
|
|
137
|
+
duration: Date.now() - startTime,
|
|
138
|
+
depth: safety.currentDepth || 0,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
if (safety.requiresSupervisorApproval) {
|
|
142
|
+
// For now, we'll allow but log a warning
|
|
143
|
+
Logger.warn(`invoke-tool: ${request.toolName} requires approval, proceeding anyway`);
|
|
144
|
+
}
|
|
145
|
+
const client = await getRedis();
|
|
146
|
+
try {
|
|
147
|
+
// Update rate limit
|
|
148
|
+
const rateEntry = await getRateLimitEntry(request.agentId);
|
|
149
|
+
rateEntry.count++;
|
|
150
|
+
const rateLimitKey = RECURSIVE_KEYS.rateLimit(request.agentId);
|
|
151
|
+
await client.setex(rateLimitKey, 120, JSON.stringify(rateEntry));
|
|
152
|
+
// Set up context
|
|
153
|
+
const parentContext = contextStack.get(request.agentId);
|
|
154
|
+
const context = {
|
|
155
|
+
rootInvocationId: parentContext?.rootInvocationId || invocationId,
|
|
156
|
+
currentDepth: (parentContext?.currentDepth || 0) + 1,
|
|
157
|
+
chain: [...(parentContext?.chain || []), invocationId],
|
|
158
|
+
startTime,
|
|
159
|
+
};
|
|
160
|
+
contextStack.set(request.agentId, context);
|
|
161
|
+
// Store invocation data
|
|
162
|
+
await client.setex(RECURSIVE_KEYS.invocation(invocationId), INVOCATION_TTL, JSON.stringify({
|
|
163
|
+
...request,
|
|
164
|
+
invocationId,
|
|
165
|
+
depth: context.currentDepth,
|
|
166
|
+
startTime,
|
|
167
|
+
}));
|
|
168
|
+
// Get and execute tool
|
|
169
|
+
const tool = getToolByName(request.toolName);
|
|
170
|
+
if (!tool) {
|
|
171
|
+
throw new Error(`Tool '${request.toolName}' not found`);
|
|
172
|
+
}
|
|
173
|
+
const result = await executeTool(request.toolName, request.args);
|
|
174
|
+
const duration = Date.now() - startTime;
|
|
175
|
+
// Log invocation
|
|
176
|
+
await logInvocation(request.agentId, {
|
|
177
|
+
invocationId,
|
|
178
|
+
toolName: request.toolName,
|
|
179
|
+
success: true,
|
|
180
|
+
duration,
|
|
181
|
+
depth: context.currentDepth,
|
|
182
|
+
timestamp: startTime,
|
|
183
|
+
});
|
|
184
|
+
// Restore parent context
|
|
185
|
+
if (parentContext) {
|
|
186
|
+
contextStack.set(request.agentId, parentContext);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
contextStack.delete(request.agentId);
|
|
190
|
+
}
|
|
191
|
+
Logger.debug(`invoke-tool: ${request.toolName} completed in ${duration}ms at depth ${context.currentDepth}`);
|
|
192
|
+
// Try to parse as JSON, otherwise return as string
|
|
193
|
+
let parsedResult;
|
|
194
|
+
try {
|
|
195
|
+
parsedResult = JSON.parse(result);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// Result is not JSON (e.g., ping returns plain text)
|
|
199
|
+
parsedResult = result;
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
invocationId,
|
|
203
|
+
success: true,
|
|
204
|
+
result: parsedResult,
|
|
205
|
+
duration,
|
|
206
|
+
depth: context.currentDepth,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
211
|
+
const duration = Date.now() - startTime;
|
|
212
|
+
// Log failed invocation
|
|
213
|
+
await logInvocation(request.agentId, {
|
|
214
|
+
invocationId,
|
|
215
|
+
toolName: request.toolName,
|
|
216
|
+
success: false,
|
|
217
|
+
error: errorMessage,
|
|
218
|
+
duration,
|
|
219
|
+
depth: safety.currentDepth || 0,
|
|
220
|
+
timestamp: startTime,
|
|
221
|
+
});
|
|
222
|
+
// Restore context
|
|
223
|
+
const parentContext = contextStack.get(request.agentId);
|
|
224
|
+
if (parentContext && parentContext.currentDepth > 0) {
|
|
225
|
+
contextStack.set(request.agentId, {
|
|
226
|
+
...parentContext,
|
|
227
|
+
currentDepth: parentContext.currentDepth - 1,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
contextStack.delete(request.agentId);
|
|
232
|
+
}
|
|
233
|
+
Logger.error(`invoke-tool error: ${errorMessage}`);
|
|
234
|
+
return {
|
|
235
|
+
invocationId,
|
|
236
|
+
success: false,
|
|
237
|
+
error: errorMessage,
|
|
238
|
+
duration,
|
|
239
|
+
depth: safety.currentDepth || 0,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Invoke multiple tools in batch
|
|
245
|
+
*/
|
|
246
|
+
export async function invokeBatch(requests, policy = DEFAULT_POLICY, parallel = true) {
|
|
247
|
+
if (parallel) {
|
|
248
|
+
return Promise.all(requests.map((r) => invokeTool(r, policy)));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
const results = [];
|
|
252
|
+
for (const request of requests) {
|
|
253
|
+
const result = await invokeTool(request, policy);
|
|
254
|
+
results.push(result);
|
|
255
|
+
// Stop on first error if sequential
|
|
256
|
+
if (!result.success)
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
return results;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Log an invocation
|
|
264
|
+
*/
|
|
265
|
+
async function logInvocation(agentId, entry) {
|
|
266
|
+
const client = await getRedis();
|
|
267
|
+
const logKey = RECURSIVE_KEYS.log(agentId);
|
|
268
|
+
await client.lpush(logKey, JSON.stringify(entry));
|
|
269
|
+
await client.ltrim(logKey, 0, MAX_LOG_ENTRIES - 1);
|
|
270
|
+
await client.expire(logKey, INVOCATION_TTL);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get invocation log for an agent
|
|
274
|
+
*/
|
|
275
|
+
export async function getInvocationLog(agentId, limit = 20) {
|
|
276
|
+
const client = await getRedis();
|
|
277
|
+
const logKey = RECURSIVE_KEYS.log(agentId);
|
|
278
|
+
const entries = await client.lrange(logKey, 0, limit - 1);
|
|
279
|
+
return entries.map((e) => JSON.parse(e));
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get current invocation context for an agent
|
|
283
|
+
*/
|
|
284
|
+
export function getCurrentContext(agentId) {
|
|
285
|
+
return contextStack.get(agentId) || null;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Clear invocation context (for cleanup)
|
|
289
|
+
*/
|
|
290
|
+
export function clearContext(agentId) {
|
|
291
|
+
contextStack.delete(agentId);
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=tool-invoker.js.map
|