codehere 0.4.0 → 0.5.0-alpha
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/LICENSE +1 -1
- package/README.md +113 -30
- package/dist/application/agents/execution-agent.js +2 -2
- package/dist/application/agents/execution-agent.js.map +1 -1
- package/dist/application/agents/multi-agent-orchestrator.d.ts +1 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
- package/dist/application/agents/multi-agent-orchestrator.js +10 -3
- package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
- package/dist/application/agents/planning-agent.d.ts.map +1 -1
- package/dist/application/agents/planning-agent.js +22 -10
- package/dist/application/agents/planning-agent.js.map +1 -1
- package/dist/application/agents/validation-agent.js +2 -2
- package/dist/application/agents/validation-agent.js.map +1 -1
- package/dist/application/reasoning/multi-model-planning-strategy.d.ts +21 -0
- package/dist/application/reasoning/multi-model-planning-strategy.d.ts.map +1 -0
- package/dist/application/reasoning/multi-model-planning-strategy.js +158 -0
- package/dist/application/reasoning/multi-model-planning-strategy.js.map +1 -0
- package/dist/application/reasoning/reasoning-config.d.ts +15 -0
- package/dist/application/reasoning/reasoning-config.d.ts.map +1 -0
- package/dist/application/reasoning/reasoning-config.js +50 -0
- package/dist/application/reasoning/reasoning-config.js.map +1 -0
- package/dist/application/reasoning/reasoning-orchestrator.d.ts +18 -0
- package/dist/application/reasoning/reasoning-orchestrator.d.ts.map +1 -0
- package/dist/application/reasoning/reasoning-orchestrator.js +170 -0
- package/dist/application/reasoning/reasoning-orchestrator.js.map +1 -0
- package/dist/application/reasoning/reasoning-strategy.interface.d.ts +24 -0
- package/dist/application/reasoning/reasoning-strategy.interface.d.ts.map +1 -0
- package/dist/application/reasoning/reasoning-strategy.interface.js +6 -0
- package/dist/application/reasoning/reasoning-strategy.interface.js.map +1 -0
- package/dist/application/reasoning/role-provider-resolver.d.ts +36 -0
- package/dist/application/reasoning/role-provider-resolver.d.ts.map +1 -0
- package/dist/application/reasoning/role-provider-resolver.js +74 -0
- package/dist/application/reasoning/role-provider-resolver.js.map +1 -0
- package/dist/application/reasoning/simple-planning-strategy.d.ts +22 -0
- package/dist/application/reasoning/simple-planning-strategy.d.ts.map +1 -0
- package/dist/application/reasoning/simple-planning-strategy.js +217 -0
- package/dist/application/reasoning/simple-planning-strategy.js.map +1 -0
- package/dist/application/reasoning/types.d.ts +65 -0
- package/dist/application/reasoning/types.d.ts.map +1 -0
- package/dist/application/reasoning/types.js +6 -0
- package/dist/application/reasoning/types.js.map +1 -0
- package/dist/application/reasoning/validator-strategy.d.ts +56 -0
- package/dist/application/reasoning/validator-strategy.d.ts.map +1 -0
- package/dist/application/reasoning/validator-strategy.js +103 -0
- package/dist/application/reasoning/validator-strategy.js.map +1 -0
- package/dist/application/services/dependency-container.d.ts +30 -6
- package/dist/application/services/dependency-container.d.ts.map +1 -1
- package/dist/application/services/dependency-container.js +96 -44
- package/dist/application/services/dependency-container.js.map +1 -1
- package/dist/application/services/intelligent-router.d.ts +6 -0
- package/dist/application/services/intelligent-router.d.ts.map +1 -1
- package/dist/application/services/intelligent-router.js +98 -9
- package/dist/application/services/intelligent-router.js.map +1 -1
- package/dist/application/use-cases/ask-question-use-case.d.ts +1 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/ask-question-use-case.js +4 -3
- package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
- package/dist/application/use-cases/planning-use-case.d.ts +14 -1
- package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/planning-use-case.js +109 -2
- package/dist/application/use-cases/planning-use-case.js.map +1 -1
- package/dist/domain/entities/memory.d.ts.map +1 -1
- package/dist/domain/entities/task.d.ts +1 -1
- package/dist/domain/entities/task.d.ts.map +1 -1
- package/dist/domain/entities/task.js +2 -2
- package/dist/domain/entities/task.js.map +1 -1
- package/dist/domain/errors/embeddings-not-found-error.d.ts +9 -0
- package/dist/domain/errors/embeddings-not-found-error.d.ts.map +1 -0
- package/dist/domain/errors/embeddings-not-found-error.js +13 -0
- package/dist/domain/errors/embeddings-not-found-error.js.map +1 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts +5 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -1
- package/dist/domain/services/environment-mode-manager.d.ts +4 -10
- package/dist/domain/services/environment-mode-manager.d.ts.map +1 -1
- package/dist/domain/services/environment-mode-manager.js +7 -22
- package/dist/domain/services/environment-mode-manager.js.map +1 -1
- package/dist/domain/services/query-intent-classifier.d.ts.map +1 -1
- package/dist/domain/services/query-intent-classifier.js +20 -1
- package/dist/domain/services/query-intent-classifier.js.map +1 -1
- package/dist/domain/services/risk-tier-detector.d.ts +8 -9
- package/dist/domain/services/risk-tier-detector.d.ts.map +1 -1
- package/dist/domain/services/risk-tier-detector.js +53 -40
- package/dist/domain/services/risk-tier-detector.js.map +1 -1
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +18 -8
- package/dist/embed.js.map +1 -1
- package/dist/index.js +405 -52
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.js +4 -4
- package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
- package/dist/infrastructure/ai/provider-ai-service.d.ts.map +1 -1
- package/dist/infrastructure/ai/provider-ai-service.js +7 -7
- package/dist/infrastructure/ai/provider-ai-service.js.map +1 -1
- package/dist/infrastructure/cache/query-result-cache.d.ts +14 -55
- package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -1
- package/dist/infrastructure/cache/query-result-cache.js +40 -112
- package/dist/infrastructure/cache/query-result-cache.js.map +1 -1
- package/dist/infrastructure/cache/response-cache.d.ts +10 -78
- package/dist/infrastructure/cache/response-cache.d.ts.map +1 -1
- package/dist/infrastructure/cache/response-cache.js +22 -198
- package/dist/infrastructure/cache/response-cache.js.map +1 -1
- package/dist/infrastructure/cache/security-scan-cache.d.ts +8 -49
- package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -1
- package/dist/infrastructure/cache/security-scan-cache.js +25 -102
- package/dist/infrastructure/cache/security-scan-cache.js.map +1 -1
- package/dist/infrastructure/completion/bash-completion.d.ts +2 -3
- package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -1
- package/dist/infrastructure/completion/bash-completion.js +11 -87
- package/dist/infrastructure/completion/bash-completion.js.map +1 -1
- package/dist/infrastructure/completion/fish-completion.d.ts +2 -3
- package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -1
- package/dist/infrastructure/completion/fish-completion.js +15 -58
- package/dist/infrastructure/completion/fish-completion.js.map +1 -1
- package/dist/infrastructure/completion/zsh-completion.d.ts +2 -3
- package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -1
- package/dist/infrastructure/completion/zsh-completion.js +18 -73
- package/dist/infrastructure/completion/zsh-completion.js.map +1 -1
- package/dist/infrastructure/config/config-manager.d.ts +10 -0
- package/dist/infrastructure/config/config-manager.d.ts.map +1 -1
- package/dist/infrastructure/config/config-manager.js +13 -2
- package/dist/infrastructure/config/config-manager.js.map +1 -1
- package/dist/infrastructure/context/conversation-context.d.ts +27 -31
- package/dist/infrastructure/context/conversation-context.d.ts.map +1 -1
- package/dist/infrastructure/context/conversation-context.js +95 -136
- package/dist/infrastructure/context/conversation-context.js.map +1 -1
- package/dist/infrastructure/context/session-manager.d.ts +27 -11
- package/dist/infrastructure/context/session-manager.d.ts.map +1 -1
- package/dist/infrastructure/context/session-manager.js +69 -73
- package/dist/infrastructure/context/session-manager.js.map +1 -1
- package/dist/infrastructure/protocols/a2a-metadata.js +1 -1
- package/dist/infrastructure/protocols/mcp-oauth.js +1 -1
- package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -1
- package/dist/infrastructure/providers/cohere-provider.js +102 -17
- package/dist/infrastructure/providers/cohere-provider.js.map +1 -1
- package/dist/infrastructure/providers/openrouter-provider.d.ts +42 -0
- package/dist/infrastructure/providers/openrouter-provider.d.ts.map +1 -0
- package/dist/infrastructure/providers/openrouter-provider.js +401 -0
- package/dist/infrastructure/providers/openrouter-provider.js.map +1 -0
- package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -1
- package/dist/infrastructure/providers/operation-provider-resolver.js +33 -7
- package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -1
- package/dist/infrastructure/security/input-validator.d.ts.map +1 -1
- package/dist/infrastructure/security/input-validator.js +19 -6
- package/dist/infrastructure/security/input-validator.js.map +1 -1
- package/dist/infrastructure/serialization/toon-serializer.d.ts +45 -0
- package/dist/infrastructure/serialization/toon-serializer.d.ts.map +1 -0
- package/dist/infrastructure/serialization/toon-serializer.js +119 -0
- package/dist/infrastructure/serialization/toon-serializer.js.map +1 -0
- package/dist/infrastructure/storage/embeddings-path.d.ts +18 -0
- package/dist/infrastructure/storage/embeddings-path.d.ts.map +1 -0
- package/dist/infrastructure/storage/embeddings-path.js +37 -0
- package/dist/infrastructure/storage/embeddings-path.js.map +1 -0
- package/dist/infrastructure/storage/plan-repository.d.ts +2 -0
- package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -1
- package/dist/infrastructure/storage/plan-repository.js +36 -73
- package/dist/infrastructure/storage/plan-repository.js.map +1 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +10 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +37 -3
- package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
- package/dist/infrastructure/storage/task-helpers.d.ts +12 -1
- package/dist/infrastructure/storage/task-helpers.d.ts.map +1 -1
- package/dist/infrastructure/storage/task-helpers.js +48 -8
- package/dist/infrastructure/storage/task-helpers.js.map +1 -1
- package/dist/infrastructure/storage/task-repository.d.ts +2 -1
- package/dist/infrastructure/storage/task-repository.d.ts.map +1 -1
- package/dist/infrastructure/storage/task-repository.js +14 -3
- package/dist/infrastructure/storage/task-repository.js.map +1 -1
- package/dist/infrastructure/telemetry/telemetry-service.d.ts +74 -0
- package/dist/infrastructure/telemetry/telemetry-service.d.ts.map +1 -0
- package/dist/infrastructure/telemetry/telemetry-service.js +167 -0
- package/dist/infrastructure/telemetry/telemetry-service.js.map +1 -0
- package/dist/infrastructure/ux/capability-boundaries.d.ts +9 -37
- package/dist/infrastructure/ux/capability-boundaries.d.ts.map +1 -1
- package/dist/infrastructure/ux/capability-boundaries.js +23 -148
- package/dist/infrastructure/ux/capability-boundaries.js.map +1 -1
- package/dist/infrastructure/ux/comprehensive-formatter.d.ts +12 -54
- package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +1 -1
- package/dist/infrastructure/ux/comprehensive-formatter.js +87 -182
- package/dist/infrastructure/ux/comprehensive-formatter.js.map +1 -1
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +5 -18
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -1
- package/dist/infrastructure/ux/contextual-feature-discovery.js +5 -139
- package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -1
- package/dist/infrastructure/ux/feature-discovery.d.ts +3 -33
- package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -1
- package/dist/infrastructure/ux/feature-discovery.js +5 -181
- package/dist/infrastructure/ux/feature-discovery.js.map +1 -1
- package/dist/infrastructure/ux/feedback-prompt.d.ts +15 -31
- package/dist/infrastructure/ux/feedback-prompt.d.ts.map +1 -1
- package/dist/infrastructure/ux/feedback-prompt.js +30 -166
- package/dist/infrastructure/ux/feedback-prompt.js.map +1 -1
- package/dist/infrastructure/ux/progress-indicator.d.ts +4 -6
- package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -1
- package/dist/infrastructure/ux/progress-indicator.js +35 -50
- package/dist/infrastructure/ux/progress-indicator.js.map +1 -1
- package/dist/infrastructure/ux/review-checkpoint.d.ts +3 -1
- package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -1
- package/dist/infrastructure/ux/review-checkpoint.js +33 -80
- package/dist/infrastructure/ux/review-checkpoint.js.map +1 -1
- package/dist/infrastructure/ux/staged-feature-intro.d.ts +14 -39
- package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -1
- package/dist/infrastructure/ux/staged-feature-intro.js +12 -132
- package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -1
- package/dist/infrastructure/ux/syntax-highlighter.d.ts +1 -2
- package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -1
- package/dist/infrastructure/ux/syntax-highlighter.js +67 -148
- package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -1
- package/dist/infrastructure/validation/agent-feedback.d.ts +25 -89
- package/dist/infrastructure/validation/agent-feedback.d.ts.map +1 -1
- package/dist/infrastructure/validation/agent-feedback.js +32 -204
- package/dist/infrastructure/validation/agent-feedback.js.map +1 -1
- package/dist/infrastructure/validation/agent-validation-helper.d.ts +53 -53
- package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +1 -1
- package/dist/infrastructure/validation/agent-validation-helper.js +110 -61
- package/dist/infrastructure/validation/agent-validation-helper.js.map +1 -1
- package/dist/infrastructure/validation/review-handler.d.ts +13 -41
- package/dist/infrastructure/validation/review-handler.d.ts.map +1 -1
- package/dist/infrastructure/validation/review-handler.js +23 -189
- package/dist/infrastructure/validation/review-handler.js.map +1 -1
- package/dist/infrastructure/validation/summary-aggregator.d.ts +25 -22
- package/dist/infrastructure/validation/summary-aggregator.d.ts.map +1 -1
- package/dist/infrastructure/validation/summary-aggregator.js +47 -133
- package/dist/infrastructure/validation/summary-aggregator.js.map +1 -1
- package/dist/infrastructure/validation/summary-extractor.d.ts +13 -48
- package/dist/infrastructure/validation/summary-extractor.d.ts.map +1 -1
- package/dist/infrastructure/validation/summary-extractor.js +32 -89
- package/dist/infrastructure/validation/summary-extractor.js.map +1 -1
- package/dist/infrastructure/validation/trace-summary.d.ts +30 -57
- package/dist/infrastructure/validation/trace-summary.d.ts.map +1 -1
- package/dist/infrastructure/validation/trace-summary.js +37 -356
- package/dist/infrastructure/validation/trace-summary.js.map +1 -1
- package/dist/monitoring.d.ts +1 -1
- package/dist/monitoring.d.ts.map +1 -1
- package/dist/monitoring.js +12 -9
- package/dist/monitoring.js.map +1 -1
- package/dist/parallel-processor.d.ts.map +1 -1
- package/dist/parallel-processor.js +124 -45
- package/dist/parallel-processor.js.map +1 -1
- package/dist/presentation/cli/commands/ask-command.d.ts +2 -0
- package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/ask-command.js +316 -129
- package/dist/presentation/cli/commands/ask-command.js.map +1 -1
- package/dist/presentation/cli/commands/config-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/config-command.js +22 -8
- package/dist/presentation/cli/commands/config-command.js.map +1 -1
- package/dist/presentation/cli/commands/decision-command.js +23 -6
- package/dist/presentation/cli/commands/decision-command.js.map +1 -1
- package/dist/presentation/cli/commands/docs-command.d.ts +3 -1
- package/dist/presentation/cli/commands/docs-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/docs-command.js +13 -184
- package/dist/presentation/cli/commands/docs-command.js.map +1 -1
- package/dist/presentation/cli/commands/fix-command.d.ts +2 -0
- package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/fix-command.js +61 -276
- package/dist/presentation/cli/commands/fix-command.js.map +1 -1
- package/dist/presentation/cli/commands/help-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/help-command.js +21 -1
- package/dist/presentation/cli/commands/help-command.js.map +1 -1
- package/dist/presentation/cli/commands/memory-command.d.ts +17 -0
- package/dist/presentation/cli/commands/memory-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/memory-command.js +252 -0
- package/dist/presentation/cli/commands/memory-command.js.map +1 -0
- package/dist/presentation/cli/commands/models-command.d.ts +13 -0
- package/dist/presentation/cli/commands/models-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/models-command.js +194 -0
- package/dist/presentation/cli/commands/models-command.js.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/orchestrate-command.js +129 -14
- package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
- package/dist/presentation/cli/commands/plan-command.d.ts +1 -0
- package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/plan-command.js +134 -25
- package/dist/presentation/cli/commands/plan-command.js.map +1 -1
- package/dist/presentation/cli/commands/product-command.d.ts +6 -4
- package/dist/presentation/cli/commands/product-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/product-command.js +12 -178
- package/dist/presentation/cli/commands/product-command.js.map +1 -1
- package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/react-command.js +5 -1
- package/dist/presentation/cli/commands/react-command.js.map +1 -1
- package/dist/presentation/cli/commands/review-command.d.ts +7 -7
- package/dist/presentation/cli/commands/review-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/review-command.js +167 -16
- package/dist/presentation/cli/commands/review-command.js.map +1 -1
- package/dist/presentation/cli/commands/run-command.d.ts +6 -8
- package/dist/presentation/cli/commands/run-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/run-command.js +182 -23
- package/dist/presentation/cli/commands/run-command.js.map +1 -1
- package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/setup-command.js +15 -0
- package/dist/presentation/cli/commands/setup-command.js.map +1 -1
- package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/smart-command.js +74 -6
- package/dist/presentation/cli/commands/smart-command.js.map +1 -1
- package/dist/presentation/cli/commands/status-command.d.ts +3 -0
- package/dist/presentation/cli/commands/status-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/status-command.js +151 -156
- package/dist/presentation/cli/commands/status-command.js.map +1 -1
- package/dist/presentation/cli/commands/suggest-command.d.ts +3 -5
- package/dist/presentation/cli/commands/suggest-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/suggest-command.js +132 -19
- package/dist/presentation/cli/commands/suggest-command.js.map +1 -1
- package/dist/presentation/cli/error-display.d.ts.map +1 -1
- package/dist/presentation/cli/error-display.js +75 -17
- package/dist/presentation/cli/error-display.js.map +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +6 -1
- package/dist/search.js.map +1 -1
- package/dist/session.d.ts +1 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +55 -7
- package/dist/session.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +3 -0
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/git-tool.js +7 -7
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/ui.d.ts +11 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +54 -1
- package/dist/ui.js.map +1 -1
- package/package.json +14 -4
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Simple DI container for wiring up dependencies
|
|
4
4
|
*/
|
|
5
5
|
import { CohereAIService } from '../../infrastructure/ai/cohere-ai-service.js';
|
|
6
|
-
import { FakeAIService } from '../../infrastructure/ai/fake-ai-service.js';
|
|
7
6
|
import { SQLiteEmbeddingRepository } from '../../infrastructure/storage/sqlite-embedding-repository.js';
|
|
8
7
|
import { SQLiteMemoryRepository } from '../../infrastructure/storage/sqlite-memory-repository.js';
|
|
9
8
|
import { MemoryStreamService } from '../../infrastructure/storage/memory-stream-service.js';
|
|
@@ -41,8 +40,6 @@ import { MultiAgentOrchestrator } from '../agents/multi-agent-orchestrator.js';
|
|
|
41
40
|
import { PlanningAgent } from '../agents/planning-agent.js';
|
|
42
41
|
import { ExecutionAgent } from '../agents/execution-agent.js';
|
|
43
42
|
import { ValidationAgent } from '../agents/validation-agent.js';
|
|
44
|
-
import { DocumentationAgent } from '../agents/documentation-agent.js';
|
|
45
|
-
import { ProductRequirementsAgent } from '../agents/product-requirements-agent.js';
|
|
46
43
|
import { SQLiteDecisionRepository } from '../../infrastructure/storage/sqlite-decision-repository.js';
|
|
47
44
|
import { DecisionRecorder } from '../../domain/services/decision-recorder.js';
|
|
48
45
|
import { DecisionRetriever } from '../../domain/services/decision-retriever.js';
|
|
@@ -55,10 +52,12 @@ import { CrossTeamPatternSharing } from '../../domain/services/cross-team-patter
|
|
|
55
52
|
import { ProviderRegistry } from '../../infrastructure/providers/provider-registry.js';
|
|
56
53
|
import { CohereProvider } from '../../infrastructure/providers/cohere-provider.js';
|
|
57
54
|
import { OpenAIProvider } from '../../infrastructure/providers/openai-provider.js';
|
|
55
|
+
import { OpenRouterProvider } from '../../infrastructure/providers/openrouter-provider.js';
|
|
58
56
|
import { FakeProvider } from '../../infrastructure/providers/fake-provider.js';
|
|
59
57
|
import { LocalLLMProvider } from '../../infrastructure/providers/local-llm-provider.js';
|
|
60
58
|
import { ProviderAIService } from '../../infrastructure/ai/provider-ai-service.js';
|
|
61
59
|
import { loadProviderConfig, configToOperationConfig } from '../../infrastructure/providers/provider-config-loader.js';
|
|
60
|
+
import { executionTracer } from '../../infrastructure/observability/execution-tracer.js';
|
|
62
61
|
export class DependencyContainer {
|
|
63
62
|
// Infrastructure
|
|
64
63
|
_aiService = null;
|
|
@@ -172,11 +171,42 @@ export class DependencyContainer {
|
|
|
172
171
|
console.warn('[ProviderRegistry] OpenAIProvider initialization skipped:', error instanceof Error ? error.message : String(error));
|
|
173
172
|
}
|
|
174
173
|
}
|
|
174
|
+
// Register OpenRouterProvider if API key is available
|
|
175
|
+
if (process.env.OPENROUTER_API_KEY) {
|
|
176
|
+
try {
|
|
177
|
+
const openRouterProvider = new OpenRouterProvider();
|
|
178
|
+
this._providerRegistry.register(openRouterProvider);
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
console.warn('[ProviderRegistry] OpenRouterProvider initialization skipped:', error instanceof Error ? error.message : String(error));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
175
184
|
// Set default provider based on CODEHERE_AI_PROVIDER env var
|
|
176
|
-
// Priority: local > openai > cohere (default)
|
|
185
|
+
// Priority: local > openrouter > openai > cohere (default)
|
|
177
186
|
if (requestedProvider === 'local' && this._providerRegistry.has('local')) {
|
|
178
187
|
this._providerRegistry.setDefault('local');
|
|
179
188
|
}
|
|
189
|
+
else if (requestedProvider === 'openrouter' && this._providerRegistry.has('openrouter')) {
|
|
190
|
+
const openRouter = this._providerRegistry.get('openrouter');
|
|
191
|
+
const supportsEmbeddings = openRouter?.capabilities.embedding === true;
|
|
192
|
+
if (supportsEmbeddings) {
|
|
193
|
+
this._providerRegistry.setDefault('openrouter');
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
// Fallback to embedding-capable provider to avoid runtime errors
|
|
197
|
+
if (this._providerRegistry.has('cohere')) {
|
|
198
|
+
this._providerRegistry.setDefault('cohere');
|
|
199
|
+
console.warn('[ProviderRegistry] OpenRouter selected but embeddings unsupported; falling back to Cohere for embedding-dependent flows.');
|
|
200
|
+
}
|
|
201
|
+
else if (this._providerRegistry.has('openai')) {
|
|
202
|
+
this._providerRegistry.setDefault('openai');
|
|
203
|
+
console.warn('[ProviderRegistry] OpenRouter selected but embeddings unsupported; falling back to OpenAI for embedding-dependent flows.');
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this._providerRegistry.setDefault('openrouter');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
180
210
|
else if (requestedProvider === 'openai' && this._providerRegistry.has('openai')) {
|
|
181
211
|
this._providerRegistry.setDefault('openai');
|
|
182
212
|
}
|
|
@@ -210,27 +240,34 @@ export class DependencyContainer {
|
|
|
210
240
|
}
|
|
211
241
|
}
|
|
212
242
|
catch (error) {
|
|
213
|
-
// Fallback
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
if (
|
|
217
|
-
|
|
218
|
-
this._aiService = new FakeAIService();
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
console.warn('[DependencyContainer] ProviderAIService initialization failed, falling back to CohereAIService:', error instanceof Error ? error.message : String(error));
|
|
222
|
-
this._aiService = new CohereAIService();
|
|
223
|
-
if (this._contextCompressor) {
|
|
224
|
-
this._aiService._contextCompressor = this._contextCompressor;
|
|
225
|
-
}
|
|
243
|
+
// Fallback to CohereAIService if provider registry fails
|
|
244
|
+
console.warn('[DependencyContainer] ProviderAIService initialization failed, falling back to CohereAIService:', error instanceof Error ? error.message : String(error));
|
|
245
|
+
this._aiService = new CohereAIService();
|
|
246
|
+
if (this._contextCompressor) {
|
|
247
|
+
this._aiService._contextCompressor = this._contextCompressor;
|
|
226
248
|
}
|
|
227
249
|
}
|
|
228
250
|
}
|
|
229
251
|
return this._aiService;
|
|
230
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Get embedding repository for a specific codebase
|
|
255
|
+
* @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
|
|
256
|
+
* @returns SQLiteEmbeddingRepository instance scoped to the codebase
|
|
257
|
+
*/
|
|
258
|
+
getEmbeddingRepository(cwd) {
|
|
259
|
+
// Always create a new instance with the provided cwd to ensure per-repo isolation
|
|
260
|
+
// This ensures each codebase gets its own database path
|
|
261
|
+
return new SQLiteEmbeddingRepository(undefined, cwd);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* @deprecated Use getEmbeddingRepository(cwd) instead for per-repo isolation
|
|
265
|
+
* Kept for backward compatibility
|
|
266
|
+
*/
|
|
231
267
|
get embeddingRepository() {
|
|
232
268
|
if (!this._embeddingRepository) {
|
|
233
|
-
|
|
269
|
+
// Use process.cwd() for backward compatibility
|
|
270
|
+
this._embeddingRepository = new SQLiteEmbeddingRepository(undefined, process.cwd());
|
|
234
271
|
}
|
|
235
272
|
return this._embeddingRepository;
|
|
236
273
|
}
|
|
@@ -246,6 +283,19 @@ export class DependencyContainer {
|
|
|
246
283
|
}
|
|
247
284
|
return this._memoryStreamService;
|
|
248
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Get ask question use case for a specific codebase
|
|
288
|
+
* @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
|
|
289
|
+
* @returns AskQuestionUseCase instance scoped to the codebase
|
|
290
|
+
*/
|
|
291
|
+
getAskQuestionUseCase(cwd) {
|
|
292
|
+
const embeddingRepo = this.getEmbeddingRepository(cwd);
|
|
293
|
+
return new AskQuestionUseCase(embeddingRepo, this.aiService, this.memoryRepository, this.uncertaintyQuantifier);
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* @deprecated Use getAskQuestionUseCase(cwd) instead for per-repo isolation
|
|
297
|
+
* Kept for backward compatibility
|
|
298
|
+
*/
|
|
249
299
|
get askQuestionUseCase() {
|
|
250
300
|
if (!this._askQuestionUseCase) {
|
|
251
301
|
this._askQuestionUseCase = new AskQuestionUseCase(this.embeddingRepository, this.aiService, this.memoryRepository, this.uncertaintyQuantifier // Uncertainty Quantifier for XAI transparency
|
|
@@ -253,6 +303,23 @@ export class DependencyContainer {
|
|
|
253
303
|
}
|
|
254
304
|
return this._askQuestionUseCase;
|
|
255
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Get index codebase use case for a specific codebase
|
|
308
|
+
* @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
|
|
309
|
+
* @returns IndexCodebaseUseCase instance scoped to the codebase
|
|
310
|
+
*/
|
|
311
|
+
getIndexCodebaseUseCase(cwd) {
|
|
312
|
+
const embeddingRepo = this.getEmbeddingRepository(cwd);
|
|
313
|
+
const fileScanner = new FileScanner();
|
|
314
|
+
const chunker = new ASTCodeChunker();
|
|
315
|
+
return new IndexCodebaseUseCase(embeddingRepo, fileScanner, chunker, this.aiService, this.patternExtractor, // Pass pattern extractor for pattern extraction during indexing
|
|
316
|
+
this.knowledgeExtractor // Pass knowledge extractor for knowledge extraction during indexing
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* @deprecated Use getIndexCodebaseUseCase(cwd) instead for per-repo isolation
|
|
321
|
+
* Kept for backward compatibility
|
|
322
|
+
*/
|
|
256
323
|
get indexCodebaseUseCase() {
|
|
257
324
|
if (!this._indexCodebaseUseCase) {
|
|
258
325
|
const fileScanner = new FileScanner();
|
|
@@ -425,7 +492,8 @@ export class DependencyContainer {
|
|
|
425
492
|
}
|
|
426
493
|
get planningUseCase() {
|
|
427
494
|
if (!this._planningUseCase) {
|
|
428
|
-
this._planningUseCase = new PlanningUseCase(this.aiService, this.memoryStreamService, this.memoryRepository, this.patternExtractor // Pass pattern extractor for memory synthesis integration
|
|
495
|
+
this._planningUseCase = new PlanningUseCase(this.aiService, this.memoryStreamService, this.memoryRepository, this.patternExtractor, // Pass pattern extractor for memory synthesis integration
|
|
496
|
+
executionTracer // Pass execution tracer for reasoning layer metrics
|
|
429
497
|
);
|
|
430
498
|
}
|
|
431
499
|
return this._planningUseCase;
|
|
@@ -434,8 +502,6 @@ export class DependencyContainer {
|
|
|
434
502
|
_planningAgent = null;
|
|
435
503
|
_executionAgent = null;
|
|
436
504
|
_validationAgent = null;
|
|
437
|
-
_documentationAgent = null;
|
|
438
|
-
_productRequirementsAgent = null;
|
|
439
505
|
_multiAgentOrchestrator = null;
|
|
440
506
|
get planningAgent() {
|
|
441
507
|
if (!this._planningAgent) {
|
|
@@ -458,18 +524,6 @@ export class DependencyContainer {
|
|
|
458
524
|
}
|
|
459
525
|
return this._validationAgent;
|
|
460
526
|
}
|
|
461
|
-
get documentationAgent() {
|
|
462
|
-
if (!this._documentationAgent) {
|
|
463
|
-
this._documentationAgent = new DocumentationAgent(this.aiService, this.memoryStreamService, process.cwd());
|
|
464
|
-
}
|
|
465
|
-
return this._documentationAgent;
|
|
466
|
-
}
|
|
467
|
-
get productRequirementsAgent() {
|
|
468
|
-
if (!this._productRequirementsAgent) {
|
|
469
|
-
this._productRequirementsAgent = new ProductRequirementsAgent(this.aiService, this.memoryStreamService, process.cwd());
|
|
470
|
-
}
|
|
471
|
-
return this._productRequirementsAgent;
|
|
472
|
-
}
|
|
473
527
|
get multiAgentOrchestrator() {
|
|
474
528
|
if (!this._multiAgentOrchestrator) {
|
|
475
529
|
this._multiAgentOrchestrator = new MultiAgentOrchestrator(this.aiService, this.memoryStreamService, this.memoryRepository, this.toolExecutorService, this.verificationService, this.sastScanner, process.cwd());
|
|
@@ -540,17 +594,15 @@ export class DependencyContainer {
|
|
|
540
594
|
// Create a temporary aiService just for compressor initialization
|
|
541
595
|
// Then create compressor with that aiService
|
|
542
596
|
// The aiService will get compressor injected lazily via property setter
|
|
543
|
-
const tempAIService = this._aiService || (
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
}
|
|
553
|
-
})());
|
|
597
|
+
const tempAIService = this._aiService || (() => {
|
|
598
|
+
try {
|
|
599
|
+
const provider = this.providerRegistry.getDefault();
|
|
600
|
+
return new ProviderAIService(provider);
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
return new CohereAIService();
|
|
604
|
+
}
|
|
605
|
+
})();
|
|
554
606
|
this._contextCompressor = new ContextCompressor(tempAIService);
|
|
555
607
|
// Inject compressor into aiService if it exists (lazy injection)
|
|
556
608
|
if (this._aiService) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-container.js","sourceRoot":"","sources":["../../../src/application/services/dependency-container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dependency-container.js","sourceRoot":"","sources":["../../../src/application/services/dependency-container.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export interface RouterRequest {
|
|
|
16
16
|
query: string;
|
|
17
17
|
response: string;
|
|
18
18
|
timestamp: number;
|
|
19
|
+
intent?: string;
|
|
19
20
|
}>;
|
|
20
21
|
sessionId?: string;
|
|
21
22
|
};
|
|
@@ -61,6 +62,11 @@ export declare class IntelligentRouter {
|
|
|
61
62
|
* Check if query requires multiple steps/tools
|
|
62
63
|
*/
|
|
63
64
|
private requiresMultipleSteps;
|
|
65
|
+
/**
|
|
66
|
+
* Handle conversational response for follow-up queries after non-code intents
|
|
67
|
+
* Skips code search and provides contextual answer
|
|
68
|
+
*/
|
|
69
|
+
private handleConversationalResponse;
|
|
64
70
|
private checkIfIndexingNeeded;
|
|
65
71
|
private handleAsk;
|
|
66
72
|
private handleExplainWithWorkflow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intelligent-router.d.ts","sourceRoot":"","sources":["../../../src/application/services/intelligent-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAKzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAOjG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"intelligent-router.d.ts","sourceRoot":"","sources":["../../../src/application/services/intelligent-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAKzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAOjG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrG,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAsB;gBAGzC,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,SAAS,CAAC,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,mBAAmB;IAO9B,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAqY5D;;;OAGG;YACW,wBAAwB;IA4CtC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;OAGG;YACW,4BAA4B;YAmD5B,qBAAqB;YAerB,SAAS;YAuCT,yBAAyB;YAiCzB,aAAa;YA+Cb,UAAU;YA2GV,WAAW;YA+CX,WAAW;YAUX,UAAU;YA6CV,iBAAiB;IAgD/B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,cAAc;IAwBtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;YACW,gBAAgB;CAmD/B"}
|
|
@@ -58,6 +58,13 @@ export class IntelligentRouter {
|
|
|
58
58
|
// Resolve conversation references if we have history
|
|
59
59
|
let resolvedQuery = query;
|
|
60
60
|
let sessionId;
|
|
61
|
+
let lastIntent;
|
|
62
|
+
// PHASE 1 FIX: Get last intent from request context (passed from session)
|
|
63
|
+
// This is the most reliable source since it's the actual conversation history
|
|
64
|
+
if (request.context?.conversationHistory && request.context.conversationHistory.length > 0) {
|
|
65
|
+
const lastHistoryItem = request.context.conversationHistory[request.context.conversationHistory.length - 1];
|
|
66
|
+
lastIntent = lastHistoryItem.intent;
|
|
67
|
+
}
|
|
61
68
|
if (request.context?.conversationHistory && request.context.conversationHistory.length > 0) {
|
|
62
69
|
const { conversationContextManager } = await import('../../infrastructure/context/conversation-context.js');
|
|
63
70
|
sessionId = request.context.sessionId || 'default-session';
|
|
@@ -162,14 +169,37 @@ export class IntelligentRouter {
|
|
|
162
169
|
compoundInstruction: isCompoundInstruction,
|
|
163
170
|
},
|
|
164
171
|
});
|
|
172
|
+
// P0 FIX: Detect conversational follow-ups and skip index check
|
|
173
|
+
// Check if query is conversational (no code keywords, no file paths, questions/statements)
|
|
174
|
+
const hasCodeKeywords = /\b(src|lib|test|\.ts|\.js|\.py|\.java|file|function|class|import|export|require|module|package)\b/i.test(query);
|
|
175
|
+
const isFilePath = /^[A-Z][a-z]+\.(ts|js|py|java|go|rs|rb|php)$/.test(query) || /[\w\/\-\.]+\.(ts|js|tsx|jsx|json|md|yaml|yml|txt|py|go|rs|java|cpp|h|hpp)/.test(query);
|
|
176
|
+
const isQuestion = /^(what|how|where|when|why|can|could|should|would|do|does|is|are|will)\b/i.test(query.trim());
|
|
177
|
+
const isConversationalPhrase = /^(i want|i need|i should|i don't|i can't|let me|help me|what should|how should)\b/i.test(query.trim());
|
|
178
|
+
// P0 FIX: Detect conversational follow-ups - either from history OR from query pattern
|
|
179
|
+
// If query has conversational patterns and no code keywords, treat as conversational regardless of intent
|
|
180
|
+
const isConversationalFollowup = (
|
|
181
|
+
// Pattern-based detection (most reliable)
|
|
182
|
+
(isQuestion || isConversationalPhrase) &&
|
|
183
|
+
!hasCodeKeywords &&
|
|
184
|
+
!isFilePath) || (
|
|
185
|
+
// History-based detection
|
|
186
|
+
(lastIntent === 'plan' || intent === 'plan' || intent === 'general') &&
|
|
187
|
+
!hasCodeKeywords &&
|
|
188
|
+
!isFilePath &&
|
|
189
|
+
(isQuestion || isConversationalPhrase));
|
|
165
190
|
// Debug logging for compound instructions
|
|
166
191
|
if (isCompoundInstruction) {
|
|
167
192
|
console.log(`[IntelligentRouter] Compound instruction detected. Classified: ${classifiedIntent}, Memory: ${memoryInformedIntent}, Using: ${intent}`);
|
|
168
193
|
}
|
|
169
194
|
// 3. Check if indexing is needed
|
|
195
|
+
// CRITICAL: Only require index for code-specific queries (find, understand, explain)
|
|
196
|
+
// Planning, brainstorming, and product queries should work without index
|
|
170
197
|
const needsIndex = await this.checkIfIndexingNeeded(request.context);
|
|
171
|
-
|
|
172
|
-
|
|
198
|
+
const codeSpecificIntents = ['find', 'understand', 'explain', 'modify', 'debug', 'implement', 'multi-file-modify'];
|
|
199
|
+
// Skip index check for conversational follow-ups and non-code intents
|
|
200
|
+
const requiresIndex = !isConversationalFollowup && needsIndex && codeSpecificIntents.includes(intent);
|
|
201
|
+
// Handle indexing first if needed (only for code-specific queries)
|
|
202
|
+
if (requiresIndex) {
|
|
173
203
|
executionTracer.endRun();
|
|
174
204
|
// Record routing decision feedback
|
|
175
205
|
try {
|
|
@@ -220,11 +250,18 @@ export class IntelligentRouter {
|
|
|
220
250
|
case 'plan':
|
|
221
251
|
// Complex goals need planning
|
|
222
252
|
routingResult = await this.handlePlan(query, memories);
|
|
253
|
+
// PHASE 1 FIX: Check conversation context - if last intent was non-code, skip code search
|
|
254
|
+
const nonCodeIntents = ['plan', 'general', 'product', 'business'];
|
|
255
|
+
const isFollowUpToNonCode = lastIntent && nonCodeIntents.includes(lastIntent);
|
|
256
|
+
// Also check if query is clearly conversational (not code-related) in empty directory
|
|
257
|
+
const isEmptyDirectory = await this.checkIfIndexingNeeded(request.context);
|
|
258
|
+
const isConversationalQuery = !query.toLowerCase().match(/\b(code|file|function|class|variable|import|export|module|package)\b/);
|
|
259
|
+
// If this is a follow-up to a non-code query OR a conversational query in empty directory, provide conversational response
|
|
260
|
+
if (isFollowUpToNonCode || (isEmptyDirectory && isConversationalQuery)) {
|
|
261
|
+
routingResult = await this.handleConversationalResponse(query, memories, lastIntent);
|
|
262
|
+
}
|
|
223
263
|
break;
|
|
224
264
|
case 'find':
|
|
225
|
-
// For "find" queries, use AskQuestion to search the codebase
|
|
226
|
-
routingResult = await this.handleAsk(query, memories);
|
|
227
|
-
break;
|
|
228
265
|
case 'understand':
|
|
229
266
|
case 'general':
|
|
230
267
|
// CRITICAL FIX: Simple questions should NEVER use ReAct
|
|
@@ -460,12 +497,63 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
|
|
|
460
497
|
// Requires multiple steps if 2+ indicators or very long query
|
|
461
498
|
return indicatorCount >= 2 || query.split(' ').length > 20;
|
|
462
499
|
}
|
|
500
|
+
/**
|
|
501
|
+
* Handle conversational response for follow-up queries after non-code intents
|
|
502
|
+
* Skips code search and provides contextual answer
|
|
503
|
+
*/
|
|
504
|
+
async handleConversationalResponse(query, memories, lastIntent) {
|
|
505
|
+
if (!this.aiService) {
|
|
506
|
+
return {
|
|
507
|
+
intent: 'general',
|
|
508
|
+
action: 'ask',
|
|
509
|
+
result: null,
|
|
510
|
+
success: false,
|
|
511
|
+
error: 'AI service not available',
|
|
512
|
+
memoriesUsed: memories?.length || 0,
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
try {
|
|
516
|
+
// Build conversational prompt without code context
|
|
517
|
+
const memoryContext = memories && memories.length > 0
|
|
518
|
+
? `\n\nRelevant context from previous interactions:\n${memories.slice(0, 3).map((m, i) => `${i + 1}. ${m.description}`).join('\n')}`
|
|
519
|
+
: '';
|
|
520
|
+
const conversationContext = lastIntent === 'plan'
|
|
521
|
+
? '\n\nNote: The user previously asked about planning or brainstorming. This is a follow-up question.'
|
|
522
|
+
: '';
|
|
523
|
+
const prompt = `You are a helpful AI assistant. The user is asking a follow-up question after a previous conversation about ${lastIntent || 'general topics'}.
|
|
524
|
+
|
|
525
|
+
User's question: "${query}"
|
|
526
|
+
${memoryContext}${conversationContext}
|
|
527
|
+
|
|
528
|
+
Provide a helpful, conversational response. Do NOT search for code unless the user explicitly asks about code or files.`;
|
|
529
|
+
const response = await this.aiService.chat(prompt, []);
|
|
530
|
+
return {
|
|
531
|
+
intent: 'general',
|
|
532
|
+
action: 'ask',
|
|
533
|
+
result: { answer: response, chunks: [] },
|
|
534
|
+
success: true,
|
|
535
|
+
message: response,
|
|
536
|
+
memoriesUsed: memories?.length || 0,
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
catch (error) {
|
|
540
|
+
return {
|
|
541
|
+
intent: 'general',
|
|
542
|
+
action: 'ask',
|
|
543
|
+
result: null,
|
|
544
|
+
success: false,
|
|
545
|
+
error: error instanceof Error ? error.message : String(error),
|
|
546
|
+
memoriesUsed: memories?.length || 0,
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
}
|
|
463
550
|
async checkIfIndexingNeeded(context) {
|
|
464
551
|
if (context?.hasIndex === false)
|
|
465
552
|
return true;
|
|
466
553
|
try {
|
|
467
554
|
const { container } = await import('./dependency-container.js');
|
|
468
|
-
|
|
555
|
+
// Use per-repo embedding repository for codebase isolation
|
|
556
|
+
const repo = container.getEmbeddingRepository(process.cwd());
|
|
469
557
|
// Check if any embeddings exist
|
|
470
558
|
const testSearch = await repo.searchWithEmbedding([0.1], 1);
|
|
471
559
|
return testSearch.length === 0;
|
|
@@ -477,7 +565,8 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
|
|
|
477
565
|
async handleAsk(query, memories) {
|
|
478
566
|
try {
|
|
479
567
|
const { container } = await import('./dependency-container.js');
|
|
480
|
-
|
|
568
|
+
// Use per-repo use case for codebase isolation
|
|
569
|
+
const useCase = container.getAskQuestionUseCase(process.cwd());
|
|
481
570
|
const result = await useCase.execute({ query, maxResults: 15 });
|
|
482
571
|
// Record successful routing in memory
|
|
483
572
|
if (this.memoryStream && memories && memories.length > 0) {
|
|
@@ -512,7 +601,8 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
|
|
|
512
601
|
try {
|
|
513
602
|
const { container } = await import('./dependency-container.js');
|
|
514
603
|
const { ExplainWorkflow } = await import('../workflows/deterministic-workflows.js');
|
|
515
|
-
|
|
604
|
+
// Use per-repo embedding repository for codebase isolation
|
|
605
|
+
const explainWorkflow = new ExplainWorkflow(container.getEmbeddingRepository(process.cwd()), container.aiService);
|
|
516
606
|
const workflowResult = await explainWorkflow.execute(query);
|
|
517
607
|
if (workflowResult.success) {
|
|
518
608
|
return {
|
|
@@ -854,7 +944,6 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
|
|
|
854
944
|
*/
|
|
855
945
|
fastSecurityCheck(query) {
|
|
856
946
|
// Fast pattern-based check for obvious security issues (synchronous, no API calls)
|
|
857
|
-
const lower = query.toLowerCase();
|
|
858
947
|
// Dangerous patterns that should be blocked immediately
|
|
859
948
|
const dangerousPatterns = [
|
|
860
949
|
{ pattern: /execute.*user.*input|eval.*user|exec.*user/i, reason: 'Security vulnerabilities detected: 1 critical, 0 high severity findings. Review and fix before applying.' },
|