baxian 1.0.2 → 1.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/dist/agent/diff-split.d.ts +10 -0
- package/dist/agent/diff-split.d.ts.map +1 -0
- package/dist/agent/diff-split.js +83 -0
- package/dist/agent/diff-split.js.map +1 -0
- package/dist/agent/manager.d.ts +66 -4
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +1070 -37
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/phase-signal-watcher.d.ts +11 -2
- package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
- package/dist/agent/phase-signal-watcher.js +53 -8
- package/dist/agent/phase-signal-watcher.js.map +1 -1
- package/dist/agent/phase-signal.d.ts +29 -2
- package/dist/agent/phase-signal.d.ts.map +1 -1
- package/dist/agent/phase-signal.js +34 -1
- package/dist/agent/phase-signal.js.map +1 -1
- package/dist/agent/prompt.d.ts +14 -0
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +242 -13
- package/dist/agent/prompt.js.map +1 -1
- package/dist/agent/review-transport.d.ts +36 -0
- package/dist/agent/review-transport.d.ts.map +1 -0
- package/dist/agent/review-transport.js +246 -0
- package/dist/agent/review-transport.js.map +1 -0
- package/dist/agent/runner.js +3 -3
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/worktree.d.ts +1 -0
- package/dist/agent/worktree.d.ts.map +1 -1
- package/dist/agent/worktree.js +12 -0
- package/dist/agent/worktree.js.map +1 -1
- package/dist/api/hosts.d.ts.map +1 -1
- package/dist/api/hosts.js +11 -7
- package/dist/api/hosts.js.map +1 -1
- package/dist/api/tasks.d.ts.map +1 -1
- package/dist/api/tasks.js +8 -0
- package/dist/api/tasks.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +6 -8
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validator.js +23 -0
- package/dist/config/validator.js.map +1 -1
- package/dist/event/handlers.d.ts.map +1 -1
- package/dist/event/handlers.js +23 -21
- package/dist/event/handlers.js.map +1 -1
- package/dist/event/server-handlers.d.ts +4 -0
- package/dist/event/server-handlers.d.ts.map +1 -0
- package/dist/event/server-handlers.js +828 -0
- package/dist/event/server-handlers.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/constants.d.ts +7 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +26 -2
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +64 -2
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/skills/server-feedback/SKILL.md +32 -0
- package/dist/skills/server-recheck/SKILL.md +30 -0
- package/dist/skills/server-review/SKILL.md +43 -0
- package/dist/skills/server-spec-review/SKILL.md +31 -0
- package/dist/state/index.d.ts +1 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +1 -0
- package/dist/state/index.js.map +1 -1
- package/dist/state/review-store.d.ts +13 -0
- package/dist/state/review-store.d.ts.map +1 -0
- package/dist/state/review-store.js +92 -0
- package/dist/state/review-store.js.map +1 -0
- package/dist/state/snapshot.js +1 -1
- package/dist/state/snapshot.js.map +1 -1
- package/dist/state/task-store.d.ts.map +1 -1
- package/dist/state/task-store.js +1 -0
- package/dist/state/task-store.js.map +1 -1
- package/dist/web/assets/index-DE_xpPQe.js +4 -0
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/web/assets/index-BfCCF072.js +0 -4
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { AgentConfig } from '../shared/index.js';
|
|
1
|
+
import type { AgentConfig, EventType, ReviewMode } from '../shared/index.js';
|
|
2
2
|
import type { EventBus } from '../event/bus.js';
|
|
3
3
|
import type { PaneStreamerManager } from './pane-streamer-manager.js';
|
|
4
|
-
import { type PhaseSignalKind } from './phase-signal.js';
|
|
4
|
+
import { type PhaseSignalKind, type ReadFileSignal } from './phase-signal.js';
|
|
5
|
+
export declare function resolveEventType(kind: PhaseSignalKind, reviewMode: ReviewMode): EventType;
|
|
5
6
|
export interface PhaseSignalWatcherDeps {
|
|
6
7
|
paneStreamerManager: PaneStreamerManager;
|
|
7
8
|
eventBus: EventBus;
|
|
@@ -14,8 +15,14 @@ export interface PhaseSignalWatcherStartArgs {
|
|
|
14
15
|
/** Kinds we accept; first match wins. QA review verdict uses {pr-approved, pr-changes-requested}. */
|
|
15
16
|
expectedKinds: PhaseSignalKind | readonly PhaseSignalKind[] | ReadonlySet<PhaseSignalKind>;
|
|
16
17
|
token: string;
|
|
18
|
+
/** From TaskState.reviewMode (creation-time snapshot); routes colliding kinds. Default 'github'. */
|
|
19
|
+
reviewMode?: ReviewMode;
|
|
20
|
+
/** Server-mode QA context requests; fired per distinct request, does not consume the watch. */
|
|
21
|
+
onReadFile?: (req: ReadFileSignal) => void;
|
|
17
22
|
/** skipSnapshot=true: scrollback signal would re-fire on recovery. */
|
|
18
23
|
skipSnapshot?: boolean;
|
|
24
|
+
/** Restart-recovery arm: callers may treat it as weaker evidence of an in-flight prompt. */
|
|
25
|
+
recovered?: boolean;
|
|
19
26
|
}
|
|
20
27
|
export declare class PhaseSignalWatcher {
|
|
21
28
|
private readonly deps;
|
|
@@ -26,6 +33,8 @@ export declare class PhaseSignalWatcher {
|
|
|
26
33
|
has(taskId: string): boolean;
|
|
27
34
|
/** Set of kinds currently being watched for this task; empty if not set up. */
|
|
28
35
|
expectedKindsFor(taskId: string): ReadonlySet<PhaseSignalKind>;
|
|
36
|
+
/** True when the current watch was re-armed by restart recovery, not a live dispatch. */
|
|
37
|
+
isRecovered(taskId: string): boolean;
|
|
29
38
|
private onPaneData;
|
|
30
39
|
private emitCompletion;
|
|
31
40
|
private onSessionGone;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-signal-watcher.d.ts","sourceRoot":"","sources":["../../src/agent/phase-signal-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"phase-signal-watcher.d.ts","sourceRoot":"","sources":["../../src/agent/phase-signal-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAmC3B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,GAAG,SAAS,CAMzF;AAiBD,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;CAC5D;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qGAAqG;IACrG,aAAa,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAC3F,KAAK,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAUD,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;gBAE5B,IAAI,EAAE,sBAAsB;IAKnD,KAAK,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAkEhE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO1B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B,+EAA+E;IAC/E,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;IAI9D,yFAAyF;IACzF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,CAAC,UAAU;YA4DJ,cAAc;IAmB5B,OAAO,CAAC,aAAa;YAcP,6BAA6B;CA2B5C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { scanPhaseSignals } from './phase-signal.js';
|
|
1
|
+
import { scanPhaseSignals, scanReadFileSignals, } from './phase-signal.js';
|
|
2
2
|
const MATCH_BUFFER_CHARS = 1024;
|
|
3
|
-
//
|
|
4
|
-
//
|
|
3
|
+
// Dispatch tables. Each pane-signal kind maps to the EventBus event type the
|
|
4
|
+
// handler chain will receive. pr-* kinds reuse existing event types (the
|
|
5
5
|
// data.source='pane-signal' tag tells the handler the trigger came from a
|
|
6
6
|
// pane signal echo rather than a GitHub poll cycle, so idempotency dedup can
|
|
7
7
|
// be applied if the same logical transition also gets reported by the poller).
|
|
@@ -15,7 +15,28 @@ const KIND_TO_EVENT_TYPE = {
|
|
|
15
15
|
'pr-changes-requested': 'review.submitted',
|
|
16
16
|
'pr-fixed': 'pr.fix.submitted',
|
|
17
17
|
'pr-merge-ready': 'pr.updated',
|
|
18
|
+
'spec-done': 'server.spec.ready',
|
|
19
|
+
'spec-reviewed': 'server.spec.review.submitted',
|
|
20
|
+
'code-done': 'server.code.ready',
|
|
21
|
+
'code-reviewed': 'server.code.review.submitted',
|
|
22
|
+
'code-fixed': 'server.code.fix.submitted',
|
|
23
|
+
'code-ready': 'server.code.published',
|
|
18
24
|
};
|
|
25
|
+
// spec-fixed exists in BOTH protocols: github mode routes it to the legacy
|
|
26
|
+
// handler, server mode to the new one. The mode comes from TaskState.reviewMode
|
|
27
|
+
// (snapshotted at task creation) via start args — never live config, so a hot
|
|
28
|
+
// mode flip cannot retarget an in-flight task's signals.
|
|
29
|
+
const SERVER_KIND_TO_EVENT_TYPE = {
|
|
30
|
+
'spec-fixed': 'server.spec.fix.submitted',
|
|
31
|
+
};
|
|
32
|
+
export function resolveEventType(kind, reviewMode) {
|
|
33
|
+
if (reviewMode === 'server') {
|
|
34
|
+
const mapped = SERVER_KIND_TO_EVENT_TYPE[kind];
|
|
35
|
+
if (mapped)
|
|
36
|
+
return mapped;
|
|
37
|
+
}
|
|
38
|
+
return KIND_TO_EVENT_TYPE[kind];
|
|
39
|
+
}
|
|
19
40
|
function normalizeKinds(input) {
|
|
20
41
|
if (input instanceof Set)
|
|
21
42
|
return input;
|
|
@@ -55,6 +76,10 @@ export class PhaseSignalWatcher {
|
|
|
55
76
|
agentId: args.agentId,
|
|
56
77
|
expectedKinds,
|
|
57
78
|
expectedToken: args.token,
|
|
79
|
+
reviewMode: args.reviewMode ?? 'github',
|
|
80
|
+
...(args.onReadFile ? { onReadFile: args.onReadFile } : {}),
|
|
81
|
+
seenReadFile: new Set(),
|
|
82
|
+
recovered: args.recovered ?? false,
|
|
58
83
|
buffer: '',
|
|
59
84
|
unsubscribe: () => undefined,
|
|
60
85
|
fired: false,
|
|
@@ -80,7 +105,7 @@ export class PhaseSignalWatcher {
|
|
|
80
105
|
entry.unsubscribe = sub.unsubscribe;
|
|
81
106
|
this.entries.set(args.taskId, entry);
|
|
82
107
|
if (!args.skipSnapshot) {
|
|
83
|
-
this.onPaneData(entry, sub.snapshot.data);
|
|
108
|
+
this.onPaneData(entry, sub.snapshot.data, true);
|
|
84
109
|
}
|
|
85
110
|
return true;
|
|
86
111
|
}
|
|
@@ -101,7 +126,11 @@ export class PhaseSignalWatcher {
|
|
|
101
126
|
expectedKindsFor(taskId) {
|
|
102
127
|
return this.entries.get(taskId)?.expectedKinds ?? new Set();
|
|
103
128
|
}
|
|
104
|
-
|
|
129
|
+
/** True when the current watch was re-armed by restart recovery, not a live dispatch. */
|
|
130
|
+
isRecovered(taskId) {
|
|
131
|
+
return this.entries.get(taskId)?.recovered ?? false;
|
|
132
|
+
}
|
|
133
|
+
onPaneData(entry, chunk, isSnapshot = false) {
|
|
105
134
|
// Stale-entry guard: streamer may dispatch a queued chunk to the old
|
|
106
135
|
// entry's onLive callback after the entry has been replaced by a re-establish.
|
|
107
136
|
// Without this check, an old fire would delete (and unsubscribe) the new
|
|
@@ -113,6 +142,19 @@ export class PhaseSignalWatcher {
|
|
|
113
142
|
// Merge before scan so chunk-split signals and ANSI escapes both rejoin.
|
|
114
143
|
// Search BEFORE slicing — initial snapshot may exceed the buffer cap.
|
|
115
144
|
const rawCombined = entry.buffer + chunk;
|
|
145
|
+
if (entry.onReadFile) {
|
|
146
|
+
// Dedup by raw match: the 1KB tail keeps recent bytes across chunks, so the
|
|
147
|
+
// same request would re-match on every subsequent scan without this.
|
|
148
|
+
// Snapshot pass marks scrollback requests as seen WITHOUT firing — those
|
|
149
|
+
// belong to a previous round; replaying them would inject stale content.
|
|
150
|
+
for (const req of scanReadFileSignals(rawCombined)) {
|
|
151
|
+
if (entry.seenReadFile.has(req.raw))
|
|
152
|
+
continue;
|
|
153
|
+
entry.seenReadFile.add(req.raw);
|
|
154
|
+
if (!isSnapshot)
|
|
155
|
+
entry.onReadFile(req);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
116
158
|
const signal = scanPhaseSignals(rawCombined).find(candidate => entry.expectedKinds.has(candidate.kind) && candidate.token === entry.expectedToken);
|
|
117
159
|
entry.buffer = rawCombined.slice(-MATCH_BUFFER_CHARS);
|
|
118
160
|
if (!signal)
|
|
@@ -131,7 +173,7 @@ export class PhaseSignalWatcher {
|
|
|
131
173
|
: undefined;
|
|
132
174
|
const event = {
|
|
133
175
|
id: '',
|
|
134
|
-
type:
|
|
176
|
+
type: resolveEventType(signal.kind, entry.reviewMode),
|
|
135
177
|
timestamp: new Date().toISOString(),
|
|
136
178
|
projectId: entry.projectId,
|
|
137
179
|
agentId: entry.agentId,
|
|
@@ -141,9 +183,12 @@ export class PhaseSignalWatcher {
|
|
|
141
183
|
token: signal.token,
|
|
142
184
|
verdictAgentId: entry.agentId,
|
|
143
185
|
source: 'pane-signal',
|
|
144
|
-
// pr-created
|
|
145
|
-
//
|
|
186
|
+
// pr-created / code-ready carry the PR number in their payload — surface
|
|
187
|
+
// it so the handler can complete the transition without a GitHub query.
|
|
146
188
|
...(signal.kind === 'pr-created' ? { prNumber: signal.prNumber } : {}),
|
|
189
|
+
...(signal.kind === 'code-ready' && signal.prNumber !== undefined
|
|
190
|
+
? { prNumber: signal.prNumber }
|
|
191
|
+
: {}),
|
|
147
192
|
...(verdictAction ? { action: verdictAction } : {}),
|
|
148
193
|
},
|
|
149
194
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-signal-watcher.js","sourceRoot":"","sources":["../../src/agent/phase-signal-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"phase-signal-watcher.js","sourceRoot":"","sources":["../../src/agent/phase-signal-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type PhaseSignalKind = 'spec-created' | 'spec-approved' | 'spec-changes-requested' | 'spec-fixed' | 'pr-created' | 'pr-approved' | 'pr-changes-requested' | 'pr-fixed' | 'pr-merge-ready';
|
|
1
|
+
export type PhaseSignalKind = 'spec-created' | 'spec-approved' | 'spec-changes-requested' | 'spec-fixed' | 'pr-created' | 'pr-approved' | 'pr-changes-requested' | 'pr-fixed' | 'pr-merge-ready' | 'spec-done' | 'spec-reviewed' | 'code-done' | 'code-reviewed' | 'code-fixed' | 'code-ready';
|
|
2
2
|
export declare const PHASE_SIGNAL_KINDS: readonly PhaseSignalKind[];
|
|
3
3
|
export type PhaseSignal = {
|
|
4
4
|
kind: 'spec-created';
|
|
@@ -28,11 +28,38 @@ export type PhaseSignal = {
|
|
|
28
28
|
} | {
|
|
29
29
|
kind: 'pr-merge-ready';
|
|
30
30
|
token: string;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'spec-done';
|
|
33
|
+
token: string;
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'spec-reviewed';
|
|
36
|
+
token: string;
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'code-done';
|
|
39
|
+
token: string;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'code-reviewed';
|
|
42
|
+
token: string;
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'code-fixed';
|
|
45
|
+
token: string;
|
|
46
|
+
} | {
|
|
47
|
+
kind: 'code-ready';
|
|
48
|
+
token: string;
|
|
49
|
+
prNumber?: number;
|
|
31
50
|
};
|
|
32
51
|
export declare function stripSignalAnsi(text: string): string;
|
|
33
|
-
export declare function buildPhaseSignal(kind: Exclude<PhaseSignalKind, 'pr-created'>, token: string): string;
|
|
52
|
+
export declare function buildPhaseSignal(kind: Exclude<PhaseSignalKind, 'pr-created' | 'code-ready'>, token: string): string;
|
|
34
53
|
export declare function buildPhaseSignal(kind: 'pr-created', token: string, prNumber: number): string;
|
|
54
|
+
export declare function buildPhaseSignal(kind: 'code-ready', token: string, prNumber?: number): string;
|
|
35
55
|
export declare function createSignalToken(): string;
|
|
36
56
|
export declare function buildPhaseSignalTemplate(kind: PhaseSignalKind): string;
|
|
37
57
|
export declare function scanPhaseSignals(text: string): PhaseSignal[];
|
|
58
|
+
export interface ReadFileSignal {
|
|
59
|
+
file: string;
|
|
60
|
+
startLine: number;
|
|
61
|
+
endLine: number;
|
|
62
|
+
raw: string;
|
|
63
|
+
}
|
|
64
|
+
export declare function scanReadFileSignals(text: string): ReadFileSignal[];
|
|
38
65
|
//# sourceMappingURL=phase-signal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-signal.d.ts","sourceRoot":"","sources":["../../src/agent/phase-signal.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,sBAAsB,GACtB,UAAU,GACV,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"phase-signal.d.ts","sourceRoot":"","sources":["../../src/agent/phase-signal.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,sBAAsB,GACtB,UAAU,GACV,gBAAgB,GAChB,WAAW,GACX,eAAe,GACf,WAAW,GACX,eAAe,GACf,YAAY,GACZ,YAAY,CAAC;AAEjB,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAgB/C,CAAC;AAKX,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAwB7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAID,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,EAC3D,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC;AACV,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC;AACV,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC;AAqBV,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAQD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAGtE;AAOD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAyB5D;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAUlE"}
|
|
@@ -9,6 +9,12 @@ export const PHASE_SIGNAL_KINDS = [
|
|
|
9
9
|
'pr-changes-requested',
|
|
10
10
|
'pr-fixed',
|
|
11
11
|
'pr-merge-ready',
|
|
12
|
+
'spec-done',
|
|
13
|
+
'spec-reviewed',
|
|
14
|
+
'code-done',
|
|
15
|
+
'code-reviewed',
|
|
16
|
+
'code-fixed',
|
|
17
|
+
'code-ready',
|
|
12
18
|
];
|
|
13
19
|
const VALID_KINDS = new Set(PHASE_SIGNAL_KINDS);
|
|
14
20
|
const ANSI_PATTERN = /\x1b\[[0-?]*[ -/]*[@-~]/g;
|
|
@@ -17,7 +23,9 @@ const OSC_PATTERN = /\x1b\][\s\S]*?(?:\x07|\x1b\\)/g;
|
|
|
17
23
|
// `pr-created` extracts the PR number (1+ digits) before the token segment.
|
|
18
24
|
const TOKEN_RANGE = '[A-Za-z0-9_-]{6,64}';
|
|
19
25
|
const COMPACT_SIGNAL_RE_PR_CREATED = new RegExp(`\\[bx:(pr-created):(\\d+):(${TOKEN_RANGE})\\]`, 'g');
|
|
20
|
-
const COMPACT_SIGNAL_RE_PLAIN = new RegExp(`\\[bx:(spec-created|spec-approved|spec-changes-requested|spec-fixed|pr-approved|pr-changes-requested|pr-fixed|pr-merge-ready):(${TOKEN_RANGE})\\]`, 'g');
|
|
26
|
+
const COMPACT_SIGNAL_RE_PLAIN = new RegExp(`\\[bx:(spec-created|spec-approved|spec-changes-requested|spec-fixed|pr-approved|pr-changes-requested|pr-fixed|pr-merge-ready|spec-done|spec-reviewed|code-done|code-reviewed|code-fixed):(${TOKEN_RANGE})\\]`, 'g');
|
|
27
|
+
// code-ready's PR-number segment is optional: afterDone:'pr' emits 3-segment, 'branch' 2-segment.
|
|
28
|
+
const COMPACT_SIGNAL_RE_CODE_READY = new RegExp(`\\[bx:(code-ready)(?::(\\d+))?:(${TOKEN_RANGE})\\]`, 'g');
|
|
21
29
|
export function stripSignalAnsi(text) {
|
|
22
30
|
return text.replace(OSC_PATTERN, '').replace(ANSI_PATTERN, '');
|
|
23
31
|
}
|
|
@@ -28,6 +36,9 @@ export function buildPhaseSignal(kind, token, prNumber) {
|
|
|
28
36
|
}
|
|
29
37
|
return `[bx:pr-created:${prNumber}:${token}]`;
|
|
30
38
|
}
|
|
39
|
+
if (kind === 'code-ready' && prNumber !== undefined) {
|
|
40
|
+
return `[bx:code-ready:${prNumber}:${token}]`;
|
|
41
|
+
}
|
|
31
42
|
return `[bx:${kind}:${token}]`;
|
|
32
43
|
}
|
|
33
44
|
// 12 hex chars = 48 bits, plenty against guess/collision for per-signal tokens
|
|
@@ -62,6 +73,15 @@ export function scanPhaseSignals(text) {
|
|
|
62
73
|
continue;
|
|
63
74
|
found.push({ index: m.index ?? 0, signal: { kind: 'pr-created', prNumber, token: m[3] } });
|
|
64
75
|
}
|
|
76
|
+
for (const m of compact.matchAll(COMPACT_SIGNAL_RE_CODE_READY)) {
|
|
77
|
+
const prNumber = m[2] === undefined ? undefined : Number.parseInt(m[2], 10);
|
|
78
|
+
if (prNumber !== undefined && !Number.isFinite(prNumber))
|
|
79
|
+
continue;
|
|
80
|
+
found.push({
|
|
81
|
+
index: m.index ?? 0,
|
|
82
|
+
signal: { kind: 'code-ready', token: m[3], ...(prNumber !== undefined ? { prNumber } : {}) },
|
|
83
|
+
});
|
|
84
|
+
}
|
|
65
85
|
for (const m of compact.matchAll(COMPACT_SIGNAL_RE_PLAIN)) {
|
|
66
86
|
const kind = m[1];
|
|
67
87
|
if (kind === 'pr-created')
|
|
@@ -73,4 +93,17 @@ export function scanPhaseSignals(text) {
|
|
|
73
93
|
found.sort((a, b) => a.index - b.index);
|
|
74
94
|
return found.map(f => f.signal);
|
|
75
95
|
}
|
|
96
|
+
const READ_FILE_RE = /\[bx:read-file:([^:\]]{1,512}):(\d{1,7})-(\d{1,7})\]/g;
|
|
97
|
+
export function scanReadFileSignals(text) {
|
|
98
|
+
const compact = stripSignalAnsi(text).replace(/\s+/g, '');
|
|
99
|
+
const out = [];
|
|
100
|
+
for (const m of compact.matchAll(READ_FILE_RE)) {
|
|
101
|
+
const startLine = Number.parseInt(m[2], 10);
|
|
102
|
+
const endLine = Number.parseInt(m[3], 10);
|
|
103
|
+
if (!Number.isFinite(startLine) || !Number.isFinite(endLine))
|
|
104
|
+
continue;
|
|
105
|
+
out.push({ file: m[1], startLine, endLine, raw: m[0] });
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
76
109
|
//# sourceMappingURL=phase-signal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-signal.js","sourceRoot":"","sources":["../../src/agent/phase-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"phase-signal.js","sourceRoot":"","sources":["../../src/agent/phase-signal.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/prompt.d.ts
CHANGED
|
@@ -28,6 +28,20 @@ export interface BuildPromptOpts {
|
|
|
28
28
|
excludeSkills?: readonly string[];
|
|
29
29
|
/** Absolute agent-host image paths to weave into the task body (task-055). */
|
|
30
30
|
imagePaths?: string[];
|
|
31
|
+
/** Server mode: injected review input (diff or spec doc), pre-sized by the caller. */
|
|
32
|
+
serverContent?: string;
|
|
33
|
+
serverDiffstat?: string;
|
|
34
|
+
serverBatch?: {
|
|
35
|
+
index: number;
|
|
36
|
+
total: number;
|
|
37
|
+
};
|
|
38
|
+
serverPriorFindings?: string;
|
|
39
|
+
serverPriorResponse?: string;
|
|
40
|
+
serverAfterDone?: {
|
|
41
|
+
kind: 'branch' | 'pr';
|
|
42
|
+
branch: string;
|
|
43
|
+
};
|
|
44
|
+
contentTruncated?: boolean;
|
|
31
45
|
}
|
|
32
46
|
export declare const MAX_INLINE_FINDINGS_BYTES: number;
|
|
33
47
|
export declare function buildPromptInline(opts: BuildPromptOpts): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,WAAW,EAAE,KAAK,SAAS,EAAsB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/J,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAE1C,eAAO,MAAM,4BAA4B,QAA0B,CAAC;AAEpE,qBAAa,eAAgB,SAAQ,KAAK;aACZ,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CAO1C;AAED,qBAAa,0BAA2B,SAAQ,KAAK;aACvB,OAAO,EAAE,MAAM,EAAE;gBAAjB,OAAO,EAAE,MAAM,EAAE;CAO9C;AAyBD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,aAAa,GAAE,SAAS,MAAM,EAAO,GACpC,MAAM,CAqBR;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,yBAAyB,QAAY,CAAC;AAOnD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAkC/D;AAscD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,uBAAuB,EAC5B,MAAM,EAAE,4BAA4B,GACnC,MAAM,CASR"}
|