tryassay 0.2.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +41 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/runtime.d.ts +20 -0
- package/dist/commands/runtime.js +192 -6
- package/dist/commands/runtime.js.map +1 -1
- package/dist/runtime/agent-loop.d.ts +16 -1
- package/dist/runtime/agent-loop.js +197 -32
- package/dist/runtime/agent-loop.js.map +1 -1
- package/dist/runtime/agents/code-agent.d.ts +11 -0
- package/dist/runtime/agents/code-agent.js +90 -0
- package/dist/runtime/agents/code-agent.js.map +1 -0
- package/dist/runtime/agents/review-agent.d.ts +11 -0
- package/dist/runtime/agents/review-agent.js +96 -0
- package/dist/runtime/agents/review-agent.js.map +1 -0
- package/dist/runtime/audit-log.d.ts +35 -0
- package/dist/runtime/audit-log.js +115 -0
- package/dist/runtime/audit-log.js.map +1 -0
- package/dist/runtime/composition-verifier.d.ts +22 -0
- package/dist/runtime/composition-verifier.js +265 -0
- package/dist/runtime/composition-verifier.js.map +1 -0
- package/dist/runtime/confidence-calibrator.d.ts +10 -0
- package/dist/runtime/confidence-calibrator.js +95 -0
- package/dist/runtime/confidence-calibrator.js.map +1 -0
- package/dist/runtime/config-loader.d.ts +41 -0
- package/dist/runtime/config-loader.js +116 -0
- package/dist/runtime/config-loader.js.map +1 -0
- package/dist/runtime/control-server.d.ts +25 -0
- package/dist/runtime/control-server.js +83 -0
- package/dist/runtime/control-server.js.map +1 -0
- package/dist/runtime/enriched-prompt-builder.d.ts +25 -0
- package/dist/runtime/enriched-prompt-builder.js +173 -0
- package/dist/runtime/enriched-prompt-builder.js.map +1 -0
- package/dist/runtime/gap-detector.d.ts +6 -0
- package/dist/runtime/gap-detector.js +111 -0
- package/dist/runtime/gap-detector.js.map +1 -0
- package/dist/runtime/logger.d.ts +20 -0
- package/dist/runtime/logger.js +73 -0
- package/dist/runtime/logger.js.map +1 -0
- package/dist/runtime/message-bus.d.ts +57 -0
- package/dist/runtime/message-bus.js +115 -0
- package/dist/runtime/message-bus.js.map +1 -0
- package/dist/runtime/observer.d.ts +5 -1
- package/dist/runtime/observer.js +61 -14
- package/dist/runtime/observer.js.map +1 -1
- package/dist/runtime/pattern-extractor.d.ts +20 -0
- package/dist/runtime/pattern-extractor.js +257 -0
- package/dist/runtime/pattern-extractor.js.map +1 -0
- package/dist/runtime/planner.d.ts +2 -2
- package/dist/runtime/planner.js +10 -7
- package/dist/runtime/planner.js.map +1 -1
- package/dist/runtime/reasoner.d.ts +2 -2
- package/dist/runtime/reasoner.js +22 -7
- package/dist/runtime/reasoner.js.map +1 -1
- package/dist/runtime/reflector.d.ts +7 -1
- package/dist/runtime/reflector.js.map +1 -1
- package/dist/runtime/shadow-runner.d.ts +14 -0
- package/dist/runtime/shadow-runner.js +190 -0
- package/dist/runtime/shadow-runner.js.map +1 -0
- package/dist/runtime/specialized-agent.d.ts +67 -0
- package/dist/runtime/specialized-agent.js +86 -0
- package/dist/runtime/specialized-agent.js.map +1 -0
- package/dist/runtime/strategy-library.d.ts +11 -0
- package/dist/runtime/strategy-library.js +142 -0
- package/dist/runtime/strategy-library.js.map +1 -0
- package/dist/runtime/supabase-experience-store.d.ts +19 -0
- package/dist/runtime/supabase-experience-store.js +215 -0
- package/dist/runtime/supabase-experience-store.js.map +1 -0
- package/dist/runtime/trust-manager.d.ts +33 -0
- package/dist/runtime/trust-manager.js +110 -0
- package/dist/runtime/trust-manager.js.map +1 -0
- package/dist/runtime/two-agent-loop.d.ts +35 -0
- package/dist/runtime/two-agent-loop.js +208 -0
- package/dist/runtime/two-agent-loop.js.map +1 -0
- package/dist/runtime/types.d.ts +291 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -10,12 +10,12 @@ import { regenerateCommand } from './commands/regenerate.js';
|
|
|
10
10
|
import { remediateCommand } from './commands/remediate.js';
|
|
11
11
|
import { reverseCommand } from './commands/reverse.js';
|
|
12
12
|
import { assessCommand } from './commands/assess.js';
|
|
13
|
-
import { runtimeCommand } from './commands/runtime.js';
|
|
13
|
+
import { runtimeCommand, runtimeInitCommand, runtimeStatusCommand, runtimeStopCommand, runtimeExtractCommand, runtimeGapsCommand, runtimeTeamCommand } from './commands/runtime.js';
|
|
14
14
|
const program = new Command();
|
|
15
15
|
program
|
|
16
16
|
.name('assay')
|
|
17
17
|
.description('Assay — AI code verification using the LUCID methodology')
|
|
18
|
-
.version('0.
|
|
18
|
+
.version('0.6.0');
|
|
19
19
|
program
|
|
20
20
|
.command('init')
|
|
21
21
|
.description('Initialize an Assay project in the current directory')
|
|
@@ -92,6 +92,45 @@ runtime
|
|
|
92
92
|
.option('-c, --commands <cmds...>', 'Allowed shell commands')
|
|
93
93
|
.option('-u, --urls <urls...>', 'Allowed URLs for API calls')
|
|
94
94
|
.option('-m, --model <model>', 'Model ID for reasoning', 'claude-sonnet-4-5-20250929')
|
|
95
|
+
.option('--control-port <port>', 'HTTP control server port', '3700')
|
|
96
|
+
.option('--json', 'Output structured JSON logs to stdout')
|
|
97
|
+
.option('--max-cost <cents>', 'Max session cost in cents before auto-pause', '500')
|
|
95
98
|
.action(runtimeCommand);
|
|
99
|
+
runtime
|
|
100
|
+
.command('init')
|
|
101
|
+
.description('Generate a default .assay/agent.json config file')
|
|
102
|
+
.argument('[path]', 'Path to the project directory', '.')
|
|
103
|
+
.action(runtimeInitCommand);
|
|
104
|
+
runtime
|
|
105
|
+
.command('status')
|
|
106
|
+
.description('Query the running agent status via HTTP control server')
|
|
107
|
+
.option('--port <port>', 'Control server port', '3700')
|
|
108
|
+
.option('--token <token>', 'Bearer token (printed at agent startup)')
|
|
109
|
+
.action(runtimeStatusCommand);
|
|
110
|
+
runtime
|
|
111
|
+
.command('stop')
|
|
112
|
+
.description('Stop a running agent via HTTP control server')
|
|
113
|
+
.option('--port <port>', 'Control server port', '3700')
|
|
114
|
+
.option('--token <token>', 'Bearer token (printed at agent startup)')
|
|
115
|
+
.action(runtimeStopCommand);
|
|
116
|
+
runtime
|
|
117
|
+
.command('extract')
|
|
118
|
+
.description('Run pattern extraction on accumulated experiences')
|
|
119
|
+
.argument('[path]', 'Path to the project directory', '.')
|
|
120
|
+
.action(runtimeExtractCommand);
|
|
121
|
+
runtime
|
|
122
|
+
.command('gaps')
|
|
123
|
+
.description('Analyze verification gaps and propose formal rule candidates')
|
|
124
|
+
.argument('[path]', 'Path to the project directory', '.')
|
|
125
|
+
.action(runtimeGapsCommand);
|
|
126
|
+
runtime
|
|
127
|
+
.command('team')
|
|
128
|
+
.description('Run a two-agent team (Code + Review) with boundary verification')
|
|
129
|
+
.argument('<task>', 'Task description for the team')
|
|
130
|
+
.option('--code-model <model>', 'Model for Code Agent')
|
|
131
|
+
.option('--review-model <model>', 'Model for Review Agent')
|
|
132
|
+
.option('--max-attempts <n>', 'Max retry attempts', '3')
|
|
133
|
+
.option('--cwd <path>', 'Working directory', '.')
|
|
134
|
+
.action(runtimeTeamCommand);
|
|
96
135
|
program.parse();
|
|
97
136
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,26 @@ interface RuntimeCommandOptions {
|
|
|
6
6
|
commands?: string[];
|
|
7
7
|
urls?: string[];
|
|
8
8
|
model?: string;
|
|
9
|
+
controlPort?: string;
|
|
10
|
+
json?: boolean;
|
|
11
|
+
maxCost?: string;
|
|
9
12
|
}
|
|
10
13
|
export declare function runtimeCommand(targetPath: string, opts: RuntimeCommandOptions): Promise<void>;
|
|
14
|
+
export declare function runtimeInitCommand(targetPath: string): Promise<void>;
|
|
15
|
+
export declare function runtimeStatusCommand(opts: {
|
|
16
|
+
port?: string;
|
|
17
|
+
token?: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
export declare function runtimeStopCommand(opts: {
|
|
20
|
+
port?: string;
|
|
21
|
+
token?: string;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
export declare function runtimeGapsCommand(targetPath: string): Promise<void>;
|
|
24
|
+
export declare function runtimeExtractCommand(targetPath: string): Promise<void>;
|
|
25
|
+
export declare function runtimeTeamCommand(task: string, opts: {
|
|
26
|
+
codeModel?: string;
|
|
27
|
+
reviewModel?: string;
|
|
28
|
+
maxAttempts?: string;
|
|
29
|
+
cwd?: string;
|
|
30
|
+
}): Promise<void>;
|
|
11
31
|
export {};
|
package/dist/commands/runtime.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// ============================================================
|
|
2
|
-
// CLI Command: tryassay runtime start <path>
|
|
3
|
-
// Launches the Assay Verified Agent Runtime
|
|
2
|
+
// CLI Command: tryassay runtime start|init|status|stop <path>
|
|
3
|
+
// Launches and manages the Assay Verified Agent Runtime
|
|
4
4
|
// ============================================================
|
|
5
5
|
import { AgentLoop, buildAgentConfig } from '../runtime/agent-loop.js';
|
|
6
|
+
import { loadAgentConfigFile, mergeConfigFile, generateDefaultConfig } from '../runtime/config-loader.js';
|
|
6
7
|
export async function runtimeCommand(targetPath, opts) {
|
|
7
8
|
console.log('');
|
|
8
9
|
console.log(' Assay Verified Agent Runtime');
|
|
@@ -16,22 +17,34 @@ export async function runtimeCommand(targetPath, opts) {
|
|
|
16
17
|
commands: opts.commands,
|
|
17
18
|
urls: opts.urls,
|
|
18
19
|
modelId: opts.model,
|
|
20
|
+
controlPort: opts.controlPort ? parseInt(opts.controlPort, 10) : undefined,
|
|
21
|
+
jsonLogs: opts.json,
|
|
22
|
+
maxSessionCostCents: opts.maxCost ? parseInt(opts.maxCost, 10) : undefined,
|
|
19
23
|
};
|
|
20
|
-
|
|
24
|
+
// Build default config from CLI args
|
|
25
|
+
let config = buildAgentConfig(targetPath, runtimeOpts);
|
|
26
|
+
// Check for .assay/agent.json and merge if present
|
|
27
|
+
const fileConfig = await loadAgentConfigFile(targetPath);
|
|
28
|
+
if (fileConfig) {
|
|
29
|
+
config = mergeConfigFile(config, fileConfig);
|
|
30
|
+
console.log(' Config: loaded from .assay/agent.json');
|
|
31
|
+
}
|
|
21
32
|
console.log(` Agent: ${config.name}`);
|
|
22
33
|
console.log(` Scope: ${config.scope.allowedDirectories.join(', ')}`);
|
|
23
34
|
console.log(` Model: ${config.modelId}`);
|
|
24
35
|
console.log(` Signals: ${config.signals.map(s => s.type).join(', ')}`);
|
|
25
36
|
console.log(` Experiences: ${config.experienceStorePath}`);
|
|
37
|
+
console.log(` Control port: ${config.controlPort ?? 'disabled'}`);
|
|
38
|
+
console.log(` Cost limit: ${config.limits.maxSessionCostCents ?? 'none'}c`);
|
|
26
39
|
console.log('');
|
|
27
40
|
console.log(' Pipeline: observe -> reason -> plan -> verify -> execute -> reflect');
|
|
28
41
|
console.log(' Press Ctrl+C to stop');
|
|
29
42
|
console.log('');
|
|
30
43
|
const agent = new AgentLoop(config);
|
|
31
44
|
// Log audit events
|
|
32
|
-
agent.on('audit', (
|
|
33
|
-
// Audit events are
|
|
34
|
-
// This hook is for future
|
|
45
|
+
agent.on('audit', (_entry) => {
|
|
46
|
+
// Audit events are now persisted by the AuditLog class
|
|
47
|
+
// This hook is for future external integrations
|
|
35
48
|
});
|
|
36
49
|
// Handle approval requests
|
|
37
50
|
agent.on('approval_needed', (info) => {
|
|
@@ -60,4 +73,177 @@ export async function runtimeCommand(targetPath, opts) {
|
|
|
60
73
|
// Start the agent loop (blocks until stopped)
|
|
61
74
|
await agent.start();
|
|
62
75
|
}
|
|
76
|
+
export async function runtimeInitCommand(targetPath) {
|
|
77
|
+
const configPath = await generateDefaultConfig(targetPath);
|
|
78
|
+
console.log(` Generated default agent config: ${configPath}`);
|
|
79
|
+
console.log(' Edit this file to customize your agent, then run: tryassay runtime start .');
|
|
80
|
+
}
|
|
81
|
+
export async function runtimeStatusCommand(opts) {
|
|
82
|
+
const port = opts.port ? parseInt(opts.port, 10) : 3700;
|
|
83
|
+
const token = opts.token;
|
|
84
|
+
if (!token) {
|
|
85
|
+
console.error(' Error: --token is required. The token is printed when the agent starts.');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(`http://localhost:${port}/status`, {
|
|
90
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
91
|
+
});
|
|
92
|
+
if (!response.ok) {
|
|
93
|
+
console.error(` Error: HTTP ${response.status} ${response.statusText}`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
const state = await response.json();
|
|
97
|
+
console.log(JSON.stringify(state, null, 2));
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
101
|
+
console.error(` Error: Could not connect to agent on port ${port}: ${msg}`);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export async function runtimeStopCommand(opts) {
|
|
106
|
+
const port = opts.port ? parseInt(opts.port, 10) : 3700;
|
|
107
|
+
const token = opts.token;
|
|
108
|
+
if (!token) {
|
|
109
|
+
console.error(' Error: --token is required. The token is printed when the agent starts.');
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const response = await fetch(`http://localhost:${port}/stop`, {
|
|
114
|
+
method: 'POST',
|
|
115
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
116
|
+
});
|
|
117
|
+
if (!response.ok) {
|
|
118
|
+
console.error(` Error: HTTP ${response.status} ${response.statusText}`);
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
const result = await response.json();
|
|
122
|
+
console.log(` Agent stopping: ${JSON.stringify(result)}`);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
126
|
+
console.error(` Error: Could not connect to agent on port ${port}: ${msg}`);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export async function runtimeGapsCommand(targetPath) {
|
|
131
|
+
console.log(' Analyzing verification gaps...');
|
|
132
|
+
const { ExperienceStore } = await import('../runtime/reflector.js');
|
|
133
|
+
const { PatternExtractor } = await import('../runtime/pattern-extractor.js');
|
|
134
|
+
const { GapDetector } = await import('../runtime/gap-detector.js');
|
|
135
|
+
const storePath = `${targetPath}/.assay/experiences.jsonl`;
|
|
136
|
+
const store = new ExperienceStore(storePath);
|
|
137
|
+
const extractor = new PatternExtractor();
|
|
138
|
+
const detector = new GapDetector();
|
|
139
|
+
const all = await store.getRelevantExperiences('', 1000);
|
|
140
|
+
if (all.length < 10) {
|
|
141
|
+
console.log(` Only ${all.length} experiences. Need at least 10 for gap analysis.`);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
console.log(` Extracting hotspots from ${all.length} experiences...`);
|
|
145
|
+
const extraction = await extractor.extract(all);
|
|
146
|
+
const eligibleHotspots = extraction.verificationHotspots.filter(h => h.candidateForFormalRule);
|
|
147
|
+
console.log(` Found ${extraction.verificationHotspots.length} hotspots, ${eligibleHotspots.length} eligible for formal rules`);
|
|
148
|
+
if (eligibleHotspots.length === 0) {
|
|
149
|
+
console.log(' No gaps eligible for formal rule candidates.');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
console.log(' Proposing formal rules...');
|
|
153
|
+
const candidates = await detector.analyze(extraction.verificationHotspots);
|
|
154
|
+
console.log(`\n GAP ANALYSIS RESULTS`);
|
|
155
|
+
console.log(` ====================`);
|
|
156
|
+
console.log(` Hotspots: ${extraction.verificationHotspots.length}`);
|
|
157
|
+
console.log(` Rule candidates proposed: ${candidates.length}`);
|
|
158
|
+
for (const c of candidates) {
|
|
159
|
+
console.log(`\n [${c.claimCategory}] ${c.description}`);
|
|
160
|
+
console.log(` Substrate: ${c.substrate}`);
|
|
161
|
+
console.log(` Pattern: ${c.pattern}`);
|
|
162
|
+
console.log(` Test cases: ${c.testCases.length}`);
|
|
163
|
+
console.log(` Est. coverage: ${(c.estimatedFormalCoverage * 100).toFixed(0)}%`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export async function runtimeExtractCommand(targetPath) {
|
|
167
|
+
console.log(' Running pattern extraction...');
|
|
168
|
+
const { ExperienceStore } = await import('../runtime/reflector.js');
|
|
169
|
+
const { PatternExtractor } = await import('../runtime/pattern-extractor.js');
|
|
170
|
+
const storePath = `${targetPath}/.assay/experiences.jsonl`;
|
|
171
|
+
const store = new ExperienceStore(storePath);
|
|
172
|
+
const extractor = new PatternExtractor();
|
|
173
|
+
const all = await store.getRelevantExperiences('', 1000);
|
|
174
|
+
if (all.length === 0) {
|
|
175
|
+
console.log(' No experiences found. Run the agent first to accumulate data.');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
console.log(` Analyzing ${all.length} experiences...`);
|
|
179
|
+
const result = await extractor.extract(all);
|
|
180
|
+
console.log(`\n EXTRACTION RESULTS`);
|
|
181
|
+
console.log(` ==================`);
|
|
182
|
+
console.log(` Patterns: ${result.patterns.length}`);
|
|
183
|
+
console.log(` Anti-patterns: ${result.antiPatterns.length}`);
|
|
184
|
+
console.log(` Skill profiles: ${result.skillProfiles.length}`);
|
|
185
|
+
console.log(` Hotspots: ${result.verificationHotspots.length}`);
|
|
186
|
+
for (const sp of result.skillProfiles) {
|
|
187
|
+
console.log(`\n [${sp.domain}] ${(sp.successRate * 100).toFixed(0)}% success, ${sp.totalExperiences} experiences`);
|
|
188
|
+
}
|
|
189
|
+
for (const h of result.verificationHotspots) {
|
|
190
|
+
const marker = h.candidateForFormalRule ? ' CANDIDATE FOR FORMAL RULE' : '';
|
|
191
|
+
console.log(` [hotspot] ${h.claimCategory}: ${(h.failRate * 100).toFixed(0)}% fail rate (${h.failedClaims}/${h.totalClaims})${marker}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
export async function runtimeTeamCommand(task, opts) {
|
|
195
|
+
const { TwoAgentLoop } = await import('../runtime/two-agent-loop.js');
|
|
196
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
197
|
+
console.log('');
|
|
198
|
+
console.log(' Assay Verified Team');
|
|
199
|
+
console.log(' ===================');
|
|
200
|
+
console.log('');
|
|
201
|
+
console.log(` Task: ${task}`);
|
|
202
|
+
console.log(` Codebase: ${cwd}`);
|
|
203
|
+
console.log(` Code model: ${opts.codeModel ?? 'default'}`);
|
|
204
|
+
console.log(` Review model: ${opts.reviewModel ?? 'default'}`);
|
|
205
|
+
console.log('');
|
|
206
|
+
const loop = new TwoAgentLoop(cwd, {
|
|
207
|
+
codeModel: opts.codeModel,
|
|
208
|
+
reviewModel: opts.reviewModel,
|
|
209
|
+
});
|
|
210
|
+
// Log audit events in real-time
|
|
211
|
+
loop.on('audit', (entry) => {
|
|
212
|
+
console.log(` [${entry.eventType}] ${JSON.stringify(entry.details)}`);
|
|
213
|
+
});
|
|
214
|
+
const maxAttempts = opts.maxAttempts ? parseInt(opts.maxAttempts, 10) : 3;
|
|
215
|
+
const result = await loop.run({
|
|
216
|
+
taskId: `task-${Date.now()}`,
|
|
217
|
+
goal: task,
|
|
218
|
+
constraints: [],
|
|
219
|
+
dependencies: [],
|
|
220
|
+
contextRefs: [],
|
|
221
|
+
}, maxAttempts);
|
|
222
|
+
console.log('');
|
|
223
|
+
console.log(' --- Result ---');
|
|
224
|
+
console.log(` Status: ${result.status}`);
|
|
225
|
+
console.log(` Attempts: ${result.attempts}`);
|
|
226
|
+
console.log(` Code artifacts: ${result.codeArtifacts.length}`);
|
|
227
|
+
if (result.codeHandoff) {
|
|
228
|
+
const v = result.codeHandoff.verificationResult;
|
|
229
|
+
console.log(` Code verification: ${v.verdict} (${v.passed}/${v.total} claims passed)`);
|
|
230
|
+
}
|
|
231
|
+
if (result.reviewHandoff) {
|
|
232
|
+
const v = result.reviewHandoff.verificationResult;
|
|
233
|
+
console.log(` Review verification: ${v.verdict} (${v.passed}/${v.total} claims passed)`);
|
|
234
|
+
}
|
|
235
|
+
console.log(` Audit entries: ${result.auditTrail.length}`);
|
|
236
|
+
console.log('');
|
|
237
|
+
// Print code artifacts
|
|
238
|
+
for (const artifact of result.codeArtifacts) {
|
|
239
|
+
if (artifact.path) {
|
|
240
|
+
console.log(` -- ${artifact.path} --`);
|
|
241
|
+
}
|
|
242
|
+
console.log(artifact.content.slice(0, 500));
|
|
243
|
+
if (artifact.content.length > 500) {
|
|
244
|
+
console.log(` ... (${artifact.content.length - 500} more chars)`);
|
|
245
|
+
}
|
|
246
|
+
console.log('');
|
|
247
|
+
}
|
|
248
|
+
}
|
|
63
249
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,8DAA8D;AAC9D,wDAAwD;AACxD,+DAA+D;AAE/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAgB1G,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,IAA2B;IAE3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,WAAW,GAAmB;QAClC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,KAAK;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1E,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC;IAEF,qCAAqC;IACrC,IAAI,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEvD,mDAAmD;IACnD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,WAAW,IAAI,UAAU,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,mBAAmB,IAAI,MAAM,GAAG,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IAEpC,mBAAmB;IACnB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAC3B,uDAAuD;QACvD,gDAAgD;IAClD,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB;IAElB,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAuC;IAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,SAAS,EAAE;YAC9D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,+CAA+C,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAuC;IAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,OAAO,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,+CAA+C,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB;IAElB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC7E,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,GAAG,UAAU,2BAA2B,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,MAAM,kDAAkD,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,gBAAgB,GAAG,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,oBAAoB,CAAC,MAAM,cAAc,gBAAgB,CAAC,MAAM,4BAA4B,CAAC,CAAC;IAEhI,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB;IAElB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAE7E,MAAM,SAAS,GAAG,GAAG,UAAU,2BAA2B,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,gBAAgB,cAAc,CAAC,CAAC;IACtH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,CAAC;IAC3I,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,IAAsF;IAEtF,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,gCAAgC;IAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA8D,EAAE,EAAE;QAClF,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B;QACE,MAAM,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;QAC5B,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;KAChB,EACD,WAAW,CACZ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,uBAAuB;IACvB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -9,9 +9,18 @@ export declare class AgentLoop extends EventEmitter {
|
|
|
9
9
|
private executor;
|
|
10
10
|
private reflector;
|
|
11
11
|
private experienceStore;
|
|
12
|
+
private auditLog;
|
|
13
|
+
private logger;
|
|
14
|
+
private controlServer;
|
|
15
|
+
private patternExtractor;
|
|
16
|
+
private strategyLibrary;
|
|
17
|
+
private calibrator;
|
|
18
|
+
private enrichedPromptBuilder;
|
|
12
19
|
private state;
|
|
13
20
|
private startTime;
|
|
14
21
|
private hourWindow;
|
|
22
|
+
private sessionCostCents;
|
|
23
|
+
private experienceCount;
|
|
15
24
|
private running;
|
|
16
25
|
private paused;
|
|
17
26
|
private pauseResolve;
|
|
@@ -20,16 +29,19 @@ export declare class AgentLoop extends EventEmitter {
|
|
|
20
29
|
stop(): Promise<void>;
|
|
21
30
|
pause(): void;
|
|
22
31
|
resume(): void;
|
|
32
|
+
getCostCents(): number;
|
|
23
33
|
getState(): AgentState;
|
|
24
34
|
private tick;
|
|
25
35
|
private registerAdapters;
|
|
36
|
+
private runExtraction;
|
|
26
37
|
private setPhase;
|
|
27
38
|
private checkHourWindow;
|
|
28
39
|
private trackTokens;
|
|
40
|
+
/** Estimate cost in cents from token usage (rough Sonnet pricing). */
|
|
41
|
+
private trackCost;
|
|
29
42
|
private recordError;
|
|
30
43
|
private audit;
|
|
31
44
|
private describePayload;
|
|
32
|
-
private log;
|
|
33
45
|
private sleep;
|
|
34
46
|
}
|
|
35
47
|
export interface RuntimeOptions {
|
|
@@ -42,5 +54,8 @@ export interface RuntimeOptions {
|
|
|
42
54
|
blocked?: string[];
|
|
43
55
|
modelId?: string;
|
|
44
56
|
experiencesPath?: string;
|
|
57
|
+
controlPort?: number;
|
|
58
|
+
jsonLogs?: boolean;
|
|
59
|
+
maxSessionCostCents?: number;
|
|
45
60
|
}
|
|
46
61
|
export declare function buildAgentConfig(targetPath: string, opts?: RuntimeOptions): AgentConfig;
|