agent-relay 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/CHANGELOG.md +11 -0
- package/LICENSE +22 -0
- package/PROTOCOL.md +319 -0
- package/README.md +791 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1591 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/daemon/connection.d.ts +60 -0
- package/dist/daemon/connection.d.ts.map +1 -0
- package/dist/daemon/connection.js +245 -0
- package/dist/daemon/connection.js.map +1 -0
- package/dist/daemon/index.d.ts +4 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +4 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/router.d.ts +72 -0
- package/dist/daemon/router.d.ts.map +1 -0
- package/dist/daemon/router.js +183 -0
- package/dist/daemon/router.js.map +1 -0
- package/dist/daemon/server.d.ts +52 -0
- package/dist/daemon/server.d.ts.map +1 -0
- package/dist/daemon/server.js +186 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/dashboard/public/index.html +690 -0
- package/dist/dashboard/server.d.ts +2 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +220 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/games/index.d.ts +2 -0
- package/dist/games/index.d.ts.map +1 -0
- package/dist/games/index.js +2 -0
- package/dist/games/index.js.map +1 -0
- package/dist/games/tictactoe.d.ts +24 -0
- package/dist/games/tictactoe.d.ts.map +1 -0
- package/dist/games/tictactoe.js +160 -0
- package/dist/games/tictactoe.js.map +1 -0
- package/dist/hooks/inbox-check/hook.d.ts +28 -0
- package/dist/hooks/inbox-check/hook.d.ts.map +1 -0
- package/dist/hooks/inbox-check/hook.js +97 -0
- package/dist/hooks/inbox-check/hook.js.map +1 -0
- package/dist/hooks/inbox-check/index.d.ts +8 -0
- package/dist/hooks/inbox-check/index.d.ts.map +1 -0
- package/dist/hooks/inbox-check/index.js +8 -0
- package/dist/hooks/inbox-check/index.js.map +1 -0
- package/dist/hooks/inbox-check/types.d.ts +31 -0
- package/dist/hooks/inbox-check/types.d.ts.map +1 -0
- package/dist/hooks/inbox-check/types.js +5 -0
- package/dist/hooks/inbox-check/types.js.map +1 -0
- package/dist/hooks/inbox-check/utils.d.ts +44 -0
- package/dist/hooks/inbox-check/utils.d.ts.map +1 -0
- package/dist/hooks/inbox-check/utils.js +107 -0
- package/dist/hooks/inbox-check/utils.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/protocol/framing.d.ts +32 -0
- package/dist/protocol/framing.d.ts.map +1 -0
- package/dist/protocol/framing.js +71 -0
- package/dist/protocol/framing.js.map +1 -0
- package/dist/protocol/index.d.ts +3 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +3 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/types.d.ts +104 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/types.js +6 -0
- package/dist/protocol/types.js.map +1 -0
- package/dist/state/agent-state.d.ts +40 -0
- package/dist/state/agent-state.d.ts.map +1 -0
- package/dist/state/agent-state.js +120 -0
- package/dist/state/agent-state.js.map +1 -0
- package/dist/storage/adapter.d.ts +29 -0
- package/dist/storage/adapter.d.ts.map +1 -0
- package/dist/storage/adapter.js +2 -0
- package/dist/storage/adapter.js.map +1 -0
- package/dist/storage/sqlite-adapter.d.ts +15 -0
- package/dist/storage/sqlite-adapter.d.ts.map +1 -0
- package/dist/storage/sqlite-adapter.js +116 -0
- package/dist/storage/sqlite-adapter.js.map +1 -0
- package/dist/supervisor/inbox.d.ts +38 -0
- package/dist/supervisor/inbox.d.ts.map +1 -0
- package/dist/supervisor/inbox.js +162 -0
- package/dist/supervisor/inbox.js.map +1 -0
- package/dist/supervisor/index.d.ts +10 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +10 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/supervisor/spawner.d.ts +54 -0
- package/dist/supervisor/spawner.d.ts.map +1 -0
- package/dist/supervisor/spawner.js +282 -0
- package/dist/supervisor/spawner.js.map +1 -0
- package/dist/supervisor/state.d.ts +132 -0
- package/dist/supervisor/state.d.ts.map +1 -0
- package/dist/supervisor/state.js +465 -0
- package/dist/supervisor/state.js.map +1 -0
- package/dist/supervisor/supervisor.d.ts +67 -0
- package/dist/supervisor/supervisor.d.ts.map +1 -0
- package/dist/supervisor/supervisor.js +263 -0
- package/dist/supervisor/supervisor.js.map +1 -0
- package/dist/supervisor/types.d.ts +139 -0
- package/dist/supervisor/types.d.ts.map +1 -0
- package/dist/supervisor/types.js +12 -0
- package/dist/supervisor/types.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/name-generator.d.ts +17 -0
- package/dist/utils/name-generator.d.ts.map +1 -0
- package/dist/utils/name-generator.js +52 -0
- package/dist/utils/name-generator.js.map +1 -0
- package/dist/webhook/spawner.d.ts +79 -0
- package/dist/webhook/spawner.d.ts.map +1 -0
- package/dist/webhook/spawner.js +288 -0
- package/dist/webhook/spawner.js.map +1 -0
- package/dist/wrapper/client.d.ts +72 -0
- package/dist/wrapper/client.d.ts.map +1 -0
- package/dist/wrapper/client.js +306 -0
- package/dist/wrapper/client.js.map +1 -0
- package/dist/wrapper/inbox.d.ts +37 -0
- package/dist/wrapper/inbox.d.ts.map +1 -0
- package/dist/wrapper/inbox.js +73 -0
- package/dist/wrapper/inbox.js.map +1 -0
- package/dist/wrapper/index.d.ts +4 -0
- package/dist/wrapper/index.d.ts.map +1 -0
- package/dist/wrapper/index.js +7 -0
- package/dist/wrapper/index.js.map +1 -0
- package/dist/wrapper/parser.d.ts +94 -0
- package/dist/wrapper/parser.d.ts.map +1 -0
- package/dist/wrapper/parser.js +360 -0
- package/dist/wrapper/parser.js.map +1 -0
- package/dist/wrapper/pty-wrapper.d.ts +125 -0
- package/dist/wrapper/pty-wrapper.d.ts.map +1 -0
- package/dist/wrapper/pty-wrapper.js +494 -0
- package/dist/wrapper/pty-wrapper.js.map +1 -0
- package/dist/wrapper/tmux-wrapper.d.ts +131 -0
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -0
- package/dist/wrapper/tmux-wrapper.js +427 -0
- package/dist/wrapper/tmux-wrapper.js.map +1 -0
- package/install.sh +69 -0
- package/package.json +82 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Spawner
|
|
3
|
+
*
|
|
4
|
+
* Handles spawning fresh CLI instances for different agent types.
|
|
5
|
+
* Supports Claude Code, Codex, Cursor, and custom commands.
|
|
6
|
+
*/
|
|
7
|
+
import { spawn } from 'node:child_process';
|
|
8
|
+
const CLI_COMMANDS = {
|
|
9
|
+
claude: {
|
|
10
|
+
cmd: 'claude',
|
|
11
|
+
args: ['--dangerously-skip-permissions'],
|
|
12
|
+
promptMode: 'flag',
|
|
13
|
+
promptFlag: '-p',
|
|
14
|
+
},
|
|
15
|
+
codex: {
|
|
16
|
+
cmd: 'codex',
|
|
17
|
+
// Prefer stdin for robustness (some codex invocations are flaky with huge -p prompts).
|
|
18
|
+
// Try --quiet first but retry without it if unsupported.
|
|
19
|
+
args: ['--quiet'],
|
|
20
|
+
promptMode: 'stdin',
|
|
21
|
+
},
|
|
22
|
+
cursor: {
|
|
23
|
+
cmd: 'cursor',
|
|
24
|
+
args: ['--cli'],
|
|
25
|
+
promptMode: 'flag',
|
|
26
|
+
promptFlag: '-p',
|
|
27
|
+
},
|
|
28
|
+
custom: {
|
|
29
|
+
cmd: '',
|
|
30
|
+
args: [],
|
|
31
|
+
promptMode: 'stdin',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
/** Relay command patterns */
|
|
35
|
+
const INLINE_RELAY_PATTERN = /^(\s*)@relay:(\S+)\s+(.+)$/gm;
|
|
36
|
+
const BLOCK_RELAY_PATTERN = /\[\[RELAY\]\]([\s\S]*?)\[\[\/RELAY\]\]/g;
|
|
37
|
+
/** Structured state markers */
|
|
38
|
+
const DECISION_PATTERN = /\[\[DECISION\]\]([\s\S]*?)\[\[\/DECISION\]\]/g;
|
|
39
|
+
const TODO_PATTERN = /\[\[TODO\]\]([\s\S]*?)\[\[\/TODO\]\]/g;
|
|
40
|
+
const DONE_PATTERN = /\[\[DONE\]\]([\s\S]*?)\[\[\/DONE\]\]/g;
|
|
41
|
+
const SUMMARY_PATTERN = /\[\[SUMMARY\]\]([\s\S]*?)\[\[\/SUMMARY\]\]/g;
|
|
42
|
+
/**
|
|
43
|
+
* Parse structured state markers from CLI output
|
|
44
|
+
*/
|
|
45
|
+
export function parseStateMarkers(output) {
|
|
46
|
+
const decisions = [];
|
|
47
|
+
const todos = [];
|
|
48
|
+
const dones = [];
|
|
49
|
+
let summary;
|
|
50
|
+
// Parse decisions
|
|
51
|
+
let match;
|
|
52
|
+
while ((match = DECISION_PATTERN.exec(output)) !== null) {
|
|
53
|
+
try {
|
|
54
|
+
const json = JSON.parse(match[1].trim());
|
|
55
|
+
if (json.what) {
|
|
56
|
+
decisions.push({
|
|
57
|
+
what: json.what,
|
|
58
|
+
why: json.why || '',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Not valid JSON, try simple text format
|
|
64
|
+
const text = match[1].trim();
|
|
65
|
+
if (text) {
|
|
66
|
+
decisions.push({ what: text, why: '' });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Parse TODOs
|
|
71
|
+
while ((match = TODO_PATTERN.exec(output)) !== null) {
|
|
72
|
+
try {
|
|
73
|
+
const json = JSON.parse(match[1].trim());
|
|
74
|
+
if (json.task) {
|
|
75
|
+
todos.push({
|
|
76
|
+
task: json.task,
|
|
77
|
+
priority: json.priority || 'normal',
|
|
78
|
+
owner: json.owner,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Not valid JSON, treat as simple task
|
|
84
|
+
const text = match[1].trim();
|
|
85
|
+
if (text) {
|
|
86
|
+
todos.push({ task: text, priority: 'normal' });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Parse DONEs (task completions)
|
|
91
|
+
while ((match = DONE_PATTERN.exec(output)) !== null) {
|
|
92
|
+
const text = match[1].trim();
|
|
93
|
+
if (text) {
|
|
94
|
+
dones.push({ taskMatch: text });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Parse SUMMARY (take last one)
|
|
98
|
+
while ((match = SUMMARY_PATTERN.exec(output)) !== null) {
|
|
99
|
+
const text = match[1].trim();
|
|
100
|
+
if (text)
|
|
101
|
+
summary = text;
|
|
102
|
+
}
|
|
103
|
+
return { decisions, todos, dones, summary };
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Parse relay commands from CLI output
|
|
107
|
+
*/
|
|
108
|
+
export function parseRelayCommands(output) {
|
|
109
|
+
const commands = [];
|
|
110
|
+
// Parse inline commands
|
|
111
|
+
let match;
|
|
112
|
+
while ((match = INLINE_RELAY_PATTERN.exec(output)) !== null) {
|
|
113
|
+
commands.push({
|
|
114
|
+
to: match[2],
|
|
115
|
+
body: match[3],
|
|
116
|
+
kind: 'message',
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
// Parse block commands
|
|
120
|
+
while ((match = BLOCK_RELAY_PATTERN.exec(output)) !== null) {
|
|
121
|
+
try {
|
|
122
|
+
const json = JSON.parse(match[1].trim());
|
|
123
|
+
if (json.to && json.type) {
|
|
124
|
+
commands.push({
|
|
125
|
+
to: json.to,
|
|
126
|
+
body: json.body || json.text || '',
|
|
127
|
+
kind: json.type,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Invalid JSON, skip
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return commands;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* CLI Spawner class
|
|
139
|
+
*/
|
|
140
|
+
export class CLISpawner {
|
|
141
|
+
config;
|
|
142
|
+
constructor(config) {
|
|
143
|
+
this.config = config;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Spawn a CLI with the given prompt
|
|
147
|
+
*/
|
|
148
|
+
async spawn(cli, prompt, cwd, customCommand) {
|
|
149
|
+
const { cmd, args, promptMode, promptFlag } = cli === 'custom' && customCommand
|
|
150
|
+
? this.parseCustomCommand(customCommand)
|
|
151
|
+
: CLI_COMMANDS[cli];
|
|
152
|
+
if (!cmd) {
|
|
153
|
+
throw new Error(`Invalid CLI type: ${cli}`);
|
|
154
|
+
}
|
|
155
|
+
const attempt = async (attemptArgs) => {
|
|
156
|
+
const fullArgs = [...attemptArgs];
|
|
157
|
+
if (promptMode === 'flag' && promptFlag) {
|
|
158
|
+
fullArgs.push(promptFlag, prompt);
|
|
159
|
+
}
|
|
160
|
+
if (this.config.verbose) {
|
|
161
|
+
console.error(`[spawner] Running: ${cmd} ${fullArgs.join(' ')}`);
|
|
162
|
+
}
|
|
163
|
+
return new Promise((resolve) => {
|
|
164
|
+
const proc = spawn(cmd, fullArgs, {
|
|
165
|
+
cwd,
|
|
166
|
+
env: {
|
|
167
|
+
...process.env,
|
|
168
|
+
AGENT_RELAY_SUPERVISED: '1',
|
|
169
|
+
},
|
|
170
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
171
|
+
});
|
|
172
|
+
let stdout = '';
|
|
173
|
+
let stderr = '';
|
|
174
|
+
proc.stdout?.on('data', (data) => {
|
|
175
|
+
const chunk = data.toString();
|
|
176
|
+
stdout += chunk;
|
|
177
|
+
if (this.config.verbose) {
|
|
178
|
+
process.stdout.write(chunk);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
proc.stderr?.on('data', (data) => {
|
|
182
|
+
const chunk = data.toString();
|
|
183
|
+
stderr += chunk;
|
|
184
|
+
if (this.config.verbose) {
|
|
185
|
+
process.stderr.write(chunk);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
// For CLIs that read prompt from stdin instead of flag
|
|
189
|
+
if (promptMode === 'stdin') {
|
|
190
|
+
proc.stdin?.write(prompt);
|
|
191
|
+
proc.stdin?.end();
|
|
192
|
+
}
|
|
193
|
+
proc.on('close', (code) => {
|
|
194
|
+
// Some CLIs emit user-visible output on stderr; parse both for commands/markers.
|
|
195
|
+
const combined = `${stdout}\n${stderr}`;
|
|
196
|
+
const relayCommands = parseRelayCommands(combined);
|
|
197
|
+
const stateMarkers = parseStateMarkers(combined);
|
|
198
|
+
if (this.config.verbose) {
|
|
199
|
+
console.error(`[spawner] Exited with code ${code}, found ${relayCommands.length} relay commands, ${stateMarkers.decisions.length} decisions, ${stateMarkers.todos.length} todos, ${stateMarkers.dones.length} dones`);
|
|
200
|
+
}
|
|
201
|
+
resolve({
|
|
202
|
+
exitCode: code ?? 1,
|
|
203
|
+
stdout,
|
|
204
|
+
stderr,
|
|
205
|
+
relayCommands,
|
|
206
|
+
stateMarkers,
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
proc.on('error', (err) => {
|
|
210
|
+
console.error(`[spawner] Spawn error:`, err);
|
|
211
|
+
resolve({
|
|
212
|
+
exitCode: 1,
|
|
213
|
+
stdout,
|
|
214
|
+
stderr: stderr + `\nSpawn error: ${err.message}`,
|
|
215
|
+
relayCommands: [],
|
|
216
|
+
stateMarkers: { decisions: [], todos: [], dones: [] },
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
// Timeout after 5 minutes
|
|
220
|
+
setTimeout(() => {
|
|
221
|
+
if (!proc.killed) {
|
|
222
|
+
console.error(`[spawner] Timeout, killing process`);
|
|
223
|
+
proc.kill('SIGTERM');
|
|
224
|
+
}
|
|
225
|
+
}, 5 * 60 * 1000);
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
// First attempt
|
|
229
|
+
const first = await attempt(args);
|
|
230
|
+
// Codex-specific retry: if --quiet is unsupported, retry without it.
|
|
231
|
+
if (cli === 'codex' &&
|
|
232
|
+
args.includes('--quiet') &&
|
|
233
|
+
first.exitCode !== 0 &&
|
|
234
|
+
/unknown option|unrecognized option|invalid option|unexpected option|unknown flag/i.test(first.stderr)) {
|
|
235
|
+
if (this.config.verbose) {
|
|
236
|
+
console.error('[spawner] codex --quiet unsupported; retrying without --quiet');
|
|
237
|
+
}
|
|
238
|
+
return attempt(args.filter((a) => a !== '--quiet'));
|
|
239
|
+
}
|
|
240
|
+
return first;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Parse a custom command string into cmd, args, promptFlag
|
|
244
|
+
*/
|
|
245
|
+
parseCustomCommand(command) {
|
|
246
|
+
const parts = command.split(' ');
|
|
247
|
+
const cmd = parts[0];
|
|
248
|
+
const args = parts.slice(1);
|
|
249
|
+
// Try to detect prompt flag
|
|
250
|
+
let promptFlag;
|
|
251
|
+
let promptMode = 'stdin';
|
|
252
|
+
const pFlagIdx = args.indexOf('-p');
|
|
253
|
+
const promptFlagIdx = args.indexOf('--prompt');
|
|
254
|
+
if (pFlagIdx !== -1) {
|
|
255
|
+
promptFlag = '-p';
|
|
256
|
+
args.splice(pFlagIdx, 1);
|
|
257
|
+
promptMode = 'flag';
|
|
258
|
+
}
|
|
259
|
+
else if (promptFlagIdx !== -1) {
|
|
260
|
+
promptFlag = '--prompt';
|
|
261
|
+
args.splice(promptFlagIdx, 1);
|
|
262
|
+
promptMode = 'flag';
|
|
263
|
+
}
|
|
264
|
+
return { cmd, args, promptMode, promptFlag };
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Check if a CLI is available
|
|
268
|
+
*/
|
|
269
|
+
async isAvailable(cli, customCommand) {
|
|
270
|
+
const cmd = cli === 'custom' && customCommand
|
|
271
|
+
? customCommand.split(' ')[0]
|
|
272
|
+
: CLI_COMMANDS[cli].cmd;
|
|
273
|
+
if (!cmd)
|
|
274
|
+
return false;
|
|
275
|
+
return new Promise((resolve) => {
|
|
276
|
+
const proc = spawn('which', [cmd], { stdio: 'ignore' });
|
|
277
|
+
proc.on('close', (code) => resolve(code === 0));
|
|
278
|
+
proc.on('error', () => resolve(false));
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=spawner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/supervisor/spawner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent State Management
|
|
3
|
+
*
|
|
4
|
+
* Handles persistent state for spawn-per-message architecture.
|
|
5
|
+
* Each agent has a state.json that maintains context across spawns.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentState, RelayExchange, CLIType, SupervisorConfig } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* State Manager for a single agent
|
|
10
|
+
*/
|
|
11
|
+
export declare class StateManager {
|
|
12
|
+
private statePath;
|
|
13
|
+
private lockPath;
|
|
14
|
+
private config;
|
|
15
|
+
private agentName;
|
|
16
|
+
constructor(agentName: string, config: SupervisorConfig);
|
|
17
|
+
/**
|
|
18
|
+
* Initialize state directory
|
|
19
|
+
*/
|
|
20
|
+
ensureDir(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Check if state file exists
|
|
23
|
+
*/
|
|
24
|
+
exists(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Load agent state from disk
|
|
27
|
+
*/
|
|
28
|
+
load(): AgentState | null;
|
|
29
|
+
/**
|
|
30
|
+
* Save agent state to disk
|
|
31
|
+
*/
|
|
32
|
+
save(state: AgentState): void;
|
|
33
|
+
/**
|
|
34
|
+
* Create initial state for a new agent
|
|
35
|
+
*/
|
|
36
|
+
create(cli: CLIType, cwd: string, customCommand?: string): AgentState;
|
|
37
|
+
/**
|
|
38
|
+
* Update state with a new relay exchange
|
|
39
|
+
*/
|
|
40
|
+
addExchange(state: AgentState, exchange: RelayExchange): AgentState;
|
|
41
|
+
/**
|
|
42
|
+
* Update the rolling summary
|
|
43
|
+
*/
|
|
44
|
+
updateSummary(state: AgentState, newSummary: string): AgentState;
|
|
45
|
+
/**
|
|
46
|
+
* Update supervisor-tracked status for the agent.
|
|
47
|
+
*/
|
|
48
|
+
setStatus(state: AgentState, status: NonNullable<AgentState['status']>): AgentState;
|
|
49
|
+
/**
|
|
50
|
+
* Parse inbox content and record received exchanges into state.
|
|
51
|
+
*/
|
|
52
|
+
recordInboxReceived(state: AgentState, inboxContent: string): AgentState;
|
|
53
|
+
/**
|
|
54
|
+
* Mark inbox as processed (for restart deduplication)
|
|
55
|
+
*/
|
|
56
|
+
markInboxProcessed(state: AgentState, timestamp?: string): AgentState;
|
|
57
|
+
/**
|
|
58
|
+
* Check if messages should be skipped based on timestamp
|
|
59
|
+
* Returns true if the message timestamp is older than lastProcessedInboxTs
|
|
60
|
+
*/
|
|
61
|
+
shouldSkipMessage(state: AgentState, messageTs: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Add a decision (append-only)
|
|
64
|
+
*/
|
|
65
|
+
addDecision(state: AgentState, what: string, why: string): AgentState;
|
|
66
|
+
/**
|
|
67
|
+
* Add a TODO item
|
|
68
|
+
*/
|
|
69
|
+
addTodo(state: AgentState, task: string, priority?: 'high' | 'normal' | 'low', owner?: string): AgentState;
|
|
70
|
+
/**
|
|
71
|
+
* Complete (remove) a TODO item by task text match
|
|
72
|
+
*/
|
|
73
|
+
completeTodo(state: AgentState, taskMatch: string): AgentState;
|
|
74
|
+
/**
|
|
75
|
+
* Record a file modification
|
|
76
|
+
*/
|
|
77
|
+
addFileModification(state: AgentState, filePath: string, intent: string): AgentState;
|
|
78
|
+
/**
|
|
79
|
+
* Record an external command/reference
|
|
80
|
+
*/
|
|
81
|
+
addExternalRef(state: AgentState, command: string, resultSummary: string, logPath?: string): AgentState;
|
|
82
|
+
/**
|
|
83
|
+
* Migrate old state to current version
|
|
84
|
+
*/
|
|
85
|
+
migrateState(state: AgentState): AgentState;
|
|
86
|
+
/**
|
|
87
|
+
* Try to acquire lock for this agent
|
|
88
|
+
* Returns true if lock acquired, false if already locked
|
|
89
|
+
*/
|
|
90
|
+
tryLock(): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Release lock for this agent
|
|
93
|
+
*/
|
|
94
|
+
releaseLock(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Check if agent is currently locked
|
|
97
|
+
*/
|
|
98
|
+
isLocked(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Get the inbox path for this agent
|
|
101
|
+
*/
|
|
102
|
+
getInboxPath(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Get the state.json path for this agent
|
|
105
|
+
*/
|
|
106
|
+
getStatePath(): string;
|
|
107
|
+
/**
|
|
108
|
+
* Get the lock path for this agent
|
|
109
|
+
*/
|
|
110
|
+
getLockPath(): string;
|
|
111
|
+
/**
|
|
112
|
+
* Build the initial prompt for a spawn including state context
|
|
113
|
+
*/
|
|
114
|
+
buildSpawnPrompt(state: AgentState, inboxContent: string): string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Global state registry for all agents
|
|
118
|
+
*/
|
|
119
|
+
export declare class StateRegistry {
|
|
120
|
+
private config;
|
|
121
|
+
private managers;
|
|
122
|
+
constructor(config: SupervisorConfig);
|
|
123
|
+
/**
|
|
124
|
+
* Get or create state manager for an agent
|
|
125
|
+
*/
|
|
126
|
+
getManager(agentName: string): StateManager;
|
|
127
|
+
/**
|
|
128
|
+
* List all registered agents (from disk)
|
|
129
|
+
*/
|
|
130
|
+
listAgents(): string[];
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/supervisor/state.ts"],"names":[],"mappings":"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"}
|