genesis-ai-cli 7.4.5
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/.env.example +78 -0
- package/README.md +282 -0
- package/dist/src/active-inference/actions.d.ts +75 -0
- package/dist/src/active-inference/actions.js +250 -0
- package/dist/src/active-inference/autonomous-loop.d.ts +103 -0
- package/dist/src/active-inference/autonomous-loop.js +289 -0
- package/dist/src/active-inference/core.d.ts +85 -0
- package/dist/src/active-inference/core.js +555 -0
- package/dist/src/active-inference/demo-autonomous-loop.d.ts +8 -0
- package/dist/src/active-inference/demo-autonomous-loop.js +338 -0
- package/dist/src/active-inference/demo-value-integration.d.ts +8 -0
- package/dist/src/active-inference/demo-value-integration.js +174 -0
- package/dist/src/active-inference/index.d.ts +32 -0
- package/dist/src/active-inference/index.js +88 -0
- package/dist/src/active-inference/integration.d.ts +114 -0
- package/dist/src/active-inference/integration.js +698 -0
- package/dist/src/active-inference/memory-integration.d.ts +51 -0
- package/dist/src/active-inference/memory-integration.js +232 -0
- package/dist/src/active-inference/observations.d.ts +67 -0
- package/dist/src/active-inference/observations.js +147 -0
- package/dist/src/active-inference/test-active-inference.d.ts +8 -0
- package/dist/src/active-inference/test-active-inference.js +320 -0
- package/dist/src/active-inference/test-value-integration.d.ts +6 -0
- package/dist/src/active-inference/test-value-integration.js +168 -0
- package/dist/src/active-inference/types.d.ts +150 -0
- package/dist/src/active-inference/types.js +59 -0
- package/dist/src/active-inference/value-integration.d.ts +164 -0
- package/dist/src/active-inference/value-integration.js +459 -0
- package/dist/src/agents/base-agent.d.ts +53 -0
- package/dist/src/agents/base-agent.js +178 -0
- package/dist/src/agents/builder.d.ts +67 -0
- package/dist/src/agents/builder.js +537 -0
- package/dist/src/agents/critic.d.ts +35 -0
- package/dist/src/agents/critic.js +322 -0
- package/dist/src/agents/ethicist.d.ts +54 -0
- package/dist/src/agents/ethicist.js +393 -0
- package/dist/src/agents/explorer.d.ts +26 -0
- package/dist/src/agents/explorer.js +216 -0
- package/dist/src/agents/feeling.d.ts +41 -0
- package/dist/src/agents/feeling.js +320 -0
- package/dist/src/agents/index.d.ts +111 -0
- package/dist/src/agents/index.js +222 -0
- package/dist/src/agents/memory.d.ts +69 -0
- package/dist/src/agents/memory.js +404 -0
- package/dist/src/agents/message-bus.d.ts +88 -0
- package/dist/src/agents/message-bus.js +267 -0
- package/dist/src/agents/narrator.d.ts +90 -0
- package/dist/src/agents/narrator.js +473 -0
- package/dist/src/agents/planner.d.ts +38 -0
- package/dist/src/agents/planner.js +341 -0
- package/dist/src/agents/predictor.d.ts +73 -0
- package/dist/src/agents/predictor.js +506 -0
- package/dist/src/agents/sensor.d.ts +88 -0
- package/dist/src/agents/sensor.js +377 -0
- package/dist/src/agents/test-agents.d.ts +6 -0
- package/dist/src/agents/test-agents.js +73 -0
- package/dist/src/agents/types.d.ts +194 -0
- package/dist/src/agents/types.js +7 -0
- package/dist/src/brain/index.d.ts +185 -0
- package/dist/src/brain/index.js +843 -0
- package/dist/src/brain/trace.d.ts +91 -0
- package/dist/src/brain/trace.js +327 -0
- package/dist/src/brain/types.d.ts +165 -0
- package/dist/src/brain/types.js +51 -0
- package/dist/src/cli/chat.d.ts +237 -0
- package/dist/src/cli/chat.js +1959 -0
- package/dist/src/cli/dispatcher.d.ts +182 -0
- package/dist/src/cli/dispatcher.js +718 -0
- package/dist/src/cli/human-loop.d.ts +170 -0
- package/dist/src/cli/human-loop.js +543 -0
- package/dist/src/cli/index.d.ts +12 -0
- package/dist/src/cli/index.js +28 -0
- package/dist/src/cli/interactive.d.ts +141 -0
- package/dist/src/cli/interactive.js +757 -0
- package/dist/src/cli/ui.d.ts +205 -0
- package/dist/src/cli/ui.js +632 -0
- package/dist/src/consciousness/attention-schema.d.ts +154 -0
- package/dist/src/consciousness/attention-schema.js +432 -0
- package/dist/src/consciousness/global-workspace.d.ts +149 -0
- package/dist/src/consciousness/global-workspace.js +422 -0
- package/dist/src/consciousness/index.d.ts +186 -0
- package/dist/src/consciousness/index.js +476 -0
- package/dist/src/consciousness/phi-calculator.d.ts +119 -0
- package/dist/src/consciousness/phi-calculator.js +445 -0
- package/dist/src/consciousness/phi-decisions.d.ts +169 -0
- package/dist/src/consciousness/phi-decisions.js +383 -0
- package/dist/src/consciousness/phi-monitor.d.ts +153 -0
- package/dist/src/consciousness/phi-monitor.js +465 -0
- package/dist/src/consciousness/types.d.ts +260 -0
- package/dist/src/consciousness/types.js +44 -0
- package/dist/src/daemon/dream-mode.d.ts +115 -0
- package/dist/src/daemon/dream-mode.js +470 -0
- package/dist/src/daemon/index.d.ts +162 -0
- package/dist/src/daemon/index.js +542 -0
- package/dist/src/daemon/maintenance.d.ts +139 -0
- package/dist/src/daemon/maintenance.js +549 -0
- package/dist/src/daemon/process.d.ts +82 -0
- package/dist/src/daemon/process.js +442 -0
- package/dist/src/daemon/scheduler.d.ts +90 -0
- package/dist/src/daemon/scheduler.js +494 -0
- package/dist/src/daemon/types.d.ts +213 -0
- package/dist/src/daemon/types.js +50 -0
- package/dist/src/epistemic/index.d.ts +74 -0
- package/dist/src/epistemic/index.js +225 -0
- package/dist/src/grounding/epistemic-stack.d.ts +100 -0
- package/dist/src/grounding/epistemic-stack.js +408 -0
- package/dist/src/grounding/feedback.d.ts +98 -0
- package/dist/src/grounding/feedback.js +276 -0
- package/dist/src/grounding/index.d.ts +123 -0
- package/dist/src/grounding/index.js +224 -0
- package/dist/src/grounding/verifier.d.ts +149 -0
- package/dist/src/grounding/verifier.js +484 -0
- package/dist/src/healing/detector.d.ts +110 -0
- package/dist/src/healing/detector.js +436 -0
- package/dist/src/healing/fixer.d.ts +138 -0
- package/dist/src/healing/fixer.js +572 -0
- package/dist/src/healing/index.d.ts +23 -0
- package/dist/src/healing/index.js +43 -0
- package/dist/src/hooks/index.d.ts +135 -0
- package/dist/src/hooks/index.js +317 -0
- package/dist/src/index.d.ts +23 -0
- package/dist/src/index.js +1266 -0
- package/dist/src/kernel/index.d.ts +155 -0
- package/dist/src/kernel/index.js +795 -0
- package/dist/src/kernel/invariants.d.ts +153 -0
- package/dist/src/kernel/invariants.js +355 -0
- package/dist/src/kernel/test-kernel.d.ts +6 -0
- package/dist/src/kernel/test-kernel.js +108 -0
- package/dist/src/kernel/test-real-mcp.d.ts +10 -0
- package/dist/src/kernel/test-real-mcp.js +295 -0
- package/dist/src/llm/index.d.ts +146 -0
- package/dist/src/llm/index.js +428 -0
- package/dist/src/llm/router.d.ts +136 -0
- package/dist/src/llm/router.js +510 -0
- package/dist/src/mcp/index.d.ts +85 -0
- package/dist/src/mcp/index.js +657 -0
- package/dist/src/mcp/resilient.d.ts +139 -0
- package/dist/src/mcp/resilient.js +417 -0
- package/dist/src/memory/cache.d.ts +118 -0
- package/dist/src/memory/cache.js +356 -0
- package/dist/src/memory/cognitive-workspace.d.ts +231 -0
- package/dist/src/memory/cognitive-workspace.js +521 -0
- package/dist/src/memory/consolidation.d.ts +99 -0
- package/dist/src/memory/consolidation.js +443 -0
- package/dist/src/memory/episodic.d.ts +114 -0
- package/dist/src/memory/episodic.js +394 -0
- package/dist/src/memory/forgetting.d.ts +134 -0
- package/dist/src/memory/forgetting.js +324 -0
- package/dist/src/memory/index.d.ts +211 -0
- package/dist/src/memory/index.js +367 -0
- package/dist/src/memory/indexer.d.ts +123 -0
- package/dist/src/memory/indexer.js +479 -0
- package/dist/src/memory/procedural.d.ts +136 -0
- package/dist/src/memory/procedural.js +479 -0
- package/dist/src/memory/semantic.d.ts +132 -0
- package/dist/src/memory/semantic.js +497 -0
- package/dist/src/memory/types.d.ts +193 -0
- package/dist/src/memory/types.js +15 -0
- package/dist/src/orchestrator.d.ts +65 -0
- package/dist/src/orchestrator.js +317 -0
- package/dist/src/persistence/index.d.ts +257 -0
- package/dist/src/persistence/index.js +763 -0
- package/dist/src/pipeline/executor.d.ts +51 -0
- package/dist/src/pipeline/executor.js +695 -0
- package/dist/src/pipeline/index.d.ts +7 -0
- package/dist/src/pipeline/index.js +11 -0
- package/dist/src/self-production.d.ts +67 -0
- package/dist/src/self-production.js +205 -0
- package/dist/src/subagents/executor.d.ts +58 -0
- package/dist/src/subagents/executor.js +283 -0
- package/dist/src/subagents/index.d.ts +37 -0
- package/dist/src/subagents/index.js +53 -0
- package/dist/src/subagents/registry.d.ts +23 -0
- package/dist/src/subagents/registry.js +167 -0
- package/dist/src/subagents/types.d.ts +79 -0
- package/dist/src/subagents/types.js +14 -0
- package/dist/src/tools/bash.d.ts +139 -0
- package/dist/src/tools/bash.js +583 -0
- package/dist/src/tools/edit.d.ts +125 -0
- package/dist/src/tools/edit.js +424 -0
- package/dist/src/tools/git.d.ts +179 -0
- package/dist/src/tools/git.js +504 -0
- package/dist/src/tools/index.d.ts +21 -0
- package/dist/src/tools/index.js +163 -0
- package/dist/src/types.d.ts +145 -0
- package/dist/src/types.js +7 -0
- package/dist/src/world-model/decoder.d.ts +163 -0
- package/dist/src/world-model/decoder.js +517 -0
- package/dist/src/world-model/digital-twin.d.ts +219 -0
- package/dist/src/world-model/digital-twin.js +695 -0
- package/dist/src/world-model/encoder.d.ts +141 -0
- package/dist/src/world-model/encoder.js +564 -0
- package/dist/src/world-model/index.d.ts +221 -0
- package/dist/src/world-model/index.js +772 -0
- package/dist/src/world-model/predictor.d.ts +161 -0
- package/dist/src/world-model/predictor.js +681 -0
- package/dist/src/world-model/test-value-jepa.d.ts +8 -0
- package/dist/src/world-model/test-value-jepa.js +430 -0
- package/dist/src/world-model/types.d.ts +341 -0
- package/dist/src/world-model/types.js +69 -0
- package/dist/src/world-model/value-jepa.d.ts +247 -0
- package/dist/src/world-model/value-jepa.js +622 -0
- package/dist/test/brain.test.d.ts +11 -0
- package/dist/test/brain.test.js +358 -0
- package/dist/test/cli/dispatcher.test.d.ts +4 -0
- package/dist/test/cli/dispatcher.test.js +332 -0
- package/dist/test/cli/human-loop.test.d.ts +4 -0
- package/dist/test/cli/human-loop.test.js +270 -0
- package/dist/test/grounding/feedback.test.d.ts +4 -0
- package/dist/test/grounding/feedback.test.js +462 -0
- package/dist/test/grounding/verifier.test.d.ts +4 -0
- package/dist/test/grounding/verifier.test.js +442 -0
- package/dist/test/grounding.test.d.ts +6 -0
- package/dist/test/grounding.test.js +246 -0
- package/dist/test/healing/detector.test.d.ts +4 -0
- package/dist/test/healing/detector.test.js +266 -0
- package/dist/test/healing/fixer.test.d.ts +4 -0
- package/dist/test/healing/fixer.test.js +369 -0
- package/dist/test/integration.test.d.ts +5 -0
- package/dist/test/integration.test.js +290 -0
- package/dist/test/tools/bash.test.d.ts +4 -0
- package/dist/test/tools/bash.test.js +348 -0
- package/dist/test/tools/edit.test.d.ts +4 -0
- package/dist/test/tools/edit.test.js +350 -0
- package/dist/test/tools/git.test.d.ts +4 -0
- package/dist/test/tools/git.test.js +350 -0
- package/package.json +60 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Genesis 4.0 - Base Agent
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class for all agents.
|
|
5
|
+
* Provides common functionality and lifecycle management.
|
|
6
|
+
*/
|
|
7
|
+
import { Agent, AgentType, AgentState, AgentId, AgentConfig, Message, MessageType, HealthStatus } from './types.js';
|
|
8
|
+
import { MessageBus } from './message-bus.js';
|
|
9
|
+
export declare abstract class BaseAgent implements Agent {
|
|
10
|
+
readonly id: AgentId;
|
|
11
|
+
readonly type: AgentType;
|
|
12
|
+
state: AgentState;
|
|
13
|
+
get agentType(): AgentType;
|
|
14
|
+
protected bus: MessageBus;
|
|
15
|
+
protected subscriptionId: string | null;
|
|
16
|
+
protected startTime: Date;
|
|
17
|
+
protected messagesProcessed: number;
|
|
18
|
+
protected errors: number;
|
|
19
|
+
protected lastActivity: Date;
|
|
20
|
+
protected maxConcurrent: number;
|
|
21
|
+
protected timeout: number;
|
|
22
|
+
protected currentTasks: number;
|
|
23
|
+
constructor(config: AgentConfig, bus?: MessageBus);
|
|
24
|
+
wake(): void;
|
|
25
|
+
sleep(): void;
|
|
26
|
+
shutdown(): void;
|
|
27
|
+
private handleMessage;
|
|
28
|
+
/**
|
|
29
|
+
* Process a message - implemented by each agent
|
|
30
|
+
*/
|
|
31
|
+
abstract process(message: Message): Promise<Message | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Get message types this agent handles
|
|
34
|
+
*/
|
|
35
|
+
protected abstract getMessageTypes(): MessageType[];
|
|
36
|
+
protected send(to: AgentId | 'broadcast' | 'kernel', type: MessageType, payload: any, options?: {
|
|
37
|
+
replyTo?: string;
|
|
38
|
+
correlationId?: string;
|
|
39
|
+
}): Promise<string>;
|
|
40
|
+
protected broadcast(type: MessageType, payload: any): Promise<string>;
|
|
41
|
+
protected reply(originalMessage: Message, type: MessageType, payload: any): Promise<string>;
|
|
42
|
+
protected sendError(originalMessage: Message, error: unknown): Promise<string>;
|
|
43
|
+
protected createResponse(originalMessage: Message, type: MessageType, payload: any): Omit<Message, 'id' | 'timestamp'>;
|
|
44
|
+
health(): HealthStatus;
|
|
45
|
+
protected log(message: string): void;
|
|
46
|
+
protected logDebug(message: string): void;
|
|
47
|
+
}
|
|
48
|
+
export type AgentFactory = (bus?: MessageBus) => BaseAgent;
|
|
49
|
+
export declare const agentFactories: Map<AgentType, AgentFactory>;
|
|
50
|
+
export declare function registerAgentFactory(type: AgentType, factory: AgentFactory): void;
|
|
51
|
+
export declare function createAgent(type: AgentType, bus?: MessageBus): BaseAgent;
|
|
52
|
+
export declare function getAgentFactory(type: AgentType): AgentFactory | undefined;
|
|
53
|
+
export declare function listAgentTypes(): AgentType[];
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Genesis 4.0 - Base Agent
|
|
4
|
+
*
|
|
5
|
+
* Abstract base class for all agents.
|
|
6
|
+
* Provides common functionality and lifecycle management.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.agentFactories = exports.BaseAgent = void 0;
|
|
10
|
+
exports.registerAgentFactory = registerAgentFactory;
|
|
11
|
+
exports.createAgent = createAgent;
|
|
12
|
+
exports.getAgentFactory = getAgentFactory;
|
|
13
|
+
exports.listAgentTypes = listAgentTypes;
|
|
14
|
+
const message_bus_js_1 = require("./message-bus.js");
|
|
15
|
+
const crypto_1 = require("crypto");
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Base Agent Class
|
|
18
|
+
// ============================================================================
|
|
19
|
+
class BaseAgent {
|
|
20
|
+
id;
|
|
21
|
+
type;
|
|
22
|
+
state = 'idle';
|
|
23
|
+
// Alias for type (for easier access in registry)
|
|
24
|
+
get agentType() {
|
|
25
|
+
return this.type;
|
|
26
|
+
}
|
|
27
|
+
bus;
|
|
28
|
+
subscriptionId = null;
|
|
29
|
+
startTime;
|
|
30
|
+
messagesProcessed = 0;
|
|
31
|
+
errors = 0;
|
|
32
|
+
lastActivity;
|
|
33
|
+
// Configuration
|
|
34
|
+
maxConcurrent;
|
|
35
|
+
timeout;
|
|
36
|
+
currentTasks = 0;
|
|
37
|
+
constructor(config, bus = message_bus_js_1.messageBus) {
|
|
38
|
+
this.id = config.id || `${config.type}-${(0, crypto_1.randomUUID)().slice(0, 8)}`;
|
|
39
|
+
this.type = config.type;
|
|
40
|
+
this.bus = bus;
|
|
41
|
+
this.maxConcurrent = config.maxConcurrent || 1;
|
|
42
|
+
this.timeout = config.timeout || 30000;
|
|
43
|
+
this.startTime = new Date();
|
|
44
|
+
this.lastActivity = new Date();
|
|
45
|
+
}
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Lifecycle
|
|
48
|
+
// ============================================================================
|
|
49
|
+
wake() {
|
|
50
|
+
if (this.state === 'sleeping' || this.state === 'idle') {
|
|
51
|
+
this.state = 'idle';
|
|
52
|
+
this.subscriptionId = this.bus.subscribe(this.id, this.handleMessage.bind(this), { types: this.getMessageTypes() });
|
|
53
|
+
this.log('Woke up');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
sleep() {
|
|
57
|
+
if (this.subscriptionId) {
|
|
58
|
+
this.bus.unsubscribe(this.subscriptionId);
|
|
59
|
+
this.subscriptionId = null;
|
|
60
|
+
}
|
|
61
|
+
this.state = 'sleeping';
|
|
62
|
+
this.log('Went to sleep');
|
|
63
|
+
}
|
|
64
|
+
shutdown() {
|
|
65
|
+
this.sleep();
|
|
66
|
+
this.log('Shutdown');
|
|
67
|
+
}
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// Message Handling
|
|
70
|
+
// ============================================================================
|
|
71
|
+
async handleMessage(message) {
|
|
72
|
+
// Skip if at capacity
|
|
73
|
+
if (this.currentTasks >= this.maxConcurrent) {
|
|
74
|
+
this.log(`At capacity, queuing message ${message.id}`);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.currentTasks++;
|
|
78
|
+
this.lastActivity = new Date();
|
|
79
|
+
try {
|
|
80
|
+
this.state = 'working';
|
|
81
|
+
const response = await this.process(message);
|
|
82
|
+
if (response) {
|
|
83
|
+
await this.bus.publish(response);
|
|
84
|
+
}
|
|
85
|
+
this.messagesProcessed++;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
this.errors++;
|
|
89
|
+
this.state = 'error';
|
|
90
|
+
this.log(`Error processing message: ${error}`);
|
|
91
|
+
// Send error response
|
|
92
|
+
await this.sendError(message, error);
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
this.currentTasks--;
|
|
96
|
+
if (this.currentTasks === 0) {
|
|
97
|
+
this.state = 'idle';
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Communication Helpers
|
|
103
|
+
// ============================================================================
|
|
104
|
+
async send(to, type, payload, options = {}) {
|
|
105
|
+
return this.bus.send(this.id, to, type, payload, {
|
|
106
|
+
...options,
|
|
107
|
+
priority: 'normal',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async broadcast(type, payload) {
|
|
111
|
+
return this.bus.broadcast(this.id, type, payload);
|
|
112
|
+
}
|
|
113
|
+
async reply(originalMessage, type, payload) {
|
|
114
|
+
return this.send(originalMessage.from, type, payload, {
|
|
115
|
+
replyTo: originalMessage.id,
|
|
116
|
+
correlationId: originalMessage.correlationId,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
async sendError(originalMessage, error) {
|
|
120
|
+
return this.reply(originalMessage, 'ERROR', {
|
|
121
|
+
error: error instanceof Error ? error.message : String(error),
|
|
122
|
+
originalMessageId: originalMessage.id,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
createResponse(originalMessage, type, payload) {
|
|
126
|
+
return {
|
|
127
|
+
from: this.id,
|
|
128
|
+
to: originalMessage.from,
|
|
129
|
+
type,
|
|
130
|
+
payload,
|
|
131
|
+
priority: 'normal',
|
|
132
|
+
replyTo: originalMessage.id,
|
|
133
|
+
correlationId: originalMessage.correlationId,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// Health
|
|
138
|
+
// ============================================================================
|
|
139
|
+
health() {
|
|
140
|
+
return {
|
|
141
|
+
agentId: this.id,
|
|
142
|
+
state: this.state,
|
|
143
|
+
uptime: Date.now() - this.startTime.getTime(),
|
|
144
|
+
messagesProcessed: this.messagesProcessed,
|
|
145
|
+
errors: this.errors,
|
|
146
|
+
lastActivity: this.lastActivity,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// ============================================================================
|
|
150
|
+
// Logging
|
|
151
|
+
// ============================================================================
|
|
152
|
+
log(message) {
|
|
153
|
+
console.log(`[${this.type}:${this.id.slice(-8)}] ${message}`);
|
|
154
|
+
}
|
|
155
|
+
logDebug(message) {
|
|
156
|
+
if (process.env.DEBUG) {
|
|
157
|
+
console.log(`[${this.type}:${this.id.slice(-8)}] DEBUG: ${message}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.BaseAgent = BaseAgent;
|
|
162
|
+
exports.agentFactories = new Map();
|
|
163
|
+
function registerAgentFactory(type, factory) {
|
|
164
|
+
exports.agentFactories.set(type, factory);
|
|
165
|
+
}
|
|
166
|
+
function createAgent(type, bus) {
|
|
167
|
+
const factory = exports.agentFactories.get(type);
|
|
168
|
+
if (!factory) {
|
|
169
|
+
throw new Error(`No factory registered for agent type: ${type}`);
|
|
170
|
+
}
|
|
171
|
+
return factory(bus);
|
|
172
|
+
}
|
|
173
|
+
function getAgentFactory(type) {
|
|
174
|
+
return exports.agentFactories.get(type);
|
|
175
|
+
}
|
|
176
|
+
function listAgentTypes() {
|
|
177
|
+
return Array.from(exports.agentFactories.keys());
|
|
178
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Genesis 4.0 - Builder Agent
|
|
3
|
+
*
|
|
4
|
+
* Generates code, artifacts, and structures.
|
|
5
|
+
* The craftsman: "Let me build that for you"
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Code generation from specifications
|
|
9
|
+
* - Iteration based on Critic feedback
|
|
10
|
+
* - Template-based generation
|
|
11
|
+
* - Quality checks before output
|
|
12
|
+
*/
|
|
13
|
+
import { BaseAgent } from './base-agent.js';
|
|
14
|
+
import { MessageBus } from './message-bus.js';
|
|
15
|
+
import { Message, MessageType, BuildArtifact } from './types.js';
|
|
16
|
+
interface BuildRequest {
|
|
17
|
+
type: 'code' | 'config' | 'documentation' | 'test' | 'schema';
|
|
18
|
+
specification: string;
|
|
19
|
+
language?: string;
|
|
20
|
+
framework?: string;
|
|
21
|
+
constraints?: string[];
|
|
22
|
+
iterateUntilPass?: boolean;
|
|
23
|
+
maxIterations?: number;
|
|
24
|
+
}
|
|
25
|
+
interface BuildResult {
|
|
26
|
+
artifacts: BuildArtifact[];
|
|
27
|
+
iterations: number;
|
|
28
|
+
passedReview: boolean;
|
|
29
|
+
finalScore?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare class BuilderAgent extends BaseAgent {
|
|
32
|
+
private buildHistory;
|
|
33
|
+
private templates;
|
|
34
|
+
private maxIterations;
|
|
35
|
+
constructor(bus?: MessageBus);
|
|
36
|
+
private initializeTemplates;
|
|
37
|
+
protected getMessageTypes(): MessageType[];
|
|
38
|
+
process(message: Message): Promise<Message | null>;
|
|
39
|
+
private handleBuildRequest;
|
|
40
|
+
build(request: BuildRequest): Promise<BuildResult>;
|
|
41
|
+
private generate;
|
|
42
|
+
private generateCode;
|
|
43
|
+
private parseSpecification;
|
|
44
|
+
private generateFunction;
|
|
45
|
+
private generateClass;
|
|
46
|
+
private generateGenericCode;
|
|
47
|
+
private generateConfig;
|
|
48
|
+
private generateDocumentation;
|
|
49
|
+
private generateTest;
|
|
50
|
+
private generateSchema;
|
|
51
|
+
private requestCritique;
|
|
52
|
+
private iterate;
|
|
53
|
+
private handleCritique;
|
|
54
|
+
private handleQuery;
|
|
55
|
+
private handleCommand;
|
|
56
|
+
private toCamelCase;
|
|
57
|
+
private toPascalCase;
|
|
58
|
+
getStats(): {
|
|
59
|
+
totalBuilds: number;
|
|
60
|
+
totalArtifacts: number;
|
|
61
|
+
avgIterations: number;
|
|
62
|
+
passRate: number;
|
|
63
|
+
templates: number;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export declare function createBuilderAgent(bus?: MessageBus): BuilderAgent;
|
|
67
|
+
export {};
|