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.
Potentially problematic release.
This version of codehere might be problematic. Click here for more details.
- 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/ARCHITECTURE.md
DELETED
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
# CodeHere Architecture
|
|
2
|
-
|
|
3
|
-
This document provides a technical overview of CodeHere's architecture. For design decisions and roadmap, see `docs/CODEHERE_LIVING_DOC.md`.
|
|
4
|
-
|
|
5
|
-
## System Overview
|
|
6
|
-
|
|
7
|
-
CodeHere is a local-first, CLI-based coding assistant that uses:
|
|
8
|
-
- **Cohere AI** for embeddings and chat completion
|
|
9
|
-
- **SQLite** (via sql.js) for local vector storage
|
|
10
|
-
- **TypeScript** for type safety
|
|
11
|
-
- **Commander.js** for CLI interface
|
|
12
|
-
|
|
13
|
-
## Core Architecture
|
|
14
|
-
|
|
15
|
-
### 1. Embeddings System
|
|
16
|
-
|
|
17
|
-
**File:** `src/embed.ts`
|
|
18
|
-
|
|
19
|
-
**Responsibilities:**
|
|
20
|
-
- Recursively scan repository for text files
|
|
21
|
-
- Chunk files into 300-token segments (50-token overlap)
|
|
22
|
-
- Generate embeddings via Cohere API
|
|
23
|
-
- Store in SQLite database (`data/embeddings.sqlite`)
|
|
24
|
-
|
|
25
|
-
**Key Functions:**
|
|
26
|
-
- `indexRepository()` - Main indexing function
|
|
27
|
-
- `chunkText()` - Splits text into token-sized chunks
|
|
28
|
-
- `embedText()` - Calls Cohere API with retry logic
|
|
29
|
-
- `updateFileEmbeddings()` - Re-indexes a single file after edit
|
|
30
|
-
|
|
31
|
-
**Incremental Indexing:**
|
|
32
|
-
- Tracks file metadata (path, mtime, hash) in `file_metadata` table
|
|
33
|
-
- Only re-indexes changed/new files
|
|
34
|
-
- Removes deleted files from index
|
|
35
|
-
|
|
36
|
-
### 2. Search System
|
|
37
|
-
|
|
38
|
-
**File:** `src/search.ts`
|
|
39
|
-
|
|
40
|
-
**Responsibilities:**
|
|
41
|
-
- Semantic search using cosine similarity
|
|
42
|
-
- Intelligent context retrieval with ranking
|
|
43
|
-
- File type prioritization
|
|
44
|
-
|
|
45
|
-
**Key Functions:**
|
|
46
|
-
- `searchSimilar()` - Basic cosine similarity search
|
|
47
|
-
- `searchIntelligent()` - Enhanced search with:
|
|
48
|
-
- File type prioritization (source files > docs)
|
|
49
|
-
- Path heuristics (`src/` boost, `test/` penalty)
|
|
50
|
-
- Exact filename matching (3x boost)
|
|
51
|
-
|
|
52
|
-
**Search Flow:**
|
|
53
|
-
1. Embed query using Cohere API
|
|
54
|
-
2. Load all embeddings from SQLite
|
|
55
|
-
3. Calculate cosine similarity
|
|
56
|
-
4. Rank and boost results
|
|
57
|
-
5. Return top N chunks
|
|
58
|
-
|
|
59
|
-
### 3. Edit System
|
|
60
|
-
|
|
61
|
-
**File:** `src/edit.ts`
|
|
62
|
-
|
|
63
|
-
**Responsibilities:**
|
|
64
|
-
- Generate unified diffs from natural language
|
|
65
|
-
- Apply patches safely with validation
|
|
66
|
-
- Never write broken files
|
|
67
|
-
|
|
68
|
-
**Key Functions:**
|
|
69
|
-
- `generateAndApplyEdit()` - Main edit function
|
|
70
|
-
- `generateEditDryRun()` - Preview mode (no write)
|
|
71
|
-
- `applyUnifiedDiff()` - Applies patch using `diff` package
|
|
72
|
-
- `validateSyntax()` - Validates JS/TS syntax before write
|
|
73
|
-
- `fixDuplicateExports()` - Post-processes module.exports
|
|
74
|
-
|
|
75
|
-
**Safety Flow:**
|
|
76
|
-
1. Generate diff via Cohere API
|
|
77
|
-
2. Parse diff stats
|
|
78
|
-
3. Check policy (line limits, folders)
|
|
79
|
-
4. Apply patch to get new content
|
|
80
|
-
5. **Validate syntax** (JS/TS only)
|
|
81
|
-
6. **Only write if valid** (critical safety check)
|
|
82
|
-
7. Update embeddings asynchronously
|
|
83
|
-
|
|
84
|
-
**Critical Safety Rule:**
|
|
85
|
-
```typescript
|
|
86
|
-
// NEVER write if syntax is invalid
|
|
87
|
-
if (!syntaxCheck.valid) {
|
|
88
|
-
return { success: false, error: 'Syntax validation failed. File NOT modified.' };
|
|
89
|
-
}
|
|
90
|
-
writeFileSync(fullPath, newContent, 'utf-8'); // Only if valid
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### 4. Policy System
|
|
94
|
-
|
|
95
|
-
**File:** `src/policy.ts`
|
|
96
|
-
|
|
97
|
-
**Responsibilities:**
|
|
98
|
-
- Enforce safety guardrails
|
|
99
|
-
- Prevent dangerous operations
|
|
100
|
-
|
|
101
|
-
**Rules:**
|
|
102
|
-
- Max 50 lines changed per edit
|
|
103
|
-
- Blocks `infra/` and `billing/` folders
|
|
104
|
-
- Single-file only (blocks multi-file patches)
|
|
105
|
-
|
|
106
|
-
### 5. Chat System
|
|
107
|
-
|
|
108
|
-
**File:** `src/chat.ts`
|
|
109
|
-
|
|
110
|
-
**Responsibilities:**
|
|
111
|
-
- Cohere API integration
|
|
112
|
-
- Error handling with retry logic
|
|
113
|
-
- Circuit breaker pattern
|
|
114
|
-
|
|
115
|
-
**Key Functions:**
|
|
116
|
-
- `chatWithContext()` - Chat with code context
|
|
117
|
-
- `generateDiff()` - Generate unified diff from instruction
|
|
118
|
-
|
|
119
|
-
**Error Handling:**
|
|
120
|
-
- Exponential backoff retry
|
|
121
|
-
- Circuit breaker for API failures
|
|
122
|
-
- Clear error messages
|
|
123
|
-
|
|
124
|
-
## Data Storage
|
|
125
|
-
|
|
126
|
-
### SQLite Database
|
|
127
|
-
|
|
128
|
-
**Location:** `data/embeddings.sqlite`
|
|
129
|
-
|
|
130
|
-
**Tables:**
|
|
131
|
-
1. `embeddings`
|
|
132
|
-
- `id` (INTEGER PRIMARY KEY)
|
|
133
|
-
- `filepath` (TEXT)
|
|
134
|
-
- `chunkIndex` (INTEGER)
|
|
135
|
-
- `content` (TEXT)
|
|
136
|
-
- `embedding` (TEXT - JSON array)
|
|
137
|
-
|
|
138
|
-
2. `file_metadata`
|
|
139
|
-
- `filepath` (TEXT PRIMARY KEY)
|
|
140
|
-
- `mtime` (INTEGER)
|
|
141
|
-
- `hash` (TEXT - MD5)
|
|
142
|
-
|
|
143
|
-
**Indexes:**
|
|
144
|
-
- `idx_filepath` on `embeddings(filepath)`
|
|
145
|
-
|
|
146
|
-
### Audit Logs
|
|
147
|
-
|
|
148
|
-
**Location:** `data/logs.jsonl`
|
|
149
|
-
|
|
150
|
-
**Format:** JSON Lines (one JSON object per line)
|
|
151
|
-
|
|
152
|
-
**Fields:**
|
|
153
|
-
- `timestamp` (ISO string)
|
|
154
|
-
- `command` (string)
|
|
155
|
-
- `query` (string, optional)
|
|
156
|
-
- `filepath` (string, optional)
|
|
157
|
-
- `diffStats` (object, optional)
|
|
158
|
-
- `policyStatus` ('allowed' | 'rejected')
|
|
159
|
-
- `retrievedFiles` (array, optional)
|
|
160
|
-
|
|
161
|
-
## CLI Structure
|
|
162
|
-
|
|
163
|
-
**File:** `src/index.ts`
|
|
164
|
-
|
|
165
|
-
**Commands:**
|
|
166
|
-
- `codehere` (no args) - Interactive session
|
|
167
|
-
- `codehere index` - Build embeddings index
|
|
168
|
-
- `codehere ask "<question>"` - Semantic search + chat
|
|
169
|
-
- `codehere explain <file>` - Explain a file
|
|
170
|
-
- `codehere fix <file> "<instruction>"` - Edit a file
|
|
171
|
-
- `codehere fix <file> "<instruction>" --dry-run` - Preview changes
|
|
172
|
-
- `codehere scaffold <template> <targetDir>` - Scaffold app skeleton
|
|
173
|
-
- `codehere debug-search "<query>"` - Debug search results
|
|
174
|
-
|
|
175
|
-
## Templates
|
|
176
|
-
|
|
177
|
-
**Location:** `templates/`
|
|
178
|
-
|
|
179
|
-
**Structure:**
|
|
180
|
-
- Each template is a directory
|
|
181
|
-
- Files are copied recursively to target directory
|
|
182
|
-
- Templates are static (not LLM-generated)
|
|
183
|
-
|
|
184
|
-
**Available Templates:**
|
|
185
|
-
- `node-api` - Simple Node.js HTTP API
|
|
186
|
-
- `next-page` - Minimal Next.js page
|
|
187
|
-
|
|
188
|
-
## Error Handling
|
|
189
|
-
|
|
190
|
-
**Strategy:**
|
|
191
|
-
- Retry with exponential backoff for API calls
|
|
192
|
-
- Circuit breaker for repeated failures
|
|
193
|
-
- Clear, actionable error messages
|
|
194
|
-
- Never crash silently
|
|
195
|
-
|
|
196
|
-
**Error Messages:**
|
|
197
|
-
- Missing API key: Shows setup instructions
|
|
198
|
-
- Missing embeddings DB: Shows how to run `index`
|
|
199
|
-
- Syntax validation failure: Shows error details, file NOT modified
|
|
200
|
-
- Policy rejection: Shows reason
|
|
201
|
-
|
|
202
|
-
## Testing
|
|
203
|
-
|
|
204
|
-
**Location:** `tests/edit.test.ts`
|
|
205
|
-
|
|
206
|
-
**Test Cases:**
|
|
207
|
-
1. Simple function rename
|
|
208
|
-
2. Add logging line
|
|
209
|
-
3. Add try/catch around async call
|
|
210
|
-
4. Edit file with comments
|
|
211
|
-
5. Add parameter with default
|
|
212
|
-
|
|
213
|
-
**Run:** `npm test`
|
|
214
|
-
|
|
215
|
-
## Performance
|
|
216
|
-
|
|
217
|
-
- **Indexing:** ~2 seconds per file (rate-limited by API)
|
|
218
|
-
- **Search:** 5-8 seconds (API call + DB query)
|
|
219
|
-
- **Edit:** 5-8 seconds (diff generation + validation)
|
|
220
|
-
- **Token Optimization:** 64-83% reduction
|
|
221
|
-
|
|
222
|
-
## Security & Privacy
|
|
223
|
-
|
|
224
|
-
- **Local-first:** Embeddings stored locally
|
|
225
|
-
- **No code transmission:** Only chunks sent for embedding
|
|
226
|
-
- **Audit logging:** Complete JSONL trail
|
|
227
|
-
- **Policy enforcement:** Multiple safety checks
|
|
228
|
-
|
|
229
|
-
## Future Architecture (Tier 2+)
|
|
230
|
-
|
|
231
|
-
See `docs/CODEHERE_LIVING_DOC.md` for roadmap:
|
|
232
|
-
- Multi-file support
|
|
233
|
-
- Project graph awareness
|
|
234
|
-
- Test execution integration
|
|
235
|
-
- VS Code extension
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
For design decisions and roadmap, see `docs/CODEHERE_LIVING_DOC.md`.
|
|
240
|
-
|
package/CHANGELOG.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to CodeHere will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [0.1.0] - 2025-11-24
|
|
9
|
-
|
|
10
|
-
### Added
|
|
11
|
-
- Core CLI commands: `index`, `ask`, `explain`, `fix`, `scaffold`
|
|
12
|
-
- Local-first embeddings storage using SQLite
|
|
13
|
-
- Semantic search with intelligent context retrieval
|
|
14
|
-
- Single-file code editing with syntax validation
|
|
15
|
-
- Policy guardrails (line limits, restricted folders)
|
|
16
|
-
- Dry-run mode for previewing changes
|
|
17
|
-
- Incremental indexing (only re-indexes changed files)
|
|
18
|
-
- Template-based app scaffolding (`node-api`, `next-page`)
|
|
19
|
-
- Integration test suite (5 test cases)
|
|
20
|
-
- Comprehensive documentation (living doc, architecture, contributing guide)
|
|
21
|
-
|
|
22
|
-
### Safety Features
|
|
23
|
-
- Syntax validation before writing files (JS/TS)
|
|
24
|
-
- TypeScript type checking (`tsc --noEmit`)
|
|
25
|
-
- Policy enforcement (max 50 lines, single-file only)
|
|
26
|
-
- Audit logging (JSONL format)
|
|
27
|
-
- Never writes broken files to disk
|
|
28
|
-
|
|
29
|
-
### Fixed
|
|
30
|
-
- Module.exports handling on function renames
|
|
31
|
-
- Temp file cleanup in syntax validation
|
|
32
|
-
- Error handling for missing embeddings database
|
|
33
|
-
- Search relevance (prioritizes source files, path heuristics)
|
|
34
|
-
|
|
35
|
-
### Documentation
|
|
36
|
-
- Single living document (`docs/CODEHERE_LIVING_DOC.md`)
|
|
37
|
-
- Architecture guide
|
|
38
|
-
- Contributing guide
|
|
39
|
-
- Changelog (this file)
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
[0.1.0]: https://github.com/muhammadegaa/codehere/releases/tag/v0.1.0
|
|
44
|
-
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
# Contributing to CodeHere
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing to CodeHere! This guide will help you understand the architecture, development workflow, and how to make contributions.
|
|
4
|
-
|
|
5
|
-
## Architecture Overview
|
|
6
|
-
|
|
7
|
-
CodeHere is a local-first, CLI-based coding assistant. See `docs/CODEHERE_LIVING_DOC.md` for the complete design and roadmap.
|
|
8
|
-
|
|
9
|
-
### Core Components
|
|
10
|
-
|
|
11
|
-
1. **Embeddings** (`src/embed.ts`)
|
|
12
|
-
- Indexes files, chunks text, generates embeddings via Cohere API
|
|
13
|
-
- Stores in local SQLite database
|
|
14
|
-
- Supports incremental indexing (tracks file mtime + hash)
|
|
15
|
-
|
|
16
|
-
2. **Search** (`src/search.ts`)
|
|
17
|
-
- Semantic search using cosine similarity
|
|
18
|
-
- Intelligent context retrieval with file type prioritization
|
|
19
|
-
- Path heuristics (prioritizes `src/`, penalizes `test/`)
|
|
20
|
-
|
|
21
|
-
3. **Edit** (`src/edit.ts`)
|
|
22
|
-
- Generates unified diffs from natural language instructions
|
|
23
|
-
- Applies patches with syntax validation
|
|
24
|
-
- **Critical safety:** Never writes broken files to disk
|
|
25
|
-
|
|
26
|
-
4. **Policy** (`src/policy.ts`)
|
|
27
|
-
- Enforces safety guardrails (line limits, restricted folders)
|
|
28
|
-
- Single-file only (prevents accidental multi-file changes)
|
|
29
|
-
|
|
30
|
-
5. **Chat** (`src/chat.ts`)
|
|
31
|
-
- Cohere API integration for chat and diff generation
|
|
32
|
-
- Error handling with retry logic
|
|
33
|
-
|
|
34
|
-
### Data Flow
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
User Command → Policy Check → Generate Diff → Apply Patch →
|
|
38
|
-
Syntax Validation → Write File (only if valid) → Update Embeddings (async)
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Development Workflow
|
|
42
|
-
|
|
43
|
-
### Prerequisites
|
|
44
|
-
|
|
45
|
-
- Node.js 18+
|
|
46
|
-
- TypeScript 5.0+
|
|
47
|
-
- Cohere API key (get from https://dashboard.cohere.com/api-keys)
|
|
48
|
-
|
|
49
|
-
### Setup
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
# Clone the repository
|
|
53
|
-
git clone https://github.com/muhammadegaa/codehere.git
|
|
54
|
-
cd codehere/agent
|
|
55
|
-
|
|
56
|
-
# Install dependencies
|
|
57
|
-
npm install
|
|
58
|
-
|
|
59
|
-
# Set up environment
|
|
60
|
-
echo "COHERE_API_KEY=your_key_here" > .env
|
|
61
|
-
|
|
62
|
-
# Build
|
|
63
|
-
npm run build
|
|
64
|
-
|
|
65
|
-
# Run tests
|
|
66
|
-
npm test
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Development Commands
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
# Build TypeScript
|
|
73
|
-
npm run build
|
|
74
|
-
|
|
75
|
-
# Run in development mode
|
|
76
|
-
npm run dev
|
|
77
|
-
|
|
78
|
-
# Run tests
|
|
79
|
-
npm test
|
|
80
|
-
|
|
81
|
-
# Install globally (for testing)
|
|
82
|
-
npm install -g .
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Making Changes
|
|
86
|
-
|
|
87
|
-
1. **Create a branch:**
|
|
88
|
-
```bash
|
|
89
|
-
git checkout -b feature/your-feature-name
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
2. **Make your changes:**
|
|
93
|
-
- Follow existing code style
|
|
94
|
-
- Add tests for new features
|
|
95
|
-
- Update documentation if behavior changes
|
|
96
|
-
|
|
97
|
-
3. **Test your changes:**
|
|
98
|
-
```bash
|
|
99
|
-
npm run build
|
|
100
|
-
npm test
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
4. **Update documentation:**
|
|
104
|
-
- If behavior changes, update `docs/CODEHERE_LIVING_DOC.md`
|
|
105
|
-
- If CLI changes, update `README.md`
|
|
106
|
-
- If architecture changes, update `ARCHITECTURE.md`
|
|
107
|
-
|
|
108
|
-
5. **Commit:**
|
|
109
|
-
```bash
|
|
110
|
-
git commit -m "feat: add your feature"
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
6. **Push and create PR:**
|
|
114
|
-
```bash
|
|
115
|
-
git push origin feature/your-feature-name
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## Code Style
|
|
119
|
-
|
|
120
|
-
- **TypeScript:** Use strict mode, prefer explicit types
|
|
121
|
-
- **Imports:** Use ES modules (`import`/`export`)
|
|
122
|
-
- **Error handling:** Always use try/catch, provide clear error messages
|
|
123
|
-
- **Safety first:** Never write broken files, always validate before writing
|
|
124
|
-
|
|
125
|
-
## Testing
|
|
126
|
-
|
|
127
|
-
- Integration tests in `tests/edit.test.ts`
|
|
128
|
-
- Run with `npm test`
|
|
129
|
-
- Add tests for new features or edge cases
|
|
130
|
-
|
|
131
|
-
## Documentation
|
|
132
|
-
|
|
133
|
-
- **Living Doc:** `docs/CODEHERE_LIVING_DOC.md` - single source of truth
|
|
134
|
-
- **Architecture:** `ARCHITECTURE.md` - technical details
|
|
135
|
-
- **README:** User-facing documentation
|
|
136
|
-
- **Changelog:** `CHANGELOG.md` - release notes
|
|
137
|
-
|
|
138
|
-
**Important:** Always update the living doc when capabilities or behavior change.
|
|
139
|
-
|
|
140
|
-
## Safety Guidelines
|
|
141
|
-
|
|
142
|
-
1. **Never write broken files:**
|
|
143
|
-
- Always validate syntax before writing
|
|
144
|
-
- Use dry-run mode for testing
|
|
145
|
-
- Rollback on validation failure
|
|
146
|
-
|
|
147
|
-
2. **Policy enforcement:**
|
|
148
|
-
- Respect line limits (50 lines max)
|
|
149
|
-
- Single-file only (for now)
|
|
150
|
-
- Block restricted folders
|
|
151
|
-
|
|
152
|
-
3. **Error handling:**
|
|
153
|
-
- Provide clear, actionable error messages
|
|
154
|
-
- Log all operations for audit
|
|
155
|
-
- Never crash silently
|
|
156
|
-
|
|
157
|
-
## Release Process
|
|
158
|
-
|
|
159
|
-
1. Update version in `package.json` (semver)
|
|
160
|
-
2. Update `CHANGELOG.md`
|
|
161
|
-
3. Update `docs/CODEHERE_LIVING_DOC.md` changelog section
|
|
162
|
-
4. Tag release: `git tag v0.1.0`
|
|
163
|
-
5. Publish: `npm publish --access public`
|
|
164
|
-
|
|
165
|
-
## Questions?
|
|
166
|
-
|
|
167
|
-
- Open an issue on GitHub
|
|
168
|
-
- Check `docs/CODEHERE_LIVING_DOC.md` for design decisions
|
|
169
|
-
- Review `ARCHITECTURE.md` for technical details
|
|
170
|
-
|
|
171
|
-
Thank you for contributing! 🚀
|
package/dist/benchmark.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Benchmark Testing Framework
|
|
3
|
-
* Compare CodeHere with Claude Code on real scenarios
|
|
4
|
-
*/
|
|
5
|
-
export interface BenchmarkResult {
|
|
6
|
-
scenario: string;
|
|
7
|
-
agent: 'codehere' | 'claude-code';
|
|
8
|
-
success: boolean;
|
|
9
|
-
accuracy: number;
|
|
10
|
-
speed: number;
|
|
11
|
-
completeness: number;
|
|
12
|
-
codeQuality: number;
|
|
13
|
-
understanding: number;
|
|
14
|
-
errors: string[];
|
|
15
|
-
notes: string;
|
|
16
|
-
}
|
|
17
|
-
export interface BenchmarkScenario {
|
|
18
|
-
name: string;
|
|
19
|
-
description: string;
|
|
20
|
-
setup: () => Promise<{
|
|
21
|
-
filepath: string;
|
|
22
|
-
content: string;
|
|
23
|
-
}>;
|
|
24
|
-
test: (filepath: string) => Promise<BenchmarkResult>;
|
|
25
|
-
cleanup: (filepath: string) => Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Scenario 1: Simple Function Rename
|
|
29
|
-
*/
|
|
30
|
-
export declare const scenario1: BenchmarkScenario;
|
|
31
|
-
/**
|
|
32
|
-
* Scenario 2: Explain Code
|
|
33
|
-
*/
|
|
34
|
-
export declare const scenario2: BenchmarkScenario;
|
|
35
|
-
/**
|
|
36
|
-
* Run all benchmarks
|
|
37
|
-
*/
|
|
38
|
-
export declare function runBenchmarks(): Promise<BenchmarkResult[]>;
|
|
39
|
-
//# sourceMappingURL=benchmark.d.ts.map
|
package/dist/benchmark.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,aAAa,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBA0FvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBA6EvB,CAAC;AAcF;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAgBhE"}
|
package/dist/benchmark.js
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Benchmark Testing Framework
|
|
3
|
-
* Compare CodeHere with Claude Code on real scenarios
|
|
4
|
-
*/
|
|
5
|
-
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
6
|
-
import { generateAndApplyEdit } from './edit.js';
|
|
7
|
-
import { chatWithContext } from './chat.js';
|
|
8
|
-
import { searchIntelligent } from './search.js';
|
|
9
|
-
/**
|
|
10
|
-
* Scenario 1: Simple Function Rename
|
|
11
|
-
*/
|
|
12
|
-
export const scenario1 = {
|
|
13
|
-
name: 'Simple Function Rename',
|
|
14
|
-
description: 'Rename function calculateSum to addNumbers',
|
|
15
|
-
setup: async () => {
|
|
16
|
-
const filepath = 'test/benchmark_scenario1.js';
|
|
17
|
-
const content = `function calculateSum(a, b) {
|
|
18
|
-
return a + b;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function otherFunction() {
|
|
22
|
-
return calculateSum(1, 2);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
module.exports = { calculateSum, otherFunction };
|
|
26
|
-
`;
|
|
27
|
-
writeFileSync(filepath, content, 'utf-8');
|
|
28
|
-
return { filepath, content };
|
|
29
|
-
},
|
|
30
|
-
test: async (filepath) => {
|
|
31
|
-
const startTime = Date.now();
|
|
32
|
-
try {
|
|
33
|
-
const result = await generateAndApplyEdit(filepath, 'Rename function calculateSum to addNumbers');
|
|
34
|
-
const speed = (Date.now() - startTime) / 1000;
|
|
35
|
-
if (!result.success) {
|
|
36
|
-
return {
|
|
37
|
-
scenario: 'Simple Function Rename',
|
|
38
|
-
agent: 'codehere',
|
|
39
|
-
success: false,
|
|
40
|
-
accuracy: 0,
|
|
41
|
-
speed,
|
|
42
|
-
completeness: 0,
|
|
43
|
-
codeQuality: 0,
|
|
44
|
-
understanding: 0,
|
|
45
|
-
errors: [result.error || 'Unknown error'],
|
|
46
|
-
notes: 'Edit failed',
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
// Verify the result
|
|
50
|
-
const newContent = readFileSync(filepath, 'utf-8');
|
|
51
|
-
const hasNewName = newContent.includes('function addNumbers');
|
|
52
|
-
const hasOldName = newContent.includes('function calculateSum');
|
|
53
|
-
const hasNewExport = newContent.includes('addNumbers');
|
|
54
|
-
const hasOldExport = newContent.includes('calculateSum');
|
|
55
|
-
const isValidSyntax = checkSyntax(newContent);
|
|
56
|
-
// Calculate scores
|
|
57
|
-
const accuracy = (hasNewName && !hasOldName && hasNewExport && !hasOldExport) ? 100 : 0;
|
|
58
|
-
const completeness = (hasNewName && hasNewExport) ? 100 : 50;
|
|
59
|
-
const codeQuality = isValidSyntax ? 100 : 0;
|
|
60
|
-
const understanding = (hasNewName && !hasOldName) ? 100 : 50;
|
|
61
|
-
return {
|
|
62
|
-
scenario: 'Simple Function Rename',
|
|
63
|
-
agent: 'codehere',
|
|
64
|
-
success: result.success,
|
|
65
|
-
accuracy,
|
|
66
|
-
speed,
|
|
67
|
-
completeness,
|
|
68
|
-
codeQuality,
|
|
69
|
-
understanding,
|
|
70
|
-
errors: isValidSyntax ? [] : ['Syntax error'],
|
|
71
|
-
notes: `Renamed: ${hasNewName}, Exports: ${hasNewExport}`,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
return {
|
|
76
|
-
scenario: 'Simple Function Rename',
|
|
77
|
-
agent: 'codehere',
|
|
78
|
-
success: false,
|
|
79
|
-
accuracy: 0,
|
|
80
|
-
speed: (Date.now() - startTime) / 1000,
|
|
81
|
-
completeness: 0,
|
|
82
|
-
codeQuality: 0,
|
|
83
|
-
understanding: 0,
|
|
84
|
-
errors: [error instanceof Error ? error.message : String(error)],
|
|
85
|
-
notes: 'Exception thrown',
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
cleanup: async (filepath) => {
|
|
90
|
-
if (existsSync(filepath)) {
|
|
91
|
-
// Restore original or delete
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Scenario 2: Explain Code
|
|
97
|
-
*/
|
|
98
|
-
export const scenario2 = {
|
|
99
|
-
name: 'Explain Code',
|
|
100
|
-
description: 'Explain what a function does',
|
|
101
|
-
setup: async () => {
|
|
102
|
-
const filepath = 'test/benchmark_scenario2.js';
|
|
103
|
-
const content = `function complexFunction(arr) {
|
|
104
|
-
if (!Array.isArray(arr) || arr.length === 0) return null;
|
|
105
|
-
|
|
106
|
-
const result = arr
|
|
107
|
-
.filter(x => x > 0)
|
|
108
|
-
.map(x => x * 2)
|
|
109
|
-
.reduce((sum, x) => sum + x, 0);
|
|
110
|
-
|
|
111
|
-
return result > 100 ? result : null;
|
|
112
|
-
}
|
|
113
|
-
`;
|
|
114
|
-
writeFileSync(filepath, content, 'utf-8');
|
|
115
|
-
return { filepath, content };
|
|
116
|
-
},
|
|
117
|
-
test: async (filepath) => {
|
|
118
|
-
const startTime = Date.now();
|
|
119
|
-
try {
|
|
120
|
-
const searchResult = await searchIntelligent(`What does complexFunction in ${filepath} do?`);
|
|
121
|
-
const response = await chatWithContext(`What does complexFunction in ${filepath} do?`, searchResult.chunks);
|
|
122
|
-
const speed = (Date.now() - startTime) / 1000;
|
|
123
|
-
// Check if response mentions key concepts
|
|
124
|
-
const mentionsFilter = response.toLowerCase().includes('filter');
|
|
125
|
-
const mentionsMap = response.toLowerCase().includes('map');
|
|
126
|
-
const mentionsReduce = response.toLowerCase().includes('reduce');
|
|
127
|
-
const mentionsNull = response.toLowerCase().includes('null');
|
|
128
|
-
const mentionsArray = response.toLowerCase().includes('array');
|
|
129
|
-
const accuracy = (mentionsFilter && mentionsMap && mentionsReduce) ? 100 : 50;
|
|
130
|
-
const completeness = (mentionsFilter && mentionsMap && mentionsReduce && mentionsNull) ? 100 : 75;
|
|
131
|
-
const understanding = (mentionsArray && (mentionsFilter || mentionsMap)) ? 100 : 50;
|
|
132
|
-
return {
|
|
133
|
-
scenario: 'Explain Code',
|
|
134
|
-
agent: 'codehere',
|
|
135
|
-
success: true,
|
|
136
|
-
accuracy,
|
|
137
|
-
speed,
|
|
138
|
-
completeness,
|
|
139
|
-
codeQuality: 0, // N/A for explanations
|
|
140
|
-
understanding,
|
|
141
|
-
errors: [],
|
|
142
|
-
notes: `Response length: ${response.length} chars`,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
return {
|
|
147
|
-
scenario: 'Explain Code',
|
|
148
|
-
agent: 'codehere',
|
|
149
|
-
success: false,
|
|
150
|
-
accuracy: 0,
|
|
151
|
-
speed: (Date.now() - startTime) / 1000,
|
|
152
|
-
completeness: 0,
|
|
153
|
-
codeQuality: 0,
|
|
154
|
-
understanding: 0,
|
|
155
|
-
errors: [error instanceof Error ? error.message : String(error)],
|
|
156
|
-
notes: 'Exception thrown',
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
cleanup: async (filepath) => {
|
|
161
|
-
if (existsSync(filepath)) {
|
|
162
|
-
// Cleanup
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
};
|
|
166
|
-
/**
|
|
167
|
-
* Check JavaScript syntax
|
|
168
|
-
*/
|
|
169
|
-
function checkSyntax(content) {
|
|
170
|
-
try {
|
|
171
|
-
new Function(content);
|
|
172
|
-
return true;
|
|
173
|
-
}
|
|
174
|
-
catch {
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Run all benchmarks
|
|
180
|
-
*/
|
|
181
|
-
export async function runBenchmarks() {
|
|
182
|
-
const results = [];
|
|
183
|
-
// Run scenario 1
|
|
184
|
-
const setup1 = await scenario1.setup();
|
|
185
|
-
const result1 = await scenario1.test(setup1.filepath);
|
|
186
|
-
results.push(result1);
|
|
187
|
-
await scenario1.cleanup(setup1.filepath);
|
|
188
|
-
// Run scenario 2
|
|
189
|
-
const setup2 = await scenario2.setup();
|
|
190
|
-
const result2 = await scenario2.test(setup2.filepath);
|
|
191
|
-
results.push(result2);
|
|
192
|
-
await scenario2.cleanup(setup2.filepath);
|
|
193
|
-
return results;
|
|
194
|
-
}
|
|
195
|
-
//# sourceMappingURL=benchmark.js.map
|
package/dist/benchmark.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"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"}
|