codehere 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of codehere might be problematic. Click here for more details.
- package/README.md +51 -25
- package/dist/agents/base.d.ts +107 -0
- package/dist/agents/base.d.ts.map +1 -0
- package/dist/agents/base.js +101 -0
- package/dist/agents/base.js.map +1 -0
- package/dist/agents/orchestrator-model-driven.d.ts +41 -0
- package/dist/agents/orchestrator-model-driven.d.ts.map +1 -0
- package/dist/agents/orchestrator-model-driven.js +141 -0
- package/dist/agents/orchestrator-model-driven.js.map +1 -0
- package/dist/agents/react-orchestrator-agent.d.ts +15 -0
- package/dist/agents/react-orchestrator-agent.d.ts.map +1 -0
- package/dist/agents/react-orchestrator-agent.js +54 -0
- package/dist/agents/react-orchestrator-agent.js.map +1 -0
- package/dist/application/agents/execution-agent.d.ts +68 -0
- package/dist/application/agents/execution-agent.d.ts.map +1 -0
- package/dist/application/agents/execution-agent.js +299 -0
- package/dist/application/agents/execution-agent.js.map +1 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts +64 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -0
- package/dist/application/agents/multi-agent-orchestrator.js +209 -0
- package/dist/application/agents/multi-agent-orchestrator.js.map +1 -0
- package/dist/application/agents/planning-agent.d.ts +61 -0
- package/dist/application/agents/planning-agent.d.ts.map +1 -0
- package/dist/application/agents/planning-agent.js +357 -0
- package/dist/application/agents/planning-agent.js.map +1 -0
- package/dist/application/agents/validation-agent.d.ts +64 -0
- package/dist/application/agents/validation-agent.d.ts.map +1 -0
- package/dist/application/agents/validation-agent.js +182 -0
- package/dist/application/agents/validation-agent.js.map +1 -0
- package/dist/application/architectures/plan-and-act.d.ts +94 -0
- package/dist/application/architectures/plan-and-act.d.ts.map +1 -0
- package/dist/application/architectures/plan-and-act.js +242 -0
- package/dist/application/architectures/plan-and-act.js.map +1 -0
- package/dist/application/index.d.ts +12 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +12 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/services/agent-factory.d.ts +9 -0
- package/dist/application/services/agent-factory.d.ts.map +1 -0
- package/dist/application/services/agent-factory.js +28 -0
- package/dist/application/services/agent-factory.js.map +1 -0
- package/dist/application/services/dependency-container.d.ts +140 -0
- package/dist/application/services/dependency-container.d.ts.map +1 -0
- package/dist/application/services/dependency-container.js +402 -0
- package/dist/application/services/dependency-container.js.map +1 -0
- package/dist/application/services/git-context-service.d.ts +30 -0
- package/dist/application/services/git-context-service.d.ts.map +1 -0
- package/dist/application/services/git-context-service.js +83 -0
- package/dist/application/services/git-context-service.js.map +1 -0
- package/dist/application/services/intelligent-router.d.ts +74 -0
- package/dist/application/services/intelligent-router.d.ts.map +1 -0
- package/dist/application/services/intelligent-router.js +711 -0
- package/dist/application/services/intelligent-router.js.map +1 -0
- package/dist/application/services/tool-executor-service.d.ts +14 -0
- package/dist/application/services/tool-executor-service.d.ts.map +1 -0
- package/dist/application/services/tool-executor-service.js +94 -0
- package/dist/application/services/tool-executor-service.js.map +1 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts +36 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/ask-question-use-case.js +150 -0
- package/dist/application/use-cases/ask-question-use-case.js.map +1 -0
- package/dist/application/use-cases/edit-file-use-case.d.ts +76 -0
- package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/edit-file-use-case.js +685 -0
- package/dist/application/use-cases/edit-file-use-case.js.map +1 -0
- package/dist/application/use-cases/explain-file-use-case.d.ts +21 -0
- package/dist/application/use-cases/explain-file-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/explain-file-use-case.js +50 -0
- package/dist/application/use-cases/explain-file-use-case.js.map +1 -0
- package/dist/application/use-cases/index-codebase-use-case.d.ts +46 -0
- package/dist/application/use-cases/index-codebase-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/index-codebase-use-case.js +113 -0
- package/dist/application/use-cases/index-codebase-use-case.js.map +1 -0
- package/dist/application/use-cases/planning-use-case.d.ts +46 -0
- package/dist/application/use-cases/planning-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/planning-use-case.js +267 -0
- package/dist/application/use-cases/planning-use-case.js.map +1 -0
- package/dist/application/use-cases/react-orchestration-use-case.d.ts +51 -0
- package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/react-orchestration-use-case.js +325 -0
- package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -0
- package/dist/application/use-cases/reflexion-use-case.d.ts +24 -0
- package/dist/application/use-cases/reflexion-use-case.d.ts.map +1 -0
- package/dist/application/use-cases/reflexion-use-case.js +30 -0
- package/dist/application/use-cases/reflexion-use-case.js.map +1 -0
- package/dist/application/workflows/deterministic-workflows.d.ts +61 -0
- package/dist/application/workflows/deterministic-workflows.d.ts.map +1 -0
- package/dist/application/workflows/deterministic-workflows.js +189 -0
- package/dist/application/workflows/deterministic-workflows.js.map +1 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +1 -3
- package/dist/cache.js.map +1 -1
- package/dist/chat.js +10 -10
- package/dist/chat.js.map +1 -1
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +1 -2
- package/dist/docs.js.map +1 -1
- package/dist/domain/entities/code-chunk.d.ts +26 -0
- package/dist/domain/entities/code-chunk.d.ts.map +1 -0
- package/dist/domain/entities/code-chunk.js +6 -0
- package/dist/domain/entities/code-chunk.js.map +1 -0
- package/dist/domain/entities/decision.d.ts +37 -0
- package/dist/domain/entities/decision.d.ts.map +1 -0
- package/dist/domain/entities/decision.js +9 -0
- package/dist/domain/entities/decision.js.map +1 -0
- package/dist/domain/entities/edit.d.ts +35 -0
- package/dist/domain/entities/edit.d.ts.map +1 -0
- package/dist/domain/entities/edit.js +6 -0
- package/dist/domain/entities/edit.js.map +1 -0
- package/dist/domain/entities/knowledge-node.d.ts +83 -0
- package/dist/domain/entities/knowledge-node.d.ts.map +1 -0
- package/dist/domain/entities/knowledge-node.js +9 -0
- package/dist/domain/entities/knowledge-node.js.map +1 -0
- package/dist/domain/entities/knowledge-preservation.d.ts +42 -0
- package/dist/domain/entities/knowledge-preservation.d.ts.map +1 -0
- package/dist/domain/entities/knowledge-preservation.js +10 -0
- package/dist/domain/entities/knowledge-preservation.js.map +1 -0
- package/dist/domain/entities/memory.d.ts +36 -0
- package/dist/domain/entities/memory.d.ts.map +1 -0
- package/dist/domain/entities/memory.js +6 -0
- package/dist/domain/entities/memory.js.map +1 -0
- package/dist/domain/entities/pattern.d.ts +49 -0
- package/dist/domain/entities/pattern.d.ts.map +1 -0
- package/dist/domain/entities/pattern.js +7 -0
- package/dist/domain/entities/pattern.js.map +1 -0
- package/dist/domain/entities/plan.d.ts +42 -0
- package/dist/domain/entities/plan.d.ts.map +1 -0
- package/dist/domain/entities/plan.js +6 -0
- package/dist/domain/entities/plan.js.map +1 -0
- package/dist/domain/entities/query.d.ts +17 -0
- package/dist/domain/entities/query.d.ts.map +1 -0
- package/dist/domain/entities/query.js +6 -0
- package/dist/domain/entities/query.js.map +1 -0
- package/dist/domain/index.d.ts +16 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +19 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/interfaces/ai-service.interface.d.ts +62 -0
- package/dist/domain/interfaces/ai-service.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/ai-service.interface.js +6 -0
- package/dist/domain/interfaces/ai-service.interface.js.map +1 -0
- package/dist/domain/interfaces/code-analyzer.interface.d.ts +38 -0
- package/dist/domain/interfaces/code-analyzer.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/code-analyzer.interface.js +6 -0
- package/dist/domain/interfaces/code-analyzer.interface.js.map +1 -0
- package/dist/domain/interfaces/decision-repository.interface.d.ts +51 -0
- package/dist/domain/interfaces/decision-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/decision-repository.interface.js +9 -0
- package/dist/domain/interfaces/decision-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts +28 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/embedding-repository.interface.js +6 -0
- package/dist/domain/interfaces/embedding-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts +91 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.js +9 -0
- package/dist/domain/interfaces/knowledge-graph-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts +50 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +8 -0
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/memory-repository.interface.d.ts +49 -0
- package/dist/domain/interfaces/memory-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/memory-repository.interface.js +6 -0
- package/dist/domain/interfaces/memory-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/pattern-repository.interface.d.ts +48 -0
- package/dist/domain/interfaces/pattern-repository.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/pattern-repository.interface.js +6 -0
- package/dist/domain/interfaces/pattern-repository.interface.js.map +1 -0
- package/dist/domain/interfaces/verification-service.interface.d.ts +20 -0
- package/dist/domain/interfaces/verification-service.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/verification-service.interface.js +6 -0
- package/dist/domain/interfaces/verification-service.interface.js.map +1 -0
- package/dist/domain/services/codebase-detector.d.ts +18 -0
- package/dist/domain/services/codebase-detector.d.ts.map +1 -0
- package/dist/domain/services/codebase-detector.js +91 -0
- package/dist/domain/services/codebase-detector.js.map +1 -0
- package/dist/domain/services/cross-team-pattern-sharing.d.ts +65 -0
- package/dist/domain/services/cross-team-pattern-sharing.d.ts.map +1 -0
- package/dist/domain/services/cross-team-pattern-sharing.js +125 -0
- package/dist/domain/services/cross-team-pattern-sharing.js.map +1 -0
- package/dist/domain/services/decision-recorder.d.ts +76 -0
- package/dist/domain/services/decision-recorder.d.ts.map +1 -0
- package/dist/domain/services/decision-recorder.js +223 -0
- package/dist/domain/services/decision-recorder.js.map +1 -0
- package/dist/domain/services/decision-retriever.d.ts +75 -0
- package/dist/domain/services/decision-retriever.d.ts.map +1 -0
- package/dist/domain/services/decision-retriever.js +133 -0
- package/dist/domain/services/decision-retriever.js.map +1 -0
- package/dist/domain/services/graded-memory-activation.d.ts +37 -0
- package/dist/domain/services/graded-memory-activation.d.ts.map +1 -0
- package/dist/domain/services/graded-memory-activation.js +69 -0
- package/dist/domain/services/graded-memory-activation.js.map +1 -0
- package/dist/domain/services/knowledge-access.d.ts +63 -0
- package/dist/domain/services/knowledge-access.d.ts.map +1 -0
- package/dist/domain/services/knowledge-access.js +132 -0
- package/dist/domain/services/knowledge-access.js.map +1 -0
- package/dist/domain/services/knowledge-extractor.d.ts +54 -0
- package/dist/domain/services/knowledge-extractor.d.ts.map +1 -0
- package/dist/domain/services/knowledge-extractor.js +247 -0
- package/dist/domain/services/knowledge-extractor.js.map +1 -0
- package/dist/domain/services/knowledge-graph-builder.d.ts +70 -0
- package/dist/domain/services/knowledge-graph-builder.d.ts.map +1 -0
- package/dist/domain/services/knowledge-graph-builder.js +268 -0
- package/dist/domain/services/knowledge-graph-builder.js.map +1 -0
- package/dist/domain/services/knowledge-graph-query.d.ts +69 -0
- package/dist/domain/services/knowledge-graph-query.d.ts.map +1 -0
- package/dist/domain/services/knowledge-graph-query.js +187 -0
- package/dist/domain/services/knowledge-graph-query.js.map +1 -0
- package/dist/domain/services/memory-retriever.d.ts +30 -0
- package/dist/domain/services/memory-retriever.d.ts.map +1 -0
- package/dist/domain/services/memory-retriever.js +82 -0
- package/dist/domain/services/memory-retriever.js.map +1 -0
- package/dist/domain/services/memory-synthesizer.d.ts +57 -0
- package/dist/domain/services/memory-synthesizer.d.ts.map +1 -0
- package/dist/domain/services/memory-synthesizer.js +91 -0
- package/dist/domain/services/memory-synthesizer.js.map +1 -0
- package/dist/domain/services/pattern-extractor.d.ts +108 -0
- package/dist/domain/services/pattern-extractor.d.ts.map +1 -0
- package/dist/domain/services/pattern-extractor.js +442 -0
- package/dist/domain/services/pattern-extractor.js.map +1 -0
- package/dist/domain/services/query-intent-classifier.d.ts +16 -0
- package/dist/domain/services/query-intent-classifier.d.ts.map +1 -0
- package/dist/domain/services/query-intent-classifier.js +140 -0
- package/dist/domain/services/query-intent-classifier.js.map +1 -0
- package/dist/domain/services/react-loop.d.ts +44 -0
- package/dist/domain/services/react-loop.d.ts.map +1 -0
- package/dist/domain/services/react-loop.js +110 -0
- package/dist/domain/services/react-loop.js.map +1 -0
- package/dist/edit.d.ts +0 -12
- package/dist/edit.d.ts.map +1 -1
- package/dist/edit.js +76 -351
- package/dist/edit.js.map +1 -1
- package/dist/embed.d.ts +0 -4
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +100 -174
- package/dist/embed.js.map +1 -1
- package/dist/error-handler.d.ts +1 -0
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +46 -3
- package/dist/error-handler.js.map +1 -1
- package/dist/index.js +228 -231
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts +54 -0
- package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
- package/dist/infrastructure/ai/cohere-ai-service.js +547 -0
- package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -0
- package/dist/infrastructure/ai/command-r-evaluation.d.ts +42 -0
- package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +1 -0
- package/dist/infrastructure/ai/command-r-evaluation.js +206 -0
- package/dist/infrastructure/ai/command-r-evaluation.js.map +1 -0
- package/dist/infrastructure/ai/model-config.d.ts +47 -0
- package/dist/infrastructure/ai/model-config.d.ts.map +1 -0
- package/dist/infrastructure/ai/model-config.js +84 -0
- package/dist/infrastructure/ai/model-config.js.map +1 -0
- package/dist/infrastructure/cache/embedding-cache.d.ts +46 -0
- package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/embedding-cache.js +104 -0
- package/dist/infrastructure/cache/embedding-cache.js.map +1 -0
- package/dist/infrastructure/chunking/ast-code-chunker.d.ts +12 -0
- package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +1 -0
- package/dist/infrastructure/chunking/ast-code-chunker.js +19 -0
- package/dist/infrastructure/chunking/ast-code-chunker.js.map +1 -0
- package/dist/infrastructure/chunking/code-aware-chunker.d.ts +63 -0
- package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +1 -0
- package/dist/infrastructure/chunking/code-aware-chunker.js +397 -0
- package/dist/infrastructure/chunking/code-aware-chunker.js.map +1 -0
- package/dist/infrastructure/config/config-manager.d.ts +79 -0
- package/dist/infrastructure/config/config-manager.d.ts.map +1 -0
- package/dist/infrastructure/config/config-manager.js +162 -0
- package/dist/infrastructure/config/config-manager.js.map +1 -0
- package/dist/infrastructure/cost/cost-tracker.d.ts +90 -0
- package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -0
- package/dist/infrastructure/cost/cost-tracker.js +353 -0
- package/dist/infrastructure/cost/cost-tracker.js.map +1 -0
- package/dist/infrastructure/file-scanner/file-scanner.d.ts +31 -0
- package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +1 -0
- package/dist/infrastructure/file-scanner/file-scanner.js +106 -0
- package/dist/infrastructure/file-scanner/file-scanner.js.map +1 -0
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts +107 -0
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -0
- package/dist/infrastructure/governance/nist-ai-rmf.js +294 -0
- package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -0
- package/dist/infrastructure/governance/policy-as-code.d.ts +90 -0
- package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -0
- package/dist/infrastructure/governance/policy-as-code.js +244 -0
- package/dist/infrastructure/governance/policy-as-code.js.map +1 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +138 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.js +241 -0
- package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -0
- package/dist/infrastructure/index.d.ts +7 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +7 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/observability/execution-tracer.d.ts +105 -0
- package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
- package/dist/infrastructure/observability/execution-tracer.js +190 -0
- package/dist/infrastructure/observability/execution-tracer.js.map +1 -0
- package/dist/infrastructure/observability/prompt-versioner.d.ts +67 -0
- package/dist/infrastructure/observability/prompt-versioner.d.ts.map +1 -0
- package/dist/infrastructure/observability/prompt-versioner.js +145 -0
- package/dist/infrastructure/observability/prompt-versioner.js.map +1 -0
- package/dist/infrastructure/protocols/a2a-metadata.d.ts +278 -0
- package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +1 -0
- package/dist/infrastructure/protocols/a2a-metadata.js +137 -0
- package/dist/infrastructure/protocols/a2a-metadata.js.map +1 -0
- package/dist/infrastructure/protocols/a2a-protocol.d.ts +132 -0
- package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +1 -0
- package/dist/infrastructure/protocols/a2a-protocol.js +314 -0
- package/dist/infrastructure/protocols/a2a-protocol.js.map +1 -0
- package/dist/infrastructure/protocols/mcp-oauth.d.ts +91 -0
- package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +1 -0
- package/dist/infrastructure/protocols/mcp-oauth.js +184 -0
- package/dist/infrastructure/protocols/mcp-oauth.js.map +1 -0
- package/dist/infrastructure/protocols/mcp-server.d.ts +126 -0
- package/dist/infrastructure/protocols/mcp-server.d.ts.map +1 -0
- package/dist/infrastructure/protocols/mcp-server.js +333 -0
- package/dist/infrastructure/protocols/mcp-server.js.map +1 -0
- package/dist/infrastructure/protocols/streaming-handler.d.ts +57 -0
- package/dist/infrastructure/protocols/streaming-handler.d.ts.map +1 -0
- package/dist/infrastructure/protocols/streaming-handler.js +103 -0
- package/dist/infrastructure/protocols/streaming-handler.js.map +1 -0
- package/dist/infrastructure/security/ai-sast-scanner.d.ts +55 -0
- package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
- package/dist/infrastructure/security/ai-sast-scanner.js +163 -0
- package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -0
- package/dist/infrastructure/security/docker-sandbox.d.ts +57 -0
- package/dist/infrastructure/security/docker-sandbox.d.ts.map +1 -0
- package/dist/infrastructure/security/docker-sandbox.js +178 -0
- package/dist/infrastructure/security/docker-sandbox.js.map +1 -0
- package/dist/infrastructure/security/enhanced-security-gate.d.ts +51 -0
- package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
- package/dist/infrastructure/security/enhanced-security-gate.js +92 -0
- package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -0
- package/dist/infrastructure/security/input-validator.d.ts +33 -0
- package/dist/infrastructure/security/input-validator.d.ts.map +1 -0
- package/dist/infrastructure/security/input-validator.js +152 -0
- package/dist/infrastructure/security/input-validator.js.map +1 -0
- package/dist/infrastructure/security/license-scanner.d.ts +55 -0
- package/dist/infrastructure/security/license-scanner.d.ts.map +1 -0
- package/dist/infrastructure/security/license-scanner.js +167 -0
- package/dist/infrastructure/security/license-scanner.js.map +1 -0
- package/dist/infrastructure/security/provider-bias-detector.d.ts +53 -0
- package/dist/infrastructure/security/provider-bias-detector.d.ts.map +1 -0
- package/dist/infrastructure/security/provider-bias-detector.js +164 -0
- package/dist/infrastructure/security/provider-bias-detector.js.map +1 -0
- package/dist/infrastructure/security/sandbox-executor.d.ts +34 -0
- package/dist/infrastructure/security/sandbox-executor.d.ts.map +1 -0
- package/dist/infrastructure/security/sandbox-executor.js +64 -0
- package/dist/infrastructure/security/sandbox-executor.js.map +1 -0
- package/dist/infrastructure/storage/memory-stream-service.d.ts +47 -0
- package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -0
- package/dist/infrastructure/storage/memory-stream-service.js +204 -0
- package/dist/infrastructure/storage/memory-stream-service.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +29 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.js +232 -0
- package/dist/infrastructure/storage/sqlite-decision-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +24 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +162 -0
- package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +41 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +417 -0
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +29 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +230 -0
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +40 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.js +229 -0
- package/dist/infrastructure/storage/sqlite-memory-repository.js.map +1 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +25 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.js +249 -0
- package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +1 -0
- package/dist/infrastructure/ux/appropriate-friction.d.ts +77 -0
- package/dist/infrastructure/ux/appropriate-friction.d.ts.map +1 -0
- package/dist/infrastructure/ux/appropriate-friction.js +213 -0
- package/dist/infrastructure/ux/appropriate-friction.js.map +1 -0
- package/dist/infrastructure/ux/bi-directional-learning.d.ts +109 -0
- package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -0
- package/dist/infrastructure/ux/bi-directional-learning.js +200 -0
- package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -0
- package/dist/infrastructure/ux/expectation-management.d.ts +65 -0
- package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
- package/dist/infrastructure/ux/expectation-management.js +193 -0
- package/dist/infrastructure/ux/expectation-management.js.map +1 -0
- package/dist/infrastructure/ux/hitl-validation.d.ts +104 -0
- package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -0
- package/dist/infrastructure/ux/hitl-validation.js +211 -0
- package/dist/infrastructure/ux/hitl-validation.js.map +1 -0
- package/dist/infrastructure/ux/progressive-disclosure.d.ts +84 -0
- package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -0
- package/dist/infrastructure/ux/progressive-disclosure.js +235 -0
- package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
- package/dist/infrastructure/ux/team-standards.d.ts +94 -0
- package/dist/infrastructure/ux/team-standards.d.ts.map +1 -0
- package/dist/infrastructure/ux/team-standards.js +196 -0
- package/dist/infrastructure/ux/team-standards.js.map +1 -0
- package/dist/infrastructure/verification/verification-service.d.ts +12 -0
- package/dist/infrastructure/verification/verification-service.d.ts.map +1 -0
- package/dist/infrastructure/verification/verification-service.js +47 -0
- package/dist/infrastructure/verification/verification-service.js.map +1 -0
- package/dist/infrastructure/xai/attention-visualizer.d.ts +73 -0
- package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -0
- package/dist/infrastructure/xai/attention-visualizer.js +174 -0
- package/dist/infrastructure/xai/attention-visualizer.js.map +1 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts +105 -0
- package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
- package/dist/infrastructure/xai/cot-visualizer.js +239 -0
- package/dist/infrastructure/xai/cot-visualizer.js.map +1 -0
- package/dist/infrastructure/xai/decision-tree-log.d.ts +104 -0
- package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -0
- package/dist/infrastructure/xai/decision-tree-log.js +216 -0
- package/dist/infrastructure/xai/decision-tree-log.js.map +1 -0
- package/dist/infrastructure/xai/interactive-xai.d.ts +106 -0
- package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -0
- package/dist/infrastructure/xai/interactive-xai.js +262 -0
- package/dist/infrastructure/xai/interactive-xai.js.map +1 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +80 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.js +201 -0
- package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -0
- package/dist/intelligent-retrieval.d.ts.map +1 -1
- package/dist/intelligent-retrieval.js +8 -1
- package/dist/intelligent-retrieval.js.map +1 -1
- package/dist/intent/classifier.d.ts +6 -0
- package/dist/intent/classifier.d.ts.map +1 -0
- package/dist/intent/classifier.js +2 -0
- package/dist/intent/classifier.js.map +1 -0
- package/dist/intent/context.d.ts +4 -0
- package/dist/intent/context.d.ts.map +1 -0
- package/dist/intent/context.js +2 -0
- package/dist/intent/context.js.map +1 -0
- package/dist/iterative-refinement.d.ts.map +1 -1
- package/dist/iterative-refinement.js +20 -3
- package/dist/iterative-refinement.js.map +1 -1
- package/dist/learning.d.ts.map +1 -1
- package/dist/learning.js +1 -2
- package/dist/learning.js.map +1 -1
- package/dist/monitoring.d.ts.map +1 -1
- package/dist/monitoring.js +1 -2
- package/dist/monitoring.js.map +1 -1
- package/dist/parallel-processor.d.ts +3 -2
- package/dist/parallel-processor.d.ts.map +1 -1
- package/dist/parallel-processor.js +183 -56
- package/dist/parallel-processor.js.map +1 -1
- package/dist/presentation/cli/commands/ask-command.d.ts +8 -0
- package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/ask-command.js +133 -0
- package/dist/presentation/cli/commands/ask-command.js.map +1 -0
- package/dist/presentation/cli/commands/config-command.d.ts +9 -0
- package/dist/presentation/cli/commands/config-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/config-command.js +123 -0
- package/dist/presentation/cli/commands/config-command.js.map +1 -0
- package/dist/presentation/cli/commands/cost-command.d.ts +8 -0
- package/dist/presentation/cli/commands/cost-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/cost-command.js +191 -0
- package/dist/presentation/cli/commands/cost-command.js.map +1 -0
- package/dist/presentation/cli/commands/decision-command.d.ts +12 -0
- package/dist/presentation/cli/commands/decision-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/decision-command.js +207 -0
- package/dist/presentation/cli/commands/decision-command.js.map +1 -0
- package/dist/presentation/cli/commands/help-command.d.ts +9 -0
- package/dist/presentation/cli/commands/help-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/help-command.js +281 -0
- package/dist/presentation/cli/commands/help-command.js.map +1 -0
- package/dist/presentation/cli/commands/knowledge-command.d.ts +13 -0
- package/dist/presentation/cli/commands/knowledge-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/knowledge-command.js +129 -0
- package/dist/presentation/cli/commands/knowledge-command.js.map +1 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +8 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.js +183 -0
- package/dist/presentation/cli/commands/learning-dashboard-command.js.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts +8 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.js +112 -0
- package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -0
- package/dist/presentation/cli/commands/plan-command.d.ts +8 -0
- package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/plan-command.js +114 -0
- package/dist/presentation/cli/commands/plan-command.js.map +1 -0
- package/dist/presentation/cli/commands/react-command.d.ts +8 -0
- package/dist/presentation/cli/commands/react-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/react-command.js +99 -0
- package/dist/presentation/cli/commands/react-command.js.map +1 -0
- package/dist/presentation/cli/commands/setup-command.d.ts +10 -0
- package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/setup-command.js +231 -0
- package/dist/presentation/cli/commands/setup-command.js.map +1 -0
- package/dist/presentation/cli/commands/smart-command.d.ts +6 -0
- package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/smart-command.js +212 -0
- package/dist/presentation/cli/commands/smart-command.js.map +1 -0
- package/dist/presentation/cli/commands/trace-command.d.ts +8 -0
- package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/trace-command.js +125 -0
- package/dist/presentation/cli/commands/trace-command.js.map +1 -0
- package/dist/presentation/cli/commands/undo-command.d.ts +8 -0
- package/dist/presentation/cli/commands/undo-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/undo-command.js +141 -0
- package/dist/presentation/cli/commands/undo-command.js.map +1 -0
- package/dist/presentation/cli/error-display.d.ts +23 -0
- package/dist/presentation/cli/error-display.d.ts.map +1 -0
- package/dist/presentation/cli/error-display.js +122 -0
- package/dist/presentation/cli/error-display.js.map +1 -0
- package/dist/refactor.d.ts.map +1 -1
- package/dist/refactor.js +2 -4
- package/dist/refactor.js.map +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +2 -63
- package/dist/search.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +52 -3
- package/dist/session.js.map +1 -1
- package/dist/testgen.d.ts.map +1 -1
- package/dist/testgen.js +1 -2
- package/dist/testgen.js.map +1 -1
- package/dist/tools/bash.d.ts +53 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +213 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit.d.ts +48 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +235 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/executor.d.ts +29 -0
- package/dist/tools/executor.d.ts.map +1 -0
- package/dist/tools/executor.js +153 -0
- package/dist/tools/executor.js.map +1 -0
- package/dist/tools/git-tool.d.ts +87 -0
- package/dist/tools/git-tool.d.ts.map +1 -0
- package/dist/tools/git-tool.js +292 -0
- package/dist/tools/git-tool.js.map +1 -0
- package/dist/tools/parser.d.ts +33 -0
- package/dist/tools/parser.d.ts.map +1 -0
- package/dist/tools/parser.js +158 -0
- package/dist/tools/parser.js.map +1 -0
- package/dist/tools/registry.d.ts +74 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +302 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search.d.ts +41 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +100 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +4 -2
- package/dist/ui.js.map +1 -1
- package/dist/utils/check-api-status.d.ts +12 -0
- package/dist/utils/check-api-status.d.ts.map +1 -0
- package/dist/utils/check-api-status.js +82 -0
- package/dist/utils/check-api-status.js.map +1 -0
- package/dist/utils/diff-parser.d.ts +22 -0
- package/dist/utils/diff-parser.d.ts.map +1 -0
- package/dist/utils/diff-parser.js +160 -0
- package/dist/utils/diff-parser.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +56 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/version.d.ts +21 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +52 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/verification/backup.d.ts +30 -0
- package/dist/verification/backup.d.ts.map +1 -0
- package/dist/verification/backup.js +238 -0
- package/dist/verification/backup.js.map +1 -0
- package/dist/verification/compiler.d.ts +20 -0
- package/dist/verification/compiler.d.ts.map +1 -0
- package/dist/verification/compiler.js +228 -0
- package/dist/verification/compiler.js.map +1 -0
- package/dist/verification/index.d.ts +59 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +273 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/test-runner.d.ts +27 -0
- package/dist/verification/test-runner.d.ts.map +1 -0
- package/dist/verification/test-runner.js +379 -0
- package/dist/verification/test-runner.js.map +1 -0
- package/package.json +39 -14
- package/ARCHITECTURE.md +0 -240
- package/CHANGELOG.md +0 -44
- package/CONTRIBUTING.md +0 -171
- package/dist/benchmark.d.ts +0 -39
- package/dist/benchmark.d.ts.map +0 -1
- package/dist/benchmark.js +0 -195
- package/dist/benchmark.js.map +0 -1
- package/dist/scaffold.d.ts +0 -14
- package/dist/scaffold.d.ts.map +0 -1
- package/dist/scaffold.js +0 -85
- package/dist/scaffold.js.map +0 -1
- package/templates/next-page/app/layout.tsx +0 -19
- package/templates/next-page/app/page.tsx +0 -10
- package/templates/next-page/package.json +0 -22
- package/templates/node-api/index.js +0 -57
- package/templates/node-api/package.json +0 -13
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure: Interactive XAI System
|
|
3
|
+
*
|
|
4
|
+
* Allows users to click on code for explanations (interactive exploration)
|
|
5
|
+
* Research: Interactive XAI differentiates from competitors
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Code span explanations (why this code was generated/modified)
|
|
9
|
+
* - CoT step linking (which reasoning step led to this code)
|
|
10
|
+
* - Attention visualization (which context influenced this code)
|
|
11
|
+
* - Uncertainty indicators (confidence levels per code region)
|
|
12
|
+
*/
|
|
13
|
+
export interface CodeExplanation {
|
|
14
|
+
codeSpan: {
|
|
15
|
+
filepath: string;
|
|
16
|
+
startLine: number;
|
|
17
|
+
endLine: number;
|
|
18
|
+
content: string;
|
|
19
|
+
};
|
|
20
|
+
explanation: {
|
|
21
|
+
why: string;
|
|
22
|
+
how: string;
|
|
23
|
+
confidence: number;
|
|
24
|
+
uncertainty?: {
|
|
25
|
+
epistemic: number;
|
|
26
|
+
aleatoric?: number;
|
|
27
|
+
isHallucinationRisk: boolean;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
reasoning: {
|
|
31
|
+
cotStepId?: string;
|
|
32
|
+
cotStepNumber?: number;
|
|
33
|
+
attentionSpans?: Array<{
|
|
34
|
+
filepath: string;
|
|
35
|
+
lines: number[];
|
|
36
|
+
relevanceScore: number;
|
|
37
|
+
}>;
|
|
38
|
+
decisionPoint?: string;
|
|
39
|
+
};
|
|
40
|
+
metadata: {
|
|
41
|
+
toolUsed?: string;
|
|
42
|
+
timestamp: number;
|
|
43
|
+
model?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface InteractiveXAIState {
|
|
47
|
+
sessionId: string;
|
|
48
|
+
query: string;
|
|
49
|
+
explanations: Map<string, CodeExplanation>;
|
|
50
|
+
cotTrajectoryId?: string;
|
|
51
|
+
attentionMapId?: string;
|
|
52
|
+
createdAt: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Interactive XAI System
|
|
56
|
+
* Enables users to explore AI reasoning interactively
|
|
57
|
+
*/
|
|
58
|
+
export declare class InteractiveXAI {
|
|
59
|
+
private sessions;
|
|
60
|
+
/**
|
|
61
|
+
* Create new interactive XAI session
|
|
62
|
+
*/
|
|
63
|
+
createSession(sessionId: string, query: string, options?: {
|
|
64
|
+
cotTrajectoryId?: string;
|
|
65
|
+
attentionMapId?: string;
|
|
66
|
+
}): InteractiveXAIState;
|
|
67
|
+
/**
|
|
68
|
+
* Get explanation for code span
|
|
69
|
+
*/
|
|
70
|
+
getExplanation(sessionId: string, filepath: string, startLine: number, endLine: number): CodeExplanation | null;
|
|
71
|
+
/**
|
|
72
|
+
* Register code explanation
|
|
73
|
+
*/
|
|
74
|
+
registerExplanation(sessionId: string, explanation: CodeExplanation): void;
|
|
75
|
+
/**
|
|
76
|
+
* Generate explanation for code span (on-demand)
|
|
77
|
+
*/
|
|
78
|
+
generateExplanation(sessionId: string, filepath: string, startLine: number, endLine: number, code: string, context: {
|
|
79
|
+
query: string;
|
|
80
|
+
cotTrajectory?: any;
|
|
81
|
+
attentionMap?: any;
|
|
82
|
+
uncertainty?: any;
|
|
83
|
+
}): Promise<CodeExplanation>;
|
|
84
|
+
/**
|
|
85
|
+
* Get all explanations for a file
|
|
86
|
+
*/
|
|
87
|
+
getFileExplanations(sessionId: string, filepath: string): CodeExplanation[];
|
|
88
|
+
/**
|
|
89
|
+
* Format explanation for display
|
|
90
|
+
*/
|
|
91
|
+
formatExplanation(explanation: CodeExplanation, format: 'console' | 'json' | 'markdown'): string;
|
|
92
|
+
/**
|
|
93
|
+
* Get session state
|
|
94
|
+
*/
|
|
95
|
+
getSession(sessionId: string): InteractiveXAIState | null;
|
|
96
|
+
private getExplanationKey;
|
|
97
|
+
private generateWhyExplanation;
|
|
98
|
+
private generateHowExplanation;
|
|
99
|
+
private calculateConfidence;
|
|
100
|
+
private findRelatedCoTStep;
|
|
101
|
+
private findRelatedAttentionSpans;
|
|
102
|
+
private findDecisionPoint;
|
|
103
|
+
private formatForConsole;
|
|
104
|
+
private formatForMarkdown;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=interactive-xai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-xai.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/xai/interactive-xai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,mBAAmB,EAAE,OAAO,CAAC;SAC9B,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,KAAK,CAAC;YACrB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC,CAAC;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;OAEG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,mBAAmB;IActB;;OAEG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,IAAI;IAUzB;;OAEG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,eAAe,GAC3B,IAAI;IAeP;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,GAAG,CAAC;QACpB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,GACA,OAAO,CAAC,eAAe,CAAC;IAyC3B;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAgB3E;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM;IAWhG;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAMzD,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,iBAAiB;CAoC1B"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure: Interactive XAI System
|
|
3
|
+
*
|
|
4
|
+
* Allows users to click on code for explanations (interactive exploration)
|
|
5
|
+
* Research: Interactive XAI differentiates from competitors
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Code span explanations (why this code was generated/modified)
|
|
9
|
+
* - CoT step linking (which reasoning step led to this code)
|
|
10
|
+
* - Attention visualization (which context influenced this code)
|
|
11
|
+
* - Uncertainty indicators (confidence levels per code region)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Interactive XAI System
|
|
15
|
+
* Enables users to explore AI reasoning interactively
|
|
16
|
+
*/
|
|
17
|
+
export class InteractiveXAI {
|
|
18
|
+
sessions = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Create new interactive XAI session
|
|
21
|
+
*/
|
|
22
|
+
createSession(sessionId, query, options) {
|
|
23
|
+
const state = {
|
|
24
|
+
sessionId,
|
|
25
|
+
query,
|
|
26
|
+
explanations: new Map(),
|
|
27
|
+
cotTrajectoryId: options?.cotTrajectoryId,
|
|
28
|
+
attentionMapId: options?.attentionMapId,
|
|
29
|
+
createdAt: Date.now(),
|
|
30
|
+
};
|
|
31
|
+
this.sessions.set(sessionId, state);
|
|
32
|
+
return state;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get explanation for code span
|
|
36
|
+
*/
|
|
37
|
+
getExplanation(sessionId, filepath, startLine, endLine) {
|
|
38
|
+
const session = this.sessions.get(sessionId);
|
|
39
|
+
if (!session) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const key = this.getExplanationKey(filepath, startLine, endLine);
|
|
43
|
+
return session.explanations.get(key) || null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Register code explanation
|
|
47
|
+
*/
|
|
48
|
+
registerExplanation(sessionId, explanation) {
|
|
49
|
+
const session = this.sessions.get(sessionId);
|
|
50
|
+
if (!session) {
|
|
51
|
+
throw new Error(`Session ${sessionId} not found`);
|
|
52
|
+
}
|
|
53
|
+
const key = this.getExplanationKey(explanation.codeSpan.filepath, explanation.codeSpan.startLine, explanation.codeSpan.endLine);
|
|
54
|
+
session.explanations.set(key, explanation);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Generate explanation for code span (on-demand)
|
|
58
|
+
*/
|
|
59
|
+
async generateExplanation(sessionId, filepath, startLine, endLine, code, context) {
|
|
60
|
+
// Check if explanation already exists
|
|
61
|
+
const existing = this.getExplanation(sessionId, filepath, startLine, endLine);
|
|
62
|
+
if (existing) {
|
|
63
|
+
return existing;
|
|
64
|
+
}
|
|
65
|
+
// Generate explanation
|
|
66
|
+
const explanation = {
|
|
67
|
+
codeSpan: {
|
|
68
|
+
filepath,
|
|
69
|
+
startLine,
|
|
70
|
+
endLine,
|
|
71
|
+
content: code,
|
|
72
|
+
},
|
|
73
|
+
explanation: {
|
|
74
|
+
why: this.generateWhyExplanation(code, context.query),
|
|
75
|
+
how: this.generateHowExplanation(code, context.query),
|
|
76
|
+
confidence: this.calculateConfidence(context),
|
|
77
|
+
uncertainty: context.uncertainty ? {
|
|
78
|
+
epistemic: context.uncertainty.epistemic?.value || 0,
|
|
79
|
+
aleatoric: context.uncertainty.aleatoric?.value,
|
|
80
|
+
isHallucinationRisk: context.uncertainty.isHallucinationRisk || false,
|
|
81
|
+
} : undefined,
|
|
82
|
+
},
|
|
83
|
+
reasoning: {
|
|
84
|
+
cotStepId: this.findRelatedCoTStep(context.cotTrajectory, code),
|
|
85
|
+
attentionSpans: this.findRelatedAttentionSpans(context.attentionMap, filepath, startLine, endLine),
|
|
86
|
+
decisionPoint: this.findDecisionPoint(context.cotTrajectory, code),
|
|
87
|
+
},
|
|
88
|
+
metadata: {
|
|
89
|
+
timestamp: Date.now(),
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
// Register explanation
|
|
93
|
+
this.registerExplanation(sessionId, explanation);
|
|
94
|
+
return explanation;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get all explanations for a file
|
|
98
|
+
*/
|
|
99
|
+
getFileExplanations(sessionId, filepath) {
|
|
100
|
+
const session = this.sessions.get(sessionId);
|
|
101
|
+
if (!session) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
const explanations = [];
|
|
105
|
+
for (const explanation of session.explanations.values()) {
|
|
106
|
+
if (explanation.codeSpan.filepath === filepath) {
|
|
107
|
+
explanations.push(explanation);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return explanations.sort((a, b) => a.codeSpan.startLine - b.codeSpan.startLine);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Format explanation for display
|
|
114
|
+
*/
|
|
115
|
+
formatExplanation(explanation, format) {
|
|
116
|
+
switch (format) {
|
|
117
|
+
case 'console':
|
|
118
|
+
return this.formatForConsole(explanation);
|
|
119
|
+
case 'json':
|
|
120
|
+
return JSON.stringify(explanation, null, 2);
|
|
121
|
+
case 'markdown':
|
|
122
|
+
return this.formatForMarkdown(explanation);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get session state
|
|
127
|
+
*/
|
|
128
|
+
getSession(sessionId) {
|
|
129
|
+
return this.sessions.get(sessionId) || null;
|
|
130
|
+
}
|
|
131
|
+
// Private helpers
|
|
132
|
+
getExplanationKey(filepath, startLine, endLine) {
|
|
133
|
+
return `${filepath}:${startLine}:${endLine}`;
|
|
134
|
+
}
|
|
135
|
+
generateWhyExplanation(code, query) {
|
|
136
|
+
// Simple heuristic-based explanation
|
|
137
|
+
// In production, this would use LLM to generate explanation
|
|
138
|
+
return `This code was generated to address: "${query.substring(0, 100)}". The implementation follows the requested functionality.`;
|
|
139
|
+
}
|
|
140
|
+
generateHowExplanation(code, query) {
|
|
141
|
+
// Simple heuristic-based explanation
|
|
142
|
+
// In production, this would use LLM to generate explanation
|
|
143
|
+
return `This code relates to the query by implementing the core logic requested.`;
|
|
144
|
+
}
|
|
145
|
+
calculateConfidence(context) {
|
|
146
|
+
// Calculate confidence based on uncertainty and context quality
|
|
147
|
+
let confidence = 0.8; // Default
|
|
148
|
+
if (context.uncertainty) {
|
|
149
|
+
const epistemic = context.uncertainty.epistemic?.value || 0;
|
|
150
|
+
confidence = 1 - epistemic; // Lower epistemic uncertainty = higher confidence
|
|
151
|
+
}
|
|
152
|
+
// Adjust based on attention map quality
|
|
153
|
+
if (context.attentionMap) {
|
|
154
|
+
const avgAttention = context.attentionMap.averageAttentionScore || 0;
|
|
155
|
+
confidence = (confidence + avgAttention) / 2;
|
|
156
|
+
}
|
|
157
|
+
return Math.max(0, Math.min(1, confidence));
|
|
158
|
+
}
|
|
159
|
+
findRelatedCoTStep(cotTrajectory, code) {
|
|
160
|
+
// Find CoT step that likely generated this code
|
|
161
|
+
// In production, this would analyze trajectory and code content
|
|
162
|
+
if (!cotTrajectory || !cotTrajectory.steps) {
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
// Find action steps that match code generation
|
|
166
|
+
for (const step of cotTrajectory.steps) {
|
|
167
|
+
if (step.type === 'action' && step.metadata?.tool === 'edit' || step.metadata?.tool === 'create') {
|
|
168
|
+
return step.stepId;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
findRelatedAttentionSpans(attentionMap, filepath, startLine, endLine) {
|
|
174
|
+
if (!attentionMap || !attentionMap.spans) {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
// Find attention spans related to this file/region
|
|
178
|
+
const related = [];
|
|
179
|
+
for (const span of attentionMap.spans) {
|
|
180
|
+
if (span.filepath === filepath) {
|
|
181
|
+
// Check if spans overlap
|
|
182
|
+
if (span.startLine <= endLine && span.endLine >= startLine) {
|
|
183
|
+
related.push({
|
|
184
|
+
filepath: span.filepath,
|
|
185
|
+
lines: Array.from({ length: span.endLine - span.startLine + 1 }, (_, i) => span.startLine + i),
|
|
186
|
+
relevanceScore: span.attentionScore,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return related.length > 0 ? related : undefined;
|
|
192
|
+
}
|
|
193
|
+
findDecisionPoint(cotTrajectory, code) {
|
|
194
|
+
// Find decision point that led to this code
|
|
195
|
+
if (!cotTrajectory || !cotTrajectory.steps) {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
for (const step of cotTrajectory.steps) {
|
|
199
|
+
if (step.type === 'decision') {
|
|
200
|
+
return step.metadata?.decision || step.content;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
formatForConsole(explanation) {
|
|
206
|
+
let output = '';
|
|
207
|
+
output += `\n${'═'.repeat(80)}\n`;
|
|
208
|
+
output += `Code Explanation: ${explanation.codeSpan.filepath} (lines ${explanation.codeSpan.startLine}-${explanation.codeSpan.endLine})\n`;
|
|
209
|
+
output += `${'═'.repeat(80)}\n\n`;
|
|
210
|
+
output += `Why:\n ${explanation.explanation.why}\n\n`;
|
|
211
|
+
output += `How:\n ${explanation.explanation.how}\n\n`;
|
|
212
|
+
output += `Confidence: ${(explanation.explanation.confidence * 100).toFixed(1)}%\n`;
|
|
213
|
+
if (explanation.explanation.uncertainty) {
|
|
214
|
+
output += `\nUncertainty:\n`;
|
|
215
|
+
output += ` Epistemic: ${(explanation.explanation.uncertainty.epistemic * 100).toFixed(1)}%\n`;
|
|
216
|
+
if (explanation.explanation.uncertainty.isHallucinationRisk) {
|
|
217
|
+
output += ` ⚠️ Hallucination Risk Detected\n`;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (explanation.reasoning.cotStepNumber) {
|
|
221
|
+
output += `\nRelated Reasoning Step: #${explanation.reasoning.cotStepNumber}\n`;
|
|
222
|
+
}
|
|
223
|
+
if (explanation.reasoning.attentionSpans && explanation.reasoning.attentionSpans.length > 0) {
|
|
224
|
+
output += `\nContext Influences:\n`;
|
|
225
|
+
for (const span of explanation.reasoning.attentionSpans.slice(0, 3)) {
|
|
226
|
+
output += ` - ${span.filepath} (lines ${span.lines[0]}-${span.lines[span.lines.length - 1]}) - Relevance: ${(span.relevanceScore * 100).toFixed(1)}%\n`;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
output += `\n${'═'.repeat(80)}\n`;
|
|
230
|
+
return output;
|
|
231
|
+
}
|
|
232
|
+
formatForMarkdown(explanation) {
|
|
233
|
+
let output = '';
|
|
234
|
+
output += `## Code Explanation\n\n`;
|
|
235
|
+
output += `**File:** \`${explanation.codeSpan.filepath}\` (lines ${explanation.codeSpan.startLine}-${explanation.codeSpan.endLine})\n\n`;
|
|
236
|
+
output += `### Why\n\n${explanation.explanation.why}\n\n`;
|
|
237
|
+
output += `### How\n\n${explanation.explanation.how}\n\n`;
|
|
238
|
+
output += `**Confidence:** ${(explanation.explanation.confidence * 100).toFixed(1)}%\n\n`;
|
|
239
|
+
if (explanation.explanation.uncertainty) {
|
|
240
|
+
output += `### Uncertainty\n\n`;
|
|
241
|
+
output += `- Epistemic: ${(explanation.explanation.uncertainty.epistemic * 100).toFixed(1)}%\n`;
|
|
242
|
+
if (explanation.explanation.uncertainty.isHallucinationRisk) {
|
|
243
|
+
output += `- ⚠️ **Hallucination Risk Detected**\n`;
|
|
244
|
+
}
|
|
245
|
+
output += `\n`;
|
|
246
|
+
}
|
|
247
|
+
if (explanation.reasoning.cotStepNumber) {
|
|
248
|
+
output += `### Related Reasoning\n\n`;
|
|
249
|
+
output += `Part of reasoning step #${explanation.reasoning.cotStepNumber}\n\n`;
|
|
250
|
+
}
|
|
251
|
+
if (explanation.reasoning.attentionSpans && explanation.reasoning.attentionSpans.length > 0) {
|
|
252
|
+
output += `### Context Influences\n\n`;
|
|
253
|
+
for (const span of explanation.reasoning.attentionSpans.slice(0, 3)) {
|
|
254
|
+
output += `- \`${span.filepath}\` (lines ${span.lines[0]}-${span.lines[span.lines.length - 1]}) - Relevance: ${(span.relevanceScore * 100).toFixed(1)}%\n`;
|
|
255
|
+
}
|
|
256
|
+
output += `\n`;
|
|
257
|
+
}
|
|
258
|
+
output += `\`\`\`\n${explanation.codeSpan.content}\n\`\`\`\n`;
|
|
259
|
+
return output;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=interactive-xai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-xai.js","sourceRoot":"","sources":["../../../src/infrastructure/xai/interactive-xai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure: Uncertainty Quantifier
|
|
3
|
+
* Distinguishes Epistemic (reducible) vs Aleatoric (irreducible) uncertainty
|
|
4
|
+
*
|
|
5
|
+
* Research Finding: Epistemic uncertainty = hallucination risk
|
|
6
|
+
* Critical for preventing deployment of plausible but wrong code
|
|
7
|
+
*
|
|
8
|
+
* Based on research: Explainable AI (XAI) for Code Generation Agents
|
|
9
|
+
* - Epistemic uncertainty: Model lacks knowledge (can be reduced)
|
|
10
|
+
* - Aleatoric uncertainty: Inherent randomness (cannot be reduced)
|
|
11
|
+
* - High epistemic = high hallucination risk
|
|
12
|
+
* - Dropout method for estimation (Bayesian inference approximation)
|
|
13
|
+
*/
|
|
14
|
+
export type UncertaintyType = 'epistemic' | 'aleatoric' | 'combined';
|
|
15
|
+
export interface UncertaintyScore {
|
|
16
|
+
type: UncertaintyType;
|
|
17
|
+
value: number;
|
|
18
|
+
explanation: string;
|
|
19
|
+
riskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
20
|
+
recommendation?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface UncertaintyResult {
|
|
23
|
+
epistemic: UncertaintyScore;
|
|
24
|
+
aleatoric?: UncertaintyScore;
|
|
25
|
+
combined: UncertaintyScore;
|
|
26
|
+
isHallucinationRisk: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Uncertainty Quantifier
|
|
30
|
+
* Quantifies and communicates model uncertainty
|
|
31
|
+
*/
|
|
32
|
+
export declare class UncertaintyQuantifier {
|
|
33
|
+
private epistemicThreshold;
|
|
34
|
+
/**
|
|
35
|
+
* Quantify uncertainty from LLM response
|
|
36
|
+
* Uses multiple sampling approach (dropout method)
|
|
37
|
+
*/
|
|
38
|
+
quantifyUncertainty(query: string, response: string, context?: {
|
|
39
|
+
chunks?: any[];
|
|
40
|
+
memories?: any[];
|
|
41
|
+
}): Promise<UncertaintyResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Estimate epistemic uncertainty (model knowledge gap)
|
|
44
|
+
* High epistemic = query outside training distribution
|
|
45
|
+
*/
|
|
46
|
+
private estimateEpistemicUncertainty;
|
|
47
|
+
/**
|
|
48
|
+
* Estimate aleatoric uncertainty (inherent randomness)
|
|
49
|
+
*/
|
|
50
|
+
private estimateAleatoricUncertainty;
|
|
51
|
+
/**
|
|
52
|
+
* Combine uncertainties
|
|
53
|
+
*/
|
|
54
|
+
private combineUncertainties;
|
|
55
|
+
/**
|
|
56
|
+
* Check for unknown patterns (outside training distribution)
|
|
57
|
+
*/
|
|
58
|
+
private hasUnknownPatterns;
|
|
59
|
+
/**
|
|
60
|
+
* Calculate context availability score
|
|
61
|
+
*/
|
|
62
|
+
private calculateContextScore;
|
|
63
|
+
/**
|
|
64
|
+
* Check for hedging language (indicates uncertainty)
|
|
65
|
+
*/
|
|
66
|
+
private hasHedgingLanguage;
|
|
67
|
+
/**
|
|
68
|
+
* Check for niche/proprietary APIs
|
|
69
|
+
*/
|
|
70
|
+
private hasNicheAPIs;
|
|
71
|
+
/**
|
|
72
|
+
* Get risk level from uncertainty value
|
|
73
|
+
*/
|
|
74
|
+
private getRiskLevel;
|
|
75
|
+
/**
|
|
76
|
+
* Set epistemic threshold
|
|
77
|
+
*/
|
|
78
|
+
setEpistemicThreshold(threshold: number): void;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=uncertainty-quantifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uncertainty-quantifier.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/xai/uncertainty-quantifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,kBAAkB,CAAe;IAEzC;;;OAGG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,GAC7C,OAAO,CAAC,iBAAiB,CAAC;IAqB7B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAmDpC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAuBpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAG/C"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure: Uncertainty Quantifier
|
|
3
|
+
* Distinguishes Epistemic (reducible) vs Aleatoric (irreducible) uncertainty
|
|
4
|
+
*
|
|
5
|
+
* Research Finding: Epistemic uncertainty = hallucination risk
|
|
6
|
+
* Critical for preventing deployment of plausible but wrong code
|
|
7
|
+
*
|
|
8
|
+
* Based on research: Explainable AI (XAI) for Code Generation Agents
|
|
9
|
+
* - Epistemic uncertainty: Model lacks knowledge (can be reduced)
|
|
10
|
+
* - Aleatoric uncertainty: Inherent randomness (cannot be reduced)
|
|
11
|
+
* - High epistemic = high hallucination risk
|
|
12
|
+
* - Dropout method for estimation (Bayesian inference approximation)
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Uncertainty Quantifier
|
|
16
|
+
* Quantifies and communicates model uncertainty
|
|
17
|
+
*/
|
|
18
|
+
export class UncertaintyQuantifier {
|
|
19
|
+
epistemicThreshold = 0.7; // High epistemic = hallucination risk
|
|
20
|
+
/**
|
|
21
|
+
* Quantify uncertainty from LLM response
|
|
22
|
+
* Uses multiple sampling approach (dropout method)
|
|
23
|
+
*/
|
|
24
|
+
async quantifyUncertainty(query, response, context) {
|
|
25
|
+
// For now, use heuristics based on response characteristics
|
|
26
|
+
// In production, would use multiple sampling (dropout method)
|
|
27
|
+
// 1. Epistemic Uncertainty (model knowledge gap)
|
|
28
|
+
const epistemic = this.estimateEpistemicUncertainty(query, response, context);
|
|
29
|
+
// 2. Aleatoric Uncertainty (inherent randomness)
|
|
30
|
+
const aleatoric = this.estimateAleatoricUncertainty(response);
|
|
31
|
+
// 3. Combined Uncertainty
|
|
32
|
+
const combined = this.combineUncertainties(epistemic, aleatoric);
|
|
33
|
+
return {
|
|
34
|
+
epistemic,
|
|
35
|
+
aleatoric,
|
|
36
|
+
combined,
|
|
37
|
+
isHallucinationRisk: epistemic.value > this.epistemicThreshold,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Estimate epistemic uncertainty (model knowledge gap)
|
|
42
|
+
* High epistemic = query outside training distribution
|
|
43
|
+
*/
|
|
44
|
+
estimateEpistemicUncertainty(query, response, context) {
|
|
45
|
+
let epistemicValue = 0;
|
|
46
|
+
const factors = [];
|
|
47
|
+
// Factor 1: Query complexity (unknown patterns)
|
|
48
|
+
if (this.hasUnknownPatterns(query)) {
|
|
49
|
+
epistemicValue += 0.3;
|
|
50
|
+
factors.push('Query contains unknown patterns');
|
|
51
|
+
}
|
|
52
|
+
// Factor 2: Context availability (low context = high uncertainty)
|
|
53
|
+
const contextScore = this.calculateContextScore(context);
|
|
54
|
+
if (contextScore < 0.3) {
|
|
55
|
+
epistemicValue += 0.3;
|
|
56
|
+
factors.push('Low context availability');
|
|
57
|
+
}
|
|
58
|
+
// Factor 3: Response confidence markers (hedging language)
|
|
59
|
+
if (this.hasHedgingLanguage(response)) {
|
|
60
|
+
epistemicValue += 0.2;
|
|
61
|
+
factors.push('Response contains hedging language');
|
|
62
|
+
}
|
|
63
|
+
// Factor 4: Niche/proprietary API usage (outside training)
|
|
64
|
+
if (this.hasNicheAPIs(response)) {
|
|
65
|
+
epistemicValue += 0.4;
|
|
66
|
+
factors.push('Niche or proprietary API usage detected');
|
|
67
|
+
}
|
|
68
|
+
epistemicValue = Math.min(epistemicValue, 1.0);
|
|
69
|
+
const riskLevel = this.getRiskLevel(epistemicValue);
|
|
70
|
+
const recommendation = epistemicValue > this.epistemicThreshold
|
|
71
|
+
? 'High epistemic uncertainty detected. This may indicate hallucination risk. Verify output carefully, especially for niche APIs or proprietary patterns.'
|
|
72
|
+
: undefined;
|
|
73
|
+
return {
|
|
74
|
+
type: 'epistemic',
|
|
75
|
+
value: epistemicValue,
|
|
76
|
+
explanation: factors.length > 0
|
|
77
|
+
? `Epistemic uncertainty factors: ${factors.join('; ')}`
|
|
78
|
+
: 'Low epistemic uncertainty - query appears within model knowledge',
|
|
79
|
+
riskLevel,
|
|
80
|
+
recommendation,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Estimate aleatoric uncertainty (inherent randomness)
|
|
85
|
+
*/
|
|
86
|
+
estimateAleatoricUncertainty(response) {
|
|
87
|
+
// Aleatoric uncertainty is harder to estimate from single response
|
|
88
|
+
// Would require multiple samples in production
|
|
89
|
+
// For now, estimate based on response variability markers
|
|
90
|
+
let aleatoricValue = 0;
|
|
91
|
+
// Multiple valid solutions increase aleatoric uncertainty
|
|
92
|
+
if (response.includes('alternative') || response.includes('could also')) {
|
|
93
|
+
aleatoricValue += 0.2;
|
|
94
|
+
}
|
|
95
|
+
// Default to low aleatoric (assuming deterministic generation)
|
|
96
|
+
aleatoricValue = Math.min(aleatoricValue, 0.3);
|
|
97
|
+
return {
|
|
98
|
+
type: 'aleatoric',
|
|
99
|
+
value: aleatoricValue,
|
|
100
|
+
explanation: 'Inherent randomness in generation process',
|
|
101
|
+
riskLevel: aleatoricValue < 0.2 ? 'low' : 'medium',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Combine uncertainties
|
|
106
|
+
*/
|
|
107
|
+
combineUncertainties(epistemic, aleatoric) {
|
|
108
|
+
const aleatoricValue = aleatoric?.value || 0;
|
|
109
|
+
const combinedValue = Math.max(epistemic.value, aleatoricValue);
|
|
110
|
+
return {
|
|
111
|
+
type: 'combined',
|
|
112
|
+
value: combinedValue,
|
|
113
|
+
explanation: `Combined uncertainty: ${epistemic.value.toFixed(2)} epistemic, ${aleatoricValue.toFixed(2)} aleatoric`,
|
|
114
|
+
riskLevel: this.getRiskLevel(combinedValue),
|
|
115
|
+
recommendation: epistemic.recommendation,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check for unknown patterns (outside training distribution)
|
|
120
|
+
*/
|
|
121
|
+
hasUnknownPatterns(query) {
|
|
122
|
+
// Heuristic: Very specific, niche terminology
|
|
123
|
+
const nichePatterns = [
|
|
124
|
+
/internal.*?api/i,
|
|
125
|
+
/proprietary/i,
|
|
126
|
+
/custom.*?framework/i,
|
|
127
|
+
/company.*?specific/i,
|
|
128
|
+
];
|
|
129
|
+
return nichePatterns.some(pattern => pattern.test(query));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Calculate context availability score
|
|
133
|
+
*/
|
|
134
|
+
calculateContextScore(context) {
|
|
135
|
+
if (!context) {
|
|
136
|
+
return 0;
|
|
137
|
+
}
|
|
138
|
+
const chunkCount = context.chunks?.length || 0;
|
|
139
|
+
const memoryCount = context.memories?.length || 0;
|
|
140
|
+
// More context = lower epistemic uncertainty
|
|
141
|
+
if (chunkCount > 5 && memoryCount > 2) {
|
|
142
|
+
return 0.8;
|
|
143
|
+
}
|
|
144
|
+
if (chunkCount > 3 || memoryCount > 1) {
|
|
145
|
+
return 0.5;
|
|
146
|
+
}
|
|
147
|
+
if (chunkCount > 0 || memoryCount > 0) {
|
|
148
|
+
return 0.3;
|
|
149
|
+
}
|
|
150
|
+
return 0;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Check for hedging language (indicates uncertainty)
|
|
154
|
+
*/
|
|
155
|
+
hasHedgingLanguage(response) {
|
|
156
|
+
const hedging = [
|
|
157
|
+
/might/i,
|
|
158
|
+
/could/i,
|
|
159
|
+
/possibly/i,
|
|
160
|
+
/may/i,
|
|
161
|
+
/perhaps/i,
|
|
162
|
+
/probably/i,
|
|
163
|
+
/likely/i,
|
|
164
|
+
];
|
|
165
|
+
return hedging.some(pattern => pattern.test(response));
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Check for niche/proprietary APIs
|
|
169
|
+
*/
|
|
170
|
+
hasNicheAPIs(response) {
|
|
171
|
+
const nichePatterns = [
|
|
172
|
+
/internal.*?sdk/i,
|
|
173
|
+
/company.*?api/i,
|
|
174
|
+
/custom.*?service/i,
|
|
175
|
+
/proprietary.*?library/i,
|
|
176
|
+
];
|
|
177
|
+
return nichePatterns.some(pattern => pattern.test(response));
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get risk level from uncertainty value
|
|
181
|
+
*/
|
|
182
|
+
getRiskLevel(value) {
|
|
183
|
+
if (value >= 0.8) {
|
|
184
|
+
return 'critical';
|
|
185
|
+
}
|
|
186
|
+
if (value >= 0.6) {
|
|
187
|
+
return 'high';
|
|
188
|
+
}
|
|
189
|
+
if (value >= 0.4) {
|
|
190
|
+
return 'medium';
|
|
191
|
+
}
|
|
192
|
+
return 'low';
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Set epistemic threshold
|
|
196
|
+
*/
|
|
197
|
+
setEpistemicThreshold(threshold) {
|
|
198
|
+
this.epistemicThreshold = threshold;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=uncertainty-quantifier.js.map
|