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
package/README.md
ADDED
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="kemdi-code-mcp-logo.png" alt="kemdiCode MCP" width="420" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h3 align="center">Model Context Protocol Server for AI-Powered Development</h3>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
100+ tools • 7 LLM providers • multi-agent orchestration • kanban • project memory
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/kemdicode-mcp"><img src="https://img.shields.io/badge/npm-kemdicode--mcp-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm" /></a>
|
|
13
|
+
<a href="https://git.kemdi.pl/Kemdi/kemdicode-mcp/releases"><img src="https://img.shields.io/badge/version-1.15.0-blue?style=flat-square" alt="Version" /></a>
|
|
14
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square" alt="License" /></a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="https://bun.sh"><img src="https://img.shields.io/badge/Bun-%E2%89%A51.0-f9f1e1?style=flat-square&logo=bun&logoColor=f9f1e1&labelColor=14151a" alt="Bun" /></a>
|
|
19
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-%E2%89%A518-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js" /></a>
|
|
20
|
+
<a href="https://www.typescriptlang.org"><img src="https://img.shields.io/badge/TypeScript-5.0-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" /></a>
|
|
21
|
+
<a href="https://redis.io"><img src="https://img.shields.io/badge/Redis-optional-DC382D?style=flat-square&logo=redis&logoColor=white" alt="Redis" /></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
**kemdiCode MCP** is a [Model Context Protocol](https://modelcontextprotocol.io/) server that gives AI agents and IDE assistants access to **100+ specialized tools** for code analysis, generation, git operations, file management, AST-aware editing, project memory, multi-board kanban, and multi-agent coordination.
|
|
27
|
+
|
|
28
|
+
<details>
|
|
29
|
+
<summary><strong>Table of Contents</strong></summary>
|
|
30
|
+
|
|
31
|
+
- [Highlights](#highlights)
|
|
32
|
+
- [Compatibility](#compatibility)
|
|
33
|
+
- [Quick Start](#quick-start)
|
|
34
|
+
- [IDE Configuration](#ide-configuration)
|
|
35
|
+
- [Multi-Provider LLM](#multi-provider-llm)
|
|
36
|
+
- [Tool Reference](#tool-reference)
|
|
37
|
+
- [Architecture](#architecture)
|
|
38
|
+
- [Multi-Agent Orchestration](#multi-agent-orchestration)
|
|
39
|
+
- [Multi-Model Consensus](#multi-model-consensus)
|
|
40
|
+
- [Kanban Task Management](#kanban-task-management)
|
|
41
|
+
- [Recursive Tool Invocation](#recursive-tool-invocation)
|
|
42
|
+
- [CLI Reference](#cli-reference)
|
|
43
|
+
- [Development](#development)
|
|
44
|
+
- [Authors](#authors)
|
|
45
|
+
- [License](#license)
|
|
46
|
+
|
|
47
|
+
</details>
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Highlights
|
|
52
|
+
|
|
53
|
+
| Capability | Description |
|
|
54
|
+
|:-----------|:------------|
|
|
55
|
+
| **100+ MCP Tools** | Code review, refactoring, testing, git, file management, AST editing, memory, kanban |
|
|
56
|
+
| **7 LLM Providers** | Native SDKs for OpenAI, Anthropic, Gemini + OpenAI-compatible for Groq, DeepSeek, Ollama, OpenRouter |
|
|
57
|
+
| **Multi-Agent** | Agents connect via HTTP, share context through Redis Pub/Sub, coordinate via kanban boards |
|
|
58
|
+
| **Parallel Multi-Model** | Send one prompt to N models simultaneously; CEO-and-Board consensus pattern |
|
|
59
|
+
| **Thinking Tokens** | Unified syntax across providers: `o:o3:high` • `a:claude-sonnet-4-20250514:4k` • `g:gemini-2.5-flash:8k` |
|
|
60
|
+
| **Tree-sitter AST** | Language-aware navigation and symbol editing for 19 languages |
|
|
61
|
+
| **Project Memory** | Persistent per-project key-value store with TTL and tags |
|
|
62
|
+
| **Hot Reload** | Change provider, model, or config at runtime without restart |
|
|
63
|
+
| **Cross-Runtime** | Runs on Bun (recommended) or Node.js with automatic detection |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Compatibility
|
|
68
|
+
|
|
69
|
+
| IDE / Editor | Status | Config location |
|
|
70
|
+
|:-------------|:------:|:----------------|
|
|
71
|
+
| **Claude Code** | ✅ | `claude mcp add` or `~/.claude.json` |
|
|
72
|
+
| **Cursor** | ✅ | Settings → Features → MCP |
|
|
73
|
+
| **KiroCode** | ✅ | `~/.kirocode/mcp.json` |
|
|
74
|
+
| **RooCode** | ✅ | VS Code extension settings |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
### Prerequisites
|
|
81
|
+
|
|
82
|
+
- **Bun** ≥ 1.0 _(recommended)_ or **Node.js** ≥ 18
|
|
83
|
+
- **Redis** _(optional — required only for multi-agent features)_
|
|
84
|
+
|
|
85
|
+
### Install & Run
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
git clone https://git.kemdi.pl/Kemdi/kemdicode-mcp.git
|
|
89
|
+
cd kemdicode-mcp
|
|
90
|
+
bun install && bun run build:bun
|
|
91
|
+
bun run start:bun
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
<details>
|
|
95
|
+
<summary>Node.js alternative</summary>
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm install && npm run build && npm run start
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
</details>
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## IDE Configuration
|
|
106
|
+
|
|
107
|
+
<details open>
|
|
108
|
+
<summary><strong>Claude Code</strong></summary>
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
claude mcp add kemdicode-mcp -- bun /path/to/kemdicode-mcp/dist/index.js
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Or add to `~/.claude.json`:
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"mcpServers": {
|
|
119
|
+
"kemdicode-mcp": {
|
|
120
|
+
"command": "bun",
|
|
121
|
+
"args": ["/path/to/kemdicode-mcp/dist/index.js"]
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
</details>
|
|
128
|
+
|
|
129
|
+
<details>
|
|
130
|
+
<summary><strong>Cursor</strong></summary>
|
|
131
|
+
|
|
132
|
+
Settings → Features → MCP:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"mcpServers": {
|
|
137
|
+
"kemdicode-mcp": {
|
|
138
|
+
"command": "bun",
|
|
139
|
+
"args": ["/path/to/kemdicode-mcp/dist/index.js", "-m", "gpt-4o"]
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
</details>
|
|
146
|
+
|
|
147
|
+
<details>
|
|
148
|
+
<summary><strong>KiroCode</strong></summary>
|
|
149
|
+
|
|
150
|
+
Add to `~/.kirocode/mcp.json`:
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"mcpServers": {
|
|
155
|
+
"kemdicode-mcp": {
|
|
156
|
+
"command": "bun",
|
|
157
|
+
"args": [
|
|
158
|
+
"/path/to/kemdicode-mcp/dist/index.js",
|
|
159
|
+
"-m", "gpt-4o",
|
|
160
|
+
"--redis-host", "127.0.0.1"
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
</details>
|
|
168
|
+
|
|
169
|
+
<details>
|
|
170
|
+
<summary><strong>RooCode</strong></summary>
|
|
171
|
+
|
|
172
|
+
Add to VS Code settings (RooCode extension):
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"mcpServers": {
|
|
177
|
+
"kemdicode-mcp": {
|
|
178
|
+
"command": "bun",
|
|
179
|
+
"args": [
|
|
180
|
+
"/path/to/kemdicode-mcp/dist/index.js",
|
|
181
|
+
"-m", "gpt-4o",
|
|
182
|
+
"--redis-host", "127.0.0.1"
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
</details>
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Multi-Provider LLM
|
|
194
|
+
|
|
195
|
+
kemdiCode MCP ships with **7 built-in providers**. Each can be activated by setting the corresponding API key:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
export OPENAI_API_KEY=sk-... # OpenAI
|
|
199
|
+
export ANTHROPIC_API_KEY=sk-ant-... # Anthropic
|
|
200
|
+
export GEMINI_API_KEY=AI... # Google Gemini
|
|
201
|
+
export GROQ_API_KEY=gsk_... # Groq
|
|
202
|
+
export DEEPSEEK_API_KEY=sk-... # DeepSeek
|
|
203
|
+
export OPENROUTER_API_KEY=sk-or-... # OpenRouter
|
|
204
|
+
# Ollama — no key required (local)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Provider Syntax
|
|
208
|
+
|
|
209
|
+
Use `provider:model` (or the short alias) anywhere a model is accepted:
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
openai:gpt-4o o:gpt-4o
|
|
213
|
+
anthropic:claude-sonnet-4-20250514 a:claude-sonnet-4-20250514
|
|
214
|
+
gemini:gemini-2.5-pro g:gemini-2.5-pro
|
|
215
|
+
groq:llama-3.1-70b q:llama-3.1-70b
|
|
216
|
+
deepseek:deepseek-chat d:deepseek-chat
|
|
217
|
+
ollama:llama3 l:llama3
|
|
218
|
+
openrouter:gpt-4o r:gpt-4o
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Thinking / Reasoning Tokens
|
|
222
|
+
|
|
223
|
+
Append a third segment to enable extended thinking:
|
|
224
|
+
|
|
225
|
+
| Provider | Syntax | Effect |
|
|
226
|
+
|:---------|:-------|:-------|
|
|
227
|
+
| OpenAI (o-series) | `o:o3:high` | Sets `reasoning_effort` to low / medium / high |
|
|
228
|
+
| Anthropic | `a:claude-sonnet-4-20250514:4k` | Allocates 4 096 thinking tokens |
|
|
229
|
+
| Gemini | `g:gemini-2.5-flash:8k` | Allocates 8 192 thinking tokens |
|
|
230
|
+
|
|
231
|
+
### Runtime Configuration
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Discover models from a provider
|
|
235
|
+
ai-models --action list
|
|
236
|
+
|
|
237
|
+
# Switch model at runtime
|
|
238
|
+
ai-models --action select --model gpt-4o
|
|
239
|
+
|
|
240
|
+
# Set custom API endpoint (e.g. NVIDIA NIM)
|
|
241
|
+
ai-config --action set --apiBaseUrl https://integrate.api.nvidia.com/v1
|
|
242
|
+
|
|
243
|
+
# Verify connection
|
|
244
|
+
ai-config --action test
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Tool Reference
|
|
250
|
+
|
|
251
|
+
> **101 tools** across 20 categories.
|
|
252
|
+
|
|
253
|
+
| Category | # | Tools |
|
|
254
|
+
|:---------|:-:|:------|
|
|
255
|
+
| **AI Agents** | 4 | `plan` `build` `brainstorm` `ask-ai` |
|
|
256
|
+
| **Multi-LLM** | 2 | `multi-prompt` `consensus-prompt` |
|
|
257
|
+
| **Code Analysis** | 8 | `code-review` `explain-code` `find-definition` `find-references` `find-symbols` `semantic-search` `code-outline` `analyze-deps` |
|
|
258
|
+
| **Line Editing** | 4 | `insert-at-line` `delete-lines` `replace-lines` `replace-content` |
|
|
259
|
+
| **Symbol Editing** | 3 | `insert-before-symbol` `insert-after-symbol` `rename-symbol` |
|
|
260
|
+
| **Code Modification** | 5 | `fix-bug` `refactor` `auto-fix` `auto-fix-agent` `write-tests` |
|
|
261
|
+
| **Project Memory** | 5 | `write-memory` `read-memory` `list-memories` `edit-memory` `delete-memory` |
|
|
262
|
+
| **Git** | 5 | `git-status` `git-diff` `git-log` `git-blame` `git-branch` |
|
|
263
|
+
| **File Operations** | 5 | `file-read` `file-write` `file-search` `file-tree` `file-diff` |
|
|
264
|
+
| **Project** | 5 | `project-info` `run-script` `run-tests` `run-lint` `check-types` |
|
|
265
|
+
| **Kanban — Tasks** | 7 | `task-create` `task-list` `task-update` `task-claim` `task-assign` `task-push-multi` `board-status` |
|
|
266
|
+
| **Kanban — Workspaces** | 4 | `workspace-create` `workspace-list` `workspace-join` `workspace-leave` |
|
|
267
|
+
| **Kanban — Boards** | 5 | `board-create` `board-list` `board-share` `board-members` `board-invite` |
|
|
268
|
+
| **Recursive** | 3 | `invoke-tool` `invoke-batch` `invocation-log` |
|
|
269
|
+
| **Multi-Agent** | 13 | `agent-list` `agent-register` `agent-watch` `agent-alert` `agent-inject` `agent-history` `monitor` `agent-summary` `queue-message` `shared-thoughts` `get-shared-context` `feedback` `batch` |
|
|
270
|
+
| **Session** | 5 | `session-list` `session-info` `session-create` `session-switch` `session-delete` |
|
|
271
|
+
| **MPC Security** | 4 | `mpc-split` `mpc-distribute` `mpc-reconstruct` `mpc-status` |
|
|
272
|
+
| **RL Learning** | 2 | `rl-reward-stats` `rl-dopamine-log` |
|
|
273
|
+
| **Knowledge Graph** | 4 | `graph-query` `graph-find-path` `loci-recall` `sequence-recommend` |
|
|
274
|
+
| **System** | 10 | `shell-exec` `process-list` `env-info` `memory-usage` `ai-config` `ai-models` `config` `ping` `help` `timeout-test` |
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Architecture
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
┌──────────────────────────────────────┐
|
|
282
|
+
│ kemdiCode MCP (HTTP :3100) │
|
|
283
|
+
└──────┬──────────────┬────────────────┘
|
|
284
|
+
│ │
|
|
285
|
+
┌───────────▼──┐ ┌──────▼────────┐
|
|
286
|
+
│ Claude Code │ │ Cursor / IDE │
|
|
287
|
+
└───────────┬──┘ └──────┬────────┘
|
|
288
|
+
│ │
|
|
289
|
+
┌───────────▼──────────────▼────────┐
|
|
290
|
+
│ Provider Registry │
|
|
291
|
+
│ OpenAI │ Anthropic │ Gemini │ ... │
|
|
292
|
+
└───────────────────┬───────────────┘
|
|
293
|
+
│
|
|
294
|
+
┌───────────────────▼───────────────┐
|
|
295
|
+
│ Redis (DB 2) │
|
|
296
|
+
│ context · agents · kanban · pubsub│
|
|
297
|
+
└───────────────────────────────────┘
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
src/
|
|
302
|
+
├── index.ts # HTTP server, SSE, MCP protocol
|
|
303
|
+
├── ai/
|
|
304
|
+
│ ├── client.ts # Unified completion API
|
|
305
|
+
│ ├── model-spec.ts # provider:model:thinking parser
|
|
306
|
+
│ ├── providers/ # OpenAI, Anthropic, Gemini, OpenAI-compat
|
|
307
|
+
│ ├── agents.ts # Agent system prompts (plan, build, explore)
|
|
308
|
+
│ └── file-context.ts # File attachment handling
|
|
309
|
+
├── runtime/ # Bun / Node.js abstraction
|
|
310
|
+
├── config/ # Typed config with Zod validation
|
|
311
|
+
├── context/ # Redis Pub/Sub, agent monitor, feedback loop
|
|
312
|
+
├── kanban/ # Tasks, boards, workspaces, membership
|
|
313
|
+
├── recursive/ # Safe recursive tool invocation (depth 2)
|
|
314
|
+
├── session/ # Session lifecycle
|
|
315
|
+
├── tree-sitter/ # WASM-based AST parsing (19 languages)
|
|
316
|
+
├── tools/ # 20 tool categories (100+ tools)
|
|
317
|
+
└── utils/ # Cache, validation, logging, errors
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Multi-Agent Orchestration
|
|
323
|
+
|
|
324
|
+
Register agents, distribute work across kanban boards, and coordinate via Redis Pub/Sub:
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
# Register specialized agents
|
|
328
|
+
agent-register --agents '[
|
|
329
|
+
{"id":"backend","role":"backend","capabilities":["typescript","postgresql"]},
|
|
330
|
+
{"id":"frontend","role":"frontend","capabilities":["react","tailwind"]},
|
|
331
|
+
{"id":"qa","role":"quality","capabilities":["jest","cypress"]}
|
|
332
|
+
]'
|
|
333
|
+
|
|
334
|
+
# Distribute tasks
|
|
335
|
+
task-push-multi --taskIds '["api-1","api-2"]' --agents '["backend"]' --mode assign
|
|
336
|
+
|
|
337
|
+
# Broadcast a requirement
|
|
338
|
+
queue-message --broadcast true --message "Use OpenAPI 3.0 spec" --priority high
|
|
339
|
+
|
|
340
|
+
# Real-time monitoring
|
|
341
|
+
monitor --view hierarchy
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
**Capabilities:**
|
|
345
|
+
- Batch registration (1-20 agents per call)
|
|
346
|
+
- Priority message queues (critical / high / normal / low)
|
|
347
|
+
- Context injection into running agents
|
|
348
|
+
- Hierarchical monitoring: Session → Workspace → Board → Task → Agent
|
|
349
|
+
- Shared knowledge base (`shared-thoughts`)
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Multi-Model Consensus
|
|
354
|
+
|
|
355
|
+
Send one prompt to N models in parallel, then let a CEO model synthesize:
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# Compare responses
|
|
359
|
+
multi-prompt --prompt "Explain monads in simple terms" \
|
|
360
|
+
--models '["o:gpt-4o", "a:claude-sonnet-4-20250514", "g:gemini-2.5-pro"]'
|
|
361
|
+
|
|
362
|
+
# CEO-and-Board consensus
|
|
363
|
+
consensus-prompt \
|
|
364
|
+
--prompt "Redis vs PostgreSQL for sessions?" \
|
|
365
|
+
--boardModels '["o:gpt-4o", "a:claude-sonnet-4-20250514", "g:gemini-2.5-pro"]' \
|
|
366
|
+
--ceoModel "a:claude-sonnet-4-20250514:4k"
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
All board models run via `Promise.allSettled()` — individual failures never block the others.
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Kanban Task Management
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
# Create a workspace
|
|
377
|
+
workspace-create --name "Project Alpha"
|
|
378
|
+
|
|
379
|
+
# Add boards
|
|
380
|
+
board-create --name "Backend Sprint 1" --workspaceId <ws-id>
|
|
381
|
+
board-create --name "Frontend Bugs" --workspaceId <ws-id>
|
|
382
|
+
|
|
383
|
+
# Batch-create tasks
|
|
384
|
+
task-create --tasks '[
|
|
385
|
+
{"title":"Auth API","priority":"high","boardId":"<id>"},
|
|
386
|
+
{"title":"Rate limiter","priority":"medium","boardId":"<id>"}
|
|
387
|
+
]'
|
|
388
|
+
|
|
389
|
+
# Push to agents
|
|
390
|
+
task-push-multi --taskIds '["t-1","t-2"]' --agents '["agent-1"]' --mode assign
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
**Features:** workspaces • multiple boards • owner / admin / member / viewer roles • batch create / update (1-20 per call) • assign / clone / notify distribution modes
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Recursive Tool Invocation
|
|
398
|
+
|
|
399
|
+
Sub-agents can invoke other tools with built-in safety limits (max depth 2, rate-limited):
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
invoke-tool --tool "code-review" --args '{"files":"@src/auth.ts"}'
|
|
403
|
+
|
|
404
|
+
invoke-batch --invocations '[
|
|
405
|
+
{"tool":"file-read","args":{"path":"@src/index.ts"}},
|
|
406
|
+
{"tool":"run-tests","args":{}}
|
|
407
|
+
]' --mode parallel
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## CLI Reference
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
bun dist/index.js [options]
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
| Flag | Default | Description |
|
|
419
|
+
|:-----|:-------:|:------------|
|
|
420
|
+
| `-m, --model` | — | Primary AI model |
|
|
421
|
+
| `-f, --fallback-model` | — | Fallback on quota / error |
|
|
422
|
+
| `--port` | `3100` | HTTP server port |
|
|
423
|
+
| `--host` | `127.0.0.1` | Bind address |
|
|
424
|
+
| `--redis-host` | `127.0.0.1` | Redis host |
|
|
425
|
+
| `--redis-port` | `6379` | Redis port |
|
|
426
|
+
| `--no-context` | — | Disable Redis context sharing |
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## Development
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
bun install # Install dependencies
|
|
434
|
+
bun run build:bun # Build
|
|
435
|
+
bun run start:bun # Start server
|
|
436
|
+
bun run dev:bun # Watch mode
|
|
437
|
+
|
|
438
|
+
bun run lint # ESLint
|
|
439
|
+
bun run format # Prettier
|
|
440
|
+
bun run typecheck # tsc --noEmit
|
|
441
|
+
bun test # Vitest
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
<details>
|
|
445
|
+
<summary>Adding a new tool</summary>
|
|
446
|
+
|
|
447
|
+
1. Create a file in the appropriate `src/tools/` subdirectory.
|
|
448
|
+
2. Define a Zod schema with `.describe()` for every field.
|
|
449
|
+
3. Implement the `UnifiedTool` interface.
|
|
450
|
+
4. Register in `src/tools/index.ts`.
|
|
451
|
+
|
|
452
|
+
```typescript
|
|
453
|
+
import { z } from 'zod';
|
|
454
|
+
import type { UnifiedTool } from '../registry.js';
|
|
455
|
+
|
|
456
|
+
const schema = z.object({
|
|
457
|
+
input: z.string().describe('Input value'),
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
export const myTool: UnifiedTool = {
|
|
461
|
+
name: 'my-tool',
|
|
462
|
+
description: 'What this tool does',
|
|
463
|
+
zodSchema: schema,
|
|
464
|
+
execute: async (args) => {
|
|
465
|
+
const { input } = args as z.infer<typeof schema>;
|
|
466
|
+
return `Result: ${input}`;
|
|
467
|
+
},
|
|
468
|
+
};
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
</details>
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Authors
|
|
476
|
+
|
|
477
|
+
**Dawid Irzyk** — [dawid@kemdi.pl](mailto:dawid@kemdi.pl)
|
|
478
|
+
[Kemdi Sp. z o.o.](https://kemdi.pl)
|
|
479
|
+
|
|
480
|
+
## License
|
|
481
|
+
|
|
482
|
+
This project is licensed under the **GNU General Public License v3.0** — see the [LICENSE](LICENSE) file for details.
|
|
483
|
+
|
|
484
|
+
<p>
|
|
485
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/GPL--3.0-Kemdi_Sp._z_o.o.-blue?style=flat-square" alt="GPL-3.0" /></a>
|
|
486
|
+
</p>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - AI Agents
|
|
3
|
+
* System prompts and configuration for different agent types
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
import type { Message } from './client.js';
|
|
8
|
+
export type AgentType = 'plan' | 'build' | 'explore' | 'general';
|
|
9
|
+
export interface AgentConfig {
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
systemPrompt: string;
|
|
13
|
+
temperature: number;
|
|
14
|
+
maxTokens: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Agent configurations with optimized system prompts
|
|
18
|
+
*/
|
|
19
|
+
export declare const AGENTS: Record<AgentType, AgentConfig>;
|
|
20
|
+
/**
|
|
21
|
+
* Get agent configuration by type
|
|
22
|
+
*/
|
|
23
|
+
export declare function getAgentConfig(agentType: AgentType): AgentConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Build messages array for API request
|
|
26
|
+
* @param agentType Type of agent to use
|
|
27
|
+
* @param userPrompt User's prompt/question
|
|
28
|
+
* @param fileContext Optional formatted file contents
|
|
29
|
+
* @param conversationHistory Optional previous messages
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildAgentMessages(agentType: AgentType, userPrompt: string, fileContext?: string, conversationHistory?: Message[]): Message[];
|
|
32
|
+
/**
|
|
33
|
+
* Get default temperature for agent
|
|
34
|
+
*/
|
|
35
|
+
export declare function getAgentTemperature(agentType: AgentType): number;
|
|
36
|
+
/**
|
|
37
|
+
* Get default max tokens for agent
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAgentMaxTokens(agentType: AgentType): number;
|
|
40
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/ai/agents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CA4GjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAC9B,OAAO,EAAE,CA2BX;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server - AI Agents
|
|
3
|
+
* System prompts and configuration for different agent types
|
|
4
|
+
*
|
|
5
|
+
* @license GPL-3.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Agent configurations with optimized system prompts
|
|
9
|
+
*/
|
|
10
|
+
export const AGENTS = {
|
|
11
|
+
plan: {
|
|
12
|
+
name: 'Plan',
|
|
13
|
+
description: 'Software architect for analysis, planning, and reviews',
|
|
14
|
+
temperature: 0.7,
|
|
15
|
+
maxTokens: 16384,
|
|
16
|
+
systemPrompt: `You are a senior software architect and technical lead.
|
|
17
|
+
|
|
18
|
+
Your responsibilities:
|
|
19
|
+
- Analyze code architecture, design patterns, and best practices
|
|
20
|
+
- Create detailed implementation plans with clear steps
|
|
21
|
+
- Perform thorough code reviews (security, performance, maintainability)
|
|
22
|
+
- Identify potential issues, edge cases, and improvements
|
|
23
|
+
- Provide structured, actionable recommendations
|
|
24
|
+
|
|
25
|
+
Guidelines:
|
|
26
|
+
- Be thorough and comprehensive in your analysis
|
|
27
|
+
- Consider scalability, maintainability, and security
|
|
28
|
+
- Provide specific code examples when helpful
|
|
29
|
+
- Format responses with clear sections and bullet points
|
|
30
|
+
- Explain the "why" behind recommendations
|
|
31
|
+
|
|
32
|
+
Output format:
|
|
33
|
+
- Use markdown formatting for readability
|
|
34
|
+
- Include code blocks with syntax highlighting
|
|
35
|
+
- Organize with headers and lists
|
|
36
|
+
- Summarize key points at the end`,
|
|
37
|
+
},
|
|
38
|
+
build: {
|
|
39
|
+
name: 'Build',
|
|
40
|
+
description: 'Developer focused on immediate implementation',
|
|
41
|
+
temperature: 0.3,
|
|
42
|
+
maxTokens: 8192,
|
|
43
|
+
systemPrompt: `You are an expert software developer focused on implementation.
|
|
44
|
+
|
|
45
|
+
Your responsibilities:
|
|
46
|
+
- Write clean, working code that solves the problem directly
|
|
47
|
+
- Implement features, fixes, and improvements efficiently
|
|
48
|
+
- Follow best practices and coding standards
|
|
49
|
+
- Produce code that is ready to use with minimal modification
|
|
50
|
+
|
|
51
|
+
Guidelines:
|
|
52
|
+
- Prioritize working code over explanations
|
|
53
|
+
- Keep code simple and readable
|
|
54
|
+
- Include necessary imports and dependencies
|
|
55
|
+
- Handle common error cases
|
|
56
|
+
- Use modern language features appropriately
|
|
57
|
+
|
|
58
|
+
Output format:
|
|
59
|
+
- Provide complete, runnable code
|
|
60
|
+
- Use appropriate syntax highlighting
|
|
61
|
+
- Include brief inline comments for complex logic
|
|
62
|
+
- Minimize prose - let code speak for itself`,
|
|
63
|
+
},
|
|
64
|
+
explore: {
|
|
65
|
+
name: 'Explore',
|
|
66
|
+
description: 'Codebase explorer for quick search and navigation',
|
|
67
|
+
temperature: 0.5,
|
|
68
|
+
maxTokens: 4096,
|
|
69
|
+
systemPrompt: `You are a codebase exploration specialist.
|
|
70
|
+
|
|
71
|
+
Your responsibilities:
|
|
72
|
+
- Quickly locate relevant code, files, and patterns
|
|
73
|
+
- Understand project structure and architecture
|
|
74
|
+
- Find specific functions, classes, or implementations
|
|
75
|
+
- Summarize code purpose and functionality concisely
|
|
76
|
+
|
|
77
|
+
Guidelines:
|
|
78
|
+
- Be fast and focused in your responses
|
|
79
|
+
- Prioritize finding what the user needs
|
|
80
|
+
- Provide file paths and line numbers when relevant
|
|
81
|
+
- Give brief explanations, not lengthy analyses
|
|
82
|
+
- Suggest related files or code when helpful
|
|
83
|
+
|
|
84
|
+
Output format:
|
|
85
|
+
- List findings with file paths
|
|
86
|
+
- Include relevant code snippets (keep them short)
|
|
87
|
+
- Use bullet points for quick scanning
|
|
88
|
+
- Highlight the most important findings first`,
|
|
89
|
+
},
|
|
90
|
+
general: {
|
|
91
|
+
name: 'General',
|
|
92
|
+
description: 'Balanced assistant for various tasks',
|
|
93
|
+
temperature: 0.5,
|
|
94
|
+
maxTokens: 8192,
|
|
95
|
+
systemPrompt: `You are a helpful AI assistant for software development.
|
|
96
|
+
|
|
97
|
+
Your responsibilities:
|
|
98
|
+
- Answer questions about programming and software engineering
|
|
99
|
+
- Help with code understanding, debugging, and improvement
|
|
100
|
+
- Provide balanced responses covering both analysis and implementation
|
|
101
|
+
- Assist with documentation, testing, and best practices
|
|
102
|
+
|
|
103
|
+
Guidelines:
|
|
104
|
+
- Adapt your response style to the question
|
|
105
|
+
- Be helpful and thorough but not verbose
|
|
106
|
+
- Provide code examples when appropriate
|
|
107
|
+
- Consider multiple approaches when relevant
|
|
108
|
+
|
|
109
|
+
Output format:
|
|
110
|
+
- Match the complexity of response to the question
|
|
111
|
+
- Use markdown for readability
|
|
112
|
+
- Include code blocks when helpful
|
|
113
|
+
- Be concise but complete`,
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Get agent configuration by type
|
|
118
|
+
*/
|
|
119
|
+
export function getAgentConfig(agentType) {
|
|
120
|
+
return AGENTS[agentType] || AGENTS.general;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build messages array for API request
|
|
124
|
+
* @param agentType Type of agent to use
|
|
125
|
+
* @param userPrompt User's prompt/question
|
|
126
|
+
* @param fileContext Optional formatted file contents
|
|
127
|
+
* @param conversationHistory Optional previous messages
|
|
128
|
+
*/
|
|
129
|
+
export function buildAgentMessages(agentType, userPrompt, fileContext, conversationHistory) {
|
|
130
|
+
const agent = getAgentConfig(agentType);
|
|
131
|
+
const messages = [];
|
|
132
|
+
// System prompt
|
|
133
|
+
messages.push({
|
|
134
|
+
role: 'system',
|
|
135
|
+
content: agent.systemPrompt,
|
|
136
|
+
});
|
|
137
|
+
// Add conversation history if provided
|
|
138
|
+
if (conversationHistory?.length) {
|
|
139
|
+
messages.push(...conversationHistory);
|
|
140
|
+
}
|
|
141
|
+
// Build user message with file context
|
|
142
|
+
let fullUserPrompt = userPrompt;
|
|
143
|
+
if (fileContext) {
|
|
144
|
+
fullUserPrompt = `${userPrompt}\n\n---\n\n${fileContext}`;
|
|
145
|
+
}
|
|
146
|
+
messages.push({
|
|
147
|
+
role: 'user',
|
|
148
|
+
content: fullUserPrompt,
|
|
149
|
+
});
|
|
150
|
+
return messages;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get default temperature for agent
|
|
154
|
+
*/
|
|
155
|
+
export function getAgentTemperature(agentType) {
|
|
156
|
+
return getAgentConfig(agentType).temperature;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get default max tokens for agent
|
|
160
|
+
*/
|
|
161
|
+
export function getAgentMaxTokens(agentType) {
|
|
162
|
+
return getAgentConfig(agentType).maxTokens;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/ai/agents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAmC;IACpD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;kCAoBgB;KAC/B;IAED,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE;;;;;;;;;;;;;;;;;;;6CAmB2B;KAC1C;IAED,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE;;;;;;;;;;;;;;;;;;;8CAmB4B;KAC3C;IAED,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE;;;;;;;;;;;;;;;;;;0BAkBQ;KACvB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAoB,EACpB,UAAkB,EAClB,WAAoB,EACpB,mBAA+B;IAE/B,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,KAAK,CAAC,YAAY;KAC5B,CAAC,CAAC;IAEH,uCAAuC;IACvC,IAAI,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;IACxC,CAAC;IAED,uCAAuC;IACvC,IAAI,cAAc,GAAG,UAAU,CAAC;IAChC,IAAI,WAAW,EAAE,CAAC;QAChB,cAAc,GAAG,GAAG,UAAU,cAAc,WAAW,EAAE,CAAC;IAC5D,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC"}
|