agent-relay 1.0.8 → 1.0.9
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 +158 -0
- package/dist/bridge/config.d.ts +41 -0
- package/dist/bridge/config.d.ts.map +1 -0
- package/dist/bridge/config.js +143 -0
- package/dist/bridge/config.js.map +1 -0
- package/dist/bridge/index.d.ts +10 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +10 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/multi-project-client.d.ts +99 -0
- package/dist/bridge/multi-project-client.d.ts.map +1 -0
- package/dist/bridge/multi-project-client.js +386 -0
- package/dist/bridge/multi-project-client.js.map +1 -0
- package/dist/bridge/spawner.d.ts +46 -0
- package/dist/bridge/spawner.d.ts.map +1 -0
- package/dist/bridge/spawner.js +223 -0
- package/dist/bridge/spawner.js.map +1 -0
- package/dist/bridge/types.d.ts +55 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +6 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/bridge/utils.d.ts +30 -0
- package/dist/bridge/utils.d.ts.map +1 -0
- package/dist/bridge/utils.js +54 -0
- package/dist/bridge/utils.js.map +1 -0
- package/dist/cli/index.js +564 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/daemon/agent-registry.d.ts.map +1 -1
- package/dist/daemon/agent-registry.js +6 -1
- package/dist/daemon/agent-registry.js.map +1 -1
- package/dist/daemon/connection.d.ts +22 -0
- package/dist/daemon/connection.d.ts.map +1 -1
- package/dist/daemon/connection.js +59 -13
- package/dist/daemon/connection.js.map +1 -1
- package/dist/daemon/router.d.ts +27 -0
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +108 -3
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/server.d.ts +8 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +95 -23
- package/dist/daemon/server.js.map +1 -1
- package/dist/dashboard/metrics.d.ts +105 -0
- package/dist/dashboard/metrics.d.ts.map +1 -0
- package/dist/dashboard/metrics.js +192 -0
- package/dist/dashboard/metrics.js.map +1 -0
- package/dist/dashboard/needs-attention.d.ts +24 -0
- package/dist/dashboard/needs-attention.d.ts.map +1 -0
- package/dist/dashboard/needs-attention.js +78 -0
- package/dist/dashboard/needs-attention.js.map +1 -0
- package/dist/dashboard/public/bridge.html +1272 -0
- package/dist/dashboard/public/index.html +2017 -879
- package/dist/dashboard/public/js/app.js +184 -0
- package/dist/dashboard/public/js/app.js.map +7 -0
- package/dist/dashboard/public/metrics.html +999 -0
- package/dist/dashboard/server.d.ts +13 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +568 -13
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/start.js +1 -1
- package/dist/dashboard/start.js.map +1 -1
- package/dist/dashboard-v2/index.d.ts +10 -0
- package/dist/dashboard-v2/index.d.ts.map +1 -0
- package/dist/dashboard-v2/index.js +54 -0
- package/dist/dashboard-v2/index.js.map +1 -0
- package/dist/dashboard-v2/lib/api.d.ts +95 -0
- package/dist/dashboard-v2/lib/api.d.ts.map +1 -0
- package/dist/dashboard-v2/lib/api.js +270 -0
- package/dist/dashboard-v2/lib/api.js.map +1 -0
- package/dist/dashboard-v2/lib/colors.d.ts +61 -0
- package/dist/dashboard-v2/lib/colors.d.ts.map +1 -0
- package/dist/dashboard-v2/lib/colors.js +198 -0
- package/dist/dashboard-v2/lib/colors.js.map +1 -0
- package/dist/dashboard-v2/lib/hierarchy.d.ts +74 -0
- package/dist/dashboard-v2/lib/hierarchy.d.ts.map +1 -0
- package/dist/dashboard-v2/lib/hierarchy.js +196 -0
- package/dist/dashboard-v2/lib/hierarchy.js.map +1 -0
- package/dist/dashboard-v2/types/index.d.ts +154 -0
- package/dist/dashboard-v2/types/index.d.ts.map +1 -0
- package/dist/dashboard-v2/types/index.js +6 -0
- package/dist/dashboard-v2/types/index.js.map +1 -0
- package/dist/storage/adapter.d.ts +21 -1
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/adapter.js +36 -0
- package/dist/storage/adapter.js.map +1 -1
- package/dist/storage/sqlite-adapter.d.ts +34 -0
- package/dist/storage/sqlite-adapter.d.ts.map +1 -1
- package/dist/storage/sqlite-adapter.js +253 -12
- package/dist/storage/sqlite-adapter.js.map +1 -1
- package/dist/utils/agent-config.d.ts +45 -0
- package/dist/utils/agent-config.d.ts.map +1 -0
- package/dist/utils/agent-config.js +118 -0
- package/dist/utils/agent-config.js.map +1 -0
- package/dist/wrapper/client.d.ts +8 -0
- package/dist/wrapper/client.d.ts.map +1 -1
- package/dist/wrapper/client.js +26 -0
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/parser.d.ts +17 -0
- package/dist/wrapper/parser.d.ts.map +1 -1
- package/dist/wrapper/parser.js +334 -10
- package/dist/wrapper/parser.js.map +1 -1
- package/dist/wrapper/tmux-wrapper.d.ts +37 -2
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
- package/dist/wrapper/tmux-wrapper.js +178 -18
- package/dist/wrapper/tmux-wrapper.js.map +1 -1
- package/docs/AGENTS.md +105 -0
- package/docs/ARCHITECTURE_DECISIONS.md +175 -0
- package/docs/COMPETITIVE_ANALYSIS.md +897 -0
- package/docs/DESIGN_BRIDGE_STAFFING.md +878 -0
- package/docs/MONETIZATION.md +1679 -0
- package/docs/agent-relay-snippet.md +61 -0
- package/docs/dashboard-v2-plan.md +179 -0
- package/package.json +5 -2
package/dist/wrapper/parser.js
CHANGED
|
@@ -23,11 +23,21 @@ const DEFAULT_OPTIONS = {
|
|
|
23
23
|
const BLOCK_END = /\[\[\/RELAY\]\]/;
|
|
24
24
|
const BLOCK_METADATA_START = '[[RELAY_METADATA]]';
|
|
25
25
|
const BLOCK_METADATA_END = /\[\[\/RELAY_METADATA\]\]/;
|
|
26
|
-
const CODE_FENCE = /^```/;
|
|
26
|
+
const CODE_FENCE = /^```/;
|
|
27
|
+
// Fenced inline patterns: ->relay:Target <<< ... >>>
|
|
28
|
+
// FENCE_END is lenient - matches >>> at start of line regardless of trailing content
|
|
29
|
+
// This prevents stuck fenced mode when >>> has trailing text like ">>> done"
|
|
30
|
+
const FENCE_END = /^(?:\s*)?>>>/;
|
|
31
|
+
// Maximum lines in a fenced block before assuming it's stuck
|
|
32
|
+
const MAX_FENCED_LINES = 200;
|
|
33
|
+
// Continuation helpers
|
|
27
34
|
const BULLET_OR_NUMBERED_LIST = /^[ \t]*([\-*•◦‣⏺◆◇○□■]|[0-9]+[.)])\s+/;
|
|
28
35
|
const PROMPTISH_LINE = /^[\s]*[>$%#➜›»][\s]*$/;
|
|
29
36
|
const RELAY_INJECTION_PREFIX = /^\s*Relay message from /;
|
|
30
37
|
const MAX_INLINE_CONTINUATION_LINES = 30;
|
|
38
|
+
// Claude extended thinking block markers - skip content inside these
|
|
39
|
+
const THINKING_START = /<antml:thinking>/;
|
|
40
|
+
const THINKING_END = /<\/thinking>/;
|
|
31
41
|
/**
|
|
32
42
|
* Escape special regex characters in a string
|
|
33
43
|
*/
|
|
@@ -47,6 +57,15 @@ function buildInlinePattern(prefix) {
|
|
|
47
57
|
// Includes box drawing characters (│┃┆┇┊┋╎╏) and sparkle (✦) for Gemini CLI output
|
|
48
58
|
return new RegExp(`^(?:\\s*(?:[>$%#→➜›»●•◦‣⁃\\-*⏺◆◇○□■│┃┆┇┊┋╎╏✦]\\s*)*)?${escaped}(\\S+)(?:\\s+\\[thread:([\\w-]+)\\])?\\s+(.+)$`);
|
|
49
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Build fenced inline pattern for multi-line messages: ->relay:Target <<<
|
|
62
|
+
* This opens a fenced block that continues until >>> is seen on its own line.
|
|
63
|
+
* Group 1: target, Group 2: optional thread ID
|
|
64
|
+
*/
|
|
65
|
+
function buildFencedInlinePattern(prefix) {
|
|
66
|
+
const escaped = escapeRegex(prefix);
|
|
67
|
+
return new RegExp(`^(?:\\s*(?:[>$%#→➜›»●•◦‣⁃\\-*⏺◆◇○□■│┃┆┇┊┋╎╏✦]\\s*)*)?${escaped}(\\S+)(?:\\s+\\[thread:([\\w-]+)\\])?\\s+<<<\\s*$`);
|
|
68
|
+
}
|
|
50
69
|
/**
|
|
51
70
|
* Build escape pattern for a given prefix (e.g., \->relay: or \->)
|
|
52
71
|
*/
|
|
@@ -59,6 +78,26 @@ function buildEscapePattern(prefix, thinkingPrefix) {
|
|
|
59
78
|
// ANSI escape sequence pattern for stripping
|
|
60
79
|
// eslint-disable-next-line no-control-regex
|
|
61
80
|
const ANSI_PATTERN = /\x1b\[[0-9;?]*[a-zA-Z]|\x1b\].*?(?:\x07|\x1b\\)|\r/g;
|
|
81
|
+
/**
|
|
82
|
+
* Parse a target string that may contain cross-project syntax.
|
|
83
|
+
* Supports: "agent" (local) or "project:agent" (cross-project)
|
|
84
|
+
*
|
|
85
|
+
* @param target The raw target string from the relay command
|
|
86
|
+
* @returns Object with `to` (agent name) and optional `project`
|
|
87
|
+
*/
|
|
88
|
+
function parseTarget(target) {
|
|
89
|
+
// Check for cross-project syntax: project:agent
|
|
90
|
+
// Only split on FIRST colon to allow agent names with colons
|
|
91
|
+
const colonIndex = target.indexOf(':');
|
|
92
|
+
if (colonIndex > 0 && colonIndex < target.length - 1) {
|
|
93
|
+
// Has a colon with content on both sides
|
|
94
|
+
const project = target.substring(0, colonIndex);
|
|
95
|
+
const agent = target.substring(colonIndex + 1);
|
|
96
|
+
return { to: agent, project };
|
|
97
|
+
}
|
|
98
|
+
// Local target (no colon or malformed)
|
|
99
|
+
return { to: target };
|
|
100
|
+
}
|
|
62
101
|
/**
|
|
63
102
|
* Strip ANSI escape codes from a string for pattern matching.
|
|
64
103
|
*/
|
|
@@ -72,15 +111,29 @@ export class OutputParser {
|
|
|
72
111
|
blockBuffer = '';
|
|
73
112
|
blockType = null;
|
|
74
113
|
lastParsedMetadata = null;
|
|
114
|
+
// Claude extended thinking block state - skip content inside <thinking>...</thinking>
|
|
115
|
+
inThinkingBlock = false;
|
|
116
|
+
// Fenced inline state: ->relay:Target <<< ... >>>
|
|
117
|
+
inFencedInline = false;
|
|
118
|
+
fencedInlineBuffer = '';
|
|
119
|
+
fencedInlineTarget = '';
|
|
120
|
+
fencedInlineThread = undefined;
|
|
121
|
+
fencedInlineProject = undefined;
|
|
122
|
+
fencedInlineRaw = [];
|
|
123
|
+
fencedInlineKind = 'message';
|
|
75
124
|
// Dynamic patterns based on prefix configuration
|
|
76
125
|
inlineRelayPattern;
|
|
77
126
|
inlineThinkingPattern;
|
|
127
|
+
fencedRelayPattern;
|
|
128
|
+
fencedThinkingPattern;
|
|
78
129
|
escapePattern;
|
|
79
130
|
constructor(options = {}) {
|
|
80
131
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
81
132
|
// Build patterns based on configured prefixes
|
|
82
133
|
this.inlineRelayPattern = buildInlinePattern(this.options.prefix);
|
|
83
134
|
this.inlineThinkingPattern = buildInlinePattern(this.options.thinkingPrefix);
|
|
135
|
+
this.fencedRelayPattern = buildFencedInlinePattern(this.options.prefix);
|
|
136
|
+
this.fencedThinkingPattern = buildFencedInlinePattern(this.options.thinkingPrefix);
|
|
84
137
|
this.escapePattern = buildEscapePattern(this.options.prefix, this.options.thinkingPrefix);
|
|
85
138
|
}
|
|
86
139
|
/**
|
|
@@ -99,6 +152,10 @@ export class OutputParser {
|
|
|
99
152
|
parse(data) {
|
|
100
153
|
const commands = [];
|
|
101
154
|
let output = '';
|
|
155
|
+
// If we're inside a fenced inline block, accumulate until we see >>>
|
|
156
|
+
if (this.inFencedInline) {
|
|
157
|
+
return this.parseFencedInlineMode(data, commands);
|
|
158
|
+
}
|
|
102
159
|
// If we're inside a block, accumulate until we see the end
|
|
103
160
|
if (this.inBlock && this.blockType) {
|
|
104
161
|
return this.parseInBlockMode(data, commands, this.blockType);
|
|
@@ -225,26 +282,63 @@ export class OutputParser {
|
|
|
225
282
|
const isInlineStart = (line) => {
|
|
226
283
|
return this.inlineRelayPattern.test(line) || this.inlineThinkingPattern.test(line);
|
|
227
284
|
};
|
|
285
|
+
const isFencedInlineStart = (line) => {
|
|
286
|
+
const stripped = stripAnsi(line);
|
|
287
|
+
const relayMatch = stripped.match(this.fencedRelayPattern);
|
|
288
|
+
if (relayMatch) {
|
|
289
|
+
const [, target, threadId] = relayMatch;
|
|
290
|
+
const { to, project } = parseTarget(target);
|
|
291
|
+
return { target: to, thread: threadId || undefined, project, kind: 'message' };
|
|
292
|
+
}
|
|
293
|
+
const thinkingMatch = stripped.match(this.fencedThinkingPattern);
|
|
294
|
+
if (thinkingMatch) {
|
|
295
|
+
const [, target, threadId] = thinkingMatch;
|
|
296
|
+
const { to, project } = parseTarget(target);
|
|
297
|
+
return { target: to, thread: threadId || undefined, project, kind: 'thinking' };
|
|
298
|
+
}
|
|
299
|
+
return null;
|
|
300
|
+
};
|
|
228
301
|
const isBlockMarker = (line) => {
|
|
229
302
|
return CODE_FENCE.test(line) || line.includes('[[RELAY]]') || BLOCK_END.test(line);
|
|
230
303
|
};
|
|
231
|
-
const shouldStopContinuation = (line) => {
|
|
304
|
+
const shouldStopContinuation = (line, continuationCount, lines, currentIndex) => {
|
|
232
305
|
const trimmed = line.trim();
|
|
233
|
-
if (trimmed === '')
|
|
234
|
-
return true; // Blank line ends the message
|
|
235
306
|
if (isInlineStart(line))
|
|
236
307
|
return true;
|
|
308
|
+
if (isFencedInlineStart(line))
|
|
309
|
+
return true;
|
|
237
310
|
if (isBlockMarker(line))
|
|
238
311
|
return true;
|
|
239
312
|
if (PROMPTISH_LINE.test(trimmed))
|
|
240
313
|
return true;
|
|
241
314
|
if (RELAY_INJECTION_PREFIX.test(line))
|
|
242
315
|
return true; // Avoid swallowing injected inbound messages
|
|
316
|
+
// Allow blank lines only in structured content like tables or between numbered sections
|
|
317
|
+
if (trimmed === '') {
|
|
318
|
+
// If we haven't started continuation yet, stop on blank
|
|
319
|
+
if (continuationCount === 0)
|
|
320
|
+
return true;
|
|
321
|
+
// Look ahead to see if there's more content that looks like structured markdown
|
|
322
|
+
for (let j = currentIndex + 1; j < lines.length; j++) {
|
|
323
|
+
const nextLine = lines[j].trim();
|
|
324
|
+
if (nextLine === '') {
|
|
325
|
+
// Double blank line always stops
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
// Only continue for table rows or numbered list items after blank
|
|
329
|
+
if (/^\|/.test(nextLine))
|
|
330
|
+
return false; // Table row
|
|
331
|
+
if (/^\d+[.)]\s/.test(nextLine))
|
|
332
|
+
return false; // Numbered list like "1." or "2)"
|
|
333
|
+
// Stop for anything else after a blank line
|
|
334
|
+
return true;
|
|
335
|
+
}
|
|
336
|
+
return true; // No more content, stop
|
|
337
|
+
}
|
|
243
338
|
return false;
|
|
244
339
|
};
|
|
245
340
|
const isContinuationLine = (original, stripped, prevStripped, continuationCount) => {
|
|
246
|
-
|
|
247
|
-
return false;
|
|
341
|
+
// Note: shouldStopContinuation is already checked in the main loop before calling this
|
|
248
342
|
if (/^[ \t]/.test(original))
|
|
249
343
|
return true; // Indented lines from TUI wrapping
|
|
250
344
|
if (BULLET_OR_NUMBERED_LIST.test(stripped))
|
|
@@ -273,6 +367,62 @@ export class OutputParser {
|
|
|
273
367
|
outputLines.push(line);
|
|
274
368
|
continue;
|
|
275
369
|
}
|
|
370
|
+
// Skip Claude extended thinking blocks - don't parse or output their content
|
|
371
|
+
// Check for thinking end first (to handle end tag on same line as start)
|
|
372
|
+
if (this.inThinkingBlock) {
|
|
373
|
+
if (THINKING_END.test(line)) {
|
|
374
|
+
this.inThinkingBlock = false;
|
|
375
|
+
}
|
|
376
|
+
// Skip this line - don't output thinking content
|
|
377
|
+
strippedCount++;
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
// Check for thinking start
|
|
381
|
+
if (THINKING_START.test(line)) {
|
|
382
|
+
this.inThinkingBlock = true;
|
|
383
|
+
// Also check if it ends on the same line (inline thinking block)
|
|
384
|
+
if (THINKING_END.test(line)) {
|
|
385
|
+
this.inThinkingBlock = false;
|
|
386
|
+
}
|
|
387
|
+
// Skip this line - don't output thinking content
|
|
388
|
+
strippedCount++;
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
// Check for fenced inline start: ->relay:Target <<<
|
|
392
|
+
const fencedStart = isFencedInlineStart(line);
|
|
393
|
+
if (fencedStart && this.options.enableInline) {
|
|
394
|
+
// Enter fenced inline mode
|
|
395
|
+
this.inFencedInline = true;
|
|
396
|
+
this.fencedInlineTarget = fencedStart.target;
|
|
397
|
+
this.fencedInlineThread = fencedStart.thread;
|
|
398
|
+
this.fencedInlineProject = fencedStart.project;
|
|
399
|
+
this.fencedInlineKind = fencedStart.kind;
|
|
400
|
+
this.fencedInlineBuffer = '';
|
|
401
|
+
this.fencedInlineRaw = [line];
|
|
402
|
+
// Process remaining lines in fenced mode
|
|
403
|
+
if (i + 1 < lines.length) {
|
|
404
|
+
// Don't double-add trailing newline - the empty string at end of lines array
|
|
405
|
+
// already accounts for it when we join
|
|
406
|
+
const remainingLines = lines.slice(i + 1);
|
|
407
|
+
const remaining = remainingLines.join('\n') + (hasTrailingNewline && remainingLines[remainingLines.length - 1] !== '' ? '\n' : '');
|
|
408
|
+
const result = this.parseFencedInlineMode(remaining, commands);
|
|
409
|
+
strippedCount++;
|
|
410
|
+
// Combine output
|
|
411
|
+
let output = outputLines.join('\n');
|
|
412
|
+
if (hasTrailingNewline && outputLines.length > 0 && !this.inFencedInline) {
|
|
413
|
+
output += '\n';
|
|
414
|
+
}
|
|
415
|
+
output += result.output;
|
|
416
|
+
return output;
|
|
417
|
+
}
|
|
418
|
+
// No more lines - waiting for more data
|
|
419
|
+
strippedCount++;
|
|
420
|
+
let output = outputLines.join('\n');
|
|
421
|
+
if (hasTrailingNewline && outputLines.length > 0) {
|
|
422
|
+
output += '\n';
|
|
423
|
+
}
|
|
424
|
+
return output;
|
|
425
|
+
}
|
|
276
426
|
if (line.length > 0) {
|
|
277
427
|
// Only check complete lines for relay commands.
|
|
278
428
|
const result = this.processLine(line);
|
|
@@ -292,7 +442,7 @@ export class OutputParser {
|
|
|
292
442
|
const nextStripped = stripAnsi(nextLine);
|
|
293
443
|
const prevStripped = stripAnsi(rawLines[rawLines.length - 1] ?? '');
|
|
294
444
|
// Stop if this line clearly marks a new block, prompt, or inline command
|
|
295
|
-
if (shouldStopContinuation(nextStripped)) {
|
|
445
|
+
if (shouldStopContinuation(nextStripped, continuationLines, lines, i + 1)) {
|
|
296
446
|
break;
|
|
297
447
|
}
|
|
298
448
|
if (continuationLines >= MAX_INLINE_CONTINUATION_LINES) {
|
|
@@ -400,12 +550,14 @@ export class OutputParser {
|
|
|
400
550
|
const relayMatch = stripped.match(this.inlineRelayPattern);
|
|
401
551
|
if (relayMatch) {
|
|
402
552
|
const [raw, target, threadId, body] = relayMatch;
|
|
553
|
+
const { to, project } = parseTarget(target);
|
|
403
554
|
return {
|
|
404
555
|
command: {
|
|
405
|
-
to
|
|
556
|
+
to,
|
|
406
557
|
kind: 'message',
|
|
407
558
|
body,
|
|
408
559
|
thread: threadId || undefined, // undefined if no thread specified
|
|
560
|
+
project, // undefined if local, set if cross-project
|
|
409
561
|
raw,
|
|
410
562
|
},
|
|
411
563
|
output: null, // Don't output relay commands
|
|
@@ -414,12 +566,14 @@ export class OutputParser {
|
|
|
414
566
|
const thinkingMatch = stripped.match(this.inlineThinkingPattern);
|
|
415
567
|
if (thinkingMatch) {
|
|
416
568
|
const [raw, target, threadId, body] = thinkingMatch;
|
|
569
|
+
const { to, project } = parseTarget(target);
|
|
417
570
|
return {
|
|
418
571
|
command: {
|
|
419
|
-
to
|
|
572
|
+
to,
|
|
420
573
|
kind: 'thinking',
|
|
421
574
|
body,
|
|
422
575
|
thread: threadId || undefined,
|
|
576
|
+
project,
|
|
423
577
|
raw,
|
|
424
578
|
},
|
|
425
579
|
output: null,
|
|
@@ -462,12 +616,23 @@ export class OutputParser {
|
|
|
462
616
|
this.lastParsedMetadata = null; // Clear metadata even if RELAY block is invalid
|
|
463
617
|
return { command: null, remaining, metadata: null };
|
|
464
618
|
}
|
|
619
|
+
// Handle cross-project syntax in block format
|
|
620
|
+
// Supports both explicit "project" field and "project:agent" in "to" field
|
|
621
|
+
let to = parsed.to;
|
|
622
|
+
let project = parsed.project;
|
|
623
|
+
if (!project && typeof to === 'string') {
|
|
624
|
+
// Check if "to" field uses project:agent syntax
|
|
625
|
+
const targetParsed = parseTarget(to);
|
|
626
|
+
to = targetParsed.to;
|
|
627
|
+
project = targetParsed.project;
|
|
628
|
+
}
|
|
465
629
|
const command = {
|
|
466
|
-
to
|
|
630
|
+
to,
|
|
467
631
|
kind: parsed.type,
|
|
468
632
|
body: parsed.body ?? parsed.text ?? '',
|
|
469
633
|
data: parsed.data,
|
|
470
634
|
thread: parsed.thread || undefined,
|
|
635
|
+
project: project || undefined,
|
|
471
636
|
raw: jsonStr,
|
|
472
637
|
meta: this.lastParsedMetadata || undefined, // Attach last parsed metadata
|
|
473
638
|
};
|
|
@@ -485,6 +650,149 @@ export class OutputParser {
|
|
|
485
650
|
}
|
|
486
651
|
}
|
|
487
652
|
}
|
|
653
|
+
/**
|
|
654
|
+
* Parse while inside a fenced inline block (->relay:Target <<< ... >>>).
|
|
655
|
+
* Accumulates lines until >>> is seen on its own line.
|
|
656
|
+
*/
|
|
657
|
+
parseFencedInlineMode(data, commands) {
|
|
658
|
+
const lines = data.split('\n');
|
|
659
|
+
const hasTrailingNewline = data.endsWith('\n');
|
|
660
|
+
let output = '';
|
|
661
|
+
let consecutiveBlankLines = 0;
|
|
662
|
+
for (let i = 0; i < lines.length; i++) {
|
|
663
|
+
const line = lines[i];
|
|
664
|
+
const isLastLine = i === lines.length - 1;
|
|
665
|
+
const stripped = stripAnsi(line);
|
|
666
|
+
// Track consecutive blank lines for auto-close
|
|
667
|
+
if (stripped === '') {
|
|
668
|
+
consecutiveBlankLines++;
|
|
669
|
+
}
|
|
670
|
+
else {
|
|
671
|
+
consecutiveBlankLines = 0;
|
|
672
|
+
}
|
|
673
|
+
// Auto-close on double blank line (agent forgot >>>)
|
|
674
|
+
// Only if we have actual content to send
|
|
675
|
+
if (consecutiveBlankLines >= 2 && this.fencedInlineBuffer.trim().length > 0) {
|
|
676
|
+
const body = this.fencedInlineBuffer.trim();
|
|
677
|
+
const command = {
|
|
678
|
+
to: this.fencedInlineTarget,
|
|
679
|
+
kind: this.fencedInlineKind,
|
|
680
|
+
body,
|
|
681
|
+
thread: this.fencedInlineThread,
|
|
682
|
+
project: this.fencedInlineProject,
|
|
683
|
+
raw: this.fencedInlineRaw.join('\n'),
|
|
684
|
+
};
|
|
685
|
+
commands.push(command);
|
|
686
|
+
// Reset fenced inline state
|
|
687
|
+
this.inFencedInline = false;
|
|
688
|
+
this.fencedInlineBuffer = '';
|
|
689
|
+
this.fencedInlineTarget = '';
|
|
690
|
+
this.fencedInlineThread = undefined;
|
|
691
|
+
this.fencedInlineProject = undefined;
|
|
692
|
+
this.fencedInlineRaw = [];
|
|
693
|
+
this.fencedInlineKind = 'message';
|
|
694
|
+
// Process remaining lines in normal mode
|
|
695
|
+
const remainingLines = lines.slice(i);
|
|
696
|
+
const remaining = remainingLines.join('\n') + (hasTrailingNewline ? '\n' : '');
|
|
697
|
+
const result = this.parse(remaining);
|
|
698
|
+
commands.push(...result.commands);
|
|
699
|
+
return { commands, output: result.output };
|
|
700
|
+
}
|
|
701
|
+
// Check if a new relay command started (means previous fenced block was never closed)
|
|
702
|
+
// This prevents a stuck fenced block from swallowing all subsequent messages
|
|
703
|
+
// Note: This is an expected recovery path, not an error - don't log to avoid noise
|
|
704
|
+
if (this.inlineRelayPattern.test(stripped) || this.fencedRelayPattern.test(stripped)) {
|
|
705
|
+
// Discard the incomplete fenced block
|
|
706
|
+
this.inFencedInline = false;
|
|
707
|
+
this.fencedInlineBuffer = '';
|
|
708
|
+
this.fencedInlineTarget = '';
|
|
709
|
+
this.fencedInlineThread = undefined;
|
|
710
|
+
this.fencedInlineProject = undefined;
|
|
711
|
+
this.fencedInlineRaw = [];
|
|
712
|
+
this.fencedInlineKind = 'message';
|
|
713
|
+
// Process remaining lines (including this one) in normal mode
|
|
714
|
+
const remainingLines = lines.slice(i);
|
|
715
|
+
const remaining = remainingLines.join('\n') + (hasTrailingNewline ? '\n' : '');
|
|
716
|
+
const result = this.parse(remaining);
|
|
717
|
+
commands.push(...result.commands);
|
|
718
|
+
return { commands, output: result.output };
|
|
719
|
+
}
|
|
720
|
+
// Check if this line closes the fenced block
|
|
721
|
+
if (FENCE_END.test(stripped)) {
|
|
722
|
+
// Complete the fenced inline command
|
|
723
|
+
const body = this.fencedInlineBuffer.trim();
|
|
724
|
+
this.fencedInlineRaw.push(line);
|
|
725
|
+
const command = {
|
|
726
|
+
to: this.fencedInlineTarget,
|
|
727
|
+
kind: this.fencedInlineKind,
|
|
728
|
+
body,
|
|
729
|
+
thread: this.fencedInlineThread,
|
|
730
|
+
project: this.fencedInlineProject,
|
|
731
|
+
raw: this.fencedInlineRaw.join('\n'),
|
|
732
|
+
};
|
|
733
|
+
commands.push(command);
|
|
734
|
+
// Reset fenced inline state
|
|
735
|
+
this.inFencedInline = false;
|
|
736
|
+
this.fencedInlineBuffer = '';
|
|
737
|
+
this.fencedInlineTarget = '';
|
|
738
|
+
this.fencedInlineThread = undefined;
|
|
739
|
+
this.fencedInlineProject = undefined;
|
|
740
|
+
this.fencedInlineRaw = [];
|
|
741
|
+
this.fencedInlineKind = 'message';
|
|
742
|
+
// Process remaining lines after the fence close
|
|
743
|
+
// Only process if there's actual content after the closing fence
|
|
744
|
+
const remainingLines = lines.slice(i + 1);
|
|
745
|
+
// Filter out trailing empty string from split
|
|
746
|
+
const hasContent = remainingLines.some((l, idx) => l.trim() !== '' || (idx < remainingLines.length - 1));
|
|
747
|
+
if (hasContent) {
|
|
748
|
+
const remaining = remainingLines.join('\n') + (hasTrailingNewline ? '\n' : '');
|
|
749
|
+
const result = this.parse(remaining);
|
|
750
|
+
commands.push(...result.commands);
|
|
751
|
+
output += result.output;
|
|
752
|
+
}
|
|
753
|
+
return { commands, output };
|
|
754
|
+
}
|
|
755
|
+
// Accumulate this line into the buffer (preserving blank lines within content)
|
|
756
|
+
// But skip trailing empty line from split (when input ends with \n)
|
|
757
|
+
const isTrailingEmpty = isLastLine && line === '' && hasTrailingNewline;
|
|
758
|
+
if (!isTrailingEmpty) {
|
|
759
|
+
if (this.fencedInlineBuffer.length > 0) {
|
|
760
|
+
this.fencedInlineBuffer += '\n' + line;
|
|
761
|
+
}
|
|
762
|
+
else if (line.trim() !== '') {
|
|
763
|
+
// Start accumulating from first non-blank line
|
|
764
|
+
this.fencedInlineBuffer = line;
|
|
765
|
+
}
|
|
766
|
+
this.fencedInlineRaw.push(line);
|
|
767
|
+
}
|
|
768
|
+
// Check size limit
|
|
769
|
+
if (this.fencedInlineBuffer.length > this.options.maxBlockBytes) {
|
|
770
|
+
console.error('[parser] Fenced inline block too large, discarding');
|
|
771
|
+
this.inFencedInline = false;
|
|
772
|
+
this.fencedInlineBuffer = '';
|
|
773
|
+
this.fencedInlineTarget = '';
|
|
774
|
+
this.fencedInlineThread = undefined;
|
|
775
|
+
this.fencedInlineProject = undefined;
|
|
776
|
+
this.fencedInlineRaw = [];
|
|
777
|
+
this.fencedInlineKind = 'message';
|
|
778
|
+
return { commands, output: '' };
|
|
779
|
+
}
|
|
780
|
+
// Check line count limit - prevents stuck fenced mode from blocking all messages
|
|
781
|
+
if (this.fencedInlineRaw.length > MAX_FENCED_LINES) {
|
|
782
|
+
console.error('[parser] Fenced inline block exceeded max lines, discarding');
|
|
783
|
+
this.inFencedInline = false;
|
|
784
|
+
this.fencedInlineBuffer = '';
|
|
785
|
+
this.fencedInlineTarget = '';
|
|
786
|
+
this.fencedInlineThread = undefined;
|
|
787
|
+
this.fencedInlineProject = undefined;
|
|
788
|
+
this.fencedInlineRaw = [];
|
|
789
|
+
this.fencedInlineKind = 'message';
|
|
790
|
+
return { commands, output: '' };
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
// Still waiting for >>> - return empty output (content is buffered)
|
|
794
|
+
return { commands, output: '' };
|
|
795
|
+
}
|
|
488
796
|
/**
|
|
489
797
|
* Flush any remaining buffer (call on stream end).
|
|
490
798
|
*/
|
|
@@ -495,6 +803,14 @@ export class OutputParser {
|
|
|
495
803
|
this.blockType = null;
|
|
496
804
|
this.lastParsedMetadata = null;
|
|
497
805
|
this.inCodeFence = false;
|
|
806
|
+
this.inThinkingBlock = false;
|
|
807
|
+
this.inFencedInline = false;
|
|
808
|
+
this.fencedInlineBuffer = '';
|
|
809
|
+
this.fencedInlineTarget = '';
|
|
810
|
+
this.fencedInlineThread = undefined;
|
|
811
|
+
this.fencedInlineProject = undefined;
|
|
812
|
+
this.fencedInlineRaw = [];
|
|
813
|
+
this.fencedInlineKind = 'message';
|
|
498
814
|
return result;
|
|
499
815
|
}
|
|
500
816
|
/**
|
|
@@ -506,6 +822,14 @@ export class OutputParser {
|
|
|
506
822
|
this.blockType = null;
|
|
507
823
|
this.lastParsedMetadata = null;
|
|
508
824
|
this.inCodeFence = false;
|
|
825
|
+
this.inThinkingBlock = false;
|
|
826
|
+
this.inFencedInline = false;
|
|
827
|
+
this.fencedInlineBuffer = '';
|
|
828
|
+
this.fencedInlineTarget = '';
|
|
829
|
+
this.fencedInlineThread = undefined;
|
|
830
|
+
this.fencedInlineProject = undefined;
|
|
831
|
+
this.fencedInlineRaw = [];
|
|
832
|
+
this.fencedInlineKind = 'message';
|
|
509
833
|
}
|
|
510
834
|
}
|
|
511
835
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/wrapper/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/wrapper/parser.ts"],"names":[],"mappings":"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"}
|