codehere 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -329
- package/dist/application/agents/execution-agent.js +4 -30
- package/dist/application/agents/multi-agent-orchestrator.js +0 -1
- package/dist/application/agents/planning-agent.js +79 -199
- package/dist/application/services/dependency-container.js +9 -20
- package/dist/application/services/intelligent-router.js +56 -64
- package/dist/application/use-cases/ask-question-use-case.js +22 -121
- package/dist/application/use-cases/edit-file-use-case.js +171 -160
- package/dist/application/use-cases/react-orchestration-use-case.js +10 -43
- package/dist/chat.js +130 -54
- package/dist/domain/services/query-intent-classifier.js +3 -36
- package/dist/embed.js +61 -74
- package/dist/index.js +1299 -259
- package/dist/infrastructure/ai/cohere-ai-service.js +9 -78
- package/dist/infrastructure/ai/provider-ai-service.js +18 -121
- package/dist/infrastructure/config/config-manager.js +14 -135
- package/dist/infrastructure/config/product-context.js +66 -0
- package/dist/infrastructure/context/conversation-context.js +1 -86
- package/dist/infrastructure/cost/cost-router.js +104 -0
- package/dist/infrastructure/cost/cost-tracker.js +2 -3
- package/dist/infrastructure/governance/policy-as-code.js +2 -1
- package/dist/infrastructure/hooks/claude-sdk-hook.js +253 -0
- package/dist/infrastructure/hooks/session-analyzer.js +111 -0
- package/dist/infrastructure/observability/execution-tracer.js +7 -180
- package/dist/infrastructure/protocols/mcp-helpers.js +45 -0
- package/dist/infrastructure/protocols/mcp-server-impl.js +286 -0
- package/dist/infrastructure/providers/cohere-provider.js +5 -31
- package/dist/infrastructure/providers/fake-provider.js +0 -8
- package/dist/infrastructure/providers/local-llm-provider.js +2 -8
- package/dist/infrastructure/providers/openai-provider.js +5 -37
- package/dist/infrastructure/providers/openrouter-provider.js +3 -11
- package/dist/infrastructure/safety/pattern-detector.js +133 -0
- package/dist/infrastructure/security/ai-sast-scanner.js +62 -13
- package/dist/infrastructure/security/enhanced-security-gate.js +2 -61
- package/dist/infrastructure/security/input-validator.js +29 -146
- package/dist/infrastructure/security/trust-scorer.js +337 -0
- package/dist/infrastructure/storage/embeddings-path.js +4 -14
- package/dist/infrastructure/storage/plan-repository.js +5 -4
- package/dist/infrastructure/storage/sqlite-decision-repository.js +8 -4
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +11 -23
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +8 -4
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +8 -4
- package/dist/infrastructure/storage/sqlite-memory-repository.js +8 -4
- package/dist/infrastructure/storage/sqlite-pattern-repository.js +8 -4
- package/dist/infrastructure/ux/stream-markdown.js +151 -0
- package/dist/infrastructure/ux/transparency.js +71 -0
- package/dist/infrastructure/validation/agent-feedback.js +12 -57
- package/dist/monitoring.js +4 -3
- package/dist/parallel-processor.js +42 -118
- package/dist/presentation/cli/commands/ask-command.js +39 -80
- package/dist/presentation/cli/commands/config-command.js +1 -1
- package/dist/presentation/cli/commands/cost-command.js +6 -6
- package/dist/presentation/cli/commands/decision-command.js +5 -5
- package/dist/presentation/cli/commands/fix-command.js +4 -44
- package/dist/presentation/cli/commands/help-command.js +151 -100
- package/dist/presentation/cli/commands/hook-command.js +272 -0
- package/dist/presentation/cli/commands/knowledge-command.js +4 -4
- package/dist/presentation/cli/commands/learning-dashboard-command.js +3 -3
- package/dist/presentation/cli/commands/orchestrate-command.js +6 -48
- package/dist/presentation/cli/commands/plan-command.js +1 -1
- package/dist/presentation/cli/commands/product-command.js +193 -16
- package/dist/presentation/cli/commands/report-command.js +353 -0
- package/dist/presentation/cli/commands/run-command.js +3 -3
- package/dist/presentation/cli/commands/scan-tool-command.js +65 -0
- package/dist/presentation/cli/commands/setup-command.js +34 -81
- package/dist/presentation/cli/commands/smart-command.js +50 -172
- package/dist/presentation/cli/commands/status-command.js +304 -119
- package/dist/presentation/cli/commands/trust-command.js +263 -274
- package/dist/presentation/cli/commands/undo-command.js +2 -2
- package/dist/search.js +37 -67
- package/dist/session.js +549 -490
- package/dist/task-verification.js +4 -4
- package/dist/token-optimizer.js +1 -6
- package/dist/ui.js +126 -15
- package/dist/utils/check-api-status.js +30 -12
- package/dist/utils/diff-parser.js +18 -48
- package/dist/verification/compiler.js +12 -11
- package/package.json +24 -37
- package/dist/agents/base.d.ts +0 -107
- package/dist/agents/base.d.ts.map +0 -1
- package/dist/agents/base.js.map +0 -1
- package/dist/agents/orchestrator-model-driven.d.ts +0 -41
- package/dist/agents/orchestrator-model-driven.d.ts.map +0 -1
- package/dist/agents/orchestrator-model-driven.js.map +0 -1
- package/dist/agents/react-orchestrator-agent.d.ts +0 -15
- package/dist/agents/react-orchestrator-agent.d.ts.map +0 -1
- package/dist/agents/react-orchestrator-agent.js.map +0 -1
- package/dist/application/agents/execution-agent.d.ts +0 -79
- package/dist/application/agents/execution-agent.d.ts.map +0 -1
- package/dist/application/agents/execution-agent.js.map +0 -1
- package/dist/application/agents/multi-agent-orchestrator.d.ts +0 -69
- package/dist/application/agents/multi-agent-orchestrator.d.ts.map +0 -1
- package/dist/application/agents/multi-agent-orchestrator.js.map +0 -1
- package/dist/application/agents/planning-agent.d.ts +0 -65
- package/dist/application/agents/planning-agent.d.ts.map +0 -1
- package/dist/application/agents/planning-agent.js.map +0 -1
- package/dist/application/agents/validation-agent.d.ts +0 -68
- package/dist/application/agents/validation-agent.d.ts.map +0 -1
- package/dist/application/agents/validation-agent.js.map +0 -1
- package/dist/application/architectures/plan-and-act.d.ts +0 -94
- package/dist/application/architectures/plan-and-act.d.ts.map +0 -1
- package/dist/application/architectures/plan-and-act.js.map +0 -1
- package/dist/application/index.d.ts +0 -12
- package/dist/application/index.d.ts.map +0 -1
- package/dist/application/index.js.map +0 -1
- package/dist/application/services/agent-factory.d.ts +0 -9
- package/dist/application/services/agent-factory.d.ts.map +0 -1
- package/dist/application/services/agent-factory.js.map +0 -1
- package/dist/application/services/context-importer.d.ts +0 -71
- package/dist/application/services/context-importer.d.ts.map +0 -1
- package/dist/application/services/context-importer.js +0 -436
- package/dist/application/services/context-importer.js.map +0 -1
- package/dist/application/services/context-manager.d.ts +0 -132
- package/dist/application/services/context-manager.d.ts.map +0 -1
- package/dist/application/services/context-manager.js +0 -369
- package/dist/application/services/context-manager.js.map +0 -1
- package/dist/application/services/dependency-container.d.ts +0 -187
- package/dist/application/services/dependency-container.d.ts.map +0 -1
- package/dist/application/services/dependency-container.js.map +0 -1
- package/dist/application/services/git-context-service.d.ts +0 -30
- package/dist/application/services/git-context-service.d.ts.map +0 -1
- package/dist/application/services/git-context-service.js.map +0 -1
- package/dist/application/services/intelligent-router.d.ts +0 -90
- package/dist/application/services/intelligent-router.d.ts.map +0 -1
- package/dist/application/services/intelligent-router.js.map +0 -1
- package/dist/application/services/token-counting-service.d.ts +0 -87
- package/dist/application/services/token-counting-service.d.ts.map +0 -1
- package/dist/application/services/token-counting-service.js +0 -196
- package/dist/application/services/token-counting-service.js.map +0 -1
- package/dist/application/services/tool-executor-service.d.ts +0 -14
- package/dist/application/services/tool-executor-service.d.ts.map +0 -1
- package/dist/application/services/tool-executor-service.js.map +0 -1
- package/dist/application/use-cases/ask-question-use-case.d.ts +0 -67
- package/dist/application/use-cases/ask-question-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/ask-question-use-case.js.map +0 -1
- package/dist/application/use-cases/edit-file-use-case.d.ts +0 -92
- package/dist/application/use-cases/edit-file-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/edit-file-use-case.js.map +0 -1
- package/dist/application/use-cases/explain-file-use-case.d.ts +0 -21
- package/dist/application/use-cases/explain-file-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/explain-file-use-case.js.map +0 -1
- package/dist/application/use-cases/index-codebase-use-case.d.ts +0 -46
- package/dist/application/use-cases/index-codebase-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/index-codebase-use-case.js.map +0 -1
- package/dist/application/use-cases/planning-use-case.d.ts +0 -46
- package/dist/application/use-cases/planning-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/planning-use-case.js.map +0 -1
- package/dist/application/use-cases/react-orchestration-use-case.d.ts +0 -51
- package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/react-orchestration-use-case.js.map +0 -1
- package/dist/application/use-cases/reflexion-use-case.d.ts +0 -24
- package/dist/application/use-cases/reflexion-use-case.d.ts.map +0 -1
- package/dist/application/use-cases/reflexion-use-case.js.map +0 -1
- package/dist/application/workflows/deterministic-workflows.d.ts +0 -61
- package/dist/application/workflows/deterministic-workflows.d.ts.map +0 -1
- package/dist/application/workflows/deterministic-workflows.js.map +0 -1
- package/dist/ast-parser.d 2.ts +0 -55
- package/dist/ast-parser.d.ts +0 -55
- package/dist/ast-parser.d.ts.map +0 -1
- package/dist/ast-parser.js.map +0 -1
- package/dist/cache.d.ts +0 -45
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js.map +0 -1
- package/dist/chat.d.ts +0 -4
- package/dist/chat.d.ts.map +0 -1
- package/dist/chat.js.map +0 -1
- package/dist/code-analysis 2.js +0 -327
- package/dist/code-analysis.d.ts +0 -50
- package/dist/code-analysis.d.ts.map +0 -1
- package/dist/code-analysis.js.map +0 -1
- package/dist/context.d.ts +0 -44
- package/dist/context.d.ts 2.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/docs.d.ts +0 -21
- package/dist/docs.d.ts.map +0 -1
- package/dist/docs.js.map +0 -1
- package/dist/domain/entities/code-chunk.d.ts +0 -26
- package/dist/domain/entities/code-chunk.d.ts.map +0 -1
- package/dist/domain/entities/code-chunk.js.map +0 -1
- package/dist/domain/entities/conversation-context.d.ts +0 -245
- package/dist/domain/entities/conversation-context.d.ts.map +0 -1
- package/dist/domain/entities/conversation-context.js +0 -50
- package/dist/domain/entities/conversation-context.js.map +0 -1
- package/dist/domain/entities/decision.d.ts +0 -37
- package/dist/domain/entities/decision.d.ts.map +0 -1
- package/dist/domain/entities/decision.js.map +0 -1
- package/dist/domain/entities/edit.d.ts +0 -35
- package/dist/domain/entities/edit.d.ts.map +0 -1
- package/dist/domain/entities/edit.js.map +0 -1
- package/dist/domain/entities/knowledge-node.d.ts +0 -83
- package/dist/domain/entities/knowledge-node.d.ts.map +0 -1
- package/dist/domain/entities/knowledge-node.js.map +0 -1
- package/dist/domain/entities/knowledge-preservation.d.ts +0 -42
- package/dist/domain/entities/knowledge-preservation.d.ts.map +0 -1
- package/dist/domain/entities/knowledge-preservation.js.map +0 -1
- package/dist/domain/entities/memory.d.ts +0 -36
- package/dist/domain/entities/memory.d.ts.map +0 -1
- package/dist/domain/entities/memory.js.map +0 -1
- package/dist/domain/entities/pattern.d.ts +0 -49
- package/dist/domain/entities/pattern.d.ts.map +0 -1
- package/dist/domain/entities/pattern.js.map +0 -1
- package/dist/domain/entities/plan.d.ts +0 -42
- package/dist/domain/entities/plan.d.ts.map +0 -1
- package/dist/domain/entities/plan.js.map +0 -1
- package/dist/domain/entities/query.d.ts +0 -17
- package/dist/domain/entities/query.d.ts.map +0 -1
- package/dist/domain/entities/query.js.map +0 -1
- package/dist/domain/entities/task.d.ts +0 -152
- package/dist/domain/entities/task.d.ts.map +0 -1
- package/dist/domain/entities/task.js.map +0 -1
- package/dist/domain/errors/embeddings-not-found-error.d.ts +0 -9
- package/dist/domain/errors/embeddings-not-found-error.d.ts.map +0 -1
- package/dist/domain/errors/embeddings-not-found-error.js.map +0 -1
- package/dist/domain/index.d.ts +0 -16
- package/dist/domain/index.d.ts.map +0 -1
- package/dist/domain/index.js.map +0 -1
- package/dist/domain/interfaces/ai-service.interface.d.ts +0 -72
- package/dist/domain/interfaces/ai-service.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/ai-service.interface.js.map +0 -1
- package/dist/domain/interfaces/code-analyzer.interface.d.ts +0 -38
- package/dist/domain/interfaces/code-analyzer.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/code-analyzer.interface.js.map +0 -1
- package/dist/domain/interfaces/context-repository.interface.d.ts +0 -71
- package/dist/domain/interfaces/context-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/context-repository.interface.js +0 -10
- package/dist/domain/interfaces/context-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/decision-repository.interface.d.ts +0 -51
- package/dist/domain/interfaces/decision-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/decision-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/embedding-repository.interface.d.ts +0 -33
- package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/embedding-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts +0 -91
- package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/knowledge-graph-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts +0 -50
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/memory-repository.interface.d.ts +0 -49
- package/dist/domain/interfaces/memory-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/memory-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/pattern-repository.interface.d.ts +0 -48
- package/dist/domain/interfaces/pattern-repository.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/pattern-repository.interface.js.map +0 -1
- package/dist/domain/interfaces/verification-service.interface.d.ts +0 -20
- package/dist/domain/interfaces/verification-service.interface.d.ts.map +0 -1
- package/dist/domain/interfaces/verification-service.interface.js.map +0 -1
- package/dist/domain/services/codebase-detector.d.ts +0 -18
- package/dist/domain/services/codebase-detector.d.ts.map +0 -1
- package/dist/domain/services/codebase-detector.js.map +0 -1
- package/dist/domain/services/cross-team-pattern-sharing.d.ts +0 -65
- package/dist/domain/services/cross-team-pattern-sharing.d.ts.map +0 -1
- package/dist/domain/services/cross-team-pattern-sharing.js.map +0 -1
- package/dist/domain/services/decision-recorder.d.ts +0 -76
- package/dist/domain/services/decision-recorder.d.ts.map +0 -1
- package/dist/domain/services/decision-recorder.js.map +0 -1
- package/dist/domain/services/decision-retriever.d.ts +0 -75
- package/dist/domain/services/decision-retriever.d.ts.map +0 -1
- package/dist/domain/services/decision-retriever.js.map +0 -1
- package/dist/domain/services/environment-mode-manager.d.ts +0 -12
- package/dist/domain/services/environment-mode-manager.d.ts.map +0 -1
- package/dist/domain/services/environment-mode-manager.js.map +0 -1
- package/dist/domain/services/graded-memory-activation.d.ts +0 -37
- package/dist/domain/services/graded-memory-activation.d.ts.map +0 -1
- package/dist/domain/services/graded-memory-activation.js.map +0 -1
- package/dist/domain/services/knowledge-access.d.ts +0 -63
- package/dist/domain/services/knowledge-access.d.ts.map +0 -1
- package/dist/domain/services/knowledge-access.js.map +0 -1
- package/dist/domain/services/knowledge-extractor.d.ts +0 -54
- package/dist/domain/services/knowledge-extractor.d.ts.map +0 -1
- package/dist/domain/services/knowledge-extractor.js.map +0 -1
- package/dist/domain/services/knowledge-graph-builder.d.ts +0 -70
- package/dist/domain/services/knowledge-graph-builder.d.ts.map +0 -1
- package/dist/domain/services/knowledge-graph-builder.js.map +0 -1
- package/dist/domain/services/knowledge-graph-query.d.ts +0 -69
- package/dist/domain/services/knowledge-graph-query.d.ts.map +0 -1
- package/dist/domain/services/knowledge-graph-query.js.map +0 -1
- package/dist/domain/services/memory-retriever.d.ts +0 -30
- package/dist/domain/services/memory-retriever.d.ts.map +0 -1
- package/dist/domain/services/memory-retriever.js.map +0 -1
- package/dist/domain/services/memory-synthesizer.d.ts +0 -57
- package/dist/domain/services/memory-synthesizer.d.ts.map +0 -1
- package/dist/domain/services/memory-synthesizer.js.map +0 -1
- package/dist/domain/services/pattern-extractor.d.ts +0 -108
- package/dist/domain/services/pattern-extractor.d.ts.map +0 -1
- package/dist/domain/services/pattern-extractor.js.map +0 -1
- package/dist/domain/services/query-intent-classifier.d.ts +0 -16
- package/dist/domain/services/query-intent-classifier.d.ts.map +0 -1
- package/dist/domain/services/query-intent-classifier.js.map +0 -1
- package/dist/domain/services/react-loop.d.ts +0 -52
- package/dist/domain/services/react-loop.d.ts.map +0 -1
- package/dist/domain/services/react-loop.js.map +0 -1
- package/dist/domain/services/risk-tier-detector.d.ts +0 -17
- package/dist/domain/services/risk-tier-detector.d.ts.map +0 -1
- package/dist/domain/services/risk-tier-detector.js.map +0 -1
- package/dist/edit.d.ts +0 -26
- package/dist/edit.d.ts 2.map +0 -1
- package/dist/edit.d.ts.map +0 -1
- package/dist/edit.js.map +0 -1
- package/dist/embed.d 2.ts +0 -14
- package/dist/embed.d.ts +0 -14
- package/dist/embed.d.ts.map +0 -1
- package/dist/embed.js.map +0 -1
- package/dist/error-handler.d 2.ts +0 -77
- package/dist/error-handler.d.ts +0 -77
- package/dist/error-handler.d.ts.map +0 -1
- package/dist/error-handler.js.map +0 -1
- package/dist/formatter 2.js +0 -168
- package/dist/formatter.d.ts +0 -25
- package/dist/formatter.d.ts 2.map +0 -1
- package/dist/formatter.d.ts.map +0 -1
- package/dist/formatter.js.map +0 -1
- package/dist/git 2.js +0 -198
- package/dist/git.d 2.ts +0 -55
- package/dist/git.d.ts +0 -55
- package/dist/git.d.ts.map +0 -1
- package/dist/git.js.map +0 -1
- package/dist/index 2.d.ts +0 -16
- package/dist/index 2.d.ts.map +0 -1
- package/dist/index 2.js +0 -429
- package/dist/index 2.js.map +0 -1
- package/dist/index-backup-before-lazy-loading.d.ts +0 -3
- package/dist/index-backup-before-lazy-loading.d.ts.map +0 -1
- package/dist/index-backup-before-lazy-loading.js +0 -1551
- package/dist/index-backup-before-lazy-loading.js.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts 2.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js 2.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts +0 -71
- package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +0 -1
- package/dist/infrastructure/ai/cohere-ai-service.js.map +0 -1
- package/dist/infrastructure/ai/command-r-evaluation.d.ts +0 -42
- package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +0 -1
- package/dist/infrastructure/ai/command-r-evaluation.js.map +0 -1
- package/dist/infrastructure/ai/model-config.d.ts +0 -47
- package/dist/infrastructure/ai/model-config.d.ts.map +0 -1
- package/dist/infrastructure/ai/model-config.js.map +0 -1
- package/dist/infrastructure/ai/provider-ai-service.d.ts +0 -67
- package/dist/infrastructure/ai/provider-ai-service.d.ts.map +0 -1
- package/dist/infrastructure/ai/provider-ai-service.js.map +0 -1
- package/dist/infrastructure/cache/embedding-cache.d.ts +0 -58
- package/dist/infrastructure/cache/embedding-cache.d.ts.map +0 -1
- package/dist/infrastructure/cache/embedding-cache.js.map +0 -1
- package/dist/infrastructure/cache/query-result-cache.d.ts +0 -27
- package/dist/infrastructure/cache/query-result-cache.d.ts.map +0 -1
- package/dist/infrastructure/cache/query-result-cache.js.map +0 -1
- package/dist/infrastructure/cache/response-cache.d.ts +0 -18
- package/dist/infrastructure/cache/response-cache.d.ts.map +0 -1
- package/dist/infrastructure/cache/response-cache.js.map +0 -1
- package/dist/infrastructure/cache/security-scan-cache.d.ts +0 -16
- package/dist/infrastructure/cache/security-scan-cache.d.ts.map +0 -1
- package/dist/infrastructure/cache/security-scan-cache.js.map +0 -1
- package/dist/infrastructure/chunking/ast-code-chunker.d.ts +0 -12
- package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +0 -1
- package/dist/infrastructure/chunking/ast-code-chunker.js.map +0 -1
- package/dist/infrastructure/chunking/code-aware-chunker.d.ts +0 -63
- package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +0 -1
- package/dist/infrastructure/chunking/code-aware-chunker.js.map +0 -1
- package/dist/infrastructure/completion/bash-completion.d.ts +0 -7
- package/dist/infrastructure/completion/bash-completion.d.ts.map +0 -1
- package/dist/infrastructure/completion/bash-completion.js.map +0 -1
- package/dist/infrastructure/completion/fish-completion.d.ts +0 -7
- package/dist/infrastructure/completion/fish-completion.d.ts.map +0 -1
- package/dist/infrastructure/completion/fish-completion.js.map +0 -1
- package/dist/infrastructure/completion/zsh-completion.d.ts +0 -7
- package/dist/infrastructure/completion/zsh-completion.d.ts.map +0 -1
- package/dist/infrastructure/completion/zsh-completion.js.map +0 -1
- package/dist/infrastructure/config/config-manager.d.ts +0 -158
- package/dist/infrastructure/config/config-manager.d.ts.map +0 -1
- package/dist/infrastructure/config/config-manager.js.map +0 -1
- package/dist/infrastructure/context/context-compressor.d.ts +0 -94
- package/dist/infrastructure/context/context-compressor.d.ts.map +0 -1
- package/dist/infrastructure/context/context-compressor.js.map +0 -1
- package/dist/infrastructure/context/conversation-context.d.ts +0 -82
- package/dist/infrastructure/context/conversation-context.d.ts.map +0 -1
- package/dist/infrastructure/context/conversation-context.js.map +0 -1
- package/dist/infrastructure/context/direct-context-provider.d.ts +0 -18
- package/dist/infrastructure/context/direct-context-provider.d.ts.map +0 -1
- package/dist/infrastructure/context/direct-context-provider.js +0 -222
- package/dist/infrastructure/context/direct-context-provider.js.map +0 -1
- package/dist/infrastructure/context/git-context-provider.d.ts +0 -30
- package/dist/infrastructure/context/git-context-provider.d.ts.map +0 -1
- package/dist/infrastructure/context/git-context-provider.js +0 -140
- package/dist/infrastructure/context/git-context-provider.js.map +0 -1
- package/dist/infrastructure/context/project-context-loader.d.ts +0 -35
- package/dist/infrastructure/context/project-context-loader.d.ts.map +0 -1
- package/dist/infrastructure/context/project-context-loader.js +0 -184
- package/dist/infrastructure/context/project-context-loader.js.map +0 -1
- package/dist/infrastructure/context/session-manager.d.ts +0 -42
- package/dist/infrastructure/context/session-manager.d.ts.map +0 -1
- package/dist/infrastructure/context/session-manager.js.map +0 -1
- package/dist/infrastructure/cost/cost-tracker.d.ts +0 -91
- package/dist/infrastructure/cost/cost-tracker.d.ts.map +0 -1
- package/dist/infrastructure/cost/cost-tracker.js.map +0 -1
- package/dist/infrastructure/cost/session-token-tracker.d.ts +0 -68
- package/dist/infrastructure/cost/session-token-tracker.d.ts.map +0 -1
- package/dist/infrastructure/cost/session-token-tracker.js +0 -178
- package/dist/infrastructure/cost/session-token-tracker.js.map +0 -1
- package/dist/infrastructure/cost-calculator.d.ts +0 -34
- package/dist/infrastructure/cost-calculator.d.ts.map +0 -1
- package/dist/infrastructure/cost-calculator.js +0 -145
- package/dist/infrastructure/cost-calculator.js.map +0 -1
- package/dist/infrastructure/cost-estimator.d.ts +0 -48
- package/dist/infrastructure/cost-estimator.d.ts.map +0 -1
- package/dist/infrastructure/cost-estimator.js +0 -201
- package/dist/infrastructure/cost-estimator.js.map +0 -1
- package/dist/infrastructure/file-scanner/file-scanner.d.ts +0 -31
- package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +0 -1
- package/dist/infrastructure/file-scanner/file-scanner.js.map +0 -1
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts +0 -105
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +0 -1
- package/dist/infrastructure/governance/nist-ai-rmf.js.map +0 -1
- package/dist/infrastructure/governance/policy-as-code.d.ts +0 -88
- package/dist/infrastructure/governance/policy-as-code.d.ts.map +0 -1
- package/dist/infrastructure/governance/policy-as-code.js.map +0 -1
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +0 -136
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +0 -1
- package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +0 -1
- package/dist/infrastructure/index.d.ts +0 -7
- package/dist/infrastructure/index.d.ts.map +0 -1
- package/dist/infrastructure/index.js.map +0 -1
- package/dist/infrastructure/observability/execution-tracer.d.ts +0 -130
- package/dist/infrastructure/observability/execution-tracer.d.ts.map +0 -1
- package/dist/infrastructure/observability/execution-tracer.js.map +0 -1
- package/dist/infrastructure/observability/prompt-versioner.d.ts +0 -67
- package/dist/infrastructure/observability/prompt-versioner.d.ts.map +0 -1
- package/dist/infrastructure/observability/prompt-versioner.js.map +0 -1
- package/dist/infrastructure/protocols/a2a-metadata.d.ts +0 -278
- package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +0 -1
- package/dist/infrastructure/protocols/a2a-metadata.js.map +0 -1
- package/dist/infrastructure/protocols/a2a-protocol.d.ts +0 -132
- package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +0 -1
- package/dist/infrastructure/protocols/a2a-protocol.js.map +0 -1
- package/dist/infrastructure/protocols/mcp-oauth.d.ts +0 -91
- package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +0 -1
- package/dist/infrastructure/protocols/mcp-oauth.js.map +0 -1
- package/dist/infrastructure/protocols/mcp-server.d.ts +0 -126
- package/dist/infrastructure/protocols/mcp-server.d.ts.map +0 -1
- package/dist/infrastructure/protocols/mcp-server.js.map +0 -1
- package/dist/infrastructure/protocols/streaming-handler.d.ts +0 -57
- package/dist/infrastructure/protocols/streaming-handler.d.ts.map +0 -1
- package/dist/infrastructure/protocols/streaming-handler.js.map +0 -1
- package/dist/infrastructure/providers/cohere-provider.d.ts +0 -39
- package/dist/infrastructure/providers/cohere-provider.d.ts.map +0 -1
- package/dist/infrastructure/providers/cohere-provider.js.map +0 -1
- package/dist/infrastructure/providers/fake-provider.d.ts +0 -43
- package/dist/infrastructure/providers/fake-provider.d.ts.map +0 -1
- package/dist/infrastructure/providers/fake-provider.js.map +0 -1
- package/dist/infrastructure/providers/local-llm-provider.d.ts +0 -49
- package/dist/infrastructure/providers/local-llm-provider.d.ts.map +0 -1
- package/dist/infrastructure/providers/local-llm-provider.js.map +0 -1
- package/dist/infrastructure/providers/model-config.types.d.ts +0 -70
- package/dist/infrastructure/providers/model-config.types.d.ts.map +0 -1
- package/dist/infrastructure/providers/model-config.types.js.map +0 -1
- package/dist/infrastructure/providers/model-provider.interface.d.ts +0 -113
- package/dist/infrastructure/providers/model-provider.interface.d.ts.map +0 -1
- package/dist/infrastructure/providers/model-provider.interface.js.map +0 -1
- package/dist/infrastructure/providers/openai-provider.d.ts +0 -38
- package/dist/infrastructure/providers/openai-provider.d.ts.map +0 -1
- package/dist/infrastructure/providers/openai-provider.js.map +0 -1
- package/dist/infrastructure/providers/openrouter-provider.d.ts +0 -42
- package/dist/infrastructure/providers/openrouter-provider.d.ts.map +0 -1
- package/dist/infrastructure/providers/openrouter-provider.js.map +0 -1
- package/dist/infrastructure/providers/operation-provider-resolver.d.ts +0 -48
- package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +0 -1
- package/dist/infrastructure/providers/operation-provider-resolver.js.map +0 -1
- package/dist/infrastructure/providers/provider-config-loader.d.ts +0 -37
- package/dist/infrastructure/providers/provider-config-loader.d.ts.map +0 -1
- package/dist/infrastructure/providers/provider-config-loader.js.map +0 -1
- package/dist/infrastructure/providers/provider-registry.d.ts +0 -53
- package/dist/infrastructure/providers/provider-registry.d.ts.map +0 -1
- package/dist/infrastructure/providers/provider-registry.js.map +0 -1
- package/dist/infrastructure/security/ai-sast-scanner.d.ts +0 -59
- package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +0 -1
- package/dist/infrastructure/security/ai-sast-scanner.js.map +0 -1
- package/dist/infrastructure/security/docker-sandbox.d.ts +0 -57
- package/dist/infrastructure/security/docker-sandbox.d.ts.map +0 -1
- package/dist/infrastructure/security/docker-sandbox.js.map +0 -1
- package/dist/infrastructure/security/enhanced-security-gate.d.ts +0 -66
- package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +0 -1
- package/dist/infrastructure/security/enhanced-security-gate.js.map +0 -1
- package/dist/infrastructure/security/input-validator.d.ts +0 -46
- package/dist/infrastructure/security/input-validator.d.ts.map +0 -1
- package/dist/infrastructure/security/input-validator.js.map +0 -1
- package/dist/infrastructure/security/license-scanner.d.ts +0 -55
- package/dist/infrastructure/security/license-scanner.d.ts.map +0 -1
- package/dist/infrastructure/security/license-scanner.js.map +0 -1
- package/dist/infrastructure/security/provider-bias-detector.d.ts +0 -53
- package/dist/infrastructure/security/provider-bias-detector.d.ts.map +0 -1
- package/dist/infrastructure/security/provider-bias-detector.js.map +0 -1
- package/dist/infrastructure/security/sandbox-executor.d.ts +0 -34
- package/dist/infrastructure/security/sandbox-executor.d.ts.map +0 -1
- package/dist/infrastructure/security/sandbox-executor.js.map +0 -1
- package/dist/infrastructure/serialization/toon-serializer.d.ts +0 -45
- package/dist/infrastructure/serialization/toon-serializer.d.ts.map +0 -1
- package/dist/infrastructure/serialization/toon-serializer.js.map +0 -1
- package/dist/infrastructure/storage/embeddings-path.d.ts +0 -18
- package/dist/infrastructure/storage/embeddings-path.d.ts.map +0 -1
- package/dist/infrastructure/storage/embeddings-path.js.map +0 -1
- package/dist/infrastructure/storage/memory-stream-service.d.ts +0 -47
- package/dist/infrastructure/storage/memory-stream-service.d.ts.map +0 -1
- package/dist/infrastructure/storage/memory-stream-service.js.map +0 -1
- package/dist/infrastructure/storage/plan-repository.d.ts +0 -40
- package/dist/infrastructure/storage/plan-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/plan-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-context-repository.d.ts +0 -95
- package/dist/infrastructure/storage/sqlite-context-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-context-repository.js +0 -467
- package/dist/infrastructure/storage/sqlite-context-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +0 -29
- package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-decision-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +0 -47
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +0 -41
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +0 -29
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +0 -40
- package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-memory-repository.js.map +0 -1
- package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +0 -25
- package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +0 -1
- package/dist/infrastructure/storage/task-helpers.d.ts +0 -69
- package/dist/infrastructure/storage/task-helpers.d.ts.map +0 -1
- package/dist/infrastructure/storage/task-helpers.js.map +0 -1
- package/dist/infrastructure/storage/task-repository.d.ts +0 -67
- package/dist/infrastructure/storage/task-repository.d.ts.map +0 -1
- package/dist/infrastructure/storage/task-repository.js.map +0 -1
- package/dist/infrastructure/telemetry/telemetry-service.d.ts +0 -74
- package/dist/infrastructure/telemetry/telemetry-service.d.ts.map +0 -1
- package/dist/infrastructure/telemetry/telemetry-service.js.map +0 -1
- package/dist/infrastructure/ux/appropriate-friction.d.ts +0 -77
- package/dist/infrastructure/ux/appropriate-friction.d.ts.map +0 -1
- package/dist/infrastructure/ux/appropriate-friction.js.map +0 -1
- package/dist/infrastructure/ux/bi-directional-learning.d.ts +0 -131
- package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +0 -1
- package/dist/infrastructure/ux/bi-directional-learning.js.map +0 -1
- package/dist/infrastructure/ux/capability-boundaries.d.ts +0 -22
- package/dist/infrastructure/ux/capability-boundaries.d.ts.map +0 -1
- package/dist/infrastructure/ux/capability-boundaries.js.map +0 -1
- package/dist/infrastructure/ux/cli-style-guide.d.ts +0 -105
- package/dist/infrastructure/ux/cli-style-guide.d.ts.map +0 -1
- package/dist/infrastructure/ux/cli-style-guide.js +0 -220
- package/dist/infrastructure/ux/cli-style-guide.js.map +0 -1
- package/dist/infrastructure/ux/comprehensive-formatter.d.ts +0 -21
- package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +0 -1
- package/dist/infrastructure/ux/comprehensive-formatter.js.map +0 -1
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +0 -11
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +0 -1
- package/dist/infrastructure/ux/contextual-feature-discovery.js.map +0 -1
- package/dist/infrastructure/ux/expectation-management.d.ts +0 -98
- package/dist/infrastructure/ux/expectation-management.d.ts.map +0 -1
- package/dist/infrastructure/ux/expectation-management.js.map +0 -1
- package/dist/infrastructure/ux/feature-discovery.d.ts +0 -17
- package/dist/infrastructure/ux/feature-discovery.d.ts.map +0 -1
- package/dist/infrastructure/ux/feature-discovery.js.map +0 -1
- package/dist/infrastructure/ux/feedback-prompt.d.ts +0 -26
- package/dist/infrastructure/ux/feedback-prompt.d.ts.map +0 -1
- package/dist/infrastructure/ux/feedback-prompt.js.map +0 -1
- package/dist/infrastructure/ux/hitl-validation.d.ts +0 -139
- package/dist/infrastructure/ux/hitl-validation.d.ts.map +0 -1
- package/dist/infrastructure/ux/hitl-validation.js.map +0 -1
- package/dist/infrastructure/ux/progress-indicator.d.ts +0 -53
- package/dist/infrastructure/ux/progress-indicator.d.ts.map +0 -1
- package/dist/infrastructure/ux/progress-indicator.js.map +0 -1
- package/dist/infrastructure/ux/progressive-disclosure.d.ts +0 -84
- package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +0 -1
- package/dist/infrastructure/ux/progressive-disclosure.js.map +0 -1
- package/dist/infrastructure/ux/review-checkpoint.d.ts +0 -37
- package/dist/infrastructure/ux/review-checkpoint.d.ts.map +0 -1
- package/dist/infrastructure/ux/review-checkpoint.js.map +0 -1
- package/dist/infrastructure/ux/staged-feature-intro.d.ts +0 -22
- package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +0 -1
- package/dist/infrastructure/ux/staged-feature-intro.js.map +0 -1
- package/dist/infrastructure/ux/syntax-highlighter.d.ts +0 -20
- package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +0 -1
- package/dist/infrastructure/ux/syntax-highlighter.js.map +0 -1
- package/dist/infrastructure/ux/team-standards.d.ts +0 -94
- package/dist/infrastructure/ux/team-standards.d.ts.map +0 -1
- package/dist/infrastructure/ux/team-standards.js.map +0 -1
- package/dist/infrastructure/validation/agent-feedback.d.ts +0 -57
- package/dist/infrastructure/validation/agent-feedback.d.ts.map +0 -1
- package/dist/infrastructure/validation/agent-feedback.js.map +0 -1
- package/dist/infrastructure/validation/agent-validation-helper.d.ts +0 -75
- package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +0 -1
- package/dist/infrastructure/validation/agent-validation-helper.js.map +0 -1
- package/dist/infrastructure/validation/hallucination-detector.d.ts +0 -121
- package/dist/infrastructure/validation/hallucination-detector.d.ts.map +0 -1
- package/dist/infrastructure/validation/hallucination-detector.js +0 -388
- package/dist/infrastructure/validation/hallucination-detector.js.map +0 -1
- package/dist/infrastructure/validation/review-handler.d.ts +0 -26
- package/dist/infrastructure/validation/review-handler.d.ts.map +0 -1
- package/dist/infrastructure/validation/review-handler.js.map +0 -1
- package/dist/infrastructure/validation/summary-aggregator.d.ts +0 -45
- package/dist/infrastructure/validation/summary-aggregator.d.ts.map +0 -1
- package/dist/infrastructure/validation/summary-aggregator.js.map +0 -1
- package/dist/infrastructure/validation/summary-extractor.d.ts +0 -24
- package/dist/infrastructure/validation/summary-extractor.d.ts.map +0 -1
- package/dist/infrastructure/validation/summary-extractor.js.map +0 -1
- package/dist/infrastructure/validation/trace-summary.d.ts +0 -45
- package/dist/infrastructure/validation/trace-summary.d.ts.map +0 -1
- package/dist/infrastructure/validation/trace-summary.js.map +0 -1
- package/dist/infrastructure/verification/verification-service.d.ts +0 -12
- package/dist/infrastructure/verification/verification-service.d.ts.map +0 -1
- package/dist/infrastructure/verification/verification-service.js.map +0 -1
- package/dist/infrastructure/xai/attention-visualizer.d.ts +0 -71
- package/dist/infrastructure/xai/attention-visualizer.d.ts.map +0 -1
- package/dist/infrastructure/xai/attention-visualizer.js.map +0 -1
- package/dist/infrastructure/xai/cot-visualizer.d.ts +0 -103
- package/dist/infrastructure/xai/cot-visualizer.d.ts.map +0 -1
- package/dist/infrastructure/xai/cot-visualizer.js.map +0 -1
- package/dist/infrastructure/xai/decision-tree-log.d.ts +0 -100
- package/dist/infrastructure/xai/decision-tree-log.d.ts.map +0 -1
- package/dist/infrastructure/xai/decision-tree-log.js.map +0 -1
- package/dist/infrastructure/xai/interactive-xai.d.ts +0 -104
- package/dist/infrastructure/xai/interactive-xai.d.ts.map +0 -1
- package/dist/infrastructure/xai/interactive-xai.js.map +0 -1
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +0 -77
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +0 -1
- package/dist/infrastructure/xai/uncertainty-quantifier.js.map +0 -1
- package/dist/intelligent-retrieval 2.js +0 -272
- package/dist/intelligent-retrieval.d.ts +0 -41
- package/dist/intelligent-retrieval.d.ts 2.map +0 -1
- package/dist/intelligent-retrieval.d.ts.map +0 -1
- package/dist/intelligent-retrieval.js.map +0 -1
- package/dist/intent/classifier.d.ts +0 -6
- package/dist/intent/classifier.d.ts.map +0 -1
- package/dist/intent/classifier.js.map +0 -1
- package/dist/intent/context.d.ts +0 -4
- package/dist/intent/context.d.ts.map +0 -1
- package/dist/intent/context.js.map +0 -1
- package/dist/iterative-refinement.d.ts +0 -31
- package/dist/iterative-refinement.d.ts.map +0 -1
- package/dist/iterative-refinement.js.map +0 -1
- package/dist/learning.d.ts +0 -69
- package/dist/learning.d.ts.map +0 -1
- package/dist/learning.js.map +0 -1
- package/dist/log.d.ts +0 -4
- package/dist/log.d.ts.map +0 -1
- package/dist/log.js 2.map +0 -1
- package/dist/log.js.map +0 -1
- package/dist/migrate.d.ts +0 -33
- package/dist/migrate.d.ts.map +0 -1
- package/dist/migrate.js 2.map +0 -1
- package/dist/migrate.js.map +0 -1
- package/dist/monitoring.d.ts +0 -75
- package/dist/monitoring.d.ts.map +0 -1
- package/dist/monitoring.js.map +0 -1
- package/dist/parallel-processor.d 2.ts +0 -44
- package/dist/parallel-processor.d.ts +0 -44
- package/dist/parallel-processor.d.ts.map +0 -1
- package/dist/parallel-processor.js.map +0 -1
- package/dist/planner.d.ts +0 -47
- package/dist/planner.d.ts.map +0 -1
- package/dist/planner.js.map +0 -1
- package/dist/policy.d 2.ts +0 -3
- package/dist/policy.d.ts +0 -3
- package/dist/policy.d.ts.map +0 -1
- package/dist/policy.js.map +0 -1
- package/dist/presentation/cli/commands/ask-command.d.ts +0 -9
- package/dist/presentation/cli/commands/ask-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/ask-command.js.map +0 -1
- package/dist/presentation/cli/commands/audit-command.d.ts +0 -13
- package/dist/presentation/cli/commands/audit-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/audit-command.js +0 -96
- package/dist/presentation/cli/commands/audit-command.js.map +0 -1
- package/dist/presentation/cli/commands/config-command.d.ts +0 -9
- package/dist/presentation/cli/commands/config-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/config-command.js.map +0 -1
- package/dist/presentation/cli/commands/context-command.d.ts +0 -32
- package/dist/presentation/cli/commands/context-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/context-command.js +0 -295
- package/dist/presentation/cli/commands/context-command.js.map +0 -1
- package/dist/presentation/cli/commands/context-helper.d.ts +0 -16
- package/dist/presentation/cli/commands/context-helper.d.ts.map +0 -1
- package/dist/presentation/cli/commands/context-helper.js +0 -88
- package/dist/presentation/cli/commands/context-helper.js.map +0 -1
- package/dist/presentation/cli/commands/cost-command.d.ts +0 -8
- package/dist/presentation/cli/commands/cost-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/cost-command.js.map +0 -1
- package/dist/presentation/cli/commands/decision-command.d.ts +0 -12
- package/dist/presentation/cli/commands/decision-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/decision-command.js.map +0 -1
- package/dist/presentation/cli/commands/docs-command.d.ts +0 -14
- package/dist/presentation/cli/commands/docs-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/docs-command.js.map +0 -1
- package/dist/presentation/cli/commands/fix-command.d.ts +0 -15
- package/dist/presentation/cli/commands/fix-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/fix-command.js.map +0 -1
- package/dist/presentation/cli/commands/help-command.d.ts +0 -9
- package/dist/presentation/cli/commands/help-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/help-command.js.map +0 -1
- package/dist/presentation/cli/commands/knowledge-command.d.ts +0 -13
- package/dist/presentation/cli/commands/knowledge-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/knowledge-command.js.map +0 -1
- package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +0 -8
- package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/learning-dashboard-command.js.map +0 -1
- package/dist/presentation/cli/commands/models-command.d.ts +0 -13
- package/dist/presentation/cli/commands/models-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/models-command.js.map +0 -1
- package/dist/presentation/cli/commands/orchestrate-command.d.ts +0 -10
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/orchestrate-command.js.map +0 -1
- package/dist/presentation/cli/commands/plan-command.d.ts +0 -9
- package/dist/presentation/cli/commands/plan-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/plan-command.js.map +0 -1
- package/dist/presentation/cli/commands/product-command.d.ts +0 -14
- package/dist/presentation/cli/commands/product-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/product-command.js.map +0 -1
- package/dist/presentation/cli/commands/react-command.d.ts +0 -8
- package/dist/presentation/cli/commands/react-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/react-command.js.map +0 -1
- package/dist/presentation/cli/commands/review-command.d.ts +0 -14
- package/dist/presentation/cli/commands/review-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/review-command.js.map +0 -1
- package/dist/presentation/cli/commands/run-command.d.ts +0 -13
- package/dist/presentation/cli/commands/run-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/run-command.js.map +0 -1
- package/dist/presentation/cli/commands/setup-command.d.ts +0 -10
- package/dist/presentation/cli/commands/setup-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/setup-command.js.map +0 -1
- package/dist/presentation/cli/commands/smart-command.d.ts +0 -11
- package/dist/presentation/cli/commands/smart-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/smart-command.js.map +0 -1
- package/dist/presentation/cli/commands/status-command.d.ts +0 -14
- package/dist/presentation/cli/commands/status-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/status-command.js.map +0 -1
- package/dist/presentation/cli/commands/suggest-command.d.ts +0 -11
- package/dist/presentation/cli/commands/suggest-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/suggest-command.js.map +0 -1
- package/dist/presentation/cli/commands/trace-command.d.ts +0 -8
- package/dist/presentation/cli/commands/trace-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/trace-command.js.map +0 -1
- package/dist/presentation/cli/commands/trust-command.d.ts +0 -28
- package/dist/presentation/cli/commands/trust-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/trust-command.js.map +0 -1
- package/dist/presentation/cli/commands/undo-command.d.ts +0 -8
- package/dist/presentation/cli/commands/undo-command.d.ts.map +0 -1
- package/dist/presentation/cli/commands/undo-command.js.map +0 -1
- package/dist/presentation/cli/error-display.d.ts +0 -25
- package/dist/presentation/cli/error-display.d.ts.map +0 -1
- package/dist/presentation/cli/error-display.js.map +0 -1
- package/dist/query-optimizer.d.ts +0 -32
- package/dist/query-optimizer.d.ts.map +0 -1
- package/dist/query-optimizer.js.map +0 -1
- package/dist/refactor.d.ts +0 -27
- package/dist/refactor.d.ts.map +0 -1
- package/dist/refactor.js.map +0 -1
- package/dist/review 2.js +0 -206
- package/dist/review.d.ts +0 -31
- package/dist/review.d.ts.map +0 -1
- package/dist/review.js.map +0 -1
- package/dist/search.d.ts +0 -19
- package/dist/search.d.ts.map +0 -1
- package/dist/search.js 2.map +0 -1
- package/dist/search.js.map +0 -1
- package/dist/session 2.js +0 -593
- package/dist/session.d.ts +0 -17
- package/dist/session.d.ts 2.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
- package/dist/task-verification 2.js +0 -336
- package/dist/task-verification.d.ts +0 -39
- package/dist/task-verification.d.ts 2.map +0 -1
- package/dist/task-verification.d.ts.map +0 -1
- package/dist/task-verification.js.map +0 -1
- package/dist/test-minimal.d.ts +0 -2
- package/dist/test-minimal.d.ts.map +0 -1
- package/dist/test-minimal.js +0 -2
- package/dist/test-minimal.js.map +0 -1
- package/dist/testgen.d.ts +0 -24
- package/dist/testgen.d.ts.map +0 -1
- package/dist/testgen.js 2.map +0 -1
- package/dist/testgen.js.map +0 -1
- package/dist/token-optimizer.d 2.ts +0 -20
- package/dist/token-optimizer.d.ts +0 -20
- package/dist/token-optimizer.d.ts.map +0 -1
- package/dist/token-optimizer.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -53
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/edit.d.ts +0 -48
- package/dist/tools/edit.d.ts.map +0 -1
- package/dist/tools/edit.js.map +0 -1
- package/dist/tools/executor.d.ts +0 -29
- package/dist/tools/executor.d.ts.map +0 -1
- package/dist/tools/executor.js.map +0 -1
- package/dist/tools/git-tool.d.ts +0 -87
- package/dist/tools/git-tool.d.ts.map +0 -1
- package/dist/tools/git-tool.js.map +0 -1
- package/dist/tools/parser.d.ts +0 -33
- package/dist/tools/parser.d.ts.map +0 -1
- package/dist/tools/parser.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -74
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/search.d.ts +0 -41
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js.map +0 -1
- package/dist/types.d.ts +0 -36
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/ui.d.ts +0 -60
- package/dist/ui.d.ts 2.map +0 -1
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js.map +0 -1
- package/dist/utils/check-api-status.d.ts +0 -12
- package/dist/utils/check-api-status.d.ts.map +0 -1
- package/dist/utils/check-api-status.js.map +0 -1
- package/dist/utils/debug.d.ts +0 -7
- package/dist/utils/debug.d.ts.map +0 -1
- package/dist/utils/debug.js +0 -24
- package/dist/utils/debug.js.map +0 -1
- package/dist/utils/diff-parser.d.ts +0 -22
- package/dist/utils/diff-parser.d.ts.map +0 -1
- package/dist/utils/diff-parser.js.map +0 -1
- package/dist/utils/provider-check.d.ts +0 -21
- package/dist/utils/provider-check.d.ts.map +0 -1
- package/dist/utils/provider-check.js +0 -124
- package/dist/utils/provider-check.js.map +0 -1
- package/dist/utils/version.d.ts +0 -21
- package/dist/utils/version.d.ts.map +0 -1
- package/dist/utils/version.js.map +0 -1
- package/dist/verification/backup.d.ts +0 -30
- package/dist/verification/backup.d.ts.map +0 -1
- package/dist/verification/backup.js.map +0 -1
- package/dist/verification/compiler.d.ts +0 -20
- package/dist/verification/compiler.d.ts.map +0 -1
- package/dist/verification/compiler.js.map +0 -1
- package/dist/verification/index.d.ts +0 -59
- package/dist/verification/index.d.ts.map +0 -1
- package/dist/verification/index.js.map +0 -1
- package/dist/verification/test-runner.d.ts +0 -27
- package/dist/verification/test-runner.d.ts.map +0 -1
- package/dist/verification/test-runner.js.map +0 -1
- package/dist/verify_db.d.ts +0 -2
- package/dist/verify_db.d.ts.map +0 -1
- package/dist/verify_db.js +0 -52
- package/dist/verify_db.js 2.map +0 -1
- package/dist/verify_db.js.map +0 -1
|
@@ -41,132 +41,8 @@ export function validateFilePath(filepath) {
|
|
|
41
41
|
sanitized: errors.length > 0 ? sanitized : undefined,
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Comprehensive prompt injection detection
|
|
46
|
-
* Detects: instruction injection, role-playing, jailbreaks, context manipulation, etc.
|
|
47
|
-
*/
|
|
48
|
-
export function detectPromptInjection(input) {
|
|
49
|
-
const lower = input.toLowerCase();
|
|
50
|
-
// Skip validation for known system prompts (to avoid false positives)
|
|
51
|
-
// System prompts typically start with "You are a [Role] for" or similar patterns
|
|
52
|
-
const isSystemPrompt = /^you are (?:a|an) [a-z]+ (?:agent|assistant|system|service)/i.test(input.trim());
|
|
53
|
-
if (isSystemPrompt) {
|
|
54
|
-
return null; // Don't flag system-generated prompts
|
|
55
|
-
}
|
|
56
|
-
// Critical: Direct instruction override attempts
|
|
57
|
-
const criticalPatterns = [
|
|
58
|
-
{
|
|
59
|
-
pattern: /(?:ignore|forget|disregard|override).*(?:previous|above|earlier|instructions|system|prompt)/i,
|
|
60
|
-
category: 'Instruction Override',
|
|
61
|
-
description: 'Attempt to override system instructions',
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
// More specific: must have explicit role manipulation intent
|
|
65
|
-
// Exclude legitimate system prompts - now handled by isSystemPrompt check above
|
|
66
|
-
pattern: /(?:you are|act as|pretend to be|roleplay as)\s+(?:an?\s+)?(?:admin|root|system|developer|assistant|ai|hacker|malicious|evil)/i,
|
|
67
|
-
category: 'Role-Playing Attack',
|
|
68
|
-
description: 'Attempt to manipulate AI role/identity',
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
pattern: /(?:system|assistant|user):\s*(?:ignore|forget|new instructions|override)/i,
|
|
72
|
-
category: 'Context Manipulation',
|
|
73
|
-
description: 'Attempt to manipulate conversation context',
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
pattern: /(?:jailbreak|danie|ignore all|new instructions|override safety)/i,
|
|
77
|
-
category: 'Jailbreak Attempt',
|
|
78
|
-
description: 'Known jailbreak pattern detected',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
pattern: /(?:<\|im_start\||\[INST\]|###|---).*(?:system|assistant|user).*(?:ignore|override|new)/i,
|
|
82
|
-
category: 'Format Injection',
|
|
83
|
-
description: 'Attempt to inject format tokens',
|
|
84
|
-
},
|
|
85
|
-
];
|
|
86
|
-
// High: Indirect manipulation attempts
|
|
87
|
-
const highPatterns = [
|
|
88
|
-
{
|
|
89
|
-
pattern: /(?:tell me|show me|reveal|expose|leak).*(?:prompt|instructions|system|secret|api key|password)/i,
|
|
90
|
-
category: 'Information Extraction',
|
|
91
|
-
description: 'Attempt to extract sensitive information',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
pattern: /(?:repeat|echo|say back).*(?:everything|all|entire).*(?:above|previous|prompt)/i,
|
|
95
|
-
category: 'Prompt Extraction',
|
|
96
|
-
description: 'Attempt to extract full prompt',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
pattern: /(?:translate|convert|rewrite).*(?:to|as).*(?:base64|hex|binary|code)/i,
|
|
100
|
-
category: 'Encoding Bypass',
|
|
101
|
-
description: 'Attempt to bypass filters via encoding',
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
// More specific: only match direct execution requests, not security analysis mentions
|
|
105
|
-
// Exclude patterns like "analyze code execution" or "code execution vulnerabilities"
|
|
106
|
-
pattern: /(?:please|can you|will you|I want you to|you should|you must).*(?:execute|run|eval|exec).*(?:code|command|script|function|this)/i,
|
|
107
|
-
category: 'Code Execution Request',
|
|
108
|
-
description: 'Request for code execution',
|
|
109
|
-
},
|
|
110
|
-
];
|
|
111
|
-
// Medium: Suspicious patterns
|
|
112
|
-
const mediumPatterns = [
|
|
113
|
-
{
|
|
114
|
-
pattern: /(?:what are|what is).*(?:your|the).*(?:instructions|prompt|system message)/i,
|
|
115
|
-
category: 'Prompt Probing',
|
|
116
|
-
description: 'Probing for system instructions',
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
pattern: /(?:hypothetical|imagine|suppose|what if).*(?:you could|you were|you had)/i,
|
|
120
|
-
category: 'Hypothetical Manipulation',
|
|
121
|
-
description: 'Hypothetical scenario manipulation',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
pattern: /(?:this is|that was).*(?:test|example|practice|drill)/i,
|
|
125
|
-
category: 'Test Bypass',
|
|
126
|
-
description: 'Attempt to bypass restrictions via "test" framing',
|
|
127
|
-
},
|
|
128
|
-
];
|
|
129
|
-
// Check critical patterns first
|
|
130
|
-
for (const { pattern, category, description } of criticalPatterns) {
|
|
131
|
-
if (pattern.test(input)) {
|
|
132
|
-
return {
|
|
133
|
-
detected: true,
|
|
134
|
-
severity: 'critical',
|
|
135
|
-
category,
|
|
136
|
-
pattern: pattern.toString(),
|
|
137
|
-
description,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// Check high severity patterns
|
|
142
|
-
for (const { pattern, category, description } of highPatterns) {
|
|
143
|
-
if (pattern.test(input)) {
|
|
144
|
-
return {
|
|
145
|
-
detected: true,
|
|
146
|
-
severity: 'high',
|
|
147
|
-
category,
|
|
148
|
-
pattern: pattern.toString(),
|
|
149
|
-
description,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// Check medium severity patterns
|
|
154
|
-
for (const { pattern, category, description } of mediumPatterns) {
|
|
155
|
-
if (pattern.test(input)) {
|
|
156
|
-
return {
|
|
157
|
-
detected: true,
|
|
158
|
-
severity: 'medium',
|
|
159
|
-
category,
|
|
160
|
-
pattern: pattern.toString(),
|
|
161
|
-
description,
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
44
|
/**
|
|
168
45
|
* Validate query string to prevent injection
|
|
169
|
-
* Enhanced with prompt injection detection
|
|
170
46
|
*/
|
|
171
47
|
export function validateQuery(query) {
|
|
172
48
|
const errors = [];
|
|
@@ -174,13 +50,6 @@ export function validateQuery(query) {
|
|
|
174
50
|
if (query.includes('\0')) {
|
|
175
51
|
errors.push('Null bytes not allowed in query');
|
|
176
52
|
}
|
|
177
|
-
// Check for prompt injection
|
|
178
|
-
const injectionResult = detectPromptInjection(query);
|
|
179
|
-
if (injectionResult) {
|
|
180
|
-
if (injectionResult.severity === 'critical' || injectionResult.severity === 'high') {
|
|
181
|
-
errors.push(`Prompt injection detected (${injectionResult.severity}): ${injectionResult.description}`);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
53
|
// Check for command injection patterns
|
|
185
54
|
const commandInjectionPatterns = [
|
|
186
55
|
/[;&|`$(){}[\]]/, // Shell metacharacters
|
|
@@ -194,20 +63,13 @@ export function validateQuery(query) {
|
|
|
194
63
|
break;
|
|
195
64
|
}
|
|
196
65
|
}
|
|
197
|
-
// Sanitize query
|
|
198
|
-
let sanitized = query
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
.replace(/javascript:/gi, '') // Remove javascript protocol
|
|
205
|
-
.replace(/on\w+\s*=/gi, ''); // Remove event handlers
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
// For critical prompt injection, don't sanitize - reject entirely
|
|
209
|
-
sanitized = '';
|
|
210
|
-
}
|
|
66
|
+
// Sanitize query
|
|
67
|
+
let sanitized = query
|
|
68
|
+
.replace(/\0/g, '') // Remove null bytes
|
|
69
|
+
.replace(/[;&|`$(){}[\]]/g, '') // Remove shell metacharacters
|
|
70
|
+
.replace(/<script/gi, '<script') // Escape script tags
|
|
71
|
+
.replace(/javascript:/gi, '') // Remove javascript protocol
|
|
72
|
+
.replace(/on\w+\s*=/gi, ''); // Remove event handlers
|
|
211
73
|
// Trim and limit length
|
|
212
74
|
sanitized = sanitized.trim();
|
|
213
75
|
const MAX_QUERY_LENGTH = 10000; // Reasonable limit
|
|
@@ -218,7 +80,7 @@ export function validateQuery(query) {
|
|
|
218
80
|
return {
|
|
219
81
|
valid: errors.length === 0,
|
|
220
82
|
errors,
|
|
221
|
-
sanitized: errors.length > 0
|
|
83
|
+
sanitized: errors.length > 0 ? sanitized : undefined,
|
|
222
84
|
};
|
|
223
85
|
}
|
|
224
86
|
/**
|
|
@@ -266,4 +128,25 @@ export function validateFileContent(content, maxSize = 10 * 1024 * 1024) {
|
|
|
266
128
|
errors,
|
|
267
129
|
};
|
|
268
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Sanitize user input for logging (prevent sensitive data leakage)
|
|
133
|
+
*/
|
|
134
|
+
export function sanitizeForLogging(input) {
|
|
135
|
+
// Remove potential secrets (API keys, tokens, etc.)
|
|
136
|
+
let sanitized = input
|
|
137
|
+
// Remove API keys (Cohere format: alphanumeric, 40+ chars)
|
|
138
|
+
.replace(/[A-Za-z0-9]{40,}/g, '[REDACTED]')
|
|
139
|
+
// Remove email addresses
|
|
140
|
+
.replace(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g, '[EMAIL_REDACTED]')
|
|
141
|
+
// Remove potential tokens
|
|
142
|
+
.replace(/token[=:]\s*[A-Za-z0-9_-]+/gi, 'token=[REDACTED]')
|
|
143
|
+
.replace(/password[=:]\s*[^\s]+/gi, 'password=[REDACTED]')
|
|
144
|
+
.replace(/secret[=:]\s*[^\s]+/gi, 'secret=[REDACTED]');
|
|
145
|
+
// Limit length for logging
|
|
146
|
+
const MAX_LOG_LENGTH = 1000;
|
|
147
|
+
if (sanitized.length > MAX_LOG_LENGTH) {
|
|
148
|
+
sanitized = sanitized.substring(0, MAX_LOG_LENGTH) + '...[TRUNCATED]';
|
|
149
|
+
}
|
|
150
|
+
return sanitized;
|
|
151
|
+
}
|
|
269
152
|
//# sourceMappingURL=input-validator.js.map
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared trust scoring engine — used by CLI, MCP server, and hook handler.
|
|
3
|
+
*
|
|
4
|
+
* Three scanning passes:
|
|
5
|
+
* Pass 1 (comments+regex stripped): Secrets & API keys — string literals visible, comments/regex stripped
|
|
6
|
+
* Pass 2 (fully stripped): Structural patterns — eval, execSync, innerHTML, etc.
|
|
7
|
+
* Stripped to avoid false positives from pattern definitions
|
|
8
|
+
* Pass 3 (instruction scan): Hook-layer patterns on fully stripped code
|
|
9
|
+
*
|
|
10
|
+
* All passes run locally, zero API calls.
|
|
11
|
+
*/
|
|
12
|
+
import { scanPayload } from '../hooks/claude-sdk-hook.js';
|
|
13
|
+
export const CODE_PATTERNS = [
|
|
14
|
+
// Secrets (scan with strings visible — must see inside string literals)
|
|
15
|
+
{ regex: /(?:password|passwd|pass|pwd|secret|api_?key|auth_?token)\s*[:=]\s*['"`][^'"`\s]{4,}['"`]/gi, severity: 'high', category: 'Secrets', description: 'Hardcoded credential', cwe: 'CWE-798', scanRaw: true },
|
|
16
|
+
{ regex: /(?:password|passwd|secret|api.?key|auth.?token)[^\n]*\|\|\s*['"`][^'"`\s]{3,}['"`]/gi, severity: 'high', category: 'Secrets', description: 'Hardcoded fallback credential (env var || literal)', cwe: 'CWE-798', scanRaw: true },
|
|
17
|
+
{ regex: /sk-[a-zA-Z0-9]{32,}|xoxb-[a-zA-Z0-9-]+|ghp_[a-zA-Z0-9]{36,}/i, severity: 'critical', category: 'Secrets', description: 'API key pattern (OpenAI/Slack/GitHub)', cwe: 'CWE-798', scanRaw: true },
|
|
18
|
+
// SQL Injection (scan with strings visible — SQL lives inside string literals)
|
|
19
|
+
// Per-quote-type to allow inner quotes: "SELECT...WHERE name='" + user
|
|
20
|
+
{ regex: /"[^"]*SELECT[^"]*FROM[^"]*WHERE[^"]*"\s*\+/gi, severity: 'critical', category: 'SQL Injection', description: 'SQL query built with string concatenation (double-quoted)', cwe: 'CWE-89', scanRaw: true },
|
|
21
|
+
{ regex: /'[^']*SELECT[^']*FROM[^']*WHERE[^']*'\s*\+/gi, severity: 'critical', category: 'SQL Injection', description: 'SQL query built with string concatenation (single-quoted)', cwe: 'CWE-89', scanRaw: true },
|
|
22
|
+
{ regex: /query\s*\(\s*['"`][^'"`]*\$\{|execute\s*\([`'"]\s*SELECT.*\$\{/gi, severity: 'critical', category: 'SQL Injection', description: 'String interpolation in SQL query', cwe: 'CWE-89', scanRaw: true },
|
|
23
|
+
{ regex: /pool\.query\s*\([^,)]*\+[^,)]*\)/g, severity: 'high', category: 'SQL Injection', description: 'String concatenation in SQL query call', cwe: 'CWE-89' },
|
|
24
|
+
// Command injection with user input (scan with strings visible)
|
|
25
|
+
// Catches require('child_process').execSync(req.body.cmd) — child_process is in a string
|
|
26
|
+
// but the method call and req. reference are in plain code
|
|
27
|
+
{ regex: /\.exec(?:Sync)?\s*\(\s*req\./gi, severity: 'critical', category: 'Command Injection', description: 'exec/execSync called directly with request input', cwe: 'CWE-78', scanRaw: true },
|
|
28
|
+
// Injection (scan fully stripped — structural, must not trigger on pattern defs or comments)
|
|
29
|
+
{ regex: /\beval\s*\(/g, severity: 'critical', category: 'Code Injection', description: 'eval() allows arbitrary code execution', cwe: 'CWE-95' },
|
|
30
|
+
{ regex: /new\s+Function\s*\(/g, severity: 'critical', category: 'Code Injection', description: 'Function() constructor execution', cwe: 'CWE-95' },
|
|
31
|
+
{ regex: /child_process\.exec(?:Sync)?\s*\(\s*[^,)'"]*(?:req\.|body\.|params\.|query\.)/g, severity: 'critical', category: 'Command Injection', description: 'execSync/exec with user-controlled input', cwe: 'CWE-78' },
|
|
32
|
+
{ regex: /child_process\.exec\s*\(\s*[^,)]*\+/g, severity: 'critical', category: 'Command Injection', description: 'Command injection via string concat', cwe: 'CWE-78' },
|
|
33
|
+
// Destructured exec/execSync with string concat containing user input
|
|
34
|
+
{ regex: /\bexec(?:Sync)?\s*\([^)]*\+\s*req\./g, severity: 'critical', category: 'Command Injection', description: 'exec() with string concatenation of user input', cwe: 'CWE-78', scanRaw: true },
|
|
35
|
+
{ regex: /\.innerHTML\s*=\s*[^=]/g, severity: 'high', category: 'XSS', description: 'innerHTML assignment (potential XSS)', cwe: 'CWE-79' },
|
|
36
|
+
{ regex: /document\.write\s*\(/g, severity: 'high', category: 'XSS', description: 'document.write can lead to XSS', cwe: 'CWE-79' },
|
|
37
|
+
// Insecure deserialization
|
|
38
|
+
{ regex: /JSON\.parse\s*\([^)]*req\.|JSON\.parse\s*\([^)]*input/gi, severity: 'medium', category: 'Insecure Input', description: 'JSON.parse on unvalidated user input', cwe: 'CWE-502' },
|
|
39
|
+
{ regex: /yaml\.load\s*\([^)]*\)/g, severity: 'high', category: 'Insecure Deserialization', description: 'yaml.load without safeLoad', cwe: 'CWE-502' },
|
|
40
|
+
{ regex: /pickle\.loads\s*\(/g, severity: 'critical', category: 'Insecure Deserialization', description: 'pickle.loads on arbitrary data', cwe: 'CWE-502' },
|
|
41
|
+
// Auth issues
|
|
42
|
+
{ regex: /jwt\.verify\s*\([^,)]+,\s*[^,)]+,\s*\{\s*algorithms\s*:\s*\[\s*['"`]none['"`]/i, severity: 'critical', category: 'Auth Bypass', description: 'JWT algorithm:none vulnerability', cwe: 'CWE-347' },
|
|
43
|
+
{ regex: /password\s*===?\s*['"`]|password\s*==\s*req\./gi, severity: 'high', category: 'Auth Bypass', description: 'Plaintext password comparison', cwe: 'CWE-256' },
|
|
44
|
+
// Weak crypto
|
|
45
|
+
{ regex: /Math\.random\s*\(\s*\).*(?:token|key|secret|password|nonce|salt)/gi, severity: 'high', category: 'Weak Crypto', description: 'Math.random() for security-sensitive value', cwe: 'CWE-338' },
|
|
46
|
+
{ regex: /createCipheriv\s*\([^,]*['"`](?:des|rc4|md5)[^'"]*['"`]/gi, severity: 'high', category: 'Weak Crypto', description: 'Weak/deprecated cipher algorithm', cwe: 'CWE-327' },
|
|
47
|
+
// Path traversal
|
|
48
|
+
{ regex: /readFile\s*\([^)]*req\.|readFileSync\s*\([^)]*user/gi, severity: 'high', category: 'Path Traversal', description: 'File read with user-controlled path', cwe: 'CWE-22' },
|
|
49
|
+
{ regex: /__dirname\s*\+\s*['"`/]*\s*\+?\s*req\.(params|query|body)/gi, severity: 'high', category: 'Path Traversal', description: 'Path built from user input without sanitization', cwe: 'CWE-22' },
|
|
50
|
+
{ regex: /sendFile\s*\([^)]*req\.(params|query|body)/gi, severity: 'high', category: 'Path Traversal', description: 'sendFile with user-controlled path', cwe: 'CWE-22' },
|
|
51
|
+
// Open redirect
|
|
52
|
+
{ regex: /res\.redirect\s*\([^)]*req\.(query|body|params)/gi, severity: 'medium', category: 'Open Redirect', description: 'Redirect to user-controlled URL', cwe: 'CWE-601' },
|
|
53
|
+
// Server-side XSS (template injection in response)
|
|
54
|
+
{ regex: /res\.send\s*\(\s*`[^`]*\$\{[^}]*req\.(query|body|params)/gi, severity: 'high', category: 'XSS', description: 'User input interpolated directly into response HTML', cwe: 'CWE-79', scanRaw: true },
|
|
55
|
+
{ regex: /res\.send\s*\([^)]*\+\s*req\.(query|body|params)/gi, severity: 'high', category: 'XSS', description: 'User input concatenated into response', cwe: 'CWE-79', scanRaw: true },
|
|
56
|
+
// Command injection via variable indirection (exec with non-literal arg)
|
|
57
|
+
{ regex: /\.exec\s*\(\s*(?!['"`])(\w+)\s*[,)]/g, severity: 'high', category: 'Command Injection', description: 'exec() called with variable argument — verify input is not user-controlled', cwe: 'CWE-78' },
|
|
58
|
+
// SSRF
|
|
59
|
+
{ regex: /fetch\s*\(\s*req\.(body|query|params)/gi, severity: 'high', category: 'SSRF', description: 'Server-side request to user-controlled URL', cwe: 'CWE-918' },
|
|
60
|
+
{ regex: /axios\s*\.\s*(?:get|post|put|delete)\s*\(\s*req\.(body|query|params)/gi, severity: 'high', category: 'SSRF', description: 'HTTP request to user-controlled URL', cwe: 'CWE-918' },
|
|
61
|
+
// Weak crypto (MD5, SHA1 for passwords)
|
|
62
|
+
{ regex: /createHash\s*\(\s*['"`]md5['"`]\s*\)/gi, severity: 'high', category: 'Weak Crypto', description: 'MD5 hash is cryptographically broken — use bcrypt/argon2 for passwords', cwe: 'CWE-328', scanRaw: true },
|
|
63
|
+
{ regex: /createHash\s*\(\s*['"`]sha1['"`]\s*\)/gi, severity: 'medium', category: 'Weak Crypto', description: 'SHA1 is deprecated for security use — use SHA-256+ or bcrypt', cwe: 'CWE-328', scanRaw: true },
|
|
64
|
+
// JWT algorithm:none (both sign and verify — scan raw to catch string content)
|
|
65
|
+
{ regex: /jwt\.(?:sign|verify)\s*\([^)]*algorithm\s*:\s*['"`]none['"`]/gi, severity: 'critical', category: 'Auth Bypass', description: 'JWT with algorithm "none" disables signature verification', cwe: 'CWE-347', scanRaw: true },
|
|
66
|
+
];
|
|
67
|
+
export function measureComplexity(code) {
|
|
68
|
+
const lines = code.split('\n').length;
|
|
69
|
+
const functionMatches = code.match(/\b(function\s+\w+|=>\s*\{|\basync\s+function|\bclass\s+\w+)/g);
|
|
70
|
+
const functions = functionMatches?.length ?? 0;
|
|
71
|
+
const branchKeywords = code.match(/\b(if|else\s+if|while|for|switch|case|catch|\?\s*:)/g);
|
|
72
|
+
const cyclomaticEstimate = (branchKeywords?.length ?? 0) + 1;
|
|
73
|
+
let depth = 0, maxDepth = 0;
|
|
74
|
+
for (const char of code) {
|
|
75
|
+
if (char === '{') {
|
|
76
|
+
depth++;
|
|
77
|
+
maxDepth = Math.max(maxDepth, depth);
|
|
78
|
+
}
|
|
79
|
+
if (char === '}')
|
|
80
|
+
depth = Math.max(0, depth - 1);
|
|
81
|
+
}
|
|
82
|
+
const todos = (code.match(/\/\/\s*(TODO|FIXME|HACK|XXX)/gi) ?? []).length;
|
|
83
|
+
return { lines, functions, nestingDepth: maxDepth, cyclomaticEstimate, todos };
|
|
84
|
+
}
|
|
85
|
+
// ── Scoring ───────────────────────────────────────────────────────────────────
|
|
86
|
+
const SEVERITY_PENALTY = {
|
|
87
|
+
critical: 25,
|
|
88
|
+
high: 12,
|
|
89
|
+
medium: 5,
|
|
90
|
+
low: 2,
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Returns true if the character at position `pos` follows an expression-start
|
|
94
|
+
* context (i.e., `/` here opens a regex literal, not a division operator).
|
|
95
|
+
*/
|
|
96
|
+
function isRegexStart(code, pos) {
|
|
97
|
+
let j = pos - 1;
|
|
98
|
+
while (j >= 0 && (code[j] === ' ' || code[j] === '\t'))
|
|
99
|
+
j--;
|
|
100
|
+
if (j < 0)
|
|
101
|
+
return true;
|
|
102
|
+
const prev = code[j];
|
|
103
|
+
return '=([{,;!&|?:~^%+->'.includes(prev) ||
|
|
104
|
+
/\b(return|typeof|instanceof|in|new|delete|void|throw|case)\s*$/.test(code.slice(0, pos).trimEnd());
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Strip ONLY comments and regex literals — string literals remain visible.
|
|
108
|
+
* Used for pass 1 (raw pattern scanning): we need to see inside string literals to find
|
|
109
|
+
* hardcoded secrets and SQL injection, but comments/regex literals that contain
|
|
110
|
+
* example patterns would otherwise cause false positives.
|
|
111
|
+
*/
|
|
112
|
+
function stripCommentsAndRegex(code) {
|
|
113
|
+
const out = [];
|
|
114
|
+
let i = 0;
|
|
115
|
+
const len = code.length;
|
|
116
|
+
while (i < len) {
|
|
117
|
+
const ch = code[i];
|
|
118
|
+
const next = code[i + 1];
|
|
119
|
+
// Single-line comment: // ...
|
|
120
|
+
if (ch === '/' && next === '/') {
|
|
121
|
+
const start = i;
|
|
122
|
+
while (i < len && code[i] !== '\n')
|
|
123
|
+
i++;
|
|
124
|
+
out.push(' '.repeat(i - start));
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
// Block comment: /* ... */
|
|
128
|
+
if (ch === '/' && next === '*') {
|
|
129
|
+
const start = i;
|
|
130
|
+
i += 2;
|
|
131
|
+
while (i < len && !(code[i - 1] === '*' && code[i] === '/'))
|
|
132
|
+
i++;
|
|
133
|
+
i++;
|
|
134
|
+
out.push(' '.repeat(i - start));
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
// Regex literal: /.../ — strip to avoid pattern-def false positives
|
|
138
|
+
if (ch === '/' && next !== '/' && next !== '*' && isRegexStart(code, i)) {
|
|
139
|
+
const start = i;
|
|
140
|
+
i++;
|
|
141
|
+
while (i < len && code[i] !== '/' && code[i] !== '\n') {
|
|
142
|
+
if (code[i] === '\\')
|
|
143
|
+
i++;
|
|
144
|
+
if (code[i] === '[') {
|
|
145
|
+
i++;
|
|
146
|
+
while (i < len && code[i] !== ']') {
|
|
147
|
+
if (code[i] === '\\')
|
|
148
|
+
i++;
|
|
149
|
+
i++;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
i++;
|
|
153
|
+
}
|
|
154
|
+
i++;
|
|
155
|
+
while (i < len && 'gimsuy'.includes(code[i]))
|
|
156
|
+
i++;
|
|
157
|
+
out.push(' '.repeat(i - start));
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
// String literals — pass through (needed to detect secrets/SQL inside them)
|
|
161
|
+
out.push(ch);
|
|
162
|
+
i++;
|
|
163
|
+
}
|
|
164
|
+
return out.join('');
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Fully strip all string literals, regex literals, and comments.
|
|
168
|
+
* Used for pass 2 (structural pattern scanning) to avoid false positives
|
|
169
|
+
* from pattern definitions, example code in strings, etc.
|
|
170
|
+
*/
|
|
171
|
+
function stripLiterals(code) {
|
|
172
|
+
const out = [];
|
|
173
|
+
let i = 0;
|
|
174
|
+
const len = code.length;
|
|
175
|
+
while (i < len) {
|
|
176
|
+
const ch = code[i];
|
|
177
|
+
const next = code[i + 1];
|
|
178
|
+
if (ch === '/' && next === '/') {
|
|
179
|
+
const start = i;
|
|
180
|
+
while (i < len && code[i] !== '\n')
|
|
181
|
+
i++;
|
|
182
|
+
out.push(' '.repeat(i - start));
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (ch === '/' && next === '*') {
|
|
186
|
+
const start = i;
|
|
187
|
+
i += 2;
|
|
188
|
+
while (i < len && !(code[i - 1] === '*' && code[i] === '/'))
|
|
189
|
+
i++;
|
|
190
|
+
i++;
|
|
191
|
+
out.push(' '.repeat(i - start));
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
if (ch === '/' && next !== '/' && next !== '*' && isRegexStart(code, i)) {
|
|
195
|
+
const start = i;
|
|
196
|
+
i++;
|
|
197
|
+
while (i < len && code[i] !== '/' && code[i] !== '\n') {
|
|
198
|
+
if (code[i] === '\\')
|
|
199
|
+
i++;
|
|
200
|
+
if (code[i] === '[') {
|
|
201
|
+
i++;
|
|
202
|
+
while (i < len && code[i] !== ']') {
|
|
203
|
+
if (code[i] === '\\')
|
|
204
|
+
i++;
|
|
205
|
+
i++;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
i++;
|
|
209
|
+
}
|
|
210
|
+
i++;
|
|
211
|
+
while (i < len && 'gimsuy'.includes(code[i]))
|
|
212
|
+
i++;
|
|
213
|
+
out.push(' '.repeat(i - start));
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
if (ch === '`') {
|
|
217
|
+
const start = i;
|
|
218
|
+
i++;
|
|
219
|
+
while (i < len && code[i] !== '`') {
|
|
220
|
+
if (code[i] === '\\')
|
|
221
|
+
i++;
|
|
222
|
+
i++;
|
|
223
|
+
}
|
|
224
|
+
i++;
|
|
225
|
+
out.push(' '.repeat(i - start));
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
if (ch === '"') {
|
|
229
|
+
const start = i;
|
|
230
|
+
i++;
|
|
231
|
+
while (i < len && code[i] !== '"' && code[i] !== '\n') {
|
|
232
|
+
if (code[i] === '\\')
|
|
233
|
+
i++;
|
|
234
|
+
i++;
|
|
235
|
+
}
|
|
236
|
+
i++;
|
|
237
|
+
out.push(' '.repeat(i - start));
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
if (ch === "'") {
|
|
241
|
+
const start = i;
|
|
242
|
+
i++;
|
|
243
|
+
while (i < len && code[i] !== "'" && code[i] !== '\n') {
|
|
244
|
+
if (code[i] === '\\')
|
|
245
|
+
i++;
|
|
246
|
+
i++;
|
|
247
|
+
}
|
|
248
|
+
i++;
|
|
249
|
+
out.push(' '.repeat(i - start));
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
out.push(ch);
|
|
253
|
+
i++;
|
|
254
|
+
}
|
|
255
|
+
return out.join('');
|
|
256
|
+
}
|
|
257
|
+
export function scoreFile(filepath, code) {
|
|
258
|
+
const allFindings = [];
|
|
259
|
+
// Pass 1: Comments+regex stripped but strings visible — catches secrets/SQL inside literals
|
|
260
|
+
const rawForSecrets = stripCommentsAndRegex(code);
|
|
261
|
+
for (const pattern of CODE_PATTERNS.filter(p => p.scanRaw)) {
|
|
262
|
+
let match;
|
|
263
|
+
const re = new RegExp(pattern.regex.source, pattern.regex.flags);
|
|
264
|
+
while ((match = re.exec(rawForSecrets)) !== null) {
|
|
265
|
+
const line = code.substring(0, match.index).split('\n').length;
|
|
266
|
+
allFindings.push({
|
|
267
|
+
severity: pattern.severity,
|
|
268
|
+
category: pattern.category,
|
|
269
|
+
description: pattern.description,
|
|
270
|
+
line,
|
|
271
|
+
cwe: pattern.cwe,
|
|
272
|
+
matched: match[0].substring(0, 80),
|
|
273
|
+
});
|
|
274
|
+
if (!re.global)
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Pass 2: Fully stripped code — structural patterns (no false positives from literals)
|
|
279
|
+
const scannable = stripLiterals(code);
|
|
280
|
+
for (const pattern of CODE_PATTERNS.filter(p => !p.scanRaw)) {
|
|
281
|
+
let match;
|
|
282
|
+
const re = new RegExp(pattern.regex.source, pattern.regex.flags);
|
|
283
|
+
while ((match = re.exec(scannable)) !== null) {
|
|
284
|
+
const line = code.substring(0, match.index).split('\n').length;
|
|
285
|
+
allFindings.push({
|
|
286
|
+
severity: pattern.severity,
|
|
287
|
+
category: pattern.category,
|
|
288
|
+
description: pattern.description,
|
|
289
|
+
line,
|
|
290
|
+
cwe: pattern.cwe,
|
|
291
|
+
});
|
|
292
|
+
if (!re.global)
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// Pass 3: Hook-layer instruction patterns on fully stripped code
|
|
297
|
+
const instructionFindings = scanPayload(scannable);
|
|
298
|
+
for (const f of instructionFindings) {
|
|
299
|
+
const isDupe = allFindings.some(af => af.category === f.category && af.description === f.description);
|
|
300
|
+
if (!isDupe) {
|
|
301
|
+
allFindings.push({
|
|
302
|
+
severity: f.severity,
|
|
303
|
+
category: f.category,
|
|
304
|
+
description: f.description,
|
|
305
|
+
matched: f.matched,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
const complexity = measureComplexity(code);
|
|
310
|
+
let penalty = 0;
|
|
311
|
+
for (const f of allFindings)
|
|
312
|
+
penalty += SEVERITY_PENALTY[f.severity] ?? 2;
|
|
313
|
+
if (complexity.cyclomaticEstimate > 20)
|
|
314
|
+
penalty += 5;
|
|
315
|
+
if (complexity.cyclomaticEstimate > 50)
|
|
316
|
+
penalty += 10;
|
|
317
|
+
if (complexity.nestingDepth > 6)
|
|
318
|
+
penalty += 5;
|
|
319
|
+
if (complexity.todos > 5)
|
|
320
|
+
penalty += 3;
|
|
321
|
+
const score = Math.max(0, Math.min(100, 100 - penalty));
|
|
322
|
+
const grade = score >= 90 ? 'A' : score >= 75 ? 'B' : score >= 60 ? 'C' : score >= 40 ? 'D' : 'F';
|
|
323
|
+
const critical = allFindings.filter(f => f.severity === 'critical').length;
|
|
324
|
+
const high = allFindings.filter(f => f.severity === 'high').length;
|
|
325
|
+
const summary = critical > 0
|
|
326
|
+
? `${critical} critical issue${critical > 1 ? 's' : ''} require immediate attention`
|
|
327
|
+
: high > 0
|
|
328
|
+
? `${high} high-severity issue${high > 1 ? 's' : ''} should be addressed before merge`
|
|
329
|
+
: allFindings.length === 0
|
|
330
|
+
? 'No issues found — clean scan'
|
|
331
|
+
: `${allFindings.length} minor issue${allFindings.length > 1 ? 's' : ''} found`;
|
|
332
|
+
return { filepath, score, grade, findings: allFindings, complexity, summary };
|
|
333
|
+
}
|
|
334
|
+
export function gradeFromScore(score) {
|
|
335
|
+
return score >= 90 ? 'A' : score >= 75 ? 'B' : score >= 60 ? 'C' : score >= 40 ? 'D' : 'F';
|
|
336
|
+
}
|
|
337
|
+
//# sourceMappingURL=trust-scorer.js.map
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
import { existsSync, mkdirSync } from 'fs';
|
|
7
7
|
import { findCodebaseRoot } from '../../domain/services/codebase-detector.js';
|
|
8
|
-
import { getConfigManager } from '../config/config-manager.js';
|
|
9
8
|
/**
|
|
10
9
|
* Get embeddings database path for a specific codebase
|
|
11
10
|
* Uses codebase root detection to ensure per-repo isolation
|
|
@@ -14,34 +13,25 @@ import { getConfigManager } from '../config/config-manager.js';
|
|
|
14
13
|
* @returns Object with root path, database path, and cache directory
|
|
15
14
|
*/
|
|
16
15
|
export function getEmbeddingsDbPath(cwd = process.cwd()) {
|
|
17
|
-
const config = getConfigManager();
|
|
18
16
|
const codebaseInfo = findCodebaseRoot(cwd);
|
|
19
17
|
if (!codebaseInfo) {
|
|
20
18
|
// Fallback to cwd if codebase root can't be determined
|
|
21
19
|
const root = cwd;
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const dbPath = join(embeddingsDir, 'embeddings.sqlite');
|
|
20
|
+
const dbPath = join(root, '.codehere-cache', 'embeddings.sqlite');
|
|
21
|
+
const cacheDir = join(root, '.codehere-cache');
|
|
25
22
|
// Ensure cache directory exists
|
|
26
23
|
if (!existsSync(cacheDir)) {
|
|
27
24
|
mkdirSync(cacheDir, { recursive: true });
|
|
28
25
|
}
|
|
29
|
-
if (!existsSync(embeddingsDir)) {
|
|
30
|
-
mkdirSync(embeddingsDir, { recursive: true });
|
|
31
|
-
}
|
|
32
26
|
return { root, dbPath, cacheDir };
|
|
33
27
|
}
|
|
34
28
|
const root = codebaseInfo.rootPath;
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const dbPath = join(embeddingsDir, 'embeddings.sqlite');
|
|
29
|
+
const dbPath = join(root, '.codehere-cache', 'embeddings.sqlite');
|
|
30
|
+
const cacheDir = join(root, '.codehere-cache');
|
|
38
31
|
// Ensure cache directory exists
|
|
39
32
|
if (!existsSync(cacheDir)) {
|
|
40
33
|
mkdirSync(cacheDir, { recursive: true });
|
|
41
34
|
}
|
|
42
|
-
if (!existsSync(embeddingsDir)) {
|
|
43
|
-
mkdirSync(embeddingsDir, { recursive: true });
|
|
44
|
-
}
|
|
45
35
|
return { root, dbPath, cacheDir };
|
|
46
36
|
}
|
|
47
37
|
//# sourceMappingURL=embeddings-path.js.map
|
|
@@ -8,13 +8,14 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
|
8
8
|
import { join, dirname } from 'path';
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
import { randomUUID } from 'crypto';
|
|
11
|
-
import { getConfigManager } from '../config/config-manager.js';
|
|
12
11
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
12
|
const __dirname = dirname(__filename);
|
|
14
13
|
function getPlansDir() {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const agentDir = join(__dirname, '../../..');
|
|
15
|
+
if (existsSync(join(agentDir, 'package.json'))) {
|
|
16
|
+
return join(agentDir, 'data', 'plans');
|
|
17
|
+
}
|
|
18
|
+
return join(process.cwd(), '.codehere', 'plans');
|
|
18
19
|
}
|
|
19
20
|
export class FilePlanRepository {
|
|
20
21
|
plansDir;
|
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { readFileSync, existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
9
9
|
import { join, dirname } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
10
11
|
import initSqlJs from 'sql.js';
|
|
11
12
|
import { randomUUID } from 'crypto';
|
|
12
|
-
import { getConfigManager } from '../config/config-manager.js';
|
|
13
13
|
function getDbPath() {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
const agentDir = join(__dirname, '../../..');
|
|
17
|
+
if (existsSync(join(agentDir, 'package.json'))) {
|
|
18
|
+
return join(agentDir, 'data', 'decisions.sqlite');
|
|
19
|
+
}
|
|
20
|
+
return join(process.cwd(), 'agent', 'data', 'decisions.sqlite');
|
|
17
21
|
}
|
|
18
22
|
export class SQLiteDecisionRepository {
|
|
19
23
|
dbPath;
|