codehere 0.1.0 → 0.2.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/README.md +51 -25
- package/dist/agents/base.d.ts +107 -0
- package/dist/agents/base.d.ts.map +1 -0
- package/dist/agents/base.js +101 -0
- package/dist/agents/base.js.map +1 -0
- package/dist/agents/orchestrator-model-driven.d.ts +41 -0
- package/dist/agents/orchestrator-model-driven.d.ts.map +1 -0
- package/dist/agents/orchestrator-model-driven.js +141 -0
- package/dist/agents/orchestrator-model-driven.js.map +1 -0
- package/dist/agents/react-orchestrator-agent.d.ts +15 -0
- package/dist/agents/react-orchestrator-agent.d.ts.map +1 -0
- package/dist/agents/react-orchestrator-agent.js +54 -0
- package/dist/agents/react-orchestrator-agent.js.map +1 -0
- package/dist/application/agents/execution-agent.d.ts +68 -0
- package/dist/application/agents/execution-agent.d.ts.map +1 -0
- package/dist/application/agents/execution-agent.js +299 -0
- package/dist/application/agents/execution-agent.js.map +1 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts +64 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -0
- package/dist/application/agents/multi-agent-orchestrator.js +209 -0
- package/dist/application/agents/multi-agent-orchestrator.js.map +1 -0
- package/dist/application/agents/planning-agent.d.ts +61 -0
- package/dist/application/agents/planning-agent.d.ts.map +1 -0
- package/dist/application/agents/planning-agent.js +357 -0
- package/dist/application/agents/planning-agent.js.map +1 -0
- package/dist/application/agents/validation-agent.d.ts +64 -0
- package/dist/application/agents/validation-agent.d.ts.map +1 -0
- package/dist/application/agents/validation-agent.js +182 -0
- package/dist/application/agents/validation-agent.js.map +1 -0
- package/dist/application/architectures/plan-and-act.d.ts +94 -0
- package/dist/application/architectures/plan-and-act.d.ts.map +1 -0
- package/dist/application/architectures/plan-and-act.js +242 -0
- package/dist/application/architectures/plan-and-act.js.map +1 -0
- package/dist/application/index.d.ts +12 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +12 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/services/agent-factory.d.ts +9 -0
- package/dist/application/services/agent-factory.d.ts.map +1 -0
- package/dist/application/services/agent-factory.js +28 -0
- package/dist/application/services/agent-factory.js.map +1 -0
- package/dist/application/services/dependency-container.d.ts +140 -0
- package/dist/application/services/dependency-container.d.ts.map +1 -0
- package/dist/application/services/dependency-container.js +402 -0
- package/dist/application/services/dependency-container.js.map +1 -0
- package/dist/application/services/git-context-service.d.ts +30 -0
- package/dist/application/services/git-context-service.d.ts.map +1 -0
- package/dist/application/services/git-context-service.js +83 -0
- package/dist/application/services/git-context-service.js.map +1 -0
- package/dist/application/services/intelligent-router.d.ts +74 -0
- package/dist/application/services/intelligent-router.d.ts.map +1 -0
- package/dist/application/services/intelligent-router.js +711 -0
- package/dist/application/services/intelligent-router.js.map +1 -0
- package/dist/application/services/tool-executor-service.d.ts +14 -0
- package/dist/application/services/tool-executor-service.d.ts.map +1 -0
- package/dist/application/services/tool-executor-service.js +94 -0
- package/dist/application/services/tool-executor-service.js.map +1 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts +36 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/ask-question-use-case.js +150 -0
- package/dist/application/use-cases/ask-question-use-case.js.map +1 -0
- package/dist/application/use-cases/edit-file-use-case.d.ts +76 -0
- package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/edit-file-use-case.js +685 -0
- package/dist/application/use-cases/edit-file-use-case.js.map +1 -0
- package/dist/application/use-cases/explain-file-use-case.d.ts +21 -0
- package/dist/application/use-cases/explain-file-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/explain-file-use-case.js +50 -0
- package/dist/application/use-cases/explain-file-use-case.js.map +1 -0
- package/dist/application/use-cases/index-codebase-use-case.d.ts +46 -0
- package/dist/application/use-cases/index-codebase-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/index-codebase-use-case.js +113 -0
- package/dist/application/use-cases/index-codebase-use-case.js.map +1 -0
- package/dist/application/use-cases/planning-use-case.d.ts +46 -0
- package/dist/application/use-cases/planning-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/planning-use-case.js +267 -0
- package/dist/application/use-cases/planning-use-case.js.map +1 -0
- package/dist/application/use-cases/react-orchestration-use-case.d.ts +51 -0
- package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/react-orchestration-use-case.js +325 -0
- package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -0
- package/dist/application/use-cases/reflexion-use-case.d.ts +24 -0
- package/dist/application/use-cases/reflexion-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/reflexion-use-case.js +30 -0
- package/dist/application/use-cases/reflexion-use-case.js.map +1 -0
- package/dist/application/workflows/deterministic-workflows.d.ts +61 -0
- package/dist/application/workflows/deterministic-workflows.d.ts.map +1 -0
- package/dist/application/workflows/deterministic-workflows.js +189 -0
- package/dist/application/workflows/deterministic-workflows.js.map +1 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +1 -3
- package/dist/cache.js.map +1 -1
- package/dist/chat.js +10 -10
- package/dist/chat.js.map +1 -1
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +1 -2
- package/dist/docs.js.map +1 -1
- package/dist/domain/entities/code-chunk.d.ts +26 -0
- package/dist/domain/entities/code-chunk.d.ts.map +1 -0
- package/dist/domain/entities/code-chunk.js +6 -0
- package/dist/domain/entities/code-chunk.js.map +1 -0
- package/dist/domain/entities/decision.d.ts +37 -0
- package/dist/domain/entities/decision.d.ts.map +1 -0
- package/dist/domain/entities/decision.js +9 -0
- package/dist/domain/entities/decision.js.map +1 -0
- package/dist/domain/entities/edit.d.ts +35 -0
- package/dist/domain/entities/edit.d.ts.map +1 -0
- package/dist/domain/entities/edit.js +6 -0
- package/dist/domain/entities/edit.js.map +1 -0
- package/dist/domain/entities/knowledge-node.d.ts +83 -0
- package/dist/domain/entities/knowledge-node.d.ts.map +1 -0
- package/dist/domain/entities/knowledge-node.js +9 -0
- package/dist/domain/entities/knowledge-node.js.map +1 -0
- package/dist/domain/entities/knowledge-preservation.d.ts +42 -0
- package/dist/domain/entities/knowledge-preservation.d.ts.map +1 -0
- package/dist/domain/entities/knowledge-preservation.js +10 -0
- package/dist/domain/entities/knowledge-preservation.js.map +1 -0
- package/dist/domain/entities/memory.d.ts +36 -0
- package/dist/domain/entities/memory.d.ts.map +1 -0
- package/dist/domain/entities/memory.js +6 -0
- package/dist/domain/entities/memory.js.map +1 -0
- package/dist/domain/entities/pattern.d.ts +49 -0
- package/dist/domain/entities/pattern.d.ts.map +1 -0
- package/dist/domain/entities/pattern.js +7 -0
- package/dist/domain/entities/pattern.js.map +1 -0
- package/dist/domain/entities/plan.d.ts +42 -0
- package/dist/domain/entities/plan.d.ts.map +1 -0
- package/dist/domain/entities/plan.js +6 -0
- package/dist/domain/entities/plan.js.map +1 -0
- package/dist/domain/entities/query.d.ts +17 -0
- package/dist/domain/entities/query.d.ts.map +1 -0
- package/dist/domain/entities/query.js +6 -0
- package/dist/domain/entities/query.js.map +1 -0
- package/dist/domain/index.d.ts +16 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +19 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/interfaces/ai-service.interface.d.ts +62 -0
- package/dist/domain/interfaces/ai-service.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/ai-service.interface.js +6 -0
- package/dist/domain/interfaces/ai-service.interface.js.map +1 -0
- package/dist/domain/interfaces/code-analyzer.interface.d.ts +38 -0
- package/dist/domain/interfaces/code-analyzer.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/code-analyzer.interface.js +6 -0
- package/dist/domain/interfaces/code-analyzer.interface.js.map +1 -0
- package/dist/domain/interfaces/decision-repository.interface.d.ts +51 -0
- package/dist/domain/interfaces/decision-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/decision-repository.interface.js +9 -0
- package/dist/domain/interfaces/decision-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts +28 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/embedding-repository.interface.js +6 -0
- package/dist/domain/interfaces/embedding-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts +91 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.js +9 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts +50 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +8 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/memory-repository.interface.d.ts +49 -0
- package/dist/domain/interfaces/memory-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/memory-repository.interface.js +6 -0
- package/dist/domain/interfaces/memory-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/pattern-repository.interface.d.ts +48 -0
- package/dist/domain/interfaces/pattern-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/pattern-repository.interface.js +6 -0
- package/dist/domain/interfaces/pattern-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/verification-service.interface.d.ts +20 -0
- package/dist/domain/interfaces/verification-service.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/verification-service.interface.js +6 -0
- package/dist/domain/interfaces/verification-service.interface.js.map +1 -0
- package/dist/domain/services/codebase-detector.d.ts +18 -0
- package/dist/domain/services/codebase-detector.d.ts.map +1 -0
- package/dist/domain/services/codebase-detector.js +91 -0
- package/dist/domain/services/codebase-detector.js.map +1 -0
- package/dist/domain/services/cross-team-pattern-sharing.d.ts +65 -0
- package/dist/domain/services/cross-team-pattern-sharing.d.ts.map +1 -0
- package/dist/domain/services/cross-team-pattern-sharing.js +125 -0
- package/dist/domain/services/cross-team-pattern-sharing.js.map +1 -0
- package/dist/domain/services/decision-recorder.d.ts +76 -0
- package/dist/domain/services/decision-recorder.d.ts.map +1 -0
- package/dist/domain/services/decision-recorder.js +223 -0
- package/dist/domain/services/decision-recorder.js.map +1 -0
- package/dist/domain/services/decision-retriever.d.ts +75 -0
- package/dist/domain/services/decision-retriever.d.ts.map +1 -0
- package/dist/domain/services/decision-retriever.js +133 -0
- package/dist/domain/services/decision-retriever.js.map +1 -0
- package/dist/domain/services/graded-memory-activation.d.ts +37 -0
- package/dist/domain/services/graded-memory-activation.d.ts.map +1 -0
- package/dist/domain/services/graded-memory-activation.js +69 -0
- package/dist/domain/services/graded-memory-activation.js.map +1 -0
- package/dist/domain/services/knowledge-access.d.ts +63 -0
- package/dist/domain/services/knowledge-access.d.ts.map +1 -0
- package/dist/domain/services/knowledge-access.js +132 -0
- package/dist/domain/services/knowledge-access.js.map +1 -0
- package/dist/domain/services/knowledge-extractor.d.ts +54 -0
- package/dist/domain/services/knowledge-extractor.d.ts.map +1 -0
- package/dist/domain/services/knowledge-extractor.js +247 -0
- package/dist/domain/services/knowledge-extractor.js.map +1 -0
- package/dist/domain/services/knowledge-graph-builder.d.ts +70 -0
- package/dist/domain/services/knowledge-graph-builder.d.ts.map +1 -0
- package/dist/domain/services/knowledge-graph-builder.js +268 -0
- package/dist/domain/services/knowledge-graph-builder.js.map +1 -0
- package/dist/domain/services/knowledge-graph-query.d.ts +69 -0
- package/dist/domain/services/knowledge-graph-query.d.ts.map +1 -0
- package/dist/domain/services/knowledge-graph-query.js +187 -0
- package/dist/domain/services/knowledge-graph-query.js.map +1 -0
- package/dist/domain/services/memory-retriever.d.ts +30 -0
- package/dist/domain/services/memory-retriever.d.ts.map +1 -0
- package/dist/domain/services/memory-retriever.js +82 -0
- package/dist/domain/services/memory-retriever.js.map +1 -0
- package/dist/domain/services/memory-synthesizer.d.ts +57 -0
- package/dist/domain/services/memory-synthesizer.d.ts.map +1 -0
- package/dist/domain/services/memory-synthesizer.js +91 -0
- package/dist/domain/services/memory-synthesizer.js.map +1 -0
- package/dist/domain/services/pattern-extractor.d.ts +108 -0
- package/dist/domain/services/pattern-extractor.d.ts.map +1 -0
- package/dist/domain/services/pattern-extractor.js +442 -0
- package/dist/domain/services/pattern-extractor.js.map +1 -0
- package/dist/domain/services/query-intent-classifier.d.ts +16 -0
- package/dist/domain/services/query-intent-classifier.d.ts.map +1 -0
- package/dist/domain/services/query-intent-classifier.js +140 -0
- package/dist/domain/services/query-intent-classifier.js.map +1 -0
- package/dist/domain/services/react-loop.d.ts +44 -0
- package/dist/domain/services/react-loop.d.ts.map +1 -0
- package/dist/domain/services/react-loop.js +110 -0
- package/dist/domain/services/react-loop.js.map +1 -0
- package/dist/edit.d.ts +0 -12
- package/dist/edit.d.ts.map +1 -1
- package/dist/edit.js +76 -351
- package/dist/edit.js.map +1 -1
- package/dist/embed.d.ts +0 -4
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +100 -174
- package/dist/embed.js.map +1 -1
- package/dist/error-handler.d.ts +1 -0
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +46 -3
- package/dist/error-handler.js.map +1 -1
- package/dist/index.js +228 -231
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts +54 -0
- package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
- package/dist/infrastructure/ai/cohere-ai-service.js +547 -0
- package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -0
- package/dist/infrastructure/ai/command-r-evaluation.d.ts +42 -0
- package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +1 -0
- package/dist/infrastructure/ai/command-r-evaluation.js +206 -0
- package/dist/infrastructure/ai/command-r-evaluation.js.map +1 -0
- package/dist/infrastructure/ai/model-config.d.ts +47 -0
- package/dist/infrastructure/ai/model-config.d.ts.map +1 -0
- package/dist/infrastructure/ai/model-config.js +84 -0
- package/dist/infrastructure/ai/model-config.js.map +1 -0
- package/dist/infrastructure/cache/embedding-cache.d.ts +46 -0
- package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/embedding-cache.js +104 -0
- package/dist/infrastructure/cache/embedding-cache.js.map +1 -0
- package/dist/infrastructure/chunking/ast-code-chunker.d.ts +12 -0
- package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +1 -0
- package/dist/infrastructure/chunking/ast-code-chunker.js +19 -0
- package/dist/infrastructure/chunking/ast-code-chunker.js.map +1 -0
- package/dist/infrastructure/chunking/code-aware-chunker.d.ts +63 -0
- package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +1 -0
- package/dist/infrastructure/chunking/code-aware-chunker.js +397 -0
- package/dist/infrastructure/chunking/code-aware-chunker.js.map +1 -0
- package/dist/infrastructure/config/config-manager.d.ts +79 -0
- package/dist/infrastructure/config/config-manager.d.ts.map +1 -0
- package/dist/infrastructure/config/config-manager.js +162 -0
- package/dist/infrastructure/config/config-manager.js.map +1 -0
- package/dist/infrastructure/cost/cost-tracker.d.ts +90 -0
- package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -0
- package/dist/infrastructure/cost/cost-tracker.js +353 -0
- package/dist/infrastructure/cost/cost-tracker.js.map +1 -0
- package/dist/infrastructure/file-scanner/file-scanner.d.ts +31 -0
- package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +1 -0
- package/dist/infrastructure/file-scanner/file-scanner.js +106 -0
- package/dist/infrastructure/file-scanner/file-scanner.js.map +1 -0
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts +107 -0
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -0
- package/dist/infrastructure/governance/nist-ai-rmf.js +294 -0
- package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -0
- package/dist/infrastructure/governance/policy-as-code.d.ts +90 -0
- package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -0
- package/dist/infrastructure/governance/policy-as-code.js +244 -0
- package/dist/infrastructure/governance/policy-as-code.js.map +1 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +138 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.js +241 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -0
- package/dist/infrastructure/index.d.ts +7 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +7 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/observability/execution-tracer.d.ts +105 -0
- package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
- package/dist/infrastructure/observability/execution-tracer.js +190 -0
- package/dist/infrastructure/observability/execution-tracer.js.map +1 -0
- package/dist/infrastructure/observability/prompt-versioner.d.ts +67 -0
- package/dist/infrastructure/observability/prompt-versioner.d.ts.map +1 -0
- package/dist/infrastructure/observability/prompt-versioner.js +145 -0
- package/dist/infrastructure/observability/prompt-versioner.js.map +1 -0
- package/dist/infrastructure/protocols/a2a-metadata.d.ts +278 -0
- package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +1 -0
- package/dist/infrastructure/protocols/a2a-metadata.js +137 -0
- package/dist/infrastructure/protocols/a2a-metadata.js.map +1 -0
- package/dist/infrastructure/protocols/a2a-protocol.d.ts +132 -0
- package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +1 -0
- package/dist/infrastructure/protocols/a2a-protocol.js +314 -0
- package/dist/infrastructure/protocols/a2a-protocol.js.map +1 -0
- package/dist/infrastructure/protocols/mcp-oauth.d.ts +91 -0
- package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +1 -0
- package/dist/infrastructure/protocols/mcp-oauth.js +184 -0
- package/dist/infrastructure/protocols/mcp-oauth.js.map +1 -0
- package/dist/infrastructure/protocols/mcp-server.d.ts +126 -0
- package/dist/infrastructure/protocols/mcp-server.d.ts.map +1 -0
- package/dist/infrastructure/protocols/mcp-server.js +333 -0
- package/dist/infrastructure/protocols/mcp-server.js.map +1 -0
- package/dist/infrastructure/protocols/streaming-handler.d.ts +57 -0
- package/dist/infrastructure/protocols/streaming-handler.d.ts.map +1 -0
- package/dist/infrastructure/protocols/streaming-handler.js +103 -0
- package/dist/infrastructure/protocols/streaming-handler.js.map +1 -0
- package/dist/infrastructure/security/ai-sast-scanner.d.ts +55 -0
- package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
- package/dist/infrastructure/security/ai-sast-scanner.js +163 -0
- package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -0
- package/dist/infrastructure/security/docker-sandbox.d.ts +57 -0
- package/dist/infrastructure/security/docker-sandbox.d.ts.map +1 -0
- package/dist/infrastructure/security/docker-sandbox.js +178 -0
- package/dist/infrastructure/security/docker-sandbox.js.map +1 -0
- package/dist/infrastructure/security/enhanced-security-gate.d.ts +51 -0
- package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
- package/dist/infrastructure/security/enhanced-security-gate.js +92 -0
- package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -0
- package/dist/infrastructure/security/input-validator.d.ts +33 -0
- package/dist/infrastructure/security/input-validator.d.ts.map +1 -0
- package/dist/infrastructure/security/input-validator.js +152 -0
- package/dist/infrastructure/security/input-validator.js.map +1 -0
- package/dist/infrastructure/security/license-scanner.d.ts +55 -0
- package/dist/infrastructure/security/license-scanner.d.ts.map +1 -0
- package/dist/infrastructure/security/license-scanner.js +167 -0
- package/dist/infrastructure/security/license-scanner.js.map +1 -0
- package/dist/infrastructure/security/provider-bias-detector.d.ts +53 -0
- package/dist/infrastructure/security/provider-bias-detector.d.ts.map +1 -0
- package/dist/infrastructure/security/provider-bias-detector.js +164 -0
- package/dist/infrastructure/security/provider-bias-detector.js.map +1 -0
- package/dist/infrastructure/security/sandbox-executor.d.ts +34 -0
- package/dist/infrastructure/security/sandbox-executor.d.ts.map +1 -0
- package/dist/infrastructure/security/sandbox-executor.js +64 -0
- package/dist/infrastructure/security/sandbox-executor.js.map +1 -0
- package/dist/infrastructure/storage/memory-stream-service.d.ts +47 -0
- package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -0
- package/dist/infrastructure/storage/memory-stream-service.js +204 -0
- package/dist/infrastructure/storage/memory-stream-service.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +29 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.js +232 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +24 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +162 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +41 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +417 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +29 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +230 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +40 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.js +229 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +25 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.js +249 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +1 -0
- package/dist/infrastructure/ux/appropriate-friction.d.ts +77 -0
- package/dist/infrastructure/ux/appropriate-friction.d.ts.map +1 -0
- package/dist/infrastructure/ux/appropriate-friction.js +213 -0
- package/dist/infrastructure/ux/appropriate-friction.js.map +1 -0
- package/dist/infrastructure/ux/bi-directional-learning.d.ts +109 -0
- package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -0
- package/dist/infrastructure/ux/bi-directional-learning.js +200 -0
- package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -0
- package/dist/infrastructure/ux/expectation-management.d.ts +65 -0
- package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
- package/dist/infrastructure/ux/expectation-management.js +193 -0
- package/dist/infrastructure/ux/expectation-management.js.map +1 -0
- package/dist/infrastructure/ux/hitl-validation.d.ts +104 -0
- package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -0
- package/dist/infrastructure/ux/hitl-validation.js +211 -0
- package/dist/infrastructure/ux/hitl-validation.js.map +1 -0
- package/dist/infrastructure/ux/progressive-disclosure.d.ts +84 -0
- package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -0
- package/dist/infrastructure/ux/progressive-disclosure.js +235 -0
- package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
- package/dist/infrastructure/ux/team-standards.d.ts +94 -0
- package/dist/infrastructure/ux/team-standards.d.ts.map +1 -0
- package/dist/infrastructure/ux/team-standards.js +196 -0
- package/dist/infrastructure/ux/team-standards.js.map +1 -0
- package/dist/infrastructure/verification/verification-service.d.ts +12 -0
- package/dist/infrastructure/verification/verification-service.d.ts.map +1 -0
- package/dist/infrastructure/verification/verification-service.js +47 -0
- package/dist/infrastructure/verification/verification-service.js.map +1 -0
- package/dist/infrastructure/xai/attention-visualizer.d.ts +73 -0
- package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -0
- package/dist/infrastructure/xai/attention-visualizer.js +174 -0
- package/dist/infrastructure/xai/attention-visualizer.js.map +1 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts +105 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
- package/dist/infrastructure/xai/cot-visualizer.js +239 -0
- package/dist/infrastructure/xai/cot-visualizer.js.map +1 -0
- package/dist/infrastructure/xai/decision-tree-log.d.ts +104 -0
- package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -0
- package/dist/infrastructure/xai/decision-tree-log.js +216 -0
- package/dist/infrastructure/xai/decision-tree-log.js.map +1 -0
- package/dist/infrastructure/xai/interactive-xai.d.ts +106 -0
- package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -0
- package/dist/infrastructure/xai/interactive-xai.js +262 -0
- package/dist/infrastructure/xai/interactive-xai.js.map +1 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +80 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.js +201 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -0
- package/dist/intelligent-retrieval.d.ts.map +1 -1
- package/dist/intelligent-retrieval.js +8 -1
- package/dist/intelligent-retrieval.js.map +1 -1
- package/dist/intent/classifier.d.ts +6 -0
- package/dist/intent/classifier.d.ts.map +1 -0
- package/dist/intent/classifier.js +2 -0
- package/dist/intent/classifier.js.map +1 -0
- package/dist/intent/context.d.ts +4 -0
- package/dist/intent/context.d.ts.map +1 -0
- package/dist/intent/context.js +2 -0
- package/dist/intent/context.js.map +1 -0
- package/dist/iterative-refinement.d.ts.map +1 -1
- package/dist/iterative-refinement.js +20 -3
- package/dist/iterative-refinement.js.map +1 -1
- package/dist/learning.d.ts.map +1 -1
- package/dist/learning.js +1 -2
- package/dist/learning.js.map +1 -1
- package/dist/monitoring.d.ts.map +1 -1
- package/dist/monitoring.js +1 -2
- package/dist/monitoring.js.map +1 -1
- package/dist/parallel-processor.d.ts +3 -2
- package/dist/parallel-processor.d.ts.map +1 -1
- package/dist/parallel-processor.js +183 -56
- package/dist/parallel-processor.js.map +1 -1
- package/dist/presentation/cli/commands/ask-command.d.ts +8 -0
- package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/ask-command.js +133 -0
- package/dist/presentation/cli/commands/ask-command.js.map +1 -0
- package/dist/presentation/cli/commands/config-command.d.ts +9 -0
- package/dist/presentation/cli/commands/config-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/config-command.js +123 -0
- package/dist/presentation/cli/commands/config-command.js.map +1 -0
- package/dist/presentation/cli/commands/cost-command.d.ts +8 -0
- package/dist/presentation/cli/commands/cost-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/cost-command.js +191 -0
- package/dist/presentation/cli/commands/cost-command.js.map +1 -0
- package/dist/presentation/cli/commands/decision-command.d.ts +12 -0
- package/dist/presentation/cli/commands/decision-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/decision-command.js +207 -0
- package/dist/presentation/cli/commands/decision-command.js.map +1 -0
- package/dist/presentation/cli/commands/help-command.d.ts +9 -0
- package/dist/presentation/cli/commands/help-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/help-command.js +281 -0
- package/dist/presentation/cli/commands/help-command.js.map +1 -0
- package/dist/presentation/cli/commands/knowledge-command.d.ts +13 -0
- package/dist/presentation/cli/commands/knowledge-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/knowledge-command.js +129 -0
- package/dist/presentation/cli/commands/knowledge-command.js.map +1 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +8 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.js +183 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.js.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts +8 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.js +112 -0
- package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -0
- package/dist/presentation/cli/commands/plan-command.d.ts +8 -0
- package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/plan-command.js +114 -0
- package/dist/presentation/cli/commands/plan-command.js.map +1 -0
- package/dist/presentation/cli/commands/react-command.d.ts +8 -0
- package/dist/presentation/cli/commands/react-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/react-command.js +99 -0
- package/dist/presentation/cli/commands/react-command.js.map +1 -0
- package/dist/presentation/cli/commands/setup-command.d.ts +10 -0
- package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/setup-command.js +231 -0
- package/dist/presentation/cli/commands/setup-command.js.map +1 -0
- package/dist/presentation/cli/commands/smart-command.d.ts +6 -0
- package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/smart-command.js +212 -0
- package/dist/presentation/cli/commands/smart-command.js.map +1 -0
- package/dist/presentation/cli/commands/trace-command.d.ts +8 -0
- package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/trace-command.js +125 -0
- package/dist/presentation/cli/commands/trace-command.js.map +1 -0
- package/dist/presentation/cli/commands/undo-command.d.ts +8 -0
- package/dist/presentation/cli/commands/undo-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/undo-command.js +141 -0
- package/dist/presentation/cli/commands/undo-command.js.map +1 -0
- package/dist/presentation/cli/error-display.d.ts +23 -0
- package/dist/presentation/cli/error-display.d.ts.map +1 -0
- package/dist/presentation/cli/error-display.js +122 -0
- package/dist/presentation/cli/error-display.js.map +1 -0
- package/dist/refactor.d.ts.map +1 -1
- package/dist/refactor.js +2 -4
- package/dist/refactor.js.map +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +2 -63
- package/dist/search.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +52 -3
- package/dist/session.js.map +1 -1
- package/dist/testgen.d.ts.map +1 -1
- package/dist/testgen.js +1 -2
- package/dist/testgen.js.map +1 -1
- package/dist/tools/bash.d.ts +53 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +213 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit.d.ts +48 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +235 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/executor.d.ts +29 -0
- package/dist/tools/executor.d.ts.map +1 -0
- package/dist/tools/executor.js +153 -0
- package/dist/tools/executor.js.map +1 -0
- package/dist/tools/git-tool.d.ts +87 -0
- package/dist/tools/git-tool.d.ts.map +1 -0
- package/dist/tools/git-tool.js +292 -0
- package/dist/tools/git-tool.js.map +1 -0
- package/dist/tools/parser.d.ts +33 -0
- package/dist/tools/parser.d.ts.map +1 -0
- package/dist/tools/parser.js +158 -0
- package/dist/tools/parser.js.map +1 -0
- package/dist/tools/registry.d.ts +74 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +302 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search.d.ts +41 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +100 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +4 -2
- package/dist/ui.js.map +1 -1
- package/dist/utils/check-api-status.d.ts +12 -0
- package/dist/utils/check-api-status.d.ts.map +1 -0
- package/dist/utils/check-api-status.js +82 -0
- package/dist/utils/check-api-status.js.map +1 -0
- package/dist/utils/diff-parser.d.ts +22 -0
- package/dist/utils/diff-parser.d.ts.map +1 -0
- package/dist/utils/diff-parser.js +160 -0
- package/dist/utils/diff-parser.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +56 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/version.d.ts +21 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +52 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/verification/backup.d.ts +30 -0
- package/dist/verification/backup.d.ts.map +1 -0
- package/dist/verification/backup.js +238 -0
- package/dist/verification/backup.js.map +1 -0
- package/dist/verification/compiler.d.ts +20 -0
- package/dist/verification/compiler.d.ts.map +1 -0
- package/dist/verification/compiler.js +228 -0
- package/dist/verification/compiler.js.map +1 -0
- package/dist/verification/index.d.ts +59 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +273 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/test-runner.d.ts +27 -0
- package/dist/verification/test-runner.d.ts.map +1 -0
- package/dist/verification/test-runner.js +379 -0
- package/dist/verification/test-runner.js.map +1 -0
- package/package.json +39 -14
- package/ARCHITECTURE.md +0 -240
- package/CHANGELOG.md +0 -44
- package/CONTRIBUTING.md +0 -171
- package/dist/benchmark.d.ts +0 -39
- package/dist/benchmark.d.ts.map +0 -1
- package/dist/benchmark.js +0 -195
- package/dist/benchmark.js.map +0 -1
- package/dist/scaffold.d.ts +0 -14
- package/dist/scaffold.d.ts.map +0 -1
- package/dist/scaffold.js +0 -85
- package/dist/scaffold.js.map +0 -1
- package/templates/next-page/app/layout.tsx +0 -19
- package/templates/next-page/app/page.tsx +0 -10
- package/templates/next-page/package.json +0 -22
- package/templates/node-api/index.js +0 -57
- package/templates/node-api/package.json +0 -13
package/README.md
CHANGED
|
@@ -31,23 +31,47 @@ Once installed globally, you can use `codehere` from any directory in your termi
|
|
|
31
31
|
|
|
32
32
|
### Quick Start
|
|
33
33
|
|
|
34
|
+
**First Time Setup:**
|
|
35
|
+
|
|
34
36
|
```bash
|
|
35
|
-
#
|
|
36
|
-
|
|
37
|
+
# 1. Run the interactive setup wizard
|
|
38
|
+
codehere setup
|
|
39
|
+
|
|
40
|
+
# This will:
|
|
41
|
+
# - Detect your API key (or guide you to configure it)
|
|
42
|
+
# - Detect your codebase
|
|
43
|
+
# - Configure model preferences
|
|
44
|
+
# - Set up your environment
|
|
37
45
|
|
|
38
|
-
# Index your codebase
|
|
46
|
+
# 2. Index your codebase
|
|
39
47
|
codehere index
|
|
40
48
|
|
|
41
|
-
# Start
|
|
42
|
-
codehere
|
|
49
|
+
# 3. Start using Codehere!
|
|
50
|
+
codehere "How does authentication work?"
|
|
51
|
+
```
|
|
43
52
|
|
|
44
|
-
|
|
53
|
+
**Using Codehere:**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Natural language queries (unified command)
|
|
57
|
+
codehere "explain this function"
|
|
58
|
+
codehere "add error handling to src/utils.ts"
|
|
59
|
+
codehere "refactor user service to use dependency injection"
|
|
60
|
+
|
|
61
|
+
# Or use explicit commands
|
|
45
62
|
codehere ask "How does authentication work?"
|
|
46
63
|
codehere explain src/utils.ts
|
|
47
|
-
codehere
|
|
48
|
-
codehere
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
codehere plan "implement user authentication system"
|
|
65
|
+
codehere orchestrate "add comprehensive logging"
|
|
66
|
+
|
|
67
|
+
# Manage configuration
|
|
68
|
+
codehere config # Show current configuration
|
|
69
|
+
codehere config set autoCommit true
|
|
70
|
+
codehere config get defaultModel
|
|
71
|
+
|
|
72
|
+
# Get help
|
|
73
|
+
codehere --help
|
|
74
|
+
codehere help <command>
|
|
51
75
|
```
|
|
52
76
|
|
|
53
77
|
## ✨ Features
|
|
@@ -118,29 +142,31 @@ codehere debug-search "logging" # Debug search results
|
|
|
118
142
|
|
|
119
143
|
## 📈 Use Cases
|
|
120
144
|
|
|
145
|
+
Codehere helps developers, teams, and enterprises in many ways:
|
|
146
|
+
|
|
121
147
|
### For Developers
|
|
122
|
-
- Understand
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
- Learn
|
|
148
|
+
- **Onboard faster**: Understand new codebases in hours, not days
|
|
149
|
+
- **Debug smarter**: AI-powered reasoning to find root causes
|
|
150
|
+
- **Refactor safely**: Automatic verification and rollback
|
|
151
|
+
- **Learn continuously**: Get explanations of any code
|
|
126
152
|
|
|
127
153
|
### For Teams
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
154
|
+
- **Better documentation**: Auto-generate accurate, up-to-date docs
|
|
155
|
+
- **Faster code reviews**: AI-assisted review catches issues early
|
|
156
|
+
- **Consistent patterns**: Learn and apply team conventions automatically
|
|
157
|
+
- **Knowledge sharing**: Preserve and share patterns across projects
|
|
132
158
|
|
|
133
159
|
### For Enterprises
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
160
|
+
- **Secure by default**: Built-in security scanning and audit trails
|
|
161
|
+
- **Privacy-first**: Local processing, code never leaves your machine
|
|
162
|
+
- **Productivity metrics**: Track ROI and developer productivity
|
|
163
|
+
- **Organizational memory**: Build knowledge that survives team changes
|
|
138
164
|
|
|
139
|
-
|
|
165
|
+
**See [docs/USE_CASES.md](../docs/USE_CASES.md) for detailed scenarios and examples.**
|
|
140
166
|
|
|
141
|
-
|
|
167
|
+
## 🧪 Testing
|
|
142
168
|
|
|
143
|
-
|
|
169
|
+
See [TESTING.md](TESTING.md) for complete testing guide.
|
|
144
170
|
|
|
145
171
|
**Test Results:**
|
|
146
172
|
- ✅ Indexing: Working with retry logic
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Agent Interface
|
|
3
|
+
* Foundation for multi-agent system in Codehere
|
|
4
|
+
*
|
|
5
|
+
* These agents ARE Codehere - they help end-users.
|
|
6
|
+
* But organizing them this way makes it easier for YOU to develop and improve Codehere.
|
|
7
|
+
*/
|
|
8
|
+
import type { IntentResult } from '../intent/classifier.js';
|
|
9
|
+
import type { QueryContext } from '../intent/context.js';
|
|
10
|
+
/**
|
|
11
|
+
* Request to an agent
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentRequest {
|
|
14
|
+
query: string;
|
|
15
|
+
context: QueryContext;
|
|
16
|
+
intent: IntentResult;
|
|
17
|
+
caller?: string;
|
|
18
|
+
metadata?: Record<string, any>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Response from an agent
|
|
22
|
+
*/
|
|
23
|
+
export interface AgentResponse {
|
|
24
|
+
success: boolean;
|
|
25
|
+
result?: any;
|
|
26
|
+
message?: string;
|
|
27
|
+
error?: string;
|
|
28
|
+
suggestions?: string[];
|
|
29
|
+
nextAgent?: string;
|
|
30
|
+
metadata?: Record<string, any>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Agent interface
|
|
34
|
+
* Each agent owns a specific domain (e.g., ScaffoldAgent owns all templates)
|
|
35
|
+
*/
|
|
36
|
+
export interface Agent {
|
|
37
|
+
/** Unique agent name */
|
|
38
|
+
name: string;
|
|
39
|
+
/** Human-readable description */
|
|
40
|
+
description: string;
|
|
41
|
+
/** What this agent can do */
|
|
42
|
+
capabilities: string[];
|
|
43
|
+
/** Other agents this agent can call */
|
|
44
|
+
canCall: string[];
|
|
45
|
+
/** Handle a request */
|
|
46
|
+
handle(request: AgentRequest): Promise<AgentResponse>;
|
|
47
|
+
/** Check if this agent can handle a request */
|
|
48
|
+
canHandle?(request: AgentRequest): boolean;
|
|
49
|
+
/** Validate request before handling */
|
|
50
|
+
validate?(request: AgentRequest): boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Base agent class
|
|
54
|
+
* Provides common functionality for all agents
|
|
55
|
+
*/
|
|
56
|
+
export declare abstract class BaseAgent implements Agent {
|
|
57
|
+
abstract name: string;
|
|
58
|
+
abstract description: string;
|
|
59
|
+
abstract capabilities: string[];
|
|
60
|
+
abstract canCall: string[];
|
|
61
|
+
abstract handle(request: AgentRequest): Promise<AgentResponse>;
|
|
62
|
+
/** Agent registry (set by OrchestratorAgent) */
|
|
63
|
+
protected agentRegistry?: AgentRegistry;
|
|
64
|
+
/**
|
|
65
|
+
* Call another agent
|
|
66
|
+
* Enables agent-to-agent collaboration
|
|
67
|
+
*/
|
|
68
|
+
protected callAgent(agentName: string, request: AgentRequest): Promise<AgentResponse>;
|
|
69
|
+
/**
|
|
70
|
+
* Default canHandle implementation
|
|
71
|
+
* Checks if intent matches agent's name
|
|
72
|
+
*/
|
|
73
|
+
canHandle(request: AgentRequest): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Default validate implementation
|
|
76
|
+
* Can be overridden by subclasses
|
|
77
|
+
*/
|
|
78
|
+
validate(request: AgentRequest): boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Agent Registry
|
|
82
|
+
* Manages all agents in the system
|
|
83
|
+
*/
|
|
84
|
+
export declare class AgentRegistry {
|
|
85
|
+
private agents;
|
|
86
|
+
/**
|
|
87
|
+
* Register an agent
|
|
88
|
+
*/
|
|
89
|
+
register(agent: Agent): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get an agent by name
|
|
92
|
+
*/
|
|
93
|
+
get(name: string): Agent | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Get all registered agents
|
|
96
|
+
*/
|
|
97
|
+
getAll(): Agent[];
|
|
98
|
+
/**
|
|
99
|
+
* Get agents by capability
|
|
100
|
+
*/
|
|
101
|
+
getByCapability(capability: string): Agent[];
|
|
102
|
+
/**
|
|
103
|
+
* Get agent names
|
|
104
|
+
*/
|
|
105
|
+
getNames(): string[];
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,uCAAuC;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,uBAAuB;IACvB,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEtD,+CAA+C;IAC/C,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;IAE3C,uCAAuC;IACvC,QAAQ,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;CAC3C;AAED;;;GAGG;AACH,8BAAsB,SAAU,YAAW,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAE3B,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAE9D,gDAAgD;IAChD,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAExC;;;OAGG;cACa,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC;IA8BzB;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAIzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;CAGzC;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA4B;IAE1C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAS5B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,MAAM,IAAI,KAAK,EAAE;IAIjB;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE;IAM5C;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;CAGrB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Agent Interface
|
|
3
|
+
* Foundation for multi-agent system in Codehere
|
|
4
|
+
*
|
|
5
|
+
* These agents ARE Codehere - they help end-users.
|
|
6
|
+
* But organizing them this way makes it easier for YOU to develop and improve Codehere.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Base agent class
|
|
10
|
+
* Provides common functionality for all agents
|
|
11
|
+
*/
|
|
12
|
+
export class BaseAgent {
|
|
13
|
+
/** Agent registry (set by OrchestratorAgent) */
|
|
14
|
+
agentRegistry;
|
|
15
|
+
/**
|
|
16
|
+
* Call another agent
|
|
17
|
+
* Enables agent-to-agent collaboration
|
|
18
|
+
*/
|
|
19
|
+
async callAgent(agentName, request) {
|
|
20
|
+
if (!this.agentRegistry) {
|
|
21
|
+
return {
|
|
22
|
+
success: false,
|
|
23
|
+
error: 'AgentRegistry not set. Cannot call other agents.',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const agent = this.agentRegistry.get(agentName);
|
|
27
|
+
if (!agent) {
|
|
28
|
+
return {
|
|
29
|
+
success: false,
|
|
30
|
+
error: `Agent "${agentName}" not found. Available agents: ${this.agentRegistry.getAll().map(a => a.name).join(', ')}`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// Check if this agent is allowed to call the target agent
|
|
34
|
+
if (!this.canCall.includes(agentName) && this.canCall.length > 0) {
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
error: `Agent "${this.name}" is not allowed to call "${agentName}". Allowed: ${this.canCall.join(', ')}`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return agent.handle({
|
|
41
|
+
...request,
|
|
42
|
+
caller: this.name,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Default canHandle implementation
|
|
47
|
+
* Checks if intent matches agent's name
|
|
48
|
+
*/
|
|
49
|
+
canHandle(request) {
|
|
50
|
+
return request.intent.intent === this.name;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Default validate implementation
|
|
54
|
+
* Can be overridden by subclasses
|
|
55
|
+
*/
|
|
56
|
+
validate(request) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Agent Registry
|
|
62
|
+
* Manages all agents in the system
|
|
63
|
+
*/
|
|
64
|
+
export class AgentRegistry {
|
|
65
|
+
agents = new Map();
|
|
66
|
+
/**
|
|
67
|
+
* Register an agent
|
|
68
|
+
*/
|
|
69
|
+
register(agent) {
|
|
70
|
+
this.agents.set(agent.name, agent);
|
|
71
|
+
// Set agent registry on BaseAgent instances
|
|
72
|
+
if (agent instanceof BaseAgent) {
|
|
73
|
+
agent.agentRegistry = this;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get an agent by name
|
|
78
|
+
*/
|
|
79
|
+
get(name) {
|
|
80
|
+
return this.agents.get(name);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get all registered agents
|
|
84
|
+
*/
|
|
85
|
+
getAll() {
|
|
86
|
+
return Array.from(this.agents.values());
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get agents by capability
|
|
90
|
+
*/
|
|
91
|
+
getByCapability(capability) {
|
|
92
|
+
return this.getAll().filter(agent => agent.capabilities.includes(capability));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get agent names
|
|
96
|
+
*/
|
|
97
|
+
getNames() {
|
|
98
|
+
return Array.from(this.agents.keys());
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwDH;;;GAGG;AACH,MAAM,OAAgB,SAAS;IAQ7B,gDAAgD;IACtC,aAAa,CAAiB;IAExC;;;OAGG;IACO,KAAK,CAAC,SAAS,CACvB,SAAiB,EACjB,OAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kDAAkD;aAC1D,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,UAAU,SAAS,kCAAkC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACtH,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,UAAU,IAAI,CAAC,IAAI,6BAA6B,SAAS,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACzG,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC;YAClB,GAAG,OAAO;YACV,MAAM,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,OAAqB;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAqB;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnC,4CAA4C;QAC5C,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC9B,KAAa,CAAC,aAAa,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-Driven Orchestrator
|
|
3
|
+
* Uses minimal prompts to let model make routing decisions
|
|
4
|
+
* Following Claude Code approach: minimal prompts, model-driven decisions
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAgent } from './base.js';
|
|
7
|
+
import type { AgentRequest, AgentResponse, AgentRegistry } from './base.js';
|
|
8
|
+
export declare class ModelDrivenOrchestratorAgent extends BaseAgent {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
capabilities: string[];
|
|
12
|
+
canCall: string[];
|
|
13
|
+
private registry;
|
|
14
|
+
private toolExecutor;
|
|
15
|
+
constructor(registry: AgentRegistry);
|
|
16
|
+
/**
|
|
17
|
+
* Handle query - let model choose the agent or tool
|
|
18
|
+
*/
|
|
19
|
+
handle(request: AgentRequest): Promise<AgentResponse>;
|
|
20
|
+
/**
|
|
21
|
+
* Get LLM response (can be overridden for testing)
|
|
22
|
+
*/
|
|
23
|
+
protected getLLMResponse(prompt: string): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Build prompt for model
|
|
26
|
+
*/
|
|
27
|
+
private buildPrompt;
|
|
28
|
+
/**
|
|
29
|
+
* Get available agents with descriptions
|
|
30
|
+
*/
|
|
31
|
+
private getAvailableAgents;
|
|
32
|
+
/**
|
|
33
|
+
* Generate contextual error message
|
|
34
|
+
*/
|
|
35
|
+
private generateError;
|
|
36
|
+
/**
|
|
37
|
+
* Generate contextual suggestions
|
|
38
|
+
*/
|
|
39
|
+
private generateSuggestions;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=orchestrator-model-driven.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-model-driven.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator-model-driven.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM5E,qBAAa,4BAA6B,SAAQ,SAAS;IACzD,IAAI,SAAkB;IACtB,WAAW,SAAoE;IAC/E,YAAY,WAA2D;IACvE,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAe;gBAEvB,QAAQ,EAAE,aAAa;IAOnC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAmE3D;;OAEG;cACa,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/D;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;YACW,aAAa;IAI3B;;OAEG;YACW,mBAAmB;CAOlC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-Driven Orchestrator
|
|
3
|
+
* Uses minimal prompts to let model make routing decisions
|
|
4
|
+
* Following Claude Code approach: minimal prompts, model-driven decisions
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAgent } from './base.js';
|
|
7
|
+
import { chatWithContext } from '../chat.js';
|
|
8
|
+
import { getToolRegistry } from '../tools/registry.js';
|
|
9
|
+
import { ToolExecutor } from '../tools/executor.js';
|
|
10
|
+
import { parseToolCalls } from '../tools/parser.js';
|
|
11
|
+
export class ModelDrivenOrchestratorAgent extends BaseAgent {
|
|
12
|
+
name = 'orchestrator';
|
|
13
|
+
description = 'Model-driven orchestrator that lets AI choose agents and tools';
|
|
14
|
+
capabilities = ['routing', 'model-driven-decisions', 'tool-execution'];
|
|
15
|
+
canCall = [];
|
|
16
|
+
registry;
|
|
17
|
+
toolExecutor;
|
|
18
|
+
constructor(registry) {
|
|
19
|
+
super();
|
|
20
|
+
this.registry = registry;
|
|
21
|
+
this.agentRegistry = registry;
|
|
22
|
+
this.toolExecutor = new ToolExecutor();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Handle query - let model choose the agent or tool
|
|
26
|
+
*/
|
|
27
|
+
async handle(request) {
|
|
28
|
+
// Get list of available agents
|
|
29
|
+
const availableAgents = this.getAvailableAgents();
|
|
30
|
+
// Get list of available tools
|
|
31
|
+
const toolRegistry = getToolRegistry();
|
|
32
|
+
const availableTools = toolRegistry.getAll();
|
|
33
|
+
// Let model choose agent or tool
|
|
34
|
+
const prompt = this.buildPrompt(request.query, availableAgents, availableTools);
|
|
35
|
+
try {
|
|
36
|
+
const response = await this.getLLMResponse(prompt);
|
|
37
|
+
// 1. Check for tool calls first
|
|
38
|
+
const toolCalls = parseToolCalls(response);
|
|
39
|
+
if (toolCalls.length > 0) {
|
|
40
|
+
console.log(`🛠️ Orchestrator: Executing ${toolCalls.length} tool call(s)`);
|
|
41
|
+
const results = await this.toolExecutor.executeAll(toolCalls);
|
|
42
|
+
// Check if any tool failed
|
|
43
|
+
const failures = results.filter(r => !r.success);
|
|
44
|
+
if (failures.length > 0) {
|
|
45
|
+
return {
|
|
46
|
+
success: false,
|
|
47
|
+
error: `Tool execution failed: ${failures.map(f => f.error).join(', ')}`,
|
|
48
|
+
message: `I tried to execute some tools but encountered errors:\n${failures.map(f => `- ${f.tool}: ${f.error}`).join('\n')}`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Format tool results
|
|
52
|
+
const output = results.map(r => `Tool '${r.tool}' executed successfully:\n${JSON.stringify(r.result, null, 2)}`).join('\n\n');
|
|
53
|
+
return {
|
|
54
|
+
success: true,
|
|
55
|
+
message: output,
|
|
56
|
+
metadata: { toolResults: results }
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// 2. If no tools, check for agent selection
|
|
60
|
+
const selectedAgentName = response.trim().split('\n')[0].toLowerCase(); // Simple heuristic
|
|
61
|
+
const selectedAgent = this.registry.get(selectedAgentName);
|
|
62
|
+
if (selectedAgent) {
|
|
63
|
+
console.log(`🤖 Orchestrator: Routing to ${selectedAgentName}`);
|
|
64
|
+
return await selectedAgent.handle(request);
|
|
65
|
+
}
|
|
66
|
+
// 3. Fallback: Treat response as direct answer
|
|
67
|
+
return {
|
|
68
|
+
success: true,
|
|
69
|
+
message: response
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
return {
|
|
74
|
+
success: false,
|
|
75
|
+
error: err instanceof Error ? err.message : String(err),
|
|
76
|
+
message: await this.generateError(request.query, err instanceof Error ? err.message : String(err)),
|
|
77
|
+
suggestions: await this.generateSuggestions(request.query),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get LLM response (can be overridden for testing)
|
|
83
|
+
*/
|
|
84
|
+
async getLLMResponse(prompt) {
|
|
85
|
+
return chatWithContext(prompt, []);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Build prompt for model
|
|
89
|
+
*/
|
|
90
|
+
buildPrompt(query, agents, tools) {
|
|
91
|
+
const agentList = agents.map(a => `- ${a.name}: ${a.description}`).join('\n');
|
|
92
|
+
const toolList = tools.map(t => `- ${t.name}: ${t.modelDescription}`).join('\n');
|
|
93
|
+
return `Query: "${query}"
|
|
94
|
+
|
|
95
|
+
Available Agents:
|
|
96
|
+
${agentList}
|
|
97
|
+
|
|
98
|
+
Available Tools:
|
|
99
|
+
${toolList}
|
|
100
|
+
|
|
101
|
+
INSTRUCTIONS:
|
|
102
|
+
1. If a specific agent is best suited, respond with JUST the agent name.
|
|
103
|
+
2. If a tool can solve this directly (e.g. running a command, editing a file), use the tool.
|
|
104
|
+
3. If you can answer directly, provide the answer.
|
|
105
|
+
|
|
106
|
+
What should be done?`;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get available agents with descriptions
|
|
110
|
+
*/
|
|
111
|
+
getAvailableAgents() {
|
|
112
|
+
const agents = [];
|
|
113
|
+
const allAgents = this.registry.getAll();
|
|
114
|
+
for (const agent of allAgents) {
|
|
115
|
+
if (agent.name !== 'orchestrator') { // Don't include self
|
|
116
|
+
agents.push({
|
|
117
|
+
name: agent.name,
|
|
118
|
+
description: agent.description || `Handles ${agent.name} requests`,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return agents;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Generate contextual error message
|
|
126
|
+
*/
|
|
127
|
+
async generateError(query, error) {
|
|
128
|
+
return `An error occurred while processing your query: ${error}`;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate contextual suggestions
|
|
132
|
+
*/
|
|
133
|
+
async generateSuggestions(query) {
|
|
134
|
+
return [
|
|
135
|
+
'Try rephrasing your query',
|
|
136
|
+
'Be more specific about what you want',
|
|
137
|
+
'Check if all required information is provided',
|
|
138
|
+
];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=orchestrator-model-driven.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-model-driven.js","sourceRoot":"","sources":["../../src/agents/orchestrator-model-driven.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReAct Orchestrator Agent
|
|
3
|
+
* Uses ReAct loop for reasoning and tool execution
|
|
4
|
+
*/
|
|
5
|
+
import { BaseAgent } from './base.js';
|
|
6
|
+
import type { AgentRequest, AgentResponse } from './base.js';
|
|
7
|
+
export declare class ReActOrchestratorAgent extends BaseAgent {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
capabilities: string[];
|
|
11
|
+
canCall: string[];
|
|
12
|
+
handle(request: AgentRequest): Promise<AgentResponse>;
|
|
13
|
+
private getAvailableAgents;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=react-orchestrator-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-orchestrator-agent.d.ts","sourceRoot":"","sources":["../../src/agents/react-orchestrator-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI7D,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,IAAI,SAAwB;IAC5B,WAAW,SAAuD;IAClE,YAAY,WAA+D;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAM;IAEjB,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IA2C3D,OAAO,CAAC,kBAAkB;CAI3B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReAct Orchestrator Agent
|
|
3
|
+
* Uses ReAct loop for reasoning and tool execution
|
|
4
|
+
*/
|
|
5
|
+
import { BaseAgent } from './base.js';
|
|
6
|
+
import { container } from '../application/services/dependency-container.js';
|
|
7
|
+
import { getToolRegistry } from '../tools/registry.js';
|
|
8
|
+
export class ReActOrchestratorAgent extends BaseAgent {
|
|
9
|
+
name = 'react-orchestrator';
|
|
10
|
+
description = 'ReAct-based orchestrator with iterative reasoning';
|
|
11
|
+
capabilities = ['react-reasoning', 'tool-execution', 'memory-integration'];
|
|
12
|
+
canCall = [];
|
|
13
|
+
async handle(request) {
|
|
14
|
+
const useCase = container.reactOrchestrationUseCase;
|
|
15
|
+
const toolRegistry = getToolRegistry();
|
|
16
|
+
// Build context with available tools
|
|
17
|
+
const context = {
|
|
18
|
+
availableTools: toolRegistry.getToolList(),
|
|
19
|
+
availableAgents: this.getAvailableAgents(),
|
|
20
|
+
};
|
|
21
|
+
try {
|
|
22
|
+
const result = await useCase.execute({
|
|
23
|
+
query: request.query,
|
|
24
|
+
context,
|
|
25
|
+
maxTurns: 20,
|
|
26
|
+
});
|
|
27
|
+
// Record observation in memory
|
|
28
|
+
if (result.trajectory.success) {
|
|
29
|
+
await container.memoryStreamService.recordObservation(`Successfully handled: ${request.query}`, { trajectory: result.trajectory });
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
success: result.trajectory.success,
|
|
33
|
+
message: result.answer,
|
|
34
|
+
metadata: {
|
|
35
|
+
trajectory: result.trajectory,
|
|
36
|
+
memoriesUsed: result.memoriesUsed.length,
|
|
37
|
+
steps: result.trajectory.steps.length,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: error instanceof Error ? error.message : String(error),
|
|
45
|
+
message: `ReAct orchestration failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getAvailableAgents() {
|
|
50
|
+
// Return list of available agent names
|
|
51
|
+
return ['editor', 'search', 'code-analysis', 'scaffold', 'general'];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=react-orchestrator-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-orchestrator-agent.js","sourceRoot":"","sources":["../../src/agents/react-orchestrator-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACnD,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,mDAAmD,CAAC;IAClE,YAAY,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IAC3E,OAAO,GAAa,EAAE,CAAC;IAEvB,KAAK,CAAC,MAAM,CAAC,OAAqB;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,yBAAyB,CAAC;QACpD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QAEvC,qCAAqC;QACrC,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,YAAY,CAAC,WAAW,EAAE;YAC1C,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE;SAC3C,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;gBACnC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO;gBACP,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,+BAA+B;YAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,CACnD,yBAAyB,OAAO,CAAC,KAAK,EAAE,EACxC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAClC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;gBAClC,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,QAAQ,EAAE;oBACR,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM;oBACxC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;iBACtC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,uCAAuC;QACvC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Agent: Execution Agent (Code Migration)
|
|
3
|
+
* Specialized agent for performing mechanical changes across files
|
|
4
|
+
*
|
|
5
|
+
* Based on enterprise architecture: Separate Execution Agent
|
|
6
|
+
* Role: Executes plans created by Planning Agent
|
|
7
|
+
*/
|
|
8
|
+
import type { IAIService } from '../../domain/interfaces/ai-service.interface.js';
|
|
9
|
+
import type { ToolExecutorService } from '../services/tool-executor-service.js';
|
|
10
|
+
import type { Plan } from '../../domain/entities/plan.js';
|
|
11
|
+
import type { Observation } from '../../domain/services/react-loop.js';
|
|
12
|
+
export interface ExecutionRequest {
|
|
13
|
+
plan: Plan;
|
|
14
|
+
subPlanId?: string;
|
|
15
|
+
context?: Record<string, any>;
|
|
16
|
+
}
|
|
17
|
+
export interface ExecutionResult {
|
|
18
|
+
subPlanId: string;
|
|
19
|
+
success: boolean;
|
|
20
|
+
result?: any;
|
|
21
|
+
error?: string;
|
|
22
|
+
observations: Observation[];
|
|
23
|
+
duration: number;
|
|
24
|
+
}
|
|
25
|
+
export interface ExecutionResponse {
|
|
26
|
+
plan: Plan;
|
|
27
|
+
results: ExecutionResult[];
|
|
28
|
+
overallSuccess: boolean;
|
|
29
|
+
completedSubPlans: number;
|
|
30
|
+
totalSubPlans: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class ExecutionAgent {
|
|
33
|
+
private aiService;
|
|
34
|
+
private toolExecutor;
|
|
35
|
+
private cwd;
|
|
36
|
+
private gitTool;
|
|
37
|
+
constructor(aiService: IAIService, toolExecutor: ToolExecutorService, cwd?: string);
|
|
38
|
+
/**
|
|
39
|
+
* Execute plan or specific sub-plan
|
|
40
|
+
*/
|
|
41
|
+
execute(request: ExecutionRequest): Promise<ExecutionResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* Commit successful changes to Git
|
|
44
|
+
* Only commits if there are actual file modifications
|
|
45
|
+
*/
|
|
46
|
+
private commitSuccessfulChanges;
|
|
47
|
+
/**
|
|
48
|
+
* Mark sub-plans with failed dependencies as failed
|
|
49
|
+
*/
|
|
50
|
+
private markBlockedSubPlans;
|
|
51
|
+
/**
|
|
52
|
+
* Get sub-plans ready for execution (dependencies satisfied)
|
|
53
|
+
*/
|
|
54
|
+
private getExecutableSubPlans;
|
|
55
|
+
/**
|
|
56
|
+
* Execute a single sub-plan
|
|
57
|
+
*/
|
|
58
|
+
private executeSubPlan;
|
|
59
|
+
/**
|
|
60
|
+
* Create action from sub-plan
|
|
61
|
+
*/
|
|
62
|
+
private createActionFromSubPlan;
|
|
63
|
+
/**
|
|
64
|
+
* Extract action parameters from sub-plan description
|
|
65
|
+
*/
|
|
66
|
+
private extractParameters;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=execution-agent.d.ts.map
|