codehere 0.1.0 → 0.3.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 +65 -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 +143 -0
- package/dist/application/services/dependency-container.d.ts.map +1 -0
- package/dist/application/services/dependency-container.js +426 -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 +48 -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 +270 -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 +752 -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 +276 -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 +329 -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 +52 -0
- package/dist/domain/services/react-loop.d.ts.map +1 -0
- package/dist/domain/services/react-loop.js +186 -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/formatter.d.ts +2 -2
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +30 -17
- package/dist/formatter.js.map +1 -1
- package/dist/index.js +355 -239
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts +56 -0
- package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
- package/dist/infrastructure/ai/cohere-ai-service.js +594 -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/cache/query-result-cache.d.ts +68 -0
- package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/query-result-cache.js +138 -0
- package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
- package/dist/infrastructure/cache/security-scan-cache.d.ts +57 -0
- package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/security-scan-cache.js +124 -0
- package/dist/infrastructure/cache/security-scan-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/completion/bash-completion.d.ts +8 -0
- package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
- package/dist/infrastructure/completion/bash-completion.js +101 -0
- package/dist/infrastructure/completion/bash-completion.js.map +1 -0
- package/dist/infrastructure/completion/completion-generator.d.ts +42 -0
- package/dist/infrastructure/completion/completion-generator.d.ts.map +1 -0
- package/dist/infrastructure/completion/completion-generator.js +184 -0
- package/dist/infrastructure/completion/completion-generator.js.map +1 -0
- package/dist/infrastructure/completion/fish-completion.d.ts +8 -0
- package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
- package/dist/infrastructure/completion/fish-completion.js +65 -0
- package/dist/infrastructure/completion/fish-completion.js.map +1 -0
- package/dist/infrastructure/completion/zsh-completion.d.ts +8 -0
- package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
- package/dist/infrastructure/completion/zsh-completion.js +85 -0
- package/dist/infrastructure/completion/zsh-completion.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/context/context-compressor.d.ts +94 -0
- package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
- package/dist/infrastructure/context/context-compressor.js +329 -0
- package/dist/infrastructure/context/context-compressor.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 +259 -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 +108 -0
- package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
- package/dist/infrastructure/observability/execution-tracer.js +227 -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 +59 -0
- package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
- package/dist/infrastructure/security/ai-sast-scanner.js +241 -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 +53 -0
- package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
- package/dist/infrastructure/security/enhanced-security-gate.js +151 -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/plan-repository.d.ts +38 -0
- package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/plan-repository.js +133 -0
- package/dist/infrastructure/storage/plan-repository.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 +35 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +277 -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/contextual-feature-discovery.d.ts +24 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.js +144 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
- package/dist/infrastructure/ux/expectation-management.d.ts +98 -0
- package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
- package/dist/infrastructure/ux/expectation-management.js +327 -0
- package/dist/infrastructure/ux/expectation-management.js.map +1 -0
- package/dist/infrastructure/ux/feature-discovery.d.ts +47 -0
- package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
- package/dist/infrastructure/ux/feature-discovery.js +190 -0
- package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
- package/dist/infrastructure/ux/hitl-review-portal.d.ts +47 -0
- package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -0
- package/dist/infrastructure/ux/hitl-review-portal.js +225 -0
- package/dist/infrastructure/ux/hitl-review-portal.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/progress-indicator.d.ts +54 -0
- package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
- package/dist/infrastructure/ux/progress-indicator.js +121 -0
- package/dist/infrastructure/ux/progress-indicator.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 +236 -0
- package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
- package/dist/infrastructure/ux/review-checkpoint.d.ts +35 -0
- package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
- package/dist/infrastructure/ux/review-checkpoint.js +119 -0
- package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
- package/dist/infrastructure/ux/staged-feature-intro.d.ts +47 -0
- package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
- package/dist/infrastructure/ux/staged-feature-intro.js +144 -0
- package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
- package/dist/infrastructure/ux/syntax-highlighter.d.ts +21 -0
- package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
- package/dist/infrastructure/ux/syntax-highlighter.js +172 -0
- package/dist/infrastructure/ux/syntax-highlighter.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 +106 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
- package/dist/infrastructure/xai/cot-visualizer.js +286 -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 +190 -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 +9 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.js +146 -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 +166 -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 +179 -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 +286 -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 +330 -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 +129 -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 +150 -0
- package/dist/presentation/cli/commands/undo-command.js.map +1 -0
- package/dist/presentation/cli/error-display.d.ts +25 -0
- package/dist/presentation/cli/error-display.d.ts.map +1 -0
- package/dist/presentation/cli/error-display.js +297 -0
- package/dist/presentation/cli/error-display.js.map +1 -0
- package/dist/presentation/cli/keyboard-shortcuts.d.ts +27 -0
- package/dist/presentation/cli/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/presentation/cli/keyboard-shortcuts.js +77 -0
- package/dist/presentation/cli/keyboard-shortcuts.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 +72 -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 +259 -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 +263 -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
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Diff Parser
|
|
3
|
+
* Parses and applies unified diff patches to file content
|
|
4
|
+
*
|
|
5
|
+
* Handles standard unified diff format:
|
|
6
|
+
* --- a/filepath
|
|
7
|
+
* +++ b/filepath
|
|
8
|
+
* @@ -start,count +start,count @@
|
|
9
|
+
* -old line (remove)
|
|
10
|
+
* +new line (add)
|
|
11
|
+
* context line (keep)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Apply a unified diff to file content
|
|
15
|
+
*/
|
|
16
|
+
export declare function applyUnifiedDiff(originalContent: string, diff: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Fallback: Try multiple strategies to apply the edit
|
|
19
|
+
* Now optimized for complete file content (preferred) or unified diff
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyEditFallback(originalContent: string, diff: string): string;
|
|
22
|
+
//# sourceMappingURL=diff-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-parser.d.ts","sourceRoot":"","sources":["../../src/utils/diff-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkG9E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAyD/E"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Diff Parser
|
|
3
|
+
* Parses and applies unified diff patches to file content
|
|
4
|
+
*
|
|
5
|
+
* Handles standard unified diff format:
|
|
6
|
+
* --- a/filepath
|
|
7
|
+
* +++ b/filepath
|
|
8
|
+
* @@ -start,count +start,count @@
|
|
9
|
+
* -old line (remove)
|
|
10
|
+
* +new line (add)
|
|
11
|
+
* context line (keep)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Apply a unified diff to file content
|
|
15
|
+
*/
|
|
16
|
+
export function applyUnifiedDiff(originalContent, diff) {
|
|
17
|
+
if (!diff || !diff.trim()) {
|
|
18
|
+
return originalContent;
|
|
19
|
+
}
|
|
20
|
+
// Clean diff - remove any markdown formatting
|
|
21
|
+
let cleanDiff = diff.trim();
|
|
22
|
+
// Extract the actual diff lines
|
|
23
|
+
const diffLines = cleanDiff.split('\n');
|
|
24
|
+
const originalLines = originalContent.split('\n');
|
|
25
|
+
const result = [];
|
|
26
|
+
let originalIndex = 0; // Current position in original file
|
|
27
|
+
let inHunk = false;
|
|
28
|
+
let hunkStartLine = 0; // Line number where hunk starts (1-based from diff)
|
|
29
|
+
let hunkOldLineCount = 0; // Number of old lines in this hunk
|
|
30
|
+
let hunkOldLinesProcessed = 0; // How many old lines we've processed
|
|
31
|
+
for (let i = 0; i < diffLines.length; i++) {
|
|
32
|
+
const line = diffLines[i];
|
|
33
|
+
// Skip header lines
|
|
34
|
+
if (line.startsWith('---') || line.startsWith('+++')) {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
// Parse hunk header: @@ -start,count +start,count @@
|
|
38
|
+
const hunkMatch = line.match(/^@@\s+-(\d+)(?:,(\d+))?\s+\+(\d+)(?:,(\d+))?\s+@@/);
|
|
39
|
+
if (hunkMatch) {
|
|
40
|
+
// Finish previous hunk
|
|
41
|
+
if (inHunk) {
|
|
42
|
+
// Make sure we've processed all old lines from previous hunk
|
|
43
|
+
while (hunkOldLinesProcessed < hunkOldLineCount && originalIndex < originalLines.length) {
|
|
44
|
+
originalIndex++;
|
|
45
|
+
hunkOldLinesProcessed++;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Start new hunk
|
|
49
|
+
inHunk = true;
|
|
50
|
+
hunkStartLine = parseInt(hunkMatch[1], 10); // 1-based line number
|
|
51
|
+
hunkOldLineCount = parseInt(hunkMatch[2] || '0', 10);
|
|
52
|
+
hunkOldLinesProcessed = 0;
|
|
53
|
+
// Copy all lines from original up to (but not including) the hunk start
|
|
54
|
+
// hunkStartLine is 1-based, originalIndex is 0-based
|
|
55
|
+
while (originalIndex < hunkStartLine - 1 && originalIndex < originalLines.length) {
|
|
56
|
+
result.push(originalLines[originalIndex]);
|
|
57
|
+
originalIndex++;
|
|
58
|
+
}
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (!inHunk) {
|
|
62
|
+
continue; // Skip lines outside hunks
|
|
63
|
+
}
|
|
64
|
+
// Process hunk content
|
|
65
|
+
if (line.startsWith('-')) {
|
|
66
|
+
// Remove line: skip this line from original
|
|
67
|
+
if (originalIndex < originalLines.length) {
|
|
68
|
+
originalIndex++;
|
|
69
|
+
hunkOldLinesProcessed++;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (line.startsWith('+')) {
|
|
73
|
+
// Add line: add new line to result
|
|
74
|
+
result.push(line.substring(1));
|
|
75
|
+
// Don't increment originalIndex or hunkOldLinesProcessed for additions
|
|
76
|
+
}
|
|
77
|
+
else if (line.startsWith(' ')) {
|
|
78
|
+
// Context line: keep from original
|
|
79
|
+
if (originalIndex < originalLines.length) {
|
|
80
|
+
result.push(originalLines[originalIndex]);
|
|
81
|
+
originalIndex++;
|
|
82
|
+
hunkOldLinesProcessed++;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (line.trim() === '') {
|
|
86
|
+
// Empty line - preserve if it's part of the diff structure
|
|
87
|
+
// But don't add it if we're in the middle of processing
|
|
88
|
+
if (hunkOldLinesProcessed < hunkOldLineCount) {
|
|
89
|
+
// This might be a continuation, skip it
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Check if hunk is complete
|
|
94
|
+
if (hunkOldLinesProcessed >= hunkOldLineCount) {
|
|
95
|
+
inHunk = false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Copy all remaining lines from original
|
|
99
|
+
while (originalIndex < originalLines.length) {
|
|
100
|
+
result.push(originalLines[originalIndex]);
|
|
101
|
+
originalIndex++;
|
|
102
|
+
}
|
|
103
|
+
return result.join('\n');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Fallback: Try multiple strategies to apply the edit
|
|
107
|
+
* Now optimized for complete file content (preferred) or unified diff
|
|
108
|
+
*/
|
|
109
|
+
export function applyEditFallback(originalContent, diff) {
|
|
110
|
+
if (!diff || !diff.trim()) {
|
|
111
|
+
return originalContent;
|
|
112
|
+
}
|
|
113
|
+
// Clean the diff
|
|
114
|
+
let cleanDiff = diff.trim();
|
|
115
|
+
// Strategy 1: Extract from markdown code blocks
|
|
116
|
+
const codeBlockMatch = cleanDiff.match(/```(?:\w+)?\n([\s\S]*?)\n```/);
|
|
117
|
+
if (codeBlockMatch) {
|
|
118
|
+
cleanDiff = codeBlockMatch[1].trim();
|
|
119
|
+
}
|
|
120
|
+
// Strategy 2: Check if it's a complete file (no diff markers)
|
|
121
|
+
const hasDiffMarkers = cleanDiff.includes('---') || cleanDiff.includes('+++') || cleanDiff.includes('@@');
|
|
122
|
+
// If no diff markers and substantial content, treat as complete file
|
|
123
|
+
if (!hasDiffMarkers) {
|
|
124
|
+
// Verify it looks like code (has common patterns)
|
|
125
|
+
const looksLikeCode = cleanDiff.includes('function') ||
|
|
126
|
+
cleanDiff.includes('class') ||
|
|
127
|
+
cleanDiff.includes('import') ||
|
|
128
|
+
cleanDiff.includes('export') ||
|
|
129
|
+
cleanDiff.includes('const') ||
|
|
130
|
+
cleanDiff.includes('async');
|
|
131
|
+
if (looksLikeCode && cleanDiff.length > 100) {
|
|
132
|
+
// Likely complete file content
|
|
133
|
+
return cleanDiff;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Strategy 3: Try unified diff parsing if it has diff markers
|
|
137
|
+
if (hasDiffMarkers) {
|
|
138
|
+
try {
|
|
139
|
+
const result = applyUnifiedDiff(originalContent, cleanDiff);
|
|
140
|
+
// Basic sanity check
|
|
141
|
+
if (result && result.length > 0 && result !== originalContent) {
|
|
142
|
+
// Verify it's not just the diff itself
|
|
143
|
+
if (!result.startsWith('---') && !result.startsWith('+++')) {
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
console.warn('[DiffParser] Unified diff parsing failed:', error);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Strategy 4: Last resort - if it's substantial content, use it
|
|
153
|
+
if (cleanDiff.length > 200 && !cleanDiff.startsWith('---') && !cleanDiff.startsWith('+++')) {
|
|
154
|
+
return cleanDiff;
|
|
155
|
+
}
|
|
156
|
+
// Strategy 5: If all else fails, return original (safer than broken code)
|
|
157
|
+
console.warn('[DiffParser] Could not parse diff, returning original content');
|
|
158
|
+
return originalContent;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=diff-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-parser.js","sourceRoot":"","sources":["../../src/utils/diff-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Logger class for application logging.
|
|
3
|
+
* Uses Winston as the underlying logging library.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Logger {
|
|
6
|
+
private logger;
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Logs a debug message.
|
|
10
|
+
* @param message The message to log.
|
|
11
|
+
* @param meta Optional metadata to include with the log.
|
|
12
|
+
*/
|
|
13
|
+
debug(message: string, meta?: Record<string, any>): void;
|
|
14
|
+
/**
|
|
15
|
+
* Logs an info message.
|
|
16
|
+
* @param message The message to log.
|
|
17
|
+
* @param meta Optional metadata to include with the log.
|
|
18
|
+
*/
|
|
19
|
+
info(message: string, meta?: Record<string, any>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Logs a warning message.
|
|
22
|
+
* @param message The message to log.
|
|
23
|
+
* @param meta Optional metadata to include with the log.
|
|
24
|
+
*/
|
|
25
|
+
warn(message: string, meta?: Record<string, any>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Logs an error message.
|
|
28
|
+
* @param message The message to log.
|
|
29
|
+
* @param meta Optional metadata to include with the log.
|
|
30
|
+
*/
|
|
31
|
+
error(message: string, meta?: Record<string, any>): void;
|
|
32
|
+
}
|
|
33
|
+
export declare const logger: Logger;
|
|
34
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAgB;;IAwB9B;;;;OAIG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI/D;;;;OAIG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI9D;;;;OAIG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI9D;;;;OAIG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAGhE;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// src/utils/logger.ts
|
|
2
|
+
import { createLogger, format, transports } from 'winston';
|
|
3
|
+
import { isProduction } from '../config/env';
|
|
4
|
+
/**
|
|
5
|
+
* Custom Logger class for application logging.
|
|
6
|
+
* Uses Winston as the underlying logging library.
|
|
7
|
+
*/
|
|
8
|
+
export class Logger {
|
|
9
|
+
logger;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.logger = createLogger({
|
|
12
|
+
level: isProduction ? 'info' : 'debug',
|
|
13
|
+
format: format.combine(format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.errors({ stack: true }), format.splat(), format.json()),
|
|
14
|
+
transports: [
|
|
15
|
+
new transports.Console({
|
|
16
|
+
format: format.combine(format.colorize(), format.printf((info) => `${info.timestamp} ${info.level}: ${info.message}`)),
|
|
17
|
+
}),
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Logs a debug message.
|
|
23
|
+
* @param message The message to log.
|
|
24
|
+
* @param meta Optional metadata to include with the log.
|
|
25
|
+
*/
|
|
26
|
+
debug(message, meta) {
|
|
27
|
+
this.logger.debug(message, meta);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Logs an info message.
|
|
31
|
+
* @param message The message to log.
|
|
32
|
+
* @param meta Optional metadata to include with the log.
|
|
33
|
+
*/
|
|
34
|
+
info(message, meta) {
|
|
35
|
+
this.logger.info(message, meta);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Logs a warning message.
|
|
39
|
+
* @param message The message to log.
|
|
40
|
+
* @param meta Optional metadata to include with the log.
|
|
41
|
+
*/
|
|
42
|
+
warn(message, meta) {
|
|
43
|
+
this.logger.warn(message, meta);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Logs an error message.
|
|
47
|
+
* @param message The message to log.
|
|
48
|
+
* @param meta Optional metadata to include with the log.
|
|
49
|
+
*/
|
|
50
|
+
error(message, meta) {
|
|
51
|
+
this.logger.error(message, meta);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Export a singleton instance of the Logger class
|
|
55
|
+
export const logger = new Logger();
|
|
56
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAA2B,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;GAGG;AACH,MAAM,OAAO,MAAM;IACT,MAAM,CAAgB;IAE9B;QACE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YACtC,MAAM,EAAE,MAAM,CAAC,OAAO,CACpB,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EACnD,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC9B,MAAM,CAAC,KAAK,EAAE,EACd,MAAM,CAAC,IAAI,EAAE,CACd;YACD,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,OAAO,CAAC;oBACrB,MAAM,EAAE,MAAM,CAAC,OAAO,CACpB,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,MAAM,CACX,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAC7D,CACF;iBACF,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,EAAE,IAA0B;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAe,EAAE,IAA0B;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAe,EAAE,IAA0B;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,EAAE,IAA0B;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Version Utility
|
|
3
|
+
* Single source of truth for version information
|
|
4
|
+
* Reads from package.json to ensure consistency
|
|
5
|
+
*
|
|
6
|
+
* Clean Architecture: Infrastructure/Utils Layer
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Get the current version from package.json
|
|
10
|
+
* Caches the result for performance
|
|
11
|
+
*/
|
|
12
|
+
export declare function getVersion(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Get version with 'v' prefix (e.g., "v0.2.0")
|
|
15
|
+
*/
|
|
16
|
+
export declare function getVersionWithPrefix(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Reset version cache (useful for testing)
|
|
19
|
+
*/
|
|
20
|
+
export declare function resetVersionCache(): void;
|
|
21
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAyBnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Version Utility
|
|
3
|
+
* Single source of truth for version information
|
|
4
|
+
* Reads from package.json to ensure consistency
|
|
5
|
+
*
|
|
6
|
+
* Clean Architecture: Infrastructure/Utils Layer
|
|
7
|
+
*/
|
|
8
|
+
import { readFileSync, existsSync } from 'fs';
|
|
9
|
+
import { join, dirname } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
let cachedVersion = null;
|
|
12
|
+
/**
|
|
13
|
+
* Get the current version from package.json
|
|
14
|
+
* Caches the result for performance
|
|
15
|
+
*/
|
|
16
|
+
export function getVersion() {
|
|
17
|
+
if (cachedVersion) {
|
|
18
|
+
return cachedVersion;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
22
|
+
const __dirname = dirname(__filename);
|
|
23
|
+
const agentDir = join(__dirname, '../..');
|
|
24
|
+
const packageJsonPath = join(agentDir, 'package.json');
|
|
25
|
+
if (existsSync(packageJsonPath)) {
|
|
26
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
27
|
+
const version = packageJson.version || '0.3.0';
|
|
28
|
+
cachedVersion = version;
|
|
29
|
+
return version;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// Fallback if can't read package.json
|
|
34
|
+
console.warn('Warning: Could not read version from package.json, using fallback');
|
|
35
|
+
}
|
|
36
|
+
// Fallback version (should match package.json)
|
|
37
|
+
cachedVersion = '0.3.0';
|
|
38
|
+
return cachedVersion;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get version with 'v' prefix (e.g., "v0.2.0")
|
|
42
|
+
*/
|
|
43
|
+
export function getVersionWithPrefix() {
|
|
44
|
+
return `v${getVersion()}`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Reset version cache (useful for testing)
|
|
48
|
+
*/
|
|
49
|
+
export function resetVersionCache() {
|
|
50
|
+
cachedVersion = null;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAEvD,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;YAC/C,aAAa,GAAG,OAAO,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACpF,CAAC;IAED,+CAA+C;IAC/C,aAAa,GAAG,OAAO,CAAC;IACxB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,UAAU,EAAE,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Backup and Rollback Module
|
|
3
|
+
* Creates backups before edits and enables rollback on verification failure
|
|
4
|
+
*/
|
|
5
|
+
export interface BackupInfo {
|
|
6
|
+
backupPath: string;
|
|
7
|
+
originalPath: string;
|
|
8
|
+
timestamp: Date;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Create backup of file before editing
|
|
12
|
+
*/
|
|
13
|
+
export declare function backupFile(filepath: string): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Restore file from backup
|
|
16
|
+
*/
|
|
17
|
+
export declare function rollbackFile(filepath: string, backupPath?: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Find latest backup for a file
|
|
20
|
+
*/
|
|
21
|
+
export declare function findLatestBackup(filepath: string): Promise<string | null>;
|
|
22
|
+
/**
|
|
23
|
+
* List all backups for a file
|
|
24
|
+
*/
|
|
25
|
+
export declare function listBackups(filepath: string): Promise<BackupInfo[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Delete all backups for a file
|
|
28
|
+
*/
|
|
29
|
+
export declare function deleteAllBackups(filepath: string): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/verification/backup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDlE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8B/E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA0DzE;AAqCD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Backup and Rollback Module
|
|
3
|
+
* Creates backups before edits and enables rollback on verification failure
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync, readdirSync, statSync } from 'fs';
|
|
6
|
+
import { join, dirname, basename } from 'path';
|
|
7
|
+
import { executionTracer } from '../infrastructure/observability/execution-tracer.js';
|
|
8
|
+
const BACKUP_DIR = '.codehere/backups';
|
|
9
|
+
const MAX_BACKUPS = 5; // Keep last 5 backups per file
|
|
10
|
+
/**
|
|
11
|
+
* Create backup of file before editing
|
|
12
|
+
*/
|
|
13
|
+
export async function backupFile(filepath) {
|
|
14
|
+
try {
|
|
15
|
+
// Read original file
|
|
16
|
+
if (!existsSync(filepath)) {
|
|
17
|
+
throw new Error(`File not found: ${filepath}`);
|
|
18
|
+
}
|
|
19
|
+
const originalContent = readFileSync(filepath, 'utf-8');
|
|
20
|
+
// Create backup directory
|
|
21
|
+
const projectDir = findProjectRoot(filepath) || dirname(filepath);
|
|
22
|
+
const backupDir = join(projectDir, BACKUP_DIR);
|
|
23
|
+
if (!existsSync(backupDir)) {
|
|
24
|
+
mkdirSync(backupDir, { recursive: true });
|
|
25
|
+
}
|
|
26
|
+
// Generate backup filename with timestamp
|
|
27
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
28
|
+
const filename = basename(filepath);
|
|
29
|
+
const backupPath = join(backupDir, `${filename}.${timestamp}.backup`);
|
|
30
|
+
// Write backup
|
|
31
|
+
writeFileSync(backupPath, originalContent, 'utf-8');
|
|
32
|
+
// Link backup to current run for traceability
|
|
33
|
+
const runId = executionTracer.getCurrentRunId();
|
|
34
|
+
if (runId) {
|
|
35
|
+
executionTracer.trace({
|
|
36
|
+
operationType: 'file_operation',
|
|
37
|
+
operationName: 'backup',
|
|
38
|
+
input: { filepath },
|
|
39
|
+
output: { backupPath },
|
|
40
|
+
metadata: {
|
|
41
|
+
runId,
|
|
42
|
+
filepath,
|
|
43
|
+
timestamp: new Date().toISOString(),
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Clean up old backups for this file
|
|
48
|
+
await cleanupOldBackups(backupDir, filename);
|
|
49
|
+
return backupPath;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new Error(`Failed to create backup: ${error instanceof Error ? error.message : String(error)}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Restore file from backup
|
|
57
|
+
*/
|
|
58
|
+
export async function rollbackFile(filepath, backupPath) {
|
|
59
|
+
try {
|
|
60
|
+
// If no backup path provided, find most recent backup
|
|
61
|
+
if (!backupPath) {
|
|
62
|
+
const latestBackup = await findLatestBackup(filepath);
|
|
63
|
+
if (!latestBackup) {
|
|
64
|
+
throw new Error(`No backup found for file: ${filepath}`);
|
|
65
|
+
}
|
|
66
|
+
backupPath = latestBackup;
|
|
67
|
+
}
|
|
68
|
+
// Verify backup exists
|
|
69
|
+
if (!existsSync(backupPath)) {
|
|
70
|
+
throw new Error(`Backup file not found: ${backupPath}`);
|
|
71
|
+
}
|
|
72
|
+
// Read backup content
|
|
73
|
+
const backupContent = readFileSync(backupPath, 'utf-8');
|
|
74
|
+
// Restore original file
|
|
75
|
+
writeFileSync(filepath, backupContent, 'utf-8');
|
|
76
|
+
// Trace rollback operation
|
|
77
|
+
const runId = executionTracer.getCurrentRunId();
|
|
78
|
+
if (runId) {
|
|
79
|
+
executionTracer.trace({
|
|
80
|
+
operationType: 'file_operation',
|
|
81
|
+
operationName: 'rollback',
|
|
82
|
+
input: { filepath, backupPath },
|
|
83
|
+
output: { restored: true },
|
|
84
|
+
metadata: {
|
|
85
|
+
runId,
|
|
86
|
+
filepath,
|
|
87
|
+
backupPath,
|
|
88
|
+
timestamp: new Date().toISOString(),
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
throw new Error(`Failed to rollback file: ${error instanceof Error ? error.message : String(error)}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Find latest backup for a file
|
|
99
|
+
*/
|
|
100
|
+
export async function findLatestBackup(filepath) {
|
|
101
|
+
try {
|
|
102
|
+
const projectDir = findProjectRoot(filepath) || dirname(filepath);
|
|
103
|
+
const backupDir = join(projectDir, BACKUP_DIR);
|
|
104
|
+
if (!existsSync(backupDir)) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const filename = basename(filepath);
|
|
108
|
+
const files = readdirSync(backupDir)
|
|
109
|
+
.filter(file => file.startsWith(`${filename}.`) && file.endsWith('.backup'))
|
|
110
|
+
.map(file => join(backupDir, file))
|
|
111
|
+
.filter(file => existsSync(file));
|
|
112
|
+
if (files.length === 0) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
// Sort by modification time (newest first)
|
|
116
|
+
files.sort((a, b) => {
|
|
117
|
+
const statA = statSync(a);
|
|
118
|
+
const statB = statSync(b);
|
|
119
|
+
return statB.mtime.getTime() - statA.mtime.getTime();
|
|
120
|
+
});
|
|
121
|
+
return files[0]; // Return most recent backup
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* List all backups for a file
|
|
129
|
+
*/
|
|
130
|
+
export async function listBackups(filepath) {
|
|
131
|
+
try {
|
|
132
|
+
const projectDir = findProjectRoot(filepath) || dirname(filepath);
|
|
133
|
+
const backupDir = join(projectDir, BACKUP_DIR);
|
|
134
|
+
if (!existsSync(backupDir)) {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
const filename = basename(filepath);
|
|
138
|
+
const files = readdirSync(backupDir)
|
|
139
|
+
.filter(file => file.startsWith(`${filename}.`) && file.endsWith('.backup'))
|
|
140
|
+
.map(file => {
|
|
141
|
+
const backupPath = join(backupDir, file);
|
|
142
|
+
if (!existsSync(backupPath)) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const stat = statSync(backupPath);
|
|
146
|
+
const timestampMatch = file.match(/\.([^.]+)\.backup$/);
|
|
147
|
+
let timestamp;
|
|
148
|
+
if (timestampMatch) {
|
|
149
|
+
// Timestamp format: 2025-12-02T00-10-46-506Z (dashes instead of colons)
|
|
150
|
+
// Convert to ISO format: 2025-12-02T00:10:46.506Z
|
|
151
|
+
const timestampStr = timestampMatch[1];
|
|
152
|
+
// Replace dashes with colons, but keep date part dashes
|
|
153
|
+
// Format: YYYY-MM-DDTHH-MM-SS-MMMZ
|
|
154
|
+
// Convert: YYYY-MM-DDTHH:MM:SS.MMMZ
|
|
155
|
+
const isoStr = timestampStr
|
|
156
|
+
.replace(/T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z$/, 'T$1:$2:$3.$4Z');
|
|
157
|
+
try {
|
|
158
|
+
timestamp = new Date(isoStr);
|
|
159
|
+
// Validate date
|
|
160
|
+
if (isNaN(timestamp.getTime())) {
|
|
161
|
+
timestamp = stat.mtime; // Fallback to file mtime
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
timestamp = stat.mtime; // Fallback to file mtime
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
timestamp = stat.mtime;
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
backupPath,
|
|
173
|
+
originalPath: filepath,
|
|
174
|
+
timestamp,
|
|
175
|
+
};
|
|
176
|
+
})
|
|
177
|
+
.filter((info) => info !== null);
|
|
178
|
+
// Sort by timestamp (newest first)
|
|
179
|
+
files.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime());
|
|
180
|
+
return files;
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
return [];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Clean up old backups (keep only MAX_BACKUPS most recent)
|
|
188
|
+
*/
|
|
189
|
+
async function cleanupOldBackups(backupDir, filename) {
|
|
190
|
+
try {
|
|
191
|
+
const files = readdirSync(backupDir)
|
|
192
|
+
.filter(file => file.startsWith(`${filename}.`) && file.endsWith('.backup'))
|
|
193
|
+
.map(file => join(backupDir, file))
|
|
194
|
+
.filter(file => existsSync(file));
|
|
195
|
+
if (files.length <= MAX_BACKUPS) {
|
|
196
|
+
return; // No cleanup needed
|
|
197
|
+
}
|
|
198
|
+
// Sort by modification time (oldest first)
|
|
199
|
+
files.sort((a, b) => {
|
|
200
|
+
const statA = statSync(a);
|
|
201
|
+
const statB = statSync(b);
|
|
202
|
+
return statA.mtime.getTime() - statB.mtime.getTime();
|
|
203
|
+
});
|
|
204
|
+
// Delete oldest backups
|
|
205
|
+
const toDelete = files.slice(0, files.length - MAX_BACKUPS);
|
|
206
|
+
for (const file of toDelete) {
|
|
207
|
+
try {
|
|
208
|
+
unlinkSync(file);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
// Ignore deletion errors
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
// Ignore cleanup errors - don't fail if cleanup fails
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Delete all backups for a file
|
|
221
|
+
*/
|
|
222
|
+
export async function deleteAllBackups(filepath) {
|
|
223
|
+
try {
|
|
224
|
+
const backups = await listBackups(filepath);
|
|
225
|
+
for (const backup of backups) {
|
|
226
|
+
try {
|
|
227
|
+
if (existsSync(backup.backupPath)) {
|
|
228
|
+
unlinkSync(backup.backupPath);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
// Ignore deletion errors
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
// Ignore cleanup errors
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Find project root (where package.json or .git is)
|
|
242
|
+
*/
|
|
243
|
+
function findProjectRoot(filepath) {
|
|
244
|
+
let currentDir = dirname(filepath);
|
|
245
|
+
const root = currentDir.split(/[/\\]/)[0];
|
|
246
|
+
while (currentDir !== root) {
|
|
247
|
+
if (existsSync(join(currentDir, 'package.json')) ||
|
|
248
|
+
existsSync(join(currentDir, '.git'))) {
|
|
249
|
+
return currentDir;
|
|
250
|
+
}
|
|
251
|
+
const parentDir = dirname(currentDir);
|
|
252
|
+
if (parentDir === currentDir) {
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
currentDir = parentDir;
|
|
256
|
+
}
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=backup.js.map
|