codehere 0.2.2 → 0.3.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -68
- package/dist/domain/entities/task.js +4 -4
- package/dist/error-handler.js +4 -9
- package/dist/index.js +261 -1224
- package/dist/infrastructure/config/product-context.js +7 -6
- package/dist/infrastructure/hooks/claude-sdk-hook.js +348 -72
- package/dist/infrastructure/observability/execution-tracer.js +11 -6
- package/dist/infrastructure/orchestration/agent-adapter.js +13 -0
- package/dist/infrastructure/orchestration/agent-installer.js +101 -0
- package/dist/infrastructure/orchestration/agents-config-seed.js +56 -0
- package/dist/infrastructure/orchestration/aider-adapter.js +319 -0
- package/dist/infrastructure/orchestration/artifacts-extractor.js +175 -0
- package/dist/infrastructure/orchestration/claude-code-adapter.js +352 -0
- package/dist/infrastructure/orchestration/codex-adapter.js +310 -0
- package/dist/infrastructure/orchestration/conductor-adapter.js +340 -0
- package/dist/infrastructure/orchestration/generic-cli-adapter.js +553 -0
- package/dist/infrastructure/orchestration/opencode-adapter.js +275 -0
- package/dist/infrastructure/orchestration/progress-aggregator.js +189 -0
- package/dist/infrastructure/orchestration/readiness.js +106 -0
- package/dist/infrastructure/orchestration/session-manager.js +278 -0
- package/dist/infrastructure/orchestration/session-persistence.js +109 -0
- package/dist/infrastructure/protocols/mcp-helpers.js +10 -30
- package/dist/infrastructure/protocols/mcp-server-impl.js +359 -21
- package/dist/infrastructure/protocols/probe-port.js +36 -0
- package/dist/infrastructure/protocols/ui-page.js +1827 -0
- package/dist/infrastructure/security/file-collection.js +115 -0
- package/dist/infrastructure/security/trust-scorer.js +301 -56
- package/dist/infrastructure/storage/task-repository.js +8 -7
- package/dist/monitoring.js +9 -38
- package/dist/presentation/cli/commands/help-command.js +96 -139
- package/dist/presentation/cli/commands/hook-command.js +17 -24
- package/dist/presentation/cli/commands/report-command.js +59 -72
- package/dist/presentation/cli/commands/setup-command.js +4 -4
- package/dist/presentation/cli/commands/status-command.js +321 -30
- package/dist/presentation/cli/commands/trust-command.js +84 -72
- package/dist/presentation/cli/error-display.js +17 -21
- package/dist/presentation/cli/repl.js +474 -0
- package/dist/ui.js +11 -11
- package/package.json +24 -62
- package/dist/agents/base.js +0 -101
- package/dist/agents/orchestrator-model-driven.js +0 -141
- package/dist/agents/react-orchestrator-agent.js +0 -54
- package/dist/application/agents/execution-agent.js +0 -508
- package/dist/application/agents/multi-agent-orchestrator.js +0 -295
- package/dist/application/agents/planning-agent.js +0 -433
- package/dist/application/agents/validation-agent.js +0 -317
- package/dist/application/architectures/plan-and-act.js +0 -242
- package/dist/application/index.js +0 -12
- package/dist/application/services/agent-factory.js +0 -28
- package/dist/application/services/dependency-container.js +0 -596
- package/dist/application/services/git-context-service.js +0 -83
- package/dist/application/services/intelligent-router.js +0 -934
- package/dist/application/services/tool-executor-service.js +0 -94
- package/dist/application/use-cases/ask-question-use-case.js +0 -338
- package/dist/application/use-cases/edit-file-use-case.js +0 -830
- package/dist/application/use-cases/explain-file-use-case.js +0 -50
- package/dist/application/use-cases/index-codebase-use-case.js +0 -113
- package/dist/application/use-cases/planning-use-case.js +0 -276
- package/dist/application/use-cases/react-orchestration-use-case.js +0 -329
- package/dist/application/use-cases/reflexion-use-case.js +0 -30
- package/dist/application/workflows/deterministic-workflows.js +0 -189
- package/dist/ast-parser.js +0 -331
- package/dist/cache.js +0 -180
- package/dist/chat.js +0 -251
- package/dist/code-analysis.js +0 -327
- package/dist/context.js +0 -187
- package/dist/docs.js +0 -146
- package/dist/domain/entities/code-chunk.js +0 -6
- package/dist/domain/entities/decision.js +0 -9
- package/dist/domain/entities/edit.js +0 -6
- package/dist/domain/entities/knowledge-node.js +0 -9
- package/dist/domain/entities/knowledge-preservation.js +0 -10
- package/dist/domain/entities/memory.js +0 -6
- package/dist/domain/entities/pattern.js +0 -7
- package/dist/domain/entities/plan.js +0 -6
- package/dist/domain/entities/query.js +0 -6
- package/dist/domain/errors/embeddings-not-found-error.js +0 -13
- package/dist/domain/index.js +0 -19
- package/dist/domain/interfaces/ai-service.interface.js +0 -6
- package/dist/domain/interfaces/code-analyzer.interface.js +0 -6
- package/dist/domain/interfaces/decision-repository.interface.js +0 -9
- package/dist/domain/interfaces/embedding-repository.interface.js +0 -6
- package/dist/domain/interfaces/knowledge-graph-repository.interface.js +0 -9
- package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +0 -8
- package/dist/domain/interfaces/memory-repository.interface.js +0 -6
- package/dist/domain/interfaces/pattern-repository.interface.js +0 -6
- package/dist/domain/interfaces/verification-service.interface.js +0 -6
- package/dist/domain/services/cross-team-pattern-sharing.js +0 -125
- package/dist/domain/services/decision-recorder.js +0 -223
- package/dist/domain/services/decision-retriever.js +0 -133
- package/dist/domain/services/environment-mode-manager.js +0 -22
- package/dist/domain/services/graded-memory-activation.js +0 -69
- package/dist/domain/services/knowledge-access.js +0 -132
- package/dist/domain/services/knowledge-extractor.js +0 -247
- package/dist/domain/services/knowledge-graph-builder.js +0 -268
- package/dist/domain/services/knowledge-graph-query.js +0 -187
- package/dist/domain/services/memory-retriever.js +0 -82
- package/dist/domain/services/memory-synthesizer.js +0 -91
- package/dist/domain/services/pattern-extractor.js +0 -442
- package/dist/domain/services/query-intent-classifier.js +0 -140
- package/dist/domain/services/react-loop.js +0 -186
- package/dist/domain/services/risk-tier-detector.js +0 -78
- package/dist/edit.js +0 -319
- package/dist/embed.js +0 -459
- package/dist/formatter.js +0 -168
- package/dist/git.js +0 -198
- package/dist/infrastructure/ai/cohere-ai-service.js +0 -607
- package/dist/infrastructure/ai/command-r-evaluation.js +0 -206
- package/dist/infrastructure/ai/model-config.js +0 -84
- package/dist/infrastructure/ai/provider-ai-service.js +0 -477
- package/dist/infrastructure/cache/embedding-cache.js +0 -175
- package/dist/infrastructure/cache/query-result-cache.js +0 -66
- package/dist/infrastructure/cache/response-cache.js +0 -48
- package/dist/infrastructure/cache/security-scan-cache.js +0 -47
- package/dist/infrastructure/chunking/ast-code-chunker.js +0 -19
- package/dist/infrastructure/chunking/code-aware-chunker.js +0 -397
- package/dist/infrastructure/context/context-compressor.js +0 -329
- package/dist/infrastructure/context/conversation-context.js +0 -128
- package/dist/infrastructure/context/session-manager.js +0 -94
- package/dist/infrastructure/cost/cost-tracker.js +0 -360
- package/dist/infrastructure/file-scanner/file-scanner.js +0 -106
- package/dist/infrastructure/governance/nist-ai-rmf.js +0 -292
- package/dist/infrastructure/governance/policy-as-code.js +0 -258
- package/dist/infrastructure/governance/prompt-to-code-lineage.js +0 -239
- package/dist/infrastructure/index.js +0 -7
- package/dist/infrastructure/observability/prompt-versioner.js +0 -145
- package/dist/infrastructure/protocols/a2a-metadata.js +0 -137
- package/dist/infrastructure/protocols/a2a-protocol.js +0 -314
- package/dist/infrastructure/protocols/mcp-oauth.js +0 -184
- package/dist/infrastructure/protocols/mcp-server.js +0 -333
- package/dist/infrastructure/protocols/streaming-handler.js +0 -103
- package/dist/infrastructure/providers/cohere-provider.js +0 -444
- package/dist/infrastructure/providers/fake-provider.js +0 -130
- package/dist/infrastructure/providers/local-llm-provider.js +0 -330
- package/dist/infrastructure/providers/model-config.types.js +0 -9
- package/dist/infrastructure/providers/model-provider.interface.js +0 -8
- package/dist/infrastructure/providers/openai-provider.js +0 -413
- package/dist/infrastructure/providers/openrouter-provider.js +0 -399
- package/dist/infrastructure/providers/operation-provider-resolver.js +0 -105
- package/dist/infrastructure/providers/provider-config-loader.js +0 -120
- package/dist/infrastructure/providers/provider-registry.js +0 -88
- package/dist/infrastructure/safety/pattern-detector.js +0 -133
- package/dist/infrastructure/security/ai-sast-scanner.js +0 -290
- package/dist/infrastructure/security/docker-sandbox.js +0 -178
- package/dist/infrastructure/security/enhanced-security-gate.js +0 -151
- package/dist/infrastructure/security/license-scanner.js +0 -167
- package/dist/infrastructure/security/provider-bias-detector.js +0 -164
- package/dist/infrastructure/security/sandbox-executor.js +0 -64
- package/dist/infrastructure/serialization/toon-serializer.js +0 -119
- package/dist/infrastructure/storage/memory-stream-service.js +0 -204
- package/dist/infrastructure/storage/plan-repository.js +0 -96
- package/dist/infrastructure/storage/sqlite-decision-repository.js +0 -232
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +0 -311
- package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +0 -417
- package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +0 -230
- package/dist/infrastructure/storage/sqlite-memory-repository.js +0 -229
- package/dist/infrastructure/storage/sqlite-pattern-repository.js +0 -249
- package/dist/infrastructure/storage/task-helpers.js +0 -197
- package/dist/infrastructure/telemetry/telemetry-service.js +0 -167
- package/dist/infrastructure/ux/appropriate-friction.js +0 -213
- package/dist/infrastructure/ux/bi-directional-learning.js +0 -337
- package/dist/infrastructure/ux/capability-boundaries.js +0 -42
- package/dist/infrastructure/ux/comprehensive-formatter.js +0 -117
- package/dist/infrastructure/ux/contextual-feature-discovery.js +0 -10
- package/dist/infrastructure/ux/expectation-management.js +0 -327
- package/dist/infrastructure/ux/feature-discovery.js +0 -14
- package/dist/infrastructure/ux/feedback-prompt.js +0 -45
- package/dist/infrastructure/ux/hitl-validation.js +0 -297
- package/dist/infrastructure/ux/progress-indicator.js +0 -116
- package/dist/infrastructure/ux/progressive-disclosure.js +0 -236
- package/dist/infrastructure/ux/review-checkpoint.js +0 -72
- package/dist/infrastructure/ux/staged-feature-intro.js +0 -24
- package/dist/infrastructure/ux/stream-markdown.js +0 -151
- package/dist/infrastructure/ux/syntax-highlighter.js +0 -91
- package/dist/infrastructure/ux/team-standards.js +0 -196
- package/dist/infrastructure/ux/transparency.js +0 -71
- package/dist/infrastructure/validation/agent-feedback.js +0 -55
- package/dist/infrastructure/validation/agent-validation-helper.js +0 -137
- package/dist/infrastructure/validation/review-handler.js +0 -40
- package/dist/infrastructure/validation/summary-aggregator.js +0 -70
- package/dist/infrastructure/validation/summary-extractor.js +0 -45
- package/dist/infrastructure/validation/trace-summary.js +0 -52
- package/dist/infrastructure/verification/verification-service.js +0 -47
- package/dist/infrastructure/xai/attention-visualizer.js +0 -172
- package/dist/infrastructure/xai/cot-visualizer.js +0 -283
- package/dist/infrastructure/xai/decision-tree-log.js +0 -212
- package/dist/infrastructure/xai/interactive-xai.js +0 -260
- package/dist/infrastructure/xai/uncertainty-quantifier.js +0 -198
- package/dist/intelligent-retrieval.js +0 -272
- package/dist/intent/classifier.js +0 -2
- package/dist/intent/context.js +0 -2
- package/dist/iterative-refinement.js +0 -189
- package/dist/learning.js +0 -232
- package/dist/log.js +0 -31
- package/dist/migrate.js +0 -133
- package/dist/parallel-processor.js +0 -534
- package/dist/planner.js +0 -198
- package/dist/policy.js +0 -26
- package/dist/presentation/cli/commands/ask-command.js +0 -314
- package/dist/presentation/cli/commands/cost-command.js +0 -191
- package/dist/presentation/cli/commands/decision-command.js +0 -207
- package/dist/presentation/cli/commands/docs-command.js +0 -25
- package/dist/presentation/cli/commands/fix-command.js +0 -53
- package/dist/presentation/cli/commands/knowledge-command.js +0 -129
- package/dist/presentation/cli/commands/learning-dashboard-command.js +0 -183
- package/dist/presentation/cli/commands/models-command.js +0 -194
- package/dist/presentation/cli/commands/orchestrate-command.js +0 -207
- package/dist/presentation/cli/commands/plan-command.js +0 -246
- package/dist/presentation/cli/commands/product-command.js +0 -199
- package/dist/presentation/cli/commands/react-command.js +0 -181
- package/dist/presentation/cli/commands/review-command.js +0 -154
- package/dist/presentation/cli/commands/run-command.js +0 -188
- package/dist/presentation/cli/commands/smart-command.js +0 -395
- package/dist/presentation/cli/commands/suggest-command.js +0 -138
- package/dist/presentation/cli/commands/trace-command.js +0 -129
- package/dist/presentation/cli/commands/undo-command.js +0 -150
- package/dist/query-optimizer.js +0 -205
- package/dist/refactor.js +0 -116
- package/dist/review.js +0 -206
- package/dist/search.js +0 -163
- package/dist/session.js +0 -704
- package/dist/task-verification.js +0 -336
- package/dist/testgen.js +0 -166
- package/dist/token-optimizer.js +0 -277
- package/dist/tools/bash.js +0 -213
- package/dist/tools/edit.js +0 -235
- package/dist/tools/executor.js +0 -153
- package/dist/tools/git-tool.js +0 -292
- package/dist/tools/parser.js +0 -158
- package/dist/tools/registry.js +0 -302
- package/dist/tools/search.js +0 -100
- package/dist/types.js +0 -2
- package/dist/utils/check-api-status.js +0 -100
- package/dist/utils/diff-parser.js +0 -162
- package/dist/verification/backup.js +0 -259
- package/dist/verification/compiler.js +0 -264
- package/dist/verification/index.js +0 -273
- package/dist/verification/test-runner.js +0 -379
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command R+ / Command A Evaluation Module
|
|
3
|
-
* Evaluates Cohere Command models for migration
|
|
4
|
-
*
|
|
5
|
-
* Based on enterprise architecture requirements and Cohere research:
|
|
6
|
-
* - Command R+: 128k token context window
|
|
7
|
-
* - Command A: 256k token context window (even better!)
|
|
8
|
-
* - Optimized for multi-step tool use
|
|
9
|
-
* - Superior agentic planning
|
|
10
|
-
* - RAG workflow optimization
|
|
11
|
-
*/
|
|
12
|
-
import { CohereClient } from 'cohere-ai';
|
|
13
|
-
export class CommandREvaluator {
|
|
14
|
-
client;
|
|
15
|
-
constructor() {
|
|
16
|
-
const apiKey = process.env.COHERE_API_KEY;
|
|
17
|
-
if (!apiKey) {
|
|
18
|
-
throw new Error('COHERE_API_KEY not found in environment');
|
|
19
|
-
}
|
|
20
|
-
this.client = new CohereClient({ token: apiKey });
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Evaluate Command R+ availability and capabilities
|
|
24
|
-
*/
|
|
25
|
-
async evaluate() {
|
|
26
|
-
const result = {
|
|
27
|
-
available: false,
|
|
28
|
-
modelName: 'unknown',
|
|
29
|
-
contextWindow: 0,
|
|
30
|
-
toolCallingSupported: false,
|
|
31
|
-
modelFamily: 'unknown',
|
|
32
|
-
performance: {
|
|
33
|
-
latency: 0,
|
|
34
|
-
tokenUsage: 0,
|
|
35
|
-
},
|
|
36
|
-
recommendations: [],
|
|
37
|
-
};
|
|
38
|
-
try {
|
|
39
|
-
// Test 1: Check if Command models are available
|
|
40
|
-
// Priority: Command A (256k) > Command A Reasoning > Command R+ (128k)
|
|
41
|
-
const testModels = [
|
|
42
|
-
{ name: 'command-a', family: 'command-a', contextWindow: 256000 },
|
|
43
|
-
{ name: 'command-a-reasoning', family: 'command-a-reasoning', contextWindow: 256000 },
|
|
44
|
-
{ name: 'command-a-08-2024', family: 'command-a', contextWindow: 256000 },
|
|
45
|
-
{ name: 'command-r-plus', family: 'command-r-plus', contextWindow: 128000 },
|
|
46
|
-
{ name: 'command-r', family: 'command-r-plus', contextWindow: 128000 },
|
|
47
|
-
{ name: 'command-r7b-12-2024', family: 'command-r-plus', contextWindow: 128000 },
|
|
48
|
-
{ name: 'command-r-plus-08-2024', family: 'command-r-plus', contextWindow: 128000 },
|
|
49
|
-
];
|
|
50
|
-
let availableModel = null;
|
|
51
|
-
for (const model of testModels) {
|
|
52
|
-
try {
|
|
53
|
-
const startTime = Date.now();
|
|
54
|
-
const response = await this.client.chat({
|
|
55
|
-
model: model.name,
|
|
56
|
-
message: 'Test',
|
|
57
|
-
maxTokens: 10,
|
|
58
|
-
});
|
|
59
|
-
const latency = Date.now() - startTime;
|
|
60
|
-
if (response) {
|
|
61
|
-
availableModel = model;
|
|
62
|
-
result.available = true;
|
|
63
|
-
result.modelName = model.name;
|
|
64
|
-
result.modelFamily = model.family;
|
|
65
|
-
result.contextWindow = model.contextWindow;
|
|
66
|
-
result.performance.latency = latency;
|
|
67
|
-
break; // Use first available model (prioritized by context window)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
// Model not available, try next
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (!availableModel) {
|
|
76
|
-
result.modelFamily = 'unknown';
|
|
77
|
-
result.recommendations.push('Command models (R+, A, A Reasoning) not available. Check Cohere API documentation for latest model names.');
|
|
78
|
-
result.recommendations.push('Fallback: Continue using current chat completion API with enhanced prompts.');
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
// Test 2: Context window already set from model config
|
|
82
|
-
result.recommendations.push(`Command model available: ${availableModel.name} (${availableModel.family})`);
|
|
83
|
-
result.recommendations.push(`Context window: ${result.contextWindow.toLocaleString()} tokens`);
|
|
84
|
-
if (availableModel.family === 'command-a' || availableModel.family === 'command-a-reasoning') {
|
|
85
|
-
result.recommendations.push('✅ Command A has 256k context - excellent for large planning tasks!');
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
result.recommendations.push('⚠️ Command R+ has 128k context - good, but Command A (256k) would be better');
|
|
89
|
-
}
|
|
90
|
-
// Test 3: Test tool calling capabilities
|
|
91
|
-
try {
|
|
92
|
-
const toolCallResponse = await this.client.chat({
|
|
93
|
-
model: availableModel,
|
|
94
|
-
message: 'What tools are available?',
|
|
95
|
-
tools: [
|
|
96
|
-
{
|
|
97
|
-
name: 'search_codebase',
|
|
98
|
-
description: 'Search the codebase',
|
|
99
|
-
parameterDefinitions: {
|
|
100
|
-
query: {
|
|
101
|
-
type: 'string',
|
|
102
|
-
description: 'Search query',
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
toolResults: [],
|
|
108
|
-
});
|
|
109
|
-
// Check if response includes tool calls
|
|
110
|
-
if (toolCallResponse.toolCalls && toolCallResponse.toolCalls.length > 0) {
|
|
111
|
-
result.toolCallingSupported = true;
|
|
112
|
-
result.recommendations.push('Tool calling supported - can migrate to Command R+ tool use flow');
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
result.recommendations.push('Tool calling may require different API format - investigate Cohere tool use documentation');
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
result.recommendations.push('Tool calling test failed - may need API key with tool use permissions');
|
|
120
|
-
}
|
|
121
|
-
// Test 4: Performance benchmark
|
|
122
|
-
const benchmarkStart = Date.now();
|
|
123
|
-
const benchmarkResponse = await this.client.chat({
|
|
124
|
-
model: availableModel,
|
|
125
|
-
message: 'Explain the concept of clean architecture in software engineering.',
|
|
126
|
-
maxTokens: 100,
|
|
127
|
-
});
|
|
128
|
-
const benchmarkLatency = Date.now() - benchmarkStart;
|
|
129
|
-
result.performance.latency = benchmarkLatency;
|
|
130
|
-
result.performance.tokenUsage = benchmarkResponse.meta?.tokens?.inputTokens || 0;
|
|
131
|
-
result.recommendations.push(`Performance: ${benchmarkLatency}ms latency, ${result.performance.tokenUsage} input tokens`);
|
|
132
|
-
// Final recommendations
|
|
133
|
-
if (result.available && result.toolCallingSupported) {
|
|
134
|
-
if (result.modelFamily === 'command-a' || result.modelFamily === 'command-a-reasoning') {
|
|
135
|
-
result.recommendations.push('✅ Ready to migrate: Command A available with tool calling support');
|
|
136
|
-
result.recommendations.push('Migration priority: VERY HIGH - 256k context perfect for planning tasks');
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
result.recommendations.push('✅ Ready to migrate: Command R+ available with tool calling support');
|
|
140
|
-
result.recommendations.push('Migration priority: HIGH - Will improve tool correctness and planning');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else if (result.available) {
|
|
144
|
-
if (result.modelFamily === 'command-a' || result.modelFamily === 'command-a-reasoning') {
|
|
145
|
-
result.recommendations.push('⚠️ Command A available but tool calling needs investigation');
|
|
146
|
-
result.recommendations.push('Migration priority: HIGH - 256k context is valuable even without native tool calling');
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
result.recommendations.push('⚠️ Command R+ available but tool calling needs investigation');
|
|
150
|
-
result.recommendations.push('Migration priority: MEDIUM - Can migrate for context window benefits');
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
result.recommendations.push('❌ Command models not available - continue with current implementation');
|
|
155
|
-
result.recommendations.push('Migration priority: LOW - Monitor Cohere API updates');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
result.recommendations.push(`Evaluation error: ${error instanceof Error ? error.message : String(error)}`);
|
|
160
|
-
result.recommendations.push('Fallback: Continue using current chat completion API');
|
|
161
|
-
}
|
|
162
|
-
return result;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Test Command R+ with actual use case
|
|
166
|
-
*/
|
|
167
|
-
async testWithUseCase(query, context) {
|
|
168
|
-
const startTime = Date.now();
|
|
169
|
-
try {
|
|
170
|
-
// Try Command R+ first
|
|
171
|
-
const models = ['command-r-plus', 'command-r', 'command-r7b-12-2024'];
|
|
172
|
-
for (const model of models) {
|
|
173
|
-
try {
|
|
174
|
-
const contextText = context
|
|
175
|
-
.map((chunk, idx) => `[Chunk ${idx + 1} from ${chunk.filepath}]\n${chunk.content}`)
|
|
176
|
-
.join('\n\n---\n\n');
|
|
177
|
-
const response = await this.client.chat({
|
|
178
|
-
model: model,
|
|
179
|
-
message: `${contextText}\n\nUser Query: ${query}`,
|
|
180
|
-
maxTokens: 500,
|
|
181
|
-
});
|
|
182
|
-
const latency = Date.now() - startTime;
|
|
183
|
-
return {
|
|
184
|
-
success: true,
|
|
185
|
-
response: response.text || 'No response',
|
|
186
|
-
toolCalls: response.toolCalls || [],
|
|
187
|
-
latency,
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
// Try next model
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
throw new Error('No Command R+ models available');
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
return {
|
|
199
|
-
success: false,
|
|
200
|
-
response: error instanceof Error ? error.message : String(error),
|
|
201
|
-
latency: Date.now() - startTime,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
//# sourceMappingURL=command-r-evaluation.js.map
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model Configuration
|
|
3
|
-
* Manages Command A/R+ model selection based on evaluation results
|
|
4
|
-
*/
|
|
5
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
6
|
-
import { join, dirname } from 'path';
|
|
7
|
-
import { fileURLToPath } from 'url';
|
|
8
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
-
const __dirname = dirname(__filename);
|
|
10
|
-
const CONFIG_FILE = join(__dirname, '../../../data/model-config.json');
|
|
11
|
-
export class ModelConfigManager {
|
|
12
|
-
config;
|
|
13
|
-
constructor() {
|
|
14
|
-
this.config = this.loadConfig();
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Load model configuration from file
|
|
18
|
-
*/
|
|
19
|
-
loadConfig() {
|
|
20
|
-
try {
|
|
21
|
-
if (existsSync(CONFIG_FILE)) {
|
|
22
|
-
const content = readFileSync(CONFIG_FILE, 'utf-8');
|
|
23
|
-
return JSON.parse(content);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
// If file doesn't exist or is invalid, use defaults
|
|
28
|
-
}
|
|
29
|
-
return {};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Save model configuration to file
|
|
33
|
-
*/
|
|
34
|
-
saveConfig(config) {
|
|
35
|
-
this.config = { ...this.config, ...config };
|
|
36
|
-
this.config.lastEvaluated = new Date().toISOString();
|
|
37
|
-
// Ensure data directory exists
|
|
38
|
-
const dataDir = dirname(CONFIG_FILE);
|
|
39
|
-
if (!existsSync(dataDir)) {
|
|
40
|
-
mkdirSync(dataDir, { recursive: true });
|
|
41
|
-
}
|
|
42
|
-
writeFileSync(CONFIG_FILE, JSON.stringify(this.config, null, 2), 'utf-8');
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get preferred model for a use case
|
|
46
|
-
*/
|
|
47
|
-
getPreferredModel(useCase) {
|
|
48
|
-
// If a preferred model is set, use it for planning and complex tasks
|
|
49
|
-
if (this.config.preferredModel) {
|
|
50
|
-
if (useCase === 'planning' || useCase === 'reasoning') {
|
|
51
|
-
return this.config.preferredModel;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// For chat and default, use default model unless specifically configured
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Check if Command A/R+ models are available
|
|
59
|
-
*/
|
|
60
|
-
isCommandModelAvailable() {
|
|
61
|
-
return this.config.evaluationResults?.available || false;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Get context window size
|
|
65
|
-
*/
|
|
66
|
-
getContextWindow() {
|
|
67
|
-
return this.config.contextWindow || 8000; // Default context window
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get full configuration
|
|
71
|
-
*/
|
|
72
|
-
getConfig() {
|
|
73
|
-
return { ...this.config };
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// Singleton instance
|
|
77
|
-
let modelConfigManager = null;
|
|
78
|
-
export function getModelConfigManager() {
|
|
79
|
-
if (!modelConfigManager) {
|
|
80
|
-
modelConfigManager = new ModelConfigManager();
|
|
81
|
-
}
|
|
82
|
-
return modelConfigManager;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=model-config.js.map
|