agent-relay 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -6
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +344 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/daemon/agent-registry.d.ts +60 -0
- package/dist/daemon/agent-registry.d.ts.map +1 -0
- package/dist/daemon/agent-registry.js +158 -0
- package/dist/daemon/agent-registry.js.map +1 -0
- package/dist/daemon/connection.d.ts +11 -1
- package/dist/daemon/connection.d.ts.map +1 -1
- package/dist/daemon/connection.js +31 -2
- package/dist/daemon/connection.js.map +1 -1
- package/dist/daemon/index.d.ts +2 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +2 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/registry.d.ts +9 -0
- package/dist/daemon/registry.d.ts.map +1 -0
- package/dist/daemon/registry.js +9 -0
- package/dist/daemon/registry.js.map +1 -0
- package/dist/daemon/router.d.ts +34 -2
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +111 -1
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/server.d.ts +1 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +60 -13
- package/dist/daemon/server.js.map +1 -1
- package/dist/dashboard/public/index.html +625 -16
- package/dist/dashboard/server.d.ts +1 -1
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +125 -7
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/protocol/types.d.ts +15 -1
- package/dist/protocol/types.d.ts.map +1 -1
- package/dist/storage/adapter.d.ts +53 -0
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/adapter.js +3 -0
- package/dist/storage/adapter.js.map +1 -1
- package/dist/storage/sqlite-adapter.d.ts +58 -1
- package/dist/storage/sqlite-adapter.d.ts.map +1 -1
- package/dist/storage/sqlite-adapter.js +374 -47
- package/dist/storage/sqlite-adapter.js.map +1 -1
- package/dist/utils/project-namespace.d.ts.map +1 -1
- package/dist/utils/project-namespace.js +22 -1
- package/dist/utils/project-namespace.js.map +1 -1
- package/dist/wrapper/client.d.ts +22 -3
- package/dist/wrapper/client.d.ts.map +1 -1
- package/dist/wrapper/client.js +59 -9
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/parser.d.ts +110 -4
- package/dist/wrapper/parser.d.ts.map +1 -1
- package/dist/wrapper/parser.js +296 -84
- package/dist/wrapper/parser.js.map +1 -1
- package/dist/wrapper/tmux-wrapper.d.ts +100 -9
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
- package/dist/wrapper/tmux-wrapper.js +437 -77
- package/dist/wrapper/tmux-wrapper.js.map +1 -1
- package/docs/AGENTS.md +27 -27
- package/docs/CHANGELOG.md +1 -1
- package/docs/DESIGN_V2.md +1079 -0
- package/docs/INTEGRATION-GUIDE.md +926 -0
- package/docs/PROPOSAL-trajectories.md +1582 -0
- package/docs/PROTOCOL.md +3 -3
- package/docs/SCALING_ANALYSIS.md +280 -0
- package/docs/TMUX_IMPLEMENTATION_NOTES.md +9 -9
- package/docs/TMUX_IMPROVEMENTS.md +968 -0
- package/docs/competitive-analysis-mcp-agent-mail.md +389 -0
- package/package.json +6 -2
package/dist/wrapper/client.d.ts
CHANGED
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
* Relay Client
|
|
3
3
|
* Connects to the daemon and handles message sending/receiving.
|
|
4
4
|
*/
|
|
5
|
-
import { type SendPayload, type PayloadKind } from '../protocol/types.js';
|
|
5
|
+
import { type SendPayload, type SendMeta, type PayloadKind } from '../protocol/types.js';
|
|
6
6
|
export type ClientState = 'DISCONNECTED' | 'CONNECTING' | 'HANDSHAKING' | 'READY' | 'BACKOFF';
|
|
7
7
|
export interface ClientConfig {
|
|
8
8
|
socketPath: string;
|
|
9
9
|
agentName: string;
|
|
10
10
|
/** Optional CLI identifier to surface to the dashboard */
|
|
11
11
|
cli?: string;
|
|
12
|
+
/** Optional program identifier (e.g., 'claude', 'gpt-4o') */
|
|
13
|
+
program?: string;
|
|
14
|
+
/** Optional model identifier (e.g., 'claude-3-opus-2024-xx') */
|
|
15
|
+
model?: string;
|
|
16
|
+
/** Optional task description for registry/dashboard */
|
|
17
|
+
task?: string;
|
|
18
|
+
/** Optional working directory to surface in registry/dashboard */
|
|
19
|
+
workingDirectory?: string;
|
|
20
|
+
/** Suppress client-side console logging */
|
|
21
|
+
quiet?: boolean;
|
|
12
22
|
reconnect: boolean;
|
|
13
23
|
maxReconnectAttempts: number;
|
|
14
24
|
reconnectDelayMs: number;
|
|
@@ -25,12 +35,14 @@ export declare class RelayClient {
|
|
|
25
35
|
private reconnectDelay;
|
|
26
36
|
private reconnectTimer?;
|
|
27
37
|
private _destroyed;
|
|
28
|
-
onMessage?: (from: string, payload: SendPayload, messageId: string) => void;
|
|
38
|
+
onMessage?: (from: string, payload: SendPayload, messageId: string, meta?: SendMeta) => void;
|
|
29
39
|
onStateChange?: (state: ClientState) => void;
|
|
30
40
|
onError?: (error: Error) => void;
|
|
31
41
|
constructor(config?: Partial<ClientConfig>);
|
|
32
42
|
get state(): ClientState;
|
|
33
43
|
get agentName(): string;
|
|
44
|
+
/** Get the session ID assigned by the server */
|
|
45
|
+
get currentSessionId(): string | undefined;
|
|
34
46
|
/**
|
|
35
47
|
* Connect to the relay daemon.
|
|
36
48
|
*/
|
|
@@ -45,8 +57,14 @@ export declare class RelayClient {
|
|
|
45
57
|
destroy(): void;
|
|
46
58
|
/**
|
|
47
59
|
* Send a message to another agent.
|
|
60
|
+
* @param to - Target agent name or '*' for broadcast
|
|
61
|
+
* @param body - Message body
|
|
62
|
+
* @param kind - Message type (default: 'message')
|
|
63
|
+
* @param data - Optional structured data
|
|
64
|
+
* @param thread - Optional thread ID for grouping related messages
|
|
65
|
+
* @param meta - Optional message metadata (importance, replyTo, etc.)
|
|
48
66
|
*/
|
|
49
|
-
sendMessage(to: string, body: string, kind?: PayloadKind, data?: Record<string, unknown
|
|
67
|
+
sendMessage(to: string, body: string, kind?: PayloadKind, data?: Record<string, unknown>, thread?: string, meta?: SendMeta): boolean;
|
|
50
68
|
/**
|
|
51
69
|
* Broadcast a message to all agents.
|
|
52
70
|
*/
|
|
@@ -67,6 +85,7 @@ export declare class RelayClient {
|
|
|
67
85
|
private handleWelcome;
|
|
68
86
|
private handleDeliver;
|
|
69
87
|
private handlePing;
|
|
88
|
+
private handleErrorFrame;
|
|
70
89
|
private handleDisconnect;
|
|
71
90
|
private handleError;
|
|
72
91
|
private scheduleReconnect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/wrapper/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAIL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/wrapper/client.ts"],"names":[],"mappings":"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"}
|
package/dist/wrapper/client.js
CHANGED
|
@@ -11,6 +11,7 @@ const DEFAULT_CLIENT_CONFIG = {
|
|
|
11
11
|
socketPath: DEFAULT_SOCKET_PATH,
|
|
12
12
|
agentName: 'agent',
|
|
13
13
|
cli: undefined,
|
|
14
|
+
quiet: false,
|
|
14
15
|
reconnect: true,
|
|
15
16
|
maxReconnectAttempts: 10,
|
|
16
17
|
reconnectDelayMs: 100,
|
|
@@ -42,6 +43,10 @@ export class RelayClient {
|
|
|
42
43
|
get agentName() {
|
|
43
44
|
return this.config.agentName;
|
|
44
45
|
}
|
|
46
|
+
/** Get the session ID assigned by the server */
|
|
47
|
+
get currentSessionId() {
|
|
48
|
+
return this.sessionId;
|
|
49
|
+
}
|
|
45
50
|
/**
|
|
46
51
|
* Connect to the relay daemon.
|
|
47
52
|
*/
|
|
@@ -50,6 +55,19 @@ export class RelayClient {
|
|
|
50
55
|
return Promise.resolve();
|
|
51
56
|
}
|
|
52
57
|
return new Promise((resolve, reject) => {
|
|
58
|
+
let settled = false;
|
|
59
|
+
const settleResolve = () => {
|
|
60
|
+
if (settled)
|
|
61
|
+
return;
|
|
62
|
+
settled = true;
|
|
63
|
+
resolve();
|
|
64
|
+
};
|
|
65
|
+
const settleReject = (err) => {
|
|
66
|
+
if (settled)
|
|
67
|
+
return;
|
|
68
|
+
settled = true;
|
|
69
|
+
reject(err);
|
|
70
|
+
};
|
|
53
71
|
this.setState('CONNECTING');
|
|
54
72
|
this.socket = net.createConnection(this.config.socketPath, () => {
|
|
55
73
|
this.setState('HANDSHAKING');
|
|
@@ -61,7 +79,7 @@ export class RelayClient {
|
|
|
61
79
|
});
|
|
62
80
|
this.socket.on('error', (err) => {
|
|
63
81
|
if (this._state === 'CONNECTING') {
|
|
64
|
-
|
|
82
|
+
settleReject(err);
|
|
65
83
|
}
|
|
66
84
|
this.handleError(err);
|
|
67
85
|
});
|
|
@@ -69,14 +87,16 @@ export class RelayClient {
|
|
|
69
87
|
const checkReady = setInterval(() => {
|
|
70
88
|
if (this._state === 'READY') {
|
|
71
89
|
clearInterval(checkReady);
|
|
72
|
-
|
|
90
|
+
clearTimeout(timeout);
|
|
91
|
+
settleResolve();
|
|
73
92
|
}
|
|
74
93
|
}, 10);
|
|
75
94
|
// Timeout
|
|
76
|
-
setTimeout(() => {
|
|
95
|
+
const timeout = setTimeout(() => {
|
|
77
96
|
if (this._state !== 'READY') {
|
|
78
97
|
clearInterval(checkReady);
|
|
79
|
-
|
|
98
|
+
this.socket?.destroy();
|
|
99
|
+
settleReject(new Error('Connection timeout'));
|
|
80
100
|
}
|
|
81
101
|
}, 5000);
|
|
82
102
|
});
|
|
@@ -111,8 +131,14 @@ export class RelayClient {
|
|
|
111
131
|
}
|
|
112
132
|
/**
|
|
113
133
|
* Send a message to another agent.
|
|
134
|
+
* @param to - Target agent name or '*' for broadcast
|
|
135
|
+
* @param body - Message body
|
|
136
|
+
* @param kind - Message type (default: 'message')
|
|
137
|
+
* @param data - Optional structured data
|
|
138
|
+
* @param thread - Optional thread ID for grouping related messages
|
|
139
|
+
* @param meta - Optional message metadata (importance, replyTo, etc.)
|
|
114
140
|
*/
|
|
115
|
-
sendMessage(to, body, kind = 'message', data) {
|
|
141
|
+
sendMessage(to, body, kind = 'message', data, thread, meta) {
|
|
116
142
|
if (this._state !== 'READY') {
|
|
117
143
|
return false;
|
|
118
144
|
}
|
|
@@ -126,7 +152,9 @@ export class RelayClient {
|
|
|
126
152
|
kind,
|
|
127
153
|
body,
|
|
128
154
|
data,
|
|
155
|
+
thread,
|
|
129
156
|
},
|
|
157
|
+
payload_meta: meta,
|
|
130
158
|
};
|
|
131
159
|
return this.send(envelope);
|
|
132
160
|
}
|
|
@@ -181,6 +209,10 @@ export class RelayClient {
|
|
|
181
209
|
payload: {
|
|
182
210
|
agent: this.config.agentName,
|
|
183
211
|
cli: this.config.cli,
|
|
212
|
+
program: this.config.program,
|
|
213
|
+
model: this.config.model,
|
|
214
|
+
task: this.config.task,
|
|
215
|
+
workingDirectory: this.config.workingDirectory,
|
|
184
216
|
capabilities: {
|
|
185
217
|
ack: true,
|
|
186
218
|
resume: true,
|
|
@@ -228,7 +260,7 @@ export class RelayClient {
|
|
|
228
260
|
this.handlePing(envelope);
|
|
229
261
|
break;
|
|
230
262
|
case 'ERROR':
|
|
231
|
-
|
|
263
|
+
this.handleErrorFrame(envelope);
|
|
232
264
|
break;
|
|
233
265
|
case 'BUSY':
|
|
234
266
|
console.warn('[client] Server busy, backing off');
|
|
@@ -241,7 +273,9 @@ export class RelayClient {
|
|
|
241
273
|
this.reconnectAttempts = 0;
|
|
242
274
|
this.reconnectDelay = this.config.reconnectDelayMs;
|
|
243
275
|
this.setState('READY');
|
|
244
|
-
|
|
276
|
+
if (!this.config.quiet) {
|
|
277
|
+
console.log(`[client] Connected as ${this.config.agentName} (session: ${this.sessionId})`);
|
|
278
|
+
}
|
|
245
279
|
}
|
|
246
280
|
handleDeliver(envelope) {
|
|
247
281
|
// Send ACK
|
|
@@ -257,7 +291,7 @@ export class RelayClient {
|
|
|
257
291
|
});
|
|
258
292
|
// Notify handler
|
|
259
293
|
if (this.onMessage && envelope.from) {
|
|
260
|
-
this.onMessage(envelope.from, envelope.payload, envelope.id);
|
|
294
|
+
this.onMessage(envelope.from, envelope.payload, envelope.id, envelope.payload_meta);
|
|
261
295
|
}
|
|
262
296
|
}
|
|
263
297
|
handlePing(envelope) {
|
|
@@ -269,6 +303,17 @@ export class RelayClient {
|
|
|
269
303
|
payload: envelope.payload ?? {},
|
|
270
304
|
});
|
|
271
305
|
}
|
|
306
|
+
handleErrorFrame(envelope) {
|
|
307
|
+
console.error('[client] Server error:', envelope.payload);
|
|
308
|
+
if (envelope.payload.code === 'RESUME_TOO_OLD') {
|
|
309
|
+
if (this.resumeToken) {
|
|
310
|
+
console.warn('[client] Resume token rejected, clearing and requesting new session');
|
|
311
|
+
}
|
|
312
|
+
// Clear resume token so next HELLO starts a fresh session instead of looping on an invalid token
|
|
313
|
+
this.resumeToken = undefined;
|
|
314
|
+
this.sessionId = undefined;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
272
317
|
handleDisconnect() {
|
|
273
318
|
this.parser.reset();
|
|
274
319
|
this.socket = undefined;
|
|
@@ -282,6 +327,9 @@ export class RelayClient {
|
|
|
282
327
|
}
|
|
283
328
|
else {
|
|
284
329
|
this.setState('DISCONNECTED');
|
|
330
|
+
if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
|
|
331
|
+
console.error(`[client] Max reconnect attempts reached (${this.config.maxReconnectAttempts}), giving up`);
|
|
332
|
+
}
|
|
285
333
|
}
|
|
286
334
|
}
|
|
287
335
|
handleError(error) {
|
|
@@ -297,7 +345,9 @@ export class RelayClient {
|
|
|
297
345
|
const jitter = Math.random() * 0.3 + 0.85; // 0.85 - 1.15
|
|
298
346
|
const delay = Math.min(this.reconnectDelay * jitter, this.config.reconnectMaxDelayMs);
|
|
299
347
|
this.reconnectDelay *= 2;
|
|
300
|
-
|
|
348
|
+
if (!this.config.quiet) {
|
|
349
|
+
console.log(`[client] Reconnecting in ${Math.round(delay)}ms (attempt ${this.reconnectAttempts})`);
|
|
350
|
+
}
|
|
301
351
|
this.reconnectTimer = setTimeout(() => {
|
|
302
352
|
this.connect().catch(() => {
|
|
303
353
|
// Will trigger another reconnect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/wrapper/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/wrapper/client.ts"],"names":[],"mappings":"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"}
|
package/dist/wrapper/parser.d.ts
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Extracts relay commands from agent terminal output.
|
|
4
4
|
*
|
|
5
5
|
* Supports two formats:
|
|
6
|
-
* 1. Inline:
|
|
6
|
+
* 1. Inline: ->relay:<target> <message> (single line, start of line only)
|
|
7
7
|
* 2. Block: [[RELAY]]{ json }[[/RELAY]] (multi-line, structured)
|
|
8
8
|
*
|
|
9
9
|
* Rules:
|
|
10
10
|
* - Inline only matches at start of line (after whitespace)
|
|
11
11
|
* - Ignores content inside code fences
|
|
12
|
-
* - Escape with
|
|
12
|
+
* - Escape with \->relay: to output literal
|
|
13
13
|
* - Block format is preferred for structured data
|
|
14
14
|
*/
|
|
15
15
|
import type { PayloadKind } from '../protocol/types.js';
|
|
@@ -18,19 +18,35 @@ export interface ParsedCommand {
|
|
|
18
18
|
kind: PayloadKind;
|
|
19
19
|
body: string;
|
|
20
20
|
data?: Record<string, unknown>;
|
|
21
|
+
/** Optional thread ID for grouping related messages */
|
|
22
|
+
thread?: string;
|
|
21
23
|
raw: string;
|
|
24
|
+
meta?: ParsedMessageMetadata;
|
|
22
25
|
}
|
|
23
26
|
export interface ParserOptions {
|
|
24
27
|
maxBlockBytes?: number;
|
|
25
28
|
enableInline?: boolean;
|
|
26
29
|
enableBlock?: boolean;
|
|
30
|
+
/** Relay prefix pattern (default: '->relay:') */
|
|
31
|
+
prefix?: string;
|
|
32
|
+
/** Thinking prefix pattern (default: '->thinking:') */
|
|
33
|
+
thinkingPrefix?: string;
|
|
27
34
|
}
|
|
28
35
|
export declare class OutputParser {
|
|
29
36
|
private options;
|
|
30
37
|
private inCodeFence;
|
|
31
38
|
private inBlock;
|
|
32
39
|
private blockBuffer;
|
|
40
|
+
private blockType;
|
|
41
|
+
private lastParsedMetadata;
|
|
42
|
+
private inlineRelayPattern;
|
|
43
|
+
private inlineThinkingPattern;
|
|
44
|
+
private escapePattern;
|
|
33
45
|
constructor(options?: ParserOptions);
|
|
46
|
+
/**
|
|
47
|
+
* Get the configured relay prefix
|
|
48
|
+
*/
|
|
49
|
+
get prefix(): string;
|
|
34
50
|
/**
|
|
35
51
|
* Push data into the parser and extract commands.
|
|
36
52
|
* Returns array of parsed commands and cleaned output.
|
|
@@ -43,8 +59,8 @@ export declare class OutputParser {
|
|
|
43
59
|
output: string;
|
|
44
60
|
};
|
|
45
61
|
/**
|
|
46
|
-
* Find [[RELAY]] that's at the start of a line and not inside a code fence.
|
|
47
|
-
* Returns the index, or -1 if not found.
|
|
62
|
+
* Find [[RELAY_METADATA]] or [[RELAY]] that's at the start of a line and not inside a code fence.
|
|
63
|
+
* Returns the index and identifier, or -1 and null if not found.
|
|
48
64
|
*/
|
|
49
65
|
private findBlockStart;
|
|
50
66
|
/**
|
|
@@ -91,4 +107,94 @@ export declare class OutputParser {
|
|
|
91
107
|
* Format a relay command for injection into agent input.
|
|
92
108
|
*/
|
|
93
109
|
export declare function formatIncomingMessage(from: string, body: string, kind?: PayloadKind): string;
|
|
110
|
+
/**
|
|
111
|
+
* Parsed message metadata block from agent output.
|
|
112
|
+
*/
|
|
113
|
+
export interface ParsedMessageMetadata {
|
|
114
|
+
subject?: string;
|
|
115
|
+
importance?: number;
|
|
116
|
+
replyTo?: string;
|
|
117
|
+
ackRequired?: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Result of attempting to parse a RELAY_METADATA block.
|
|
121
|
+
*/
|
|
122
|
+
export interface MetadataParseResult {
|
|
123
|
+
found: boolean;
|
|
124
|
+
valid: boolean;
|
|
125
|
+
metadata: ParsedMessageMetadata | null;
|
|
126
|
+
rawContent: string | null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Parse [[RELAY_METADATA]]...[[/RELAY_METADATA]] blocks from agent output.
|
|
130
|
+
* Agents can output metadata to enhance messages.
|
|
131
|
+
*
|
|
132
|
+
* Format:
|
|
133
|
+
* [[RELAY_METADATA]]
|
|
134
|
+
* {
|
|
135
|
+
* "subject": "Task update",
|
|
136
|
+
* "importance": 80,
|
|
137
|
+
* "replyTo": "msg-abc123",
|
|
138
|
+
* "ackRequired": true
|
|
139
|
+
* }
|
|
140
|
+
* [[/RELAY_METADATA]]
|
|
141
|
+
*/
|
|
142
|
+
export declare function parseRelayMetadataFromOutput(output: string): MetadataParseResult;
|
|
143
|
+
/**
|
|
144
|
+
* Parsed summary block from agent output.
|
|
145
|
+
*/
|
|
146
|
+
export interface ParsedSummary {
|
|
147
|
+
currentTask?: string;
|
|
148
|
+
completedTasks?: string[];
|
|
149
|
+
decisions?: string[];
|
|
150
|
+
context?: string;
|
|
151
|
+
files?: string[];
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Result of attempting to parse a SUMMARY block.
|
|
155
|
+
*/
|
|
156
|
+
export interface SummaryParseResult {
|
|
157
|
+
found: boolean;
|
|
158
|
+
valid: boolean;
|
|
159
|
+
summary: ParsedSummary | null;
|
|
160
|
+
rawContent: string | null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Parse [[SUMMARY]]...[[/SUMMARY]] blocks from agent output.
|
|
164
|
+
* Agents can output summaries to keep a running context of their work.
|
|
165
|
+
*
|
|
166
|
+
* Format:
|
|
167
|
+
* [[SUMMARY]]
|
|
168
|
+
* {
|
|
169
|
+
* "currentTask": "Working on auth module",
|
|
170
|
+
* "context": "Completed login flow, now implementing logout",
|
|
171
|
+
* "files": ["src/auth.ts", "src/session.ts"]
|
|
172
|
+
* }
|
|
173
|
+
* [[/SUMMARY]]
|
|
174
|
+
*/
|
|
175
|
+
export declare function parseSummaryFromOutput(output: string): ParsedSummary | null;
|
|
176
|
+
/**
|
|
177
|
+
* Parse SUMMARY block with full details for deduplication.
|
|
178
|
+
* Returns raw content to allow caller to dedupe before logging errors.
|
|
179
|
+
*/
|
|
180
|
+
export declare function parseSummaryWithDetails(output: string): SummaryParseResult;
|
|
181
|
+
/**
|
|
182
|
+
* Session end marker from agent output.
|
|
183
|
+
*/
|
|
184
|
+
export interface SessionEndMarker {
|
|
185
|
+
summary?: string;
|
|
186
|
+
completedTasks?: string[];
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Parse [[SESSION_END]]...[[/SESSION_END]] blocks from agent output.
|
|
190
|
+
* Agents output this to explicitly mark their session as complete.
|
|
191
|
+
*
|
|
192
|
+
* Format:
|
|
193
|
+
* [[SESSION_END]]
|
|
194
|
+
* {"summary": "Completed auth module implementation", "completedTasks": ["login", "logout"]}
|
|
195
|
+
* [[/SESSION_END]]
|
|
196
|
+
*
|
|
197
|
+
* Or simply: [[SESSION_END]][[/SESSION_END]] for a clean close without summary.
|
|
198
|
+
*/
|
|
199
|
+
export declare function parseSessionEndFromOutput(output: string): SessionEndMarker | null;
|
|
94
200
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/wrapper/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/wrapper/parser.ts"],"names":[],"mappings":"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"}
|