codehere 0.1.1 → 0.2.2
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 +8 -17
- package/dist/parallel-processor.js +50 -122
- 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 +267 -274
- package/dist/presentation/cli/commands/undo-command.js +2 -2
- package/dist/search.js +37 -67
- package/dist/session.js +595 -484
- package/dist/task-verification.js +4 -4
- package/dist/token-optimizer.js +1 -6
- package/dist/ui.js +132 -16
- 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 +36 -43
- 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
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
* Strategic: Critical for production reliability and debugging
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from 'crypto';
|
|
9
|
-
import { writeFileSync, mkdirSync, existsSync, readFileSync
|
|
9
|
+
import { writeFileSync, mkdirSync, existsSync, readFileSync } from 'fs';
|
|
10
10
|
import { join, dirname } from 'path';
|
|
11
11
|
import { fileURLToPath } from 'url';
|
|
12
12
|
import { getVersion } from '../../utils/version.js';
|
|
13
|
-
// import { sanitizeForLogging } from '../security/input-validator.js'; // Function doesn't exist, removed
|
|
14
|
-
import { getConfigManager } from '../config/config-manager.js';
|
|
15
13
|
const __filename = fileURLToPath(import.meta.url);
|
|
16
14
|
const __dirname = dirname(__filename);
|
|
17
15
|
/**
|
|
@@ -22,10 +20,9 @@ export class ExecutionTracer {
|
|
|
22
20
|
currentRun = null;
|
|
23
21
|
tracesDir;
|
|
24
22
|
constructor() {
|
|
25
|
-
// Store traces in data/traces/
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
this.tracesDir = join(dataDir, 'traces');
|
|
23
|
+
// Store traces in agent/data/traces/
|
|
24
|
+
const agentDir = join(__dirname, '../../..');
|
|
25
|
+
this.tracesDir = join(agentDir, 'data', 'traces');
|
|
29
26
|
if (!existsSync(this.tracesDir)) {
|
|
30
27
|
mkdirSync(this.tracesDir, { recursive: true });
|
|
31
28
|
}
|
|
@@ -181,165 +178,9 @@ export class ExecutionTracer {
|
|
|
181
178
|
}
|
|
182
179
|
/**
|
|
183
180
|
* Get current run ID
|
|
184
|
-
* Auto-creates a run if none exists to prevent null reference errors
|
|
185
181
|
*/
|
|
186
182
|
getCurrentRunId() {
|
|
187
|
-
|
|
188
|
-
// Auto-create a run context if none exists
|
|
189
|
-
this.startRun('auto-run');
|
|
190
|
-
}
|
|
191
|
-
return this.currentRun.runId;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Export security audit trail for compliance
|
|
195
|
-
* P1 Security: Compliance-ready export formats
|
|
196
|
-
*/
|
|
197
|
-
exportSecurityAuditTrail(options) {
|
|
198
|
-
const { format, startDate, endDate, includeInputs = false, includeOutputs = false, outputPath } = options;
|
|
199
|
-
// Collect all runs
|
|
200
|
-
const runs = [];
|
|
201
|
-
const files = readdirSync(this.tracesDir).filter(f => f.endsWith('.json'));
|
|
202
|
-
for (const file of files) {
|
|
203
|
-
try {
|
|
204
|
-
const run = this.getRun(file.replace('.json', ''));
|
|
205
|
-
if (!run)
|
|
206
|
-
continue;
|
|
207
|
-
// Filter by date range if specified
|
|
208
|
-
if (startDate && run.startTime < startDate.getTime())
|
|
209
|
-
continue;
|
|
210
|
-
if (endDate && run.startTime > endDate.getTime())
|
|
211
|
-
continue;
|
|
212
|
-
runs.push(run);
|
|
213
|
-
}
|
|
214
|
-
catch {
|
|
215
|
-
// Skip invalid files
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
// Filter to security-relevant operations
|
|
219
|
-
const securityRuns = runs.filter(run => run.operation.includes('edit') ||
|
|
220
|
-
run.operation.includes('fix') ||
|
|
221
|
-
run.operation.includes('refactor') ||
|
|
222
|
-
run.traces.some(t => t.operationType === 'llm_call' ||
|
|
223
|
-
t.operationType === 'tool_invocation' ||
|
|
224
|
-
t.metadata?.injectionChecked ||
|
|
225
|
-
t.metadata?.securityScan));
|
|
226
|
-
// Generate export based on format
|
|
227
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
228
|
-
const defaultPath = join(this.tracesDir, `security-audit-${timestamp}.${format}`);
|
|
229
|
-
const exportPath = outputPath || defaultPath;
|
|
230
|
-
if (format === 'json') {
|
|
231
|
-
const exportData = {
|
|
232
|
-
exportDate: new Date().toISOString(),
|
|
233
|
-
version: getVersion(),
|
|
234
|
-
totalRuns: securityRuns.length,
|
|
235
|
-
dateRange: {
|
|
236
|
-
start: startDate?.toISOString(),
|
|
237
|
-
end: endDate?.toISOString(),
|
|
238
|
-
},
|
|
239
|
-
runs: securityRuns.map(run => ({
|
|
240
|
-
runId: run.runId,
|
|
241
|
-
operation: run.operation,
|
|
242
|
-
query: run.query,
|
|
243
|
-
startTime: new Date(run.startTime).toISOString(),
|
|
244
|
-
endTime: run.endTime ? new Date(run.endTime).toISOString() : undefined,
|
|
245
|
-
duration: run.endTime ? run.endTime - run.startTime : undefined,
|
|
246
|
-
traces: run.traces.map(trace => ({
|
|
247
|
-
traceId: trace.traceId,
|
|
248
|
-
operationType: trace.operationType,
|
|
249
|
-
operationName: trace.operationName,
|
|
250
|
-
timestamp: new Date(trace.timestamp).toISOString(),
|
|
251
|
-
duration: trace.duration,
|
|
252
|
-
error: trace.error,
|
|
253
|
-
metadata: {
|
|
254
|
-
...trace.metadata,
|
|
255
|
-
// Include security metadata
|
|
256
|
-
injectionChecked: trace.metadata?.injectionChecked,
|
|
257
|
-
securityScan: trace.metadata?.securityScan,
|
|
258
|
-
},
|
|
259
|
-
input: includeInputs ? trace.input : undefined,
|
|
260
|
-
output: includeOutputs ? trace.output : undefined,
|
|
261
|
-
})),
|
|
262
|
-
})),
|
|
263
|
-
};
|
|
264
|
-
writeFileSync(exportPath, JSON.stringify(exportData, null, 2), 'utf-8');
|
|
265
|
-
}
|
|
266
|
-
else if (format === 'jsonl') {
|
|
267
|
-
const lines = [];
|
|
268
|
-
for (const run of securityRuns) {
|
|
269
|
-
for (const trace of run.traces) {
|
|
270
|
-
lines.push(JSON.stringify({
|
|
271
|
-
runId: run.runId,
|
|
272
|
-
operation: run.operation,
|
|
273
|
-
query: run.query,
|
|
274
|
-
traceId: trace.traceId,
|
|
275
|
-
operationType: trace.operationType,
|
|
276
|
-
operationName: trace.operationName,
|
|
277
|
-
timestamp: new Date(trace.timestamp).toISOString(),
|
|
278
|
-
duration: trace.duration,
|
|
279
|
-
error: trace.error,
|
|
280
|
-
metadata: trace.metadata,
|
|
281
|
-
input: includeInputs ? trace.input : undefined,
|
|
282
|
-
output: includeOutputs ? trace.output : undefined,
|
|
283
|
-
}));
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
writeFileSync(exportPath, lines.join('\n'), 'utf-8');
|
|
287
|
-
}
|
|
288
|
-
else if (format === 'csv') {
|
|
289
|
-
const rows = [];
|
|
290
|
-
// CSV header
|
|
291
|
-
rows.push('runId,operation,query,traceId,operationType,operationName,timestamp,duration,error,injectionChecked,securityScan,model,temperature');
|
|
292
|
-
for (const run of securityRuns) {
|
|
293
|
-
for (const trace of run.traces) {
|
|
294
|
-
const row = [
|
|
295
|
-
run.runId,
|
|
296
|
-
run.operation || '',
|
|
297
|
-
(run.query || '').replace(/,/g, ';'), // Escape commas
|
|
298
|
-
trace.traceId,
|
|
299
|
-
trace.operationType,
|
|
300
|
-
trace.operationName,
|
|
301
|
-
new Date(trace.timestamp).toISOString(),
|
|
302
|
-
trace.duration?.toString() || '',
|
|
303
|
-
trace.error?.message || '',
|
|
304
|
-
trace.metadata?.injectionChecked ? 'true' : 'false',
|
|
305
|
-
trace.metadata?.securityScan ? 'true' : 'false',
|
|
306
|
-
trace.metadata?.model || '',
|
|
307
|
-
trace.metadata?.temperature?.toString() || '',
|
|
308
|
-
].map(field => `"${String(field).replace(/"/g, '""')}"`); // CSV escape
|
|
309
|
-
rows.push(row.join(','));
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
writeFileSync(exportPath, rows.join('\n'), 'utf-8');
|
|
313
|
-
}
|
|
314
|
-
return exportPath;
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* List all runs (for audit trail export)
|
|
318
|
-
*/
|
|
319
|
-
listAllRuns() {
|
|
320
|
-
const runs = [];
|
|
321
|
-
const files = readdirSync(this.tracesDir).filter(f => f.endsWith('.json'));
|
|
322
|
-
for (const file of files) {
|
|
323
|
-
try {
|
|
324
|
-
const run = this.getRun(file.replace('.json', ''));
|
|
325
|
-
if (run) {
|
|
326
|
-
runs.push({
|
|
327
|
-
runId: run.runId,
|
|
328
|
-
operation: run.operation,
|
|
329
|
-
timestamp: run.startTime,
|
|
330
|
-
traceCount: run.traces.length,
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
catch (err) {
|
|
335
|
-
// Skip invalid/corrupted files silently (common during development)
|
|
336
|
-
// Log only in debug mode to avoid noise
|
|
337
|
-
if (process.env.DEBUG) {
|
|
338
|
-
console.warn(`Skipping corrupted trace file: ${file}`, err instanceof Error ? err.message : String(err));
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
return runs.sort((a, b) => b.timestamp - a.timestamp);
|
|
183
|
+
return this.currentRun?.runId || null;
|
|
343
184
|
}
|
|
344
185
|
/**
|
|
345
186
|
* Sanitize input for storage (remove sensitive data, large objects)
|
|
@@ -381,20 +222,6 @@ export class ExecutionTracer {
|
|
|
381
222
|
return output;
|
|
382
223
|
}
|
|
383
224
|
}
|
|
384
|
-
// Singleton instance
|
|
385
|
-
|
|
386
|
-
let _executionTracerInstance;
|
|
387
|
-
export const executionTracer = new Proxy({}, {
|
|
388
|
-
get(_target, prop) {
|
|
389
|
-
if (!_executionTracerInstance) {
|
|
390
|
-
_executionTracerInstance = new ExecutionTracer();
|
|
391
|
-
}
|
|
392
|
-
const value = _executionTracerInstance[prop];
|
|
393
|
-
// Bind methods to the instance to preserve 'this' context
|
|
394
|
-
if (typeof value === 'function') {
|
|
395
|
-
return value.bind(_executionTracerInstance);
|
|
396
|
-
}
|
|
397
|
-
return value;
|
|
398
|
-
}
|
|
399
|
-
});
|
|
225
|
+
// Singleton instance
|
|
226
|
+
export const executionTracer = new ExecutionTracer();
|
|
400
227
|
//# sourceMappingURL=execution-tracer.js.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP helper functions — shared between MCP server and trust command.
|
|
3
|
+
* Extracted to avoid circular imports.
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, statSync, readdirSync } from 'fs';
|
|
6
|
+
import { join, extname } from 'path';
|
|
7
|
+
// ── File collection ──────────────────────────────────────────────────────────
|
|
8
|
+
const CODE_EXTENSIONS = new Set([
|
|
9
|
+
'.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
|
|
10
|
+
'.py', '.rb', '.go', '.java', '.cs', '.php',
|
|
11
|
+
'.sh', '.bash', '.zsh',
|
|
12
|
+
'.sql', '.html', '.vue', '.svelte',
|
|
13
|
+
]);
|
|
14
|
+
const IGNORE_DIRS = new Set(['node_modules', '.git', 'dist', 'build', '.next', 'coverage', '.cache', '.codehere', '.codehere-cache']);
|
|
15
|
+
export function collectFilesForMCP(target) {
|
|
16
|
+
const result = [];
|
|
17
|
+
function walk(dir) {
|
|
18
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
19
|
+
if (IGNORE_DIRS.has(entry.name))
|
|
20
|
+
continue;
|
|
21
|
+
const full = join(dir, entry.name);
|
|
22
|
+
if (entry.isDirectory()) {
|
|
23
|
+
walk(full);
|
|
24
|
+
}
|
|
25
|
+
else if (CODE_EXTENSIONS.has(extname(entry.name))) {
|
|
26
|
+
try {
|
|
27
|
+
result.push({ filepath: full, code: readFileSync(full, 'utf-8') });
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// skip unreadable files
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const stat = statSync(target);
|
|
36
|
+
if (stat.isFile()) {
|
|
37
|
+
return [{ filepath: target, code: readFileSync(target, 'utf-8') }];
|
|
38
|
+
}
|
|
39
|
+
walk(target);
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
// ── Scoring ──────────────────────────────────────────────────────────────────
|
|
43
|
+
// Re-export score function using the shared scorer
|
|
44
|
+
export { scoreFile as scoreFileForMCP } from '../security/trust-scorer.js';
|
|
45
|
+
//# sourceMappingURL=mcp-helpers.js.map
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* codehere MCP Server — Working Implementation
|
|
3
|
+
*
|
|
4
|
+
* Starts an HTTP server that speaks the Model Context Protocol.
|
|
5
|
+
* Exposes codehere's trust scanning tools to any MCP-compatible client:
|
|
6
|
+
* Claude Desktop, Cursor, Zed, Continue, Cline, and any agent that supports MCP.
|
|
7
|
+
*
|
|
8
|
+
* Tools exposed:
|
|
9
|
+
* - codehere_trust — score a file or code snippet (Layer 0, no API)
|
|
10
|
+
* - codehere_scan — scan an instruction/text for injection/threats
|
|
11
|
+
* - codehere_review — list findings for a codebase path
|
|
12
|
+
* - codehere_audit — read recent hook audit log entries
|
|
13
|
+
*
|
|
14
|
+
* Protocol: MCP over HTTP+SSE (Model Context Protocol Spec 2024-11)
|
|
15
|
+
* Authentication: Bearer token (optional, configurable)
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* codehere serve # start on port 3773
|
|
19
|
+
* codehere serve --port 8080 # custom port
|
|
20
|
+
*/
|
|
21
|
+
import http from 'http';
|
|
22
|
+
import { readFileSync, existsSync } from 'fs';
|
|
23
|
+
import { join, relative } from 'path';
|
|
24
|
+
import { collectFilesForMCP, scoreFileForMCP } from './mcp-helpers.js';
|
|
25
|
+
import { scanPayload, calculateRiskScore } from '../hooks/claude-sdk-hook.js';
|
|
26
|
+
// ── Tool definitions ─────────────────────────────────────────────────────────
|
|
27
|
+
const TOOLS = [
|
|
28
|
+
{
|
|
29
|
+
name: 'codehere_trust',
|
|
30
|
+
description: 'Scan a file or code snippet for security vulnerabilities. Returns a trust score 0-100, grade, and plain-English findings. Zero API calls — runs entirely locally.',
|
|
31
|
+
inputSchema: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
filepath: { type: 'string', description: 'Path to file (relative to cwd)' },
|
|
35
|
+
code: { type: 'string', description: 'Code content to scan (alternative to filepath)' },
|
|
36
|
+
verbose: { type: 'boolean', description: 'Include all findings with line numbers' },
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'codehere_scan',
|
|
42
|
+
description: 'Scan an instruction, prompt, or command text for injection attacks, credential theft attempts, destructive operations, and other threats. Returns block/allow decision with findings.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
required: ['text'],
|
|
46
|
+
properties: {
|
|
47
|
+
text: { type: 'string', description: 'Text to scan (instruction, prompt, command)' },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'codehere_review',
|
|
53
|
+
description: 'Review all files in a directory and return trust scores. Identifies the riskiest files to focus review effort.',
|
|
54
|
+
inputSchema: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
properties: {
|
|
57
|
+
path: { type: 'string', description: 'Directory path (default: current directory)' },
|
|
58
|
+
topN: { type: 'number', description: 'Return top N riskiest files (default: 10)' },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'codehere_audit',
|
|
64
|
+
description: 'Read recent hook audit log entries — shows which tool calls codehere blocked or allowed in Claude Code sessions.',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
type: 'object',
|
|
67
|
+
properties: {
|
|
68
|
+
limit: { type: 'number', description: 'Number of recent entries to return (default: 20)' },
|
|
69
|
+
blockedOnly: { type: 'boolean', description: 'Only return blocked events' },
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
// ── Tool handlers ────────────────────────────────────────────────────────────
|
|
75
|
+
import { homedir } from 'os';
|
|
76
|
+
const AUDIT_FILE_PATH = join(homedir(), '.codehere', 'audit', 'hook-events.jsonl');
|
|
77
|
+
function handleTrust(params) {
|
|
78
|
+
const { filepath, code, verbose } = params;
|
|
79
|
+
let content;
|
|
80
|
+
let label;
|
|
81
|
+
if (code) {
|
|
82
|
+
content = code;
|
|
83
|
+
label = 'provided code';
|
|
84
|
+
}
|
|
85
|
+
else if (filepath) {
|
|
86
|
+
const resolved = join(process.cwd(), filepath);
|
|
87
|
+
if (!existsSync(resolved)) {
|
|
88
|
+
return JSON.stringify({ error: `File not found: ${filepath}` });
|
|
89
|
+
}
|
|
90
|
+
content = readFileSync(resolved, 'utf-8');
|
|
91
|
+
label = filepath;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return JSON.stringify({ error: 'Provide either filepath or code' });
|
|
95
|
+
}
|
|
96
|
+
const result = scoreFileForMCP(label, content);
|
|
97
|
+
if (!verbose) {
|
|
98
|
+
// Compact response
|
|
99
|
+
return JSON.stringify({
|
|
100
|
+
score: result.score,
|
|
101
|
+
grade: result.grade,
|
|
102
|
+
summary: result.summary,
|
|
103
|
+
criticalCount: result.findings.filter(f => f.severity === 'critical').length,
|
|
104
|
+
highCount: result.findings.filter(f => f.severity === 'high').length,
|
|
105
|
+
recommendation: result.score >= 75
|
|
106
|
+
? 'Safe — minor issues can be addressed in follow-up'
|
|
107
|
+
: result.score >= 60
|
|
108
|
+
? 'Review recommended before merge'
|
|
109
|
+
: 'Block — resolve critical/high findings first',
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return JSON.stringify(result, null, 2);
|
|
113
|
+
}
|
|
114
|
+
function handleScan(params) {
|
|
115
|
+
const text = String(params.text ?? '');
|
|
116
|
+
const findings = scanPayload(text);
|
|
117
|
+
const riskScore = calculateRiskScore(findings);
|
|
118
|
+
const criticalFindings = findings.filter(f => f.severity === 'critical');
|
|
119
|
+
const blocked = criticalFindings.length > 0 || riskScore >= 60;
|
|
120
|
+
return JSON.stringify({
|
|
121
|
+
blocked,
|
|
122
|
+
riskScore,
|
|
123
|
+
decision: blocked ? 'block' : 'allow',
|
|
124
|
+
reason: blocked
|
|
125
|
+
? criticalFindings.length > 0
|
|
126
|
+
? `${criticalFindings[0].category}: ${criticalFindings[0].description}`
|
|
127
|
+
: `Risk score ${riskScore}/100 exceeds threshold`
|
|
128
|
+
: 'No threats detected',
|
|
129
|
+
findings: findings.slice(0, 10), // cap at 10 to keep response small
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
function handleReview(params) {
|
|
133
|
+
const targetPath = String(params.path ?? process.cwd());
|
|
134
|
+
const topN = Number(params.topN ?? 10);
|
|
135
|
+
try {
|
|
136
|
+
const files = collectFilesForMCP(targetPath);
|
|
137
|
+
if (files.length === 0) {
|
|
138
|
+
return JSON.stringify({ message: 'No code files found', path: targetPath });
|
|
139
|
+
}
|
|
140
|
+
const results = files.map(f => scoreFileForMCP(relative(targetPath, f.filepath), f.code));
|
|
141
|
+
results.sort((a, b) => a.score - b.score); // worst first
|
|
142
|
+
const top = results.slice(0, topN);
|
|
143
|
+
const overallScore = Math.round(results.reduce((s, r) => s + r.score, 0) / results.length);
|
|
144
|
+
return JSON.stringify({
|
|
145
|
+
overallScore,
|
|
146
|
+
grade: overallScore >= 90 ? 'A' : overallScore >= 75 ? 'B' : overallScore >= 60 ? 'C' : overallScore >= 40 ? 'D' : 'F',
|
|
147
|
+
totalFiles: results.length,
|
|
148
|
+
riskiestFiles: top.map(r => ({
|
|
149
|
+
filepath: r.filepath,
|
|
150
|
+
score: r.score,
|
|
151
|
+
grade: r.grade,
|
|
152
|
+
summary: r.summary,
|
|
153
|
+
criticalCount: r.findings.filter(f => f.severity === 'critical').length,
|
|
154
|
+
highCount: r.findings.filter(f => f.severity === 'high').length,
|
|
155
|
+
})),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
return JSON.stringify({ error: String(e) });
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function handleAudit(params) {
|
|
163
|
+
const limit = Number(params.limit ?? 20);
|
|
164
|
+
const blockedOnly = Boolean(params.blockedOnly);
|
|
165
|
+
if (!existsSync(AUDIT_FILE_PATH)) {
|
|
166
|
+
return JSON.stringify({ message: 'No audit log yet — install hooks first with: codehere hook install', entries: [] });
|
|
167
|
+
}
|
|
168
|
+
const lines = readFileSync(AUDIT_FILE_PATH, 'utf-8')
|
|
169
|
+
.split('\n')
|
|
170
|
+
.filter(Boolean)
|
|
171
|
+
.slice(-Math.min(limit * 3, 500)); // read more than needed to account for filter
|
|
172
|
+
const entries = lines
|
|
173
|
+
.map(l => { try {
|
|
174
|
+
return JSON.parse(l);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
return null;
|
|
178
|
+
} })
|
|
179
|
+
.filter(Boolean)
|
|
180
|
+
.filter((e) => !blockedOnly || e.blocked)
|
|
181
|
+
.slice(-limit);
|
|
182
|
+
return JSON.stringify({ entries, total: entries.length });
|
|
183
|
+
}
|
|
184
|
+
// ── JSON-RPC dispatcher ──────────────────────────────────────────────────────
|
|
185
|
+
function dispatch(req) {
|
|
186
|
+
const id = req.id;
|
|
187
|
+
const params = (req.params ?? {});
|
|
188
|
+
try {
|
|
189
|
+
switch (req.method) {
|
|
190
|
+
case 'initialize':
|
|
191
|
+
return {
|
|
192
|
+
jsonrpc: '2.0', id,
|
|
193
|
+
result: {
|
|
194
|
+
protocolVersion: '2024-11-05',
|
|
195
|
+
capabilities: { tools: {} },
|
|
196
|
+
serverInfo: { name: 'codehere', version: '0.2.0' },
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
case 'tools/list':
|
|
200
|
+
return { jsonrpc: '2.0', id, result: { tools: TOOLS } };
|
|
201
|
+
case 'tools/call': {
|
|
202
|
+
const toolName = String(params.name ?? '');
|
|
203
|
+
const toolParams = (params.arguments ?? {});
|
|
204
|
+
let content;
|
|
205
|
+
switch (toolName) {
|
|
206
|
+
case 'codehere_trust':
|
|
207
|
+
content = handleTrust(toolParams);
|
|
208
|
+
break;
|
|
209
|
+
case 'codehere_scan':
|
|
210
|
+
content = handleScan(toolParams);
|
|
211
|
+
break;
|
|
212
|
+
case 'codehere_review':
|
|
213
|
+
content = handleReview(toolParams);
|
|
214
|
+
break;
|
|
215
|
+
case 'codehere_audit':
|
|
216
|
+
content = handleAudit(toolParams);
|
|
217
|
+
break;
|
|
218
|
+
default:
|
|
219
|
+
return { jsonrpc: '2.0', id, error: { code: -32601, message: `Unknown tool: ${toolName}` } };
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
jsonrpc: '2.0', id,
|
|
223
|
+
result: { content: [{ type: 'text', text: content }] },
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
case 'ping':
|
|
227
|
+
return { jsonrpc: '2.0', id, result: {} };
|
|
228
|
+
default:
|
|
229
|
+
return { jsonrpc: '2.0', id, error: { code: -32601, message: `Method not found: ${req.method}` } };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
return { jsonrpc: '2.0', id, error: { code: -32603, message: String(e) } };
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
export function startMCPServer(options = {}) {
|
|
237
|
+
const port = options.port ?? 3773;
|
|
238
|
+
const host = options.host ?? '127.0.0.1'; // localhost only by default
|
|
239
|
+
const token = options.token;
|
|
240
|
+
const server = http.createServer((req, res) => {
|
|
241
|
+
// Auth check
|
|
242
|
+
if (token) {
|
|
243
|
+
const authHeader = req.headers.authorization ?? '';
|
|
244
|
+
if (authHeader !== `Bearer ${token}`) {
|
|
245
|
+
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
246
|
+
res.end(JSON.stringify({ error: 'Unauthorized' }));
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// Health check
|
|
251
|
+
if (req.method === 'GET' && req.url === '/health') {
|
|
252
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
253
|
+
res.end(JSON.stringify({ status: 'ok', server: 'codehere-mcp', version: '0.2.0', tools: TOOLS.length }));
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
// MCP endpoint
|
|
257
|
+
if (req.method === 'POST' && req.url === '/mcp') {
|
|
258
|
+
let body = '';
|
|
259
|
+
req.on('data', chunk => { body += chunk; });
|
|
260
|
+
req.on('end', () => {
|
|
261
|
+
try {
|
|
262
|
+
const mcpReq = JSON.parse(body);
|
|
263
|
+
const mcpRes = dispatch(mcpReq);
|
|
264
|
+
res.writeHead(200, {
|
|
265
|
+
'Content-Type': 'application/json',
|
|
266
|
+
'Access-Control-Allow-Origin': 'http://localhost',
|
|
267
|
+
});
|
|
268
|
+
res.end(JSON.stringify(mcpRes));
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
272
|
+
res.end(JSON.stringify({ error: 'Invalid JSON' }));
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
// 404
|
|
278
|
+
res.writeHead(404);
|
|
279
|
+
res.end();
|
|
280
|
+
});
|
|
281
|
+
server.listen(port, host, () => {
|
|
282
|
+
// server started
|
|
283
|
+
});
|
|
284
|
+
return server;
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=mcp-server-impl.js.map
|
|
@@ -13,8 +13,6 @@ import { join, dirname } from 'path';
|
|
|
13
13
|
import { fileURLToPath } from 'url';
|
|
14
14
|
import { encoding_for_model } from 'tiktoken';
|
|
15
15
|
import { retryWithBackoff, cohereCircuitBreaker } from '../../error-handler.js';
|
|
16
|
-
import { sessionTokenTracker } from '../cost/session-token-tracker.js';
|
|
17
|
-
import { getConfigManager } from '../config/config-manager.js';
|
|
18
16
|
// Load .env (same pattern as CohereAIService)
|
|
19
17
|
try {
|
|
20
18
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -167,13 +165,13 @@ export class CohereProvider {
|
|
|
167
165
|
];
|
|
168
166
|
}
|
|
169
167
|
getDefaultModel() {
|
|
170
|
-
// Check for environment variable override
|
|
168
|
+
// Check for environment variable override
|
|
171
169
|
if (process.env.CODEHERE_COHERE_MODEL) {
|
|
172
170
|
return process.env.CODEHERE_COHERE_MODEL;
|
|
173
171
|
}
|
|
174
|
-
// Use
|
|
175
|
-
|
|
176
|
-
return
|
|
172
|
+
// Use command-r-08-2024 as default (command-r and command-r-plus were deprecated Sept 2025)
|
|
173
|
+
// Available live models: command-r-08-2024, command-r-plus-08-2024, command-a-03-2025, command-r7b-12-2024
|
|
174
|
+
return 'command-r-08-2024';
|
|
177
175
|
}
|
|
178
176
|
async chat(prompt, options) {
|
|
179
177
|
const model = options?.model || this.getDefaultModel();
|
|
@@ -188,13 +186,6 @@ export class CohereProvider {
|
|
|
188
186
|
const text = response.text || 'No response generated';
|
|
189
187
|
const inputTokens = countTokens(prompt);
|
|
190
188
|
const outputTokens = countTokens(text);
|
|
191
|
-
// Track tokens for session cost display
|
|
192
|
-
sessionTokenTracker.record({
|
|
193
|
-
operation: 'chat',
|
|
194
|
-
model: model || 'command-r',
|
|
195
|
-
inputTokens,
|
|
196
|
-
outputTokens,
|
|
197
|
-
});
|
|
198
189
|
return {
|
|
199
190
|
text,
|
|
200
191
|
model: model || 'default',
|
|
@@ -258,13 +249,6 @@ export class CohereProvider {
|
|
|
258
249
|
}
|
|
259
250
|
const inputTokens = countTokens(prompt);
|
|
260
251
|
const outputTokens = countTokens(fullText);
|
|
261
|
-
// Track tokens for session cost display
|
|
262
|
-
sessionTokenTracker.record({
|
|
263
|
-
operation: 'chat-stream',
|
|
264
|
-
model: model || 'command-r',
|
|
265
|
-
inputTokens,
|
|
266
|
-
outputTokens,
|
|
267
|
-
});
|
|
268
252
|
return {
|
|
269
253
|
text: fullText,
|
|
270
254
|
model: model || 'default',
|
|
@@ -293,14 +277,6 @@ export class CohereProvider {
|
|
|
293
277
|
model: 'embed-english-v3.0',
|
|
294
278
|
inputType: 'search_document',
|
|
295
279
|
});
|
|
296
|
-
// Track tokens for session cost display
|
|
297
|
-
const inputTokens = texts.reduce((sum, t) => sum + countTokens(t), 0);
|
|
298
|
-
sessionTokenTracker.record({
|
|
299
|
-
operation: 'embed',
|
|
300
|
-
model: 'embed-english-v3.0',
|
|
301
|
-
inputTokens,
|
|
302
|
-
outputTokens: 0,
|
|
303
|
-
});
|
|
304
280
|
const embeddings = response.embeddings;
|
|
305
281
|
if (texts.length === 1) {
|
|
306
282
|
return embeddings[0];
|
|
@@ -388,11 +364,9 @@ export class CohereProvider {
|
|
|
388
364
|
try {
|
|
389
365
|
// Actually test API connectivity with a minimal API call
|
|
390
366
|
// getModels() doesn't make an API call, so we need to test with a real endpoint
|
|
391
|
-
const config = getConfigManager();
|
|
392
|
-
const testModel = config.getModel('chat') || config.getModel('default') || 'command-r-08-2024';
|
|
393
367
|
const response = await this.client.chat({
|
|
394
368
|
message: 'test',
|
|
395
|
-
model:
|
|
369
|
+
model: 'command-r-08-2024',
|
|
396
370
|
maxTokens: 1,
|
|
397
371
|
});
|
|
398
372
|
return true;
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* Phase 4D: FakeProvider Implementation
|
|
6
6
|
* Provides deterministic outputs for testing and local demos without external API calls
|
|
7
7
|
*/
|
|
8
|
-
import { sessionTokenTracker } from '../cost/session-token-tracker.js';
|
|
9
8
|
/**
|
|
10
9
|
* FakeProvider
|
|
11
10
|
* Deterministic provider for testing and demos
|
|
@@ -52,13 +51,6 @@ export class FakeProvider {
|
|
|
52
51
|
// Simple token counting (character-based estimate)
|
|
53
52
|
const inputTokens = Math.ceil(prompt.length / 4);
|
|
54
53
|
const outputTokens = Math.ceil(text.length / 4);
|
|
55
|
-
// Track tokens for session cost display (even in fake mode for consistency)
|
|
56
|
-
sessionTokenTracker.record({
|
|
57
|
-
operation: 'chat',
|
|
58
|
-
model: 'fake-model-v1',
|
|
59
|
-
inputTokens,
|
|
60
|
-
outputTokens,
|
|
61
|
-
});
|
|
62
54
|
return {
|
|
63
55
|
text,
|
|
64
56
|
model: options?.model || this.defaultModel,
|
|
@@ -7,21 +7,15 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { retryWithBackoff } from '../../error-handler.js';
|
|
9
9
|
import { encoding_for_model } from 'tiktoken';
|
|
10
|
-
import { getConfigManager } from '../config/config-manager.js';
|
|
11
10
|
// Token counting (tiktoken for OpenAI-compatible models)
|
|
12
11
|
let tokenEncoder = null;
|
|
13
12
|
function getTokenEncoder() {
|
|
14
13
|
if (!tokenEncoder) {
|
|
15
14
|
try {
|
|
16
|
-
|
|
17
|
-
const config = getConfigManager();
|
|
18
|
-
const defaultModel = config.getModel('default') || config.getPreference('defaultModel') || 'gpt-3.5-turbo';
|
|
19
|
-
// Map to OpenAI model for tiktoken (tiktoken uses OpenAI models)
|
|
20
|
-
const tiktokenModel = defaultModel.includes('gpt') ? defaultModel : 'gpt-3.5-turbo';
|
|
21
|
-
tokenEncoder = encoding_for_model(tiktokenModel);
|
|
15
|
+
tokenEncoder = encoding_for_model('gpt-3.5-turbo'); // OpenAI-compatible encoding
|
|
22
16
|
}
|
|
23
17
|
catch {
|
|
24
|
-
tokenEncoder = encoding_for_model('gpt-
|
|
18
|
+
tokenEncoder = encoding_for_model('gpt-4'); // Fallback
|
|
25
19
|
}
|
|
26
20
|
}
|
|
27
21
|
return tokenEncoder;
|