codehere 0.2.1 → 0.3.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -68
- package/dist/domain/entities/task.js +4 -4
- package/dist/error-handler.js +4 -9
- package/dist/index.js +253 -1219
- package/dist/infrastructure/config/product-context.js +7 -6
- package/dist/infrastructure/hooks/claude-sdk-hook.js +335 -63
- 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/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 +272 -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/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 +10 -49
- 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 +334 -43
- package/dist/presentation/cli/commands/trust-command.js +115 -99
- package/dist/presentation/cli/error-display.js +17 -21
- package/dist/ui.js +17 -12
- package/package.json +35 -67
- 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 -530
- 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 -652
- 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
package/dist/agents/base.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Agent Interface
|
|
3
|
-
* Foundation for multi-agent system in Codehere
|
|
4
|
-
*
|
|
5
|
-
* These agents ARE Codehere - they help end-users.
|
|
6
|
-
* But organizing them this way makes it easier for YOU to develop and improve Codehere.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Base agent class
|
|
10
|
-
* Provides common functionality for all agents
|
|
11
|
-
*/
|
|
12
|
-
export class BaseAgent {
|
|
13
|
-
/** Agent registry (set by OrchestratorAgent) */
|
|
14
|
-
agentRegistry;
|
|
15
|
-
/**
|
|
16
|
-
* Call another agent
|
|
17
|
-
* Enables agent-to-agent collaboration
|
|
18
|
-
*/
|
|
19
|
-
async callAgent(agentName, request) {
|
|
20
|
-
if (!this.agentRegistry) {
|
|
21
|
-
return {
|
|
22
|
-
success: false,
|
|
23
|
-
error: 'AgentRegistry not set. Cannot call other agents.',
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const agent = this.agentRegistry.get(agentName);
|
|
27
|
-
if (!agent) {
|
|
28
|
-
return {
|
|
29
|
-
success: false,
|
|
30
|
-
error: `Agent "${agentName}" not found. Available agents: ${this.agentRegistry.getAll().map(a => a.name).join(', ')}`,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
// Check if this agent is allowed to call the target agent
|
|
34
|
-
if (!this.canCall.includes(agentName) && this.canCall.length > 0) {
|
|
35
|
-
return {
|
|
36
|
-
success: false,
|
|
37
|
-
error: `Agent "${this.name}" is not allowed to call "${agentName}". Allowed: ${this.canCall.join(', ')}`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return agent.handle({
|
|
41
|
-
...request,
|
|
42
|
-
caller: this.name,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Default canHandle implementation
|
|
47
|
-
* Checks if intent matches agent's name
|
|
48
|
-
*/
|
|
49
|
-
canHandle(request) {
|
|
50
|
-
return request.intent.intent === this.name;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Default validate implementation
|
|
54
|
-
* Can be overridden by subclasses
|
|
55
|
-
*/
|
|
56
|
-
validate(request) {
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Agent Registry
|
|
62
|
-
* Manages all agents in the system
|
|
63
|
-
*/
|
|
64
|
-
export class AgentRegistry {
|
|
65
|
-
agents = new Map();
|
|
66
|
-
/**
|
|
67
|
-
* Register an agent
|
|
68
|
-
*/
|
|
69
|
-
register(agent) {
|
|
70
|
-
this.agents.set(agent.name, agent);
|
|
71
|
-
// Set agent registry on BaseAgent instances
|
|
72
|
-
if (agent instanceof BaseAgent) {
|
|
73
|
-
agent.agentRegistry = this;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get an agent by name
|
|
78
|
-
*/
|
|
79
|
-
get(name) {
|
|
80
|
-
return this.agents.get(name);
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Get all registered agents
|
|
84
|
-
*/
|
|
85
|
-
getAll() {
|
|
86
|
-
return Array.from(this.agents.values());
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Get agents by capability
|
|
90
|
-
*/
|
|
91
|
-
getByCapability(capability) {
|
|
92
|
-
return this.getAll().filter(agent => agent.capabilities.includes(capability));
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Get agent names
|
|
96
|
-
*/
|
|
97
|
-
getNames() {
|
|
98
|
-
return Array.from(this.agents.keys());
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model-Driven Orchestrator
|
|
3
|
-
* Uses minimal prompts to let model make routing decisions
|
|
4
|
-
* Following Claude Code approach: minimal prompts, model-driven decisions
|
|
5
|
-
*/
|
|
6
|
-
import { BaseAgent } from './base.js';
|
|
7
|
-
import { chatWithContext } from '../chat.js';
|
|
8
|
-
import { getToolRegistry } from '../tools/registry.js';
|
|
9
|
-
import { ToolExecutor } from '../tools/executor.js';
|
|
10
|
-
import { parseToolCalls } from '../tools/parser.js';
|
|
11
|
-
export class ModelDrivenOrchestratorAgent extends BaseAgent {
|
|
12
|
-
name = 'orchestrator';
|
|
13
|
-
description = 'Model-driven orchestrator that lets AI choose agents and tools';
|
|
14
|
-
capabilities = ['routing', 'model-driven-decisions', 'tool-execution'];
|
|
15
|
-
canCall = [];
|
|
16
|
-
registry;
|
|
17
|
-
toolExecutor;
|
|
18
|
-
constructor(registry) {
|
|
19
|
-
super();
|
|
20
|
-
this.registry = registry;
|
|
21
|
-
this.agentRegistry = registry;
|
|
22
|
-
this.toolExecutor = new ToolExecutor();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Handle query - let model choose the agent or tool
|
|
26
|
-
*/
|
|
27
|
-
async handle(request) {
|
|
28
|
-
// Get list of available agents
|
|
29
|
-
const availableAgents = this.getAvailableAgents();
|
|
30
|
-
// Get list of available tools
|
|
31
|
-
const toolRegistry = getToolRegistry();
|
|
32
|
-
const availableTools = toolRegistry.getAll();
|
|
33
|
-
// Let model choose agent or tool
|
|
34
|
-
const prompt = this.buildPrompt(request.query, availableAgents, availableTools);
|
|
35
|
-
try {
|
|
36
|
-
const response = await this.getLLMResponse(prompt);
|
|
37
|
-
// 1. Check for tool calls first
|
|
38
|
-
const toolCalls = parseToolCalls(response);
|
|
39
|
-
if (toolCalls.length > 0) {
|
|
40
|
-
console.log(`🛠️ Orchestrator: Executing ${toolCalls.length} tool call(s)`);
|
|
41
|
-
const results = await this.toolExecutor.executeAll(toolCalls);
|
|
42
|
-
// Check if any tool failed
|
|
43
|
-
const failures = results.filter(r => !r.success);
|
|
44
|
-
if (failures.length > 0) {
|
|
45
|
-
return {
|
|
46
|
-
success: false,
|
|
47
|
-
error: `Tool execution failed: ${failures.map(f => f.error).join(', ')}`,
|
|
48
|
-
message: `I tried to execute some tools but encountered errors:\n${failures.map(f => `- ${f.tool}: ${f.error}`).join('\n')}`,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Format tool results
|
|
52
|
-
const output = results.map(r => `Tool '${r.tool}' executed successfully:\n${JSON.stringify(r.result, null, 2)}`).join('\n\n');
|
|
53
|
-
return {
|
|
54
|
-
success: true,
|
|
55
|
-
message: output,
|
|
56
|
-
metadata: { toolResults: results }
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
// 2. If no tools, check for agent selection
|
|
60
|
-
const selectedAgentName = response.trim().split('\n')[0].toLowerCase(); // Simple heuristic
|
|
61
|
-
const selectedAgent = this.registry.get(selectedAgentName);
|
|
62
|
-
if (selectedAgent) {
|
|
63
|
-
console.log(`🤖 Orchestrator: Routing to ${selectedAgentName}`);
|
|
64
|
-
return await selectedAgent.handle(request);
|
|
65
|
-
}
|
|
66
|
-
// 3. Fallback: Treat response as direct answer
|
|
67
|
-
return {
|
|
68
|
-
success: true,
|
|
69
|
-
message: response
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
catch (err) {
|
|
73
|
-
return {
|
|
74
|
-
success: false,
|
|
75
|
-
error: err instanceof Error ? err.message : String(err),
|
|
76
|
-
message: await this.generateError(request.query, err instanceof Error ? err.message : String(err)),
|
|
77
|
-
suggestions: await this.generateSuggestions(request.query),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get LLM response (can be overridden for testing)
|
|
83
|
-
*/
|
|
84
|
-
async getLLMResponse(prompt) {
|
|
85
|
-
return chatWithContext(prompt, []);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Build prompt for model
|
|
89
|
-
*/
|
|
90
|
-
buildPrompt(query, agents, tools) {
|
|
91
|
-
const agentList = agents.map(a => `- ${a.name}: ${a.description}`).join('\n');
|
|
92
|
-
const toolList = tools.map(t => `- ${t.name}: ${t.modelDescription}`).join('\n');
|
|
93
|
-
return `Query: "${query}"
|
|
94
|
-
|
|
95
|
-
Available Agents:
|
|
96
|
-
${agentList}
|
|
97
|
-
|
|
98
|
-
Available Tools:
|
|
99
|
-
${toolList}
|
|
100
|
-
|
|
101
|
-
INSTRUCTIONS:
|
|
102
|
-
1. If a specific agent is best suited, respond with JUST the agent name.
|
|
103
|
-
2. If a tool can solve this directly (e.g. running a command, editing a file), use the tool.
|
|
104
|
-
3. If you can answer directly, provide the answer.
|
|
105
|
-
|
|
106
|
-
What should be done?`;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get available agents with descriptions
|
|
110
|
-
*/
|
|
111
|
-
getAvailableAgents() {
|
|
112
|
-
const agents = [];
|
|
113
|
-
const allAgents = this.registry.getAll();
|
|
114
|
-
for (const agent of allAgents) {
|
|
115
|
-
if (agent.name !== 'orchestrator') { // Don't include self
|
|
116
|
-
agents.push({
|
|
117
|
-
name: agent.name,
|
|
118
|
-
description: agent.description || `Handles ${agent.name} requests`,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return agents;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Generate contextual error message
|
|
126
|
-
*/
|
|
127
|
-
async generateError(query, error) {
|
|
128
|
-
return `An error occurred while processing your query: ${error}`;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Generate contextual suggestions
|
|
132
|
-
*/
|
|
133
|
-
async generateSuggestions(query) {
|
|
134
|
-
return [
|
|
135
|
-
'Try rephrasing your query',
|
|
136
|
-
'Be more specific about what you want',
|
|
137
|
-
'Check if all required information is provided',
|
|
138
|
-
];
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=orchestrator-model-driven.js.map
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ReAct Orchestrator Agent
|
|
3
|
-
* Uses ReAct loop for reasoning and tool execution
|
|
4
|
-
*/
|
|
5
|
-
import { BaseAgent } from './base.js';
|
|
6
|
-
import { container } from '../application/services/dependency-container.js';
|
|
7
|
-
import { getToolRegistry } from '../tools/registry.js';
|
|
8
|
-
export class ReActOrchestratorAgent extends BaseAgent {
|
|
9
|
-
name = 'react-orchestrator';
|
|
10
|
-
description = 'ReAct-based orchestrator with iterative reasoning';
|
|
11
|
-
capabilities = ['react-reasoning', 'tool-execution', 'memory-integration'];
|
|
12
|
-
canCall = [];
|
|
13
|
-
async handle(request) {
|
|
14
|
-
const useCase = container.reactOrchestrationUseCase;
|
|
15
|
-
const toolRegistry = getToolRegistry();
|
|
16
|
-
// Build context with available tools
|
|
17
|
-
const context = {
|
|
18
|
-
availableTools: toolRegistry.getToolList(),
|
|
19
|
-
availableAgents: this.getAvailableAgents(),
|
|
20
|
-
};
|
|
21
|
-
try {
|
|
22
|
-
const result = await useCase.execute({
|
|
23
|
-
query: request.query,
|
|
24
|
-
context,
|
|
25
|
-
maxTurns: 20,
|
|
26
|
-
});
|
|
27
|
-
// Record observation in memory
|
|
28
|
-
if (result.trajectory.success) {
|
|
29
|
-
await container.memoryStreamService.recordObservation(`Successfully handled: ${request.query}`, { trajectory: result.trajectory });
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
success: result.trajectory.success,
|
|
33
|
-
message: result.answer,
|
|
34
|
-
metadata: {
|
|
35
|
-
trajectory: result.trajectory,
|
|
36
|
-
memoriesUsed: result.memoriesUsed.length,
|
|
37
|
-
steps: result.trajectory.steps.length,
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
return {
|
|
43
|
-
success: false,
|
|
44
|
-
error: error instanceof Error ? error.message : String(error),
|
|
45
|
-
message: `ReAct orchestration failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
getAvailableAgents() {
|
|
50
|
-
// Return list of available agent names
|
|
51
|
-
return ['editor', 'search', 'code-analysis', 'scaffold', 'general'];
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=react-orchestrator-agent.js.map
|