usertester 0.1.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/LICENSE +21 -0
- package/README.md +219 -0
- package/dist/browser/agent.d.ts +33 -0
- package/dist/browser/agent.js +393 -0
- package/dist/browser/agent.js.map +1 -0
- package/dist/cli/cleanup.d.ts +5 -0
- package/dist/cli/cleanup.js +75 -0
- package/dist/cli/cleanup.js.map +1 -0
- package/dist/cli/harness.d.ts +10 -0
- package/dist/cli/harness.js +108 -0
- package/dist/cli/harness.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.js +31 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/kill.d.ts +5 -0
- package/dist/cli/kill.js +46 -0
- package/dist/cli/kill.js.map +1 -0
- package/dist/cli/logs.d.ts +5 -0
- package/dist/cli/logs.js +64 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/profiles.d.ts +5 -0
- package/dist/cli/profiles.js +67 -0
- package/dist/cli/profiles.js.map +1 -0
- package/dist/cli/send.d.ts +5 -0
- package/dist/cli/send.js +46 -0
- package/dist/cli/send.js.map +1 -0
- package/dist/cli/setup.d.ts +6 -0
- package/dist/cli/setup.js +168 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/spawn.d.ts +5 -0
- package/dist/cli/spawn.js +52 -0
- package/dist/cli/spawn.js.map +1 -0
- package/dist/cli/status.d.ts +5 -0
- package/dist/cli/status.js +85 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/harness/applier.d.ts +38 -0
- package/dist/harness/applier.js +152 -0
- package/dist/harness/applier.js.map +1 -0
- package/dist/harness/index.d.ts +14 -0
- package/dist/harness/index.js +110 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/patterns.d.ts +14 -0
- package/dist/harness/patterns.js +96 -0
- package/dist/harness/patterns.js.map +1 -0
- package/dist/harness/proposer.d.ts +26 -0
- package/dist/harness/proposer.js +181 -0
- package/dist/harness/proposer.js.map +1 -0
- package/dist/harness/traces.d.ts +29 -0
- package/dist/harness/traces.js +65 -0
- package/dist/harness/traces.js.map +1 -0
- package/dist/harness/validator.d.ts +6 -0
- package/dist/harness/validator.js +112 -0
- package/dist/harness/validator.js.map +1 -0
- package/dist/inbox/agentmail.d.ts +11 -0
- package/dist/inbox/agentmail.js +36 -0
- package/dist/inbox/agentmail.js.map +1 -0
- package/dist/llm/provider.d.ts +15 -0
- package/dist/llm/provider.js +65 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/orchestrator/agent.d.ts +17 -0
- package/dist/orchestrator/agent.js +195 -0
- package/dist/orchestrator/agent.js.map +1 -0
- package/dist/orchestrator/index.d.ts +7 -0
- package/dist/orchestrator/index.js +92 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/retry.d.ts +27 -0
- package/dist/orchestrator/retry.js +145 -0
- package/dist/orchestrator/retry.js.map +1 -0
- package/dist/orchestrator/session.d.ts +13 -0
- package/dist/orchestrator/session.js +55 -0
- package/dist/orchestrator/session.js.map +1 -0
- package/dist/output/events.d.ts +12 -0
- package/dist/output/events.js +81 -0
- package/dist/output/events.js.map +1 -0
- package/dist/profiles/learner.d.ts +4 -0
- package/dist/profiles/learner.js +168 -0
- package/dist/profiles/learner.js.map +1 -0
- package/dist/tools/captcha.d.ts +19 -0
- package/dist/tools/captcha.js +76 -0
- package/dist/tools/captcha.js.map +1 -0
- package/dist/tools/inbox.d.ts +30 -0
- package/dist/tools/inbox.js +65 -0
- package/dist/tools/inbox.js.map +1 -0
- package/dist/types.d.ts +121 -0
- package/dist/types.js +30 -0
- package/dist/types.js.map +1 -0
- package/package.json +60 -0
- package/tasks.example.json +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/browser/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { DEFAULT_CONFIG } from '../types.js';
|
|
4
|
+
import { loadSession } from '../orchestrator/session.js';
|
|
5
|
+
import { InboxManager } from '../inbox/agentmail.js';
|
|
6
|
+
export function registerCleanup(program) {
|
|
7
|
+
program
|
|
8
|
+
.command('cleanup')
|
|
9
|
+
.description('Delete all AgentMail inboxes from a session')
|
|
10
|
+
.option('--session <id>', 'Session ID (defaults to current)')
|
|
11
|
+
.option('--all', 'Clean up all sessions', false)
|
|
12
|
+
.action(async (opts) => {
|
|
13
|
+
const config = { ...DEFAULT_CONFIG };
|
|
14
|
+
if (!config.agentmail_api_key) {
|
|
15
|
+
console.error('AGENTMAIL_API_KEY not set');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
let sessionIds = [];
|
|
19
|
+
if (opts.all) {
|
|
20
|
+
// Find all session dirs
|
|
21
|
+
try {
|
|
22
|
+
const entries = fs.readdirSync(config.results_dir, { withFileTypes: true });
|
|
23
|
+
sessionIds = entries
|
|
24
|
+
.filter(e => e.isDirectory() && e.name !== 'profiles')
|
|
25
|
+
.map(e => e.name);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
console.error(`Results dir not found: ${config.results_dir}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
let sessionId = opts.session;
|
|
34
|
+
if (!sessionId) {
|
|
35
|
+
const currentLink = path.join(config.results_dir, 'current');
|
|
36
|
+
try {
|
|
37
|
+
const target = fs.readlinkSync(currentLink);
|
|
38
|
+
sessionId = path.basename(target);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
console.error('No active session. Use --session <id> or --all.');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
sessionIds = [sessionId];
|
|
46
|
+
}
|
|
47
|
+
const inboxMgr = new InboxManager(config.agentmail_api_key);
|
|
48
|
+
let deletedCount = 0;
|
|
49
|
+
for (const sessionId of sessionIds) {
|
|
50
|
+
const state = loadSession(config.results_dir, sessionId);
|
|
51
|
+
if (!state) {
|
|
52
|
+
console.log(`Session ${sessionId}: not found, skipping`);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const inboxIds = state.agents.map(a => a.inboxId).filter(Boolean);
|
|
56
|
+
if (inboxIds.length === 0) {
|
|
57
|
+
console.log(`Session ${sessionId}: no inboxes to delete`);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
console.log(`Session ${sessionId}: deleting ${inboxIds.length} inbox(es)...`);
|
|
61
|
+
await Promise.allSettled(inboxIds.map(async (id) => {
|
|
62
|
+
try {
|
|
63
|
+
await inboxMgr.delete(id);
|
|
64
|
+
deletedCount++;
|
|
65
|
+
console.log(` ✓ Deleted ${id}`);
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
console.log(` ✗ Failed to delete ${id}: ${err}`);
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
console.log(`\nDone. Deleted ${deletedCount} inbox(es).`);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/cli/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* usertester harness — inspect and manage the outer loop meta-harness
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* status — show convergence state + recent patterns
|
|
6
|
+
* patches — list applied patches
|
|
7
|
+
* rollback <id> — roll back a patch by ID
|
|
8
|
+
*/
|
|
9
|
+
import type { Command } from 'commander';
|
|
10
|
+
export declare function registerHarness(program: Command): void;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { DEFAULT_CONFIG } from '../types.js';
|
|
3
|
+
import { readLastTraces } from '../harness/traces.js';
|
|
4
|
+
import { analyzePatterns } from '../harness/patterns.js';
|
|
5
|
+
import { loadConvergenceState } from '../harness/proposer.js';
|
|
6
|
+
import { listPatchRecords, rollbackPatch } from '../harness/applier.js';
|
|
7
|
+
export function registerHarness(program) {
|
|
8
|
+
const harness = program
|
|
9
|
+
.command('harness')
|
|
10
|
+
.description('Inspect and manage the outer loop meta-harness');
|
|
11
|
+
// harness status
|
|
12
|
+
harness
|
|
13
|
+
.command('status')
|
|
14
|
+
.description('Show convergence state, recent traces, and top detected pattern')
|
|
15
|
+
.option('--results-dir <dir>', 'Results directory', DEFAULT_CONFIG.results_dir)
|
|
16
|
+
.action((opts) => {
|
|
17
|
+
const resultsDir = opts.resultsDir ?? DEFAULT_CONFIG.results_dir;
|
|
18
|
+
const harnessDir = path.join(resultsDir, 'harness');
|
|
19
|
+
const state = loadConvergenceState(harnessDir);
|
|
20
|
+
const traces = readLastTraces(harnessDir, 5);
|
|
21
|
+
const report = analyzePatterns(harnessDir);
|
|
22
|
+
console.log('=== Harness Status ===');
|
|
23
|
+
console.log();
|
|
24
|
+
console.log('Convergence:');
|
|
25
|
+
console.log(` Patches applied: ${state.patchesApplied}`);
|
|
26
|
+
console.log(` Sessions since patch: ${state.sessionsSinceLastPatch}`);
|
|
27
|
+
console.log(` Last patch at: ${state.lastPatchAt ?? 'never'}`);
|
|
28
|
+
console.log(` Converged: ${state.converged}`);
|
|
29
|
+
if (state.convergenceReason) {
|
|
30
|
+
console.log(` Convergence reason: ${state.convergenceReason}`);
|
|
31
|
+
}
|
|
32
|
+
if (state.successRateHistory.length > 0) {
|
|
33
|
+
const rates = state.successRateHistory.map(r => `${(r * 100).toFixed(0)}%`).join(', ');
|
|
34
|
+
console.log(` Success rate history: [${rates}]`);
|
|
35
|
+
}
|
|
36
|
+
console.log();
|
|
37
|
+
console.log(`Recent Traces (last 5 of ${report.tracesAnalyzed} total):`);
|
|
38
|
+
if (traces.length === 0) {
|
|
39
|
+
console.log(' (none yet)');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
for (const t of traces) {
|
|
43
|
+
const rate = t.n_agents > 0 ? Math.round((t.n_succeeded / t.n_agents) * 100) : 0;
|
|
44
|
+
console.log(` [${t.ts.slice(0, 19)}] session=${t.session_id} ` +
|
|
45
|
+
`${t.n_succeeded}/${t.n_agents} OK (${rate}%) ` +
|
|
46
|
+
`failures=[${t.failure_types.join(',')}]`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
console.log();
|
|
50
|
+
console.log('Pattern Analysis:');
|
|
51
|
+
if (!report.hasPattern) {
|
|
52
|
+
console.log(' No actionable patterns detected.');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
for (const p of report.allPatterns) {
|
|
56
|
+
const marker = p === report.topPattern ? '* ' : ' ';
|
|
57
|
+
console.log(`${marker}${p.type} (${p.occurrences} sessions, priority=${p.priority})`);
|
|
58
|
+
if (p.errorEvidence.length > 0) {
|
|
59
|
+
for (const e of p.errorEvidence.slice(0, 2)) {
|
|
60
|
+
console.log(` evidence: "${e.slice(0, 80)}"`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
// harness patches
|
|
67
|
+
harness
|
|
68
|
+
.command('patches')
|
|
69
|
+
.description('List all applied patches')
|
|
70
|
+
.option('--results-dir <dir>', 'Results directory', DEFAULT_CONFIG.results_dir)
|
|
71
|
+
.action((opts) => {
|
|
72
|
+
const resultsDir = opts.resultsDir ?? DEFAULT_CONFIG.results_dir;
|
|
73
|
+
const harnessDir = path.join(resultsDir, 'harness');
|
|
74
|
+
const records = listPatchRecords(harnessDir);
|
|
75
|
+
if (records.length === 0) {
|
|
76
|
+
console.log('No patches applied yet.');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
console.log(`${records.length} patch(es) applied:\n`);
|
|
80
|
+
for (const r of records) {
|
|
81
|
+
console.log(` ${r.patchId} [${r.appliedAt.slice(0, 19)}] ${r.patternType}`);
|
|
82
|
+
console.log(` file: ${r.file}`);
|
|
83
|
+
console.log(` desc: ${r.description}`);
|
|
84
|
+
console.log(` session: ${r.triggerSessionId}`);
|
|
85
|
+
console.log();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
// harness rollback <patch-id>
|
|
89
|
+
harness
|
|
90
|
+
.command('rollback <patch-id>')
|
|
91
|
+
.description('Roll back a patch by ID (e.g. patch_001)')
|
|
92
|
+
.option('--results-dir <dir>', 'Results directory', DEFAULT_CONFIG.results_dir)
|
|
93
|
+
.action(async (patchId, opts) => {
|
|
94
|
+
const resultsDir = opts.resultsDir ?? DEFAULT_CONFIG.results_dir;
|
|
95
|
+
const harnessDir = path.join(resultsDir, 'harness');
|
|
96
|
+
const projectRoot = new URL('../../..', import.meta.url).pathname;
|
|
97
|
+
console.log(`Rolling back ${patchId}...`);
|
|
98
|
+
const result = await rollbackPatch(patchId, harnessDir, projectRoot);
|
|
99
|
+
if (result.rolledBack) {
|
|
100
|
+
console.log(`Rollback successful: ${patchId} has been reverted.`);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.error(`Rollback failed: ${result.error}`);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/cli/harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* usertester CLI entry point
|
|
4
|
+
*/
|
|
5
|
+
import 'dotenv/config';
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { registerSetup } from './setup.js';
|
|
8
|
+
import { registerSpawn } from './spawn.js';
|
|
9
|
+
import { registerStatus } from './status.js';
|
|
10
|
+
import { registerSend } from './send.js';
|
|
11
|
+
import { registerKill } from './kill.js';
|
|
12
|
+
import { registerLogs } from './logs.js';
|
|
13
|
+
import { registerCleanup } from './cleanup.js';
|
|
14
|
+
import { registerProfiles } from './profiles.js';
|
|
15
|
+
import { registerHarness } from './harness.js';
|
|
16
|
+
const program = new Command();
|
|
17
|
+
program
|
|
18
|
+
.name('usertester')
|
|
19
|
+
.description('Spawn N AI agents as simulated users to test web app flows')
|
|
20
|
+
.version('0.1.0');
|
|
21
|
+
registerSetup(program);
|
|
22
|
+
registerSpawn(program);
|
|
23
|
+
registerStatus(program);
|
|
24
|
+
registerSend(program);
|
|
25
|
+
registerKill(program);
|
|
26
|
+
registerLogs(program);
|
|
27
|
+
registerCleanup(program);
|
|
28
|
+
registerProfiles(program);
|
|
29
|
+
registerHarness(program);
|
|
30
|
+
program.parse();
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AACH,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,eAAe,CAAC,OAAO,CAAC,CAAA;AAExB,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
package/dist/cli/kill.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { DEFAULT_CONFIG } from '../types.js';
|
|
4
|
+
import { loadSession } from '../orchestrator/session.js';
|
|
5
|
+
import { writeCommand, getAgentDir } from '../output/events.js';
|
|
6
|
+
export function registerKill(program) {
|
|
7
|
+
program
|
|
8
|
+
.command('kill <agent-id>')
|
|
9
|
+
.description('Kill a running or waiting agent')
|
|
10
|
+
.option('--session <id>', 'Session ID (defaults to current)')
|
|
11
|
+
.action((agentId, opts) => {
|
|
12
|
+
const config = { ...DEFAULT_CONFIG };
|
|
13
|
+
let sessionId = opts.session;
|
|
14
|
+
if (!sessionId) {
|
|
15
|
+
const currentLink = path.join(config.results_dir, 'current');
|
|
16
|
+
try {
|
|
17
|
+
const target = fs.readlinkSync(currentLink);
|
|
18
|
+
sessionId = path.basename(target);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
console.error('No active session. Use --session <id> to specify.');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const state = loadSession(config.results_dir, sessionId);
|
|
26
|
+
if (!state) {
|
|
27
|
+
console.error(`Session ${sessionId} not found`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const agent = state.agents.find(a => a.id === agentId);
|
|
31
|
+
if (!agent) {
|
|
32
|
+
console.error(`Agent ${agentId} not found`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
if (agent.status === 'DONE' || agent.status === 'CANCELLED') {
|
|
36
|
+
console.error(`Agent ${agentId} is already ${agent.status}`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
const sessionDir = path.join(config.results_dir, sessionId);
|
|
40
|
+
const agentDir = getAgentDir(sessionDir, agentId);
|
|
41
|
+
const commandsPath = path.join(agentDir, 'commands.ndjson');
|
|
42
|
+
writeCommand(commandsPath, { type: 'kill', issuedAt: Date.now() });
|
|
43
|
+
console.log(`Kill signal sent to ${agentId}`);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=kill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kill.js","sourceRoot":"","sources":["../../src/cli/kill.ts"],"names":[],"mappings":"AAIA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE/D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;SAC5D,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAA;QAEpC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;gBAC3C,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,WAAW,SAAS,YAAY,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,YAAY,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,eAAe,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QAE3D,YAAY,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACN,CAAC"}
|
package/dist/cli/logs.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { DEFAULT_CONFIG } from '../types.js';
|
|
4
|
+
import { getAgentDir } from '../output/events.js';
|
|
5
|
+
export function registerLogs(program) {
|
|
6
|
+
program
|
|
7
|
+
.command('logs <agent-id>')
|
|
8
|
+
.description("Tail an agent's log in real time")
|
|
9
|
+
.option('--session <id>', 'Session ID (defaults to current)')
|
|
10
|
+
.option('--follow', 'Keep watching (like tail -f)', false)
|
|
11
|
+
.option('-n, --lines <number>', 'Last N lines to show first', '20')
|
|
12
|
+
.action((agentId, opts) => {
|
|
13
|
+
const config = { ...DEFAULT_CONFIG };
|
|
14
|
+
let sessionId = opts.session;
|
|
15
|
+
if (!sessionId) {
|
|
16
|
+
const currentLink = path.join(config.results_dir, 'current');
|
|
17
|
+
try {
|
|
18
|
+
const target = fs.readlinkSync(currentLink);
|
|
19
|
+
sessionId = path.basename(target);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
console.error('No active session. Use --session <id> to specify.');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const sessionDir = path.join(config.results_dir, sessionId);
|
|
27
|
+
const agentDir = getAgentDir(sessionDir, agentId);
|
|
28
|
+
const logPath = path.join(agentDir, 'agent.log');
|
|
29
|
+
if (!fs.existsSync(logPath)) {
|
|
30
|
+
console.error(`Log not found: ${logPath}`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
// Show last N lines
|
|
34
|
+
const content = fs.readFileSync(logPath, 'utf-8');
|
|
35
|
+
const lines = content.split('\n').filter(Boolean);
|
|
36
|
+
const lastN = parseInt(opts.lines, 10);
|
|
37
|
+
const toShow = lines.slice(-lastN);
|
|
38
|
+
toShow.forEach(l => console.log(l));
|
|
39
|
+
if (!opts.follow)
|
|
40
|
+
return;
|
|
41
|
+
// Follow mode: use fs.watch to detect appends
|
|
42
|
+
let offset = fs.statSync(logPath).size;
|
|
43
|
+
console.log(`\n--- following ${logPath} ---`);
|
|
44
|
+
const watcher = fs.watch(logPath, () => {
|
|
45
|
+
try {
|
|
46
|
+
const stat = fs.statSync(logPath);
|
|
47
|
+
if (stat.size <= offset)
|
|
48
|
+
return;
|
|
49
|
+
const fd = fs.openSync(logPath, 'r');
|
|
50
|
+
const buf = Buffer.alloc(stat.size - offset);
|
|
51
|
+
fs.readSync(fd, buf, 0, buf.length, offset);
|
|
52
|
+
fs.closeSync(fd);
|
|
53
|
+
offset = stat.size;
|
|
54
|
+
process.stdout.write(buf.toString());
|
|
55
|
+
}
|
|
56
|
+
catch { }
|
|
57
|
+
});
|
|
58
|
+
process.on('SIGINT', () => {
|
|
59
|
+
watcher.close();
|
|
60
|
+
process.exit(0);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/cli/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { DEFAULT_CONFIG } from '../types.js';
|
|
4
|
+
export function registerProfiles(program) {
|
|
5
|
+
const profiles = program
|
|
6
|
+
.command('profiles')
|
|
7
|
+
.description('Manage profile meta-learning data');
|
|
8
|
+
profiles
|
|
9
|
+
.command('list')
|
|
10
|
+
.description('List all learned profiles')
|
|
11
|
+
.action(() => {
|
|
12
|
+
const config = { ...DEFAULT_CONFIG };
|
|
13
|
+
const profilesDir = path.join(config.results_dir, 'profiles');
|
|
14
|
+
try {
|
|
15
|
+
const files = fs.readdirSync(profilesDir).filter(f => f.endsWith('.json'));
|
|
16
|
+
if (files.length === 0) {
|
|
17
|
+
console.log('No profiles yet. Profiles are created after completed sessions.');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
for (const file of files) {
|
|
21
|
+
const profile = JSON.parse(fs.readFileSync(path.join(profilesDir, file), 'utf-8'));
|
|
22
|
+
console.log(`\n${file.replace('.json', '')}`);
|
|
23
|
+
console.log(` URL: ${profile.url}`);
|
|
24
|
+
console.log(` Scenario: ${profile.scenario}`);
|
|
25
|
+
console.log(` Runs: ${profile.runCount}`);
|
|
26
|
+
console.log(` Hints: ${profile.harnessHints.length}`);
|
|
27
|
+
for (const hint of profile.harnessHints.slice(0, 3)) {
|
|
28
|
+
console.log(` [${(hint.confidence * 100).toFixed(0)}%] ${hint.observation}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
console.log('No profiles directory found.');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
profiles
|
|
37
|
+
.command('show <profile-key>')
|
|
38
|
+
.description('Show full profile details')
|
|
39
|
+
.action((profileKey) => {
|
|
40
|
+
const config = { ...DEFAULT_CONFIG };
|
|
41
|
+
const profilePath = path.join(config.results_dir, 'profiles', `${profileKey}.json`);
|
|
42
|
+
try {
|
|
43
|
+
const profile = JSON.parse(fs.readFileSync(profilePath, 'utf-8'));
|
|
44
|
+
console.log(JSON.stringify(profile, null, 2));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
console.error(`Profile not found: ${profileKey}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
profiles
|
|
52
|
+
.command('delete <profile-key>')
|
|
53
|
+
.description('Delete a profile')
|
|
54
|
+
.action((profileKey) => {
|
|
55
|
+
const config = { ...DEFAULT_CONFIG };
|
|
56
|
+
const profilePath = path.join(config.results_dir, 'profiles', `${profileKey}.json`);
|
|
57
|
+
try {
|
|
58
|
+
fs.unlinkSync(profilePath);
|
|
59
|
+
console.log(`Deleted profile: ${profileKey}`);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
console.error(`Profile not found: ${profileKey}`);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/cli/profiles.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/send.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { DEFAULT_CONFIG } from '../types.js';
|
|
4
|
+
import { loadSession } from '../orchestrator/session.js';
|
|
5
|
+
import { writeCommand, getAgentDir } from '../output/events.js';
|
|
6
|
+
export function registerSend(program) {
|
|
7
|
+
program
|
|
8
|
+
.command('send <agent-id> <message>')
|
|
9
|
+
.description('Send a new task message to a waiting agent')
|
|
10
|
+
.option('--session <id>', 'Session ID (defaults to current)')
|
|
11
|
+
.action((agentId, message, opts) => {
|
|
12
|
+
const config = { ...DEFAULT_CONFIG };
|
|
13
|
+
let sessionId = opts.session;
|
|
14
|
+
if (!sessionId) {
|
|
15
|
+
const currentLink = path.join(config.results_dir, 'current');
|
|
16
|
+
try {
|
|
17
|
+
const target = fs.readlinkSync(currentLink);
|
|
18
|
+
sessionId = path.basename(target);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
console.error('No active session. Use --session <id> to specify.');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const state = loadSession(config.results_dir, sessionId);
|
|
26
|
+
if (!state) {
|
|
27
|
+
console.error(`Session ${sessionId} not found`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const agent = state.agents.find(a => a.id === agentId);
|
|
31
|
+
if (!agent) {
|
|
32
|
+
console.error(`Agent ${agentId} not found in session ${sessionId}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
if (agent.status === 'DONE' || agent.status === 'CANCELLED') {
|
|
36
|
+
console.error(`Agent ${agentId} is ${agent.status}. Spawn a new session.`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
const sessionDir = path.join(config.results_dir, sessionId);
|
|
40
|
+
const agentDir = getAgentDir(sessionDir, agentId);
|
|
41
|
+
const commandsPath = path.join(agentDir, 'commands.ndjson');
|
|
42
|
+
writeCommand(commandsPath, { type: 'send', message, issuedAt: Date.now() });
|
|
43
|
+
console.log(`Sent message to ${agentId}: "${message}"`);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/cli/send.ts"],"names":[],"mappings":"AAIA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE/D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,2BAA2B,CAAC;SACpC,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;SAC5D,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAA;QAEpC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;gBAC3C,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,WAAW,SAAS,YAAY,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,yBAAyB,SAAS,EAAE,CAAC,CAAA;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,OAAO,KAAK,CAAC,MAAM,wBAAwB,CAAC,CAAA;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QAE3D,YAAY,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC3E,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,MAAM,OAAO,GAAG,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;AACN,CAAC"}
|