@lumenflow/core 2.18.3 → 2.19.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/adapters/terminal-renderer.adapter.d.ts.map +1 -1
- package/dist/adapters/terminal-renderer.adapter.js +6 -4
- package/dist/adapters/terminal-renderer.adapter.js.map +1 -1
- package/dist/atomic-merge.d.ts +21 -0
- package/dist/atomic-merge.d.ts.map +1 -0
- package/dist/atomic-merge.js +83 -0
- package/dist/atomic-merge.js.map +1 -0
- package/dist/delegation-escalation.d.ts +91 -0
- package/dist/delegation-escalation.d.ts.map +1 -0
- package/dist/delegation-escalation.js +258 -0
- package/dist/delegation-escalation.js.map +1 -0
- package/dist/delegation-monitor.d.ts +230 -0
- package/dist/delegation-monitor.d.ts.map +1 -0
- package/dist/delegation-monitor.js +675 -0
- package/dist/delegation-monitor.js.map +1 -0
- package/dist/delegation-recovery.d.ts +83 -0
- package/dist/delegation-recovery.d.ts.map +1 -0
- package/dist/delegation-recovery.js +299 -0
- package/dist/delegation-recovery.js.map +1 -0
- package/dist/delegation-registry-schema.d.ts +80 -0
- package/dist/delegation-registry-schema.d.ts.map +1 -0
- package/dist/delegation-registry-schema.js +91 -0
- package/dist/delegation-registry-schema.js.map +1 -0
- package/dist/delegation-registry-store.d.ts +159 -0
- package/dist/delegation-registry-store.d.ts.map +1 -0
- package/dist/delegation-registry-store.js +299 -0
- package/dist/delegation-registry-store.js.map +1 -0
- package/dist/delegation-tree.d.ts +57 -0
- package/dist/delegation-tree.d.ts.map +1 -0
- package/dist/delegation-tree.js +203 -0
- package/dist/delegation-tree.js.map +1 -0
- package/dist/gates-agent-mode.d.ts +25 -0
- package/dist/gates-agent-mode.d.ts.map +1 -1
- package/dist/gates-agent-mode.js +41 -0
- package/dist/gates-agent-mode.js.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -9
- package/dist/index.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts +9 -3
- package/dist/lumenflow-config-schema.d.ts.map +1 -1
- package/dist/lumenflow-config-schema.js +18 -3
- package/dist/lumenflow-config-schema.js.map +1 -1
- package/dist/lumenflow-config.d.ts +2 -0
- package/dist/lumenflow-config.d.ts.map +1 -1
- package/dist/lumenflow-config.js +1 -0
- package/dist/lumenflow-config.js.map +1 -1
- package/dist/micro-worktree.d.ts.map +1 -1
- package/dist/micro-worktree.js +15 -9
- package/dist/micro-worktree.js.map +1 -1
- package/dist/rollback-utils.d.ts +52 -0
- package/dist/rollback-utils.d.ts.map +1 -1
- package/dist/rollback-utils.js +111 -0
- package/dist/rollback-utils.js.map +1 -1
- package/dist/schemas/index.d.ts +3 -3
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +6 -6
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/initiative-arg-validators.d.ts +1 -0
- package/dist/schemas/initiative-arg-validators.d.ts.map +1 -1
- package/dist/schemas/initiative-schemas.d.ts +3 -1
- package/dist/schemas/initiative-schemas.d.ts.map +1 -1
- package/dist/schemas/initiative-schemas.js +2 -1
- package/dist/schemas/initiative-schemas.js.map +1 -1
- package/dist/schemas/setup-arg-validators.d.ts +4 -4
- package/dist/schemas/setup-arg-validators.d.ts.map +1 -1
- package/dist/schemas/setup-arg-validators.js +6 -6
- package/dist/schemas/setup-arg-validators.js.map +1 -1
- package/dist/schemas/setup-schemas.d.ts +7 -7
- package/dist/schemas/setup-schemas.d.ts.map +1 -1
- package/dist/schemas/setup-schemas.js +10 -10
- package/dist/schemas/setup-schemas.js.map +1 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +1 -1
- package/dist/schemas/wu-lifecycle-schemas.d.ts +5 -3
- package/dist/schemas/wu-lifecycle-schemas.d.ts.map +1 -1
- package/dist/schemas/wu-lifecycle-schemas.js +5 -1
- package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
- package/dist/template-loader.d.ts +7 -3
- package/dist/template-loader.d.ts.map +1 -1
- package/dist/template-loader.js +22 -6
- package/dist/template-loader.js.map +1 -1
- package/dist/wu-consistency-checker.d.ts +1 -0
- package/dist/wu-consistency-checker.d.ts.map +1 -1
- package/dist/wu-consistency-checker.js +31 -2
- package/dist/wu-consistency-checker.js.map +1 -1
- package/dist/wu-context-constants.d.ts +0 -2
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +0 -2
- package/dist/wu-context-constants.js.map +1 -1
- package/dist/wu-done-branch-only.d.ts +2 -11
- package/dist/wu-done-branch-only.d.ts.map +1 -1
- package/dist/wu-done-branch-only.js +81 -45
- package/dist/wu-done-branch-only.js.map +1 -1
- package/dist/wu-done-cleanup.js +33 -1
- package/dist/wu-done-cleanup.js.map +1 -1
- package/dist/wu-done-initiative-sync.d.ts.map +1 -1
- package/dist/wu-done-initiative-sync.js +20 -5
- package/dist/wu-done-initiative-sync.js.map +1 -1
- package/dist/wu-done-machine.d.ts +175 -0
- package/dist/wu-done-machine.d.ts.map +1 -0
- package/dist/wu-done-machine.js +225 -0
- package/dist/wu-done-machine.js.map +1 -0
- package/dist/wu-done-metadata.d.ts.map +1 -1
- package/dist/wu-done-metadata.js +3 -1
- package/dist/wu-done-metadata.js.map +1 -1
- package/dist/wu-done-validation.d.ts +0 -37
- package/dist/wu-done-validation.d.ts.map +1 -1
- package/dist/wu-done-validation.js +1 -155
- package/dist/wu-done-validation.js.map +1 -1
- package/dist/wu-done-validators.d.ts +1 -2
- package/dist/wu-done-validators.d.ts.map +1 -1
- package/dist/wu-done-validators.js +1 -3
- package/dist/wu-done-validators.js.map +1 -1
- package/dist/wu-done-worktree-services.d.ts +191 -0
- package/dist/wu-done-worktree-services.d.ts.map +1 -0
- package/dist/wu-done-worktree-services.js +273 -0
- package/dist/wu-done-worktree-services.js.map +1 -0
- package/dist/wu-done-worktree.d.ts +0 -19
- package/dist/wu-done-worktree.d.ts.map +1 -1
- package/dist/wu-done-worktree.js +165 -118
- package/dist/wu-done-worktree.js.map +1 -1
- package/dist/wu-git-constants.d.ts +4 -0
- package/dist/wu-git-constants.d.ts.map +1 -1
- package/dist/wu-git-constants.js +4 -0
- package/dist/wu-git-constants.js.map +1 -1
- package/dist/wu-helpers.d.ts +5 -1
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +5 -1
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-lint.d.ts +24 -0
- package/dist/wu-lint.d.ts.map +1 -1
- package/dist/wu-lint.js +48 -1
- package/dist/wu-lint.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +3 -3
- package/dist/wu-paths-constants.d.ts.map +1 -1
- package/dist/wu-paths-constants.js +3 -3
- package/dist/wu-paths-constants.js.map +1 -1
- package/dist/wu-recovery.d.ts +89 -0
- package/dist/wu-recovery.d.ts.map +1 -1
- package/dist/wu-recovery.js +118 -0
- package/dist/wu-recovery.js.map +1 -1
- package/dist/wu-schema.d.ts +6 -6
- package/dist/wu-spawn-context.d.ts +1 -1
- package/dist/wu-spawn-context.d.ts.map +1 -1
- package/dist/wu-spawn-context.js +8 -2
- package/dist/wu-spawn-context.js.map +1 -1
- package/dist/wu-spawn-helpers.js +2 -2
- package/dist/wu-spawn-helpers.js.map +1 -1
- package/dist/wu-state-schema.d.ts +12 -12
- package/dist/wu-state-schema.d.ts.map +1 -1
- package/dist/wu-state-schema.js +10 -10
- package/dist/wu-state-schema.js.map +1 -1
- package/dist/wu-state-store.d.ts +10 -4
- package/dist/wu-state-store.d.ts.map +1 -1
- package/dist/wu-state-store.js +309 -11
- package/dist/wu-state-store.js.map +1 -1
- package/dist/wu-transaction.d.ts +21 -0
- package/dist/wu-transaction.d.ts.map +1 -1
- package/dist/wu-transaction.js +17 -0
- package/dist/wu-transaction.js.map +1 -1
- package/package.json +11 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-renderer.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/terminal-renderer.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EAMX,MAAM,kCAAkC,CAAC;AAkC1C;;;;;;;;;GASG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAuBjC;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAqBlD;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IA2B1D;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAKb;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"terminal-renderer.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/terminal-renderer.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EAMX,MAAM,kCAAkC,CAAC;AAkC1C;;;;;;;;;GASG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAuBjC;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAqBlD;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IA2B1D;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAKb;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA6E1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8C1B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAqBpB;;;;;;;OAOG;YACW,UAAU;CAQzB"}
|
|
@@ -146,6 +146,8 @@ export class TerminalDashboardRenderer {
|
|
|
146
146
|
* @private
|
|
147
147
|
*/
|
|
148
148
|
renderGlobalStatus(status) {
|
|
149
|
+
const pendingMandatory = status.pendingMandatory ?? [];
|
|
150
|
+
const worktreesWithUncommittedChanges = status.worktreesWithUncommittedChanges ?? [];
|
|
149
151
|
console.log(SECTION_SEPARATOR);
|
|
150
152
|
console.log(picocolors.bold(`${HEADER_PREFIX} Global Status\n`));
|
|
151
153
|
console.log(`${picocolors.gray('Active WUs:')} ${picocolors.cyan(status.activeWUs.toString())}`);
|
|
@@ -157,9 +159,9 @@ export class TerminalDashboardRenderer {
|
|
|
157
159
|
const durationMinutes = Math.floor((status.longestRunning.durationMs % (1000 * 60 * 60)) / (1000 * 60));
|
|
158
160
|
console.log(`${picocolors.gray('Longest Running:')} ${picocolors.cyan(status.longestRunning.wuId)} ${picocolors.gray(`(${durationHours}h ${durationMinutes}m)`)}`);
|
|
159
161
|
}
|
|
160
|
-
if (
|
|
162
|
+
if (pendingMandatory.length > 0) {
|
|
161
163
|
console.log(`\n${picocolors.yellow(BULLET)} ${picocolors.bold('Pending Mandatory Agents:')}`);
|
|
162
|
-
for (const pending of
|
|
164
|
+
for (const pending of pendingMandatory) {
|
|
163
165
|
console.log(` ${picocolors.gray('-')} ${picocolors.cyan(pending.wuId)}: ${pending.agent}`);
|
|
164
166
|
}
|
|
165
167
|
}
|
|
@@ -181,9 +183,9 @@ export class TerminalDashboardRenderer {
|
|
|
181
183
|
console.log(`\n${picocolors.gray(BULLET)} ${picocolors.gray('No active agent session')}`);
|
|
182
184
|
}
|
|
183
185
|
// WU-1748: Display worktrees with uncommitted changes
|
|
184
|
-
if (
|
|
186
|
+
if (worktreesWithUncommittedChanges.length > 0) {
|
|
185
187
|
console.log(`\n${picocolors.yellow(BULLET)} ${picocolors.bold('Worktrees with Uncommitted Changes:')}`);
|
|
186
|
-
for (const wt of
|
|
188
|
+
for (const wt of worktreesWithUncommittedChanges) {
|
|
187
189
|
const lastActivity = wt.lastActivityTimestamp
|
|
188
190
|
? new Date(wt.lastActivityTimestamp).toLocaleString('en-GB')
|
|
189
191
|
: 'Unknown';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-renderer.adapter.js","sourceRoot":"","sources":["../../src/adapters/terminal-renderer.adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-renderer.adapter.js","sourceRoot":"","sources":["../../src/adapters/terminal-renderer.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,YAAY,CAAC;AAe/B,6CAA6C;AAC7C,MAAM,iBAAiB,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACvD,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,0BAA0B;AAC1B,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpB,MAAM,EAAE,UAAU,CAAC,MAAM;IACzB,GAAG,EAAE,UAAU,CAAC,IAAI;CACZ,CAAC;AAEX,8BAA8B;AAC9B,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,UAAU,CAAC,KAAK;IACtB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpB,OAAO,EAAE,UAAU,CAAC,MAAM;IAC1B,OAAO,EAAE,UAAU,CAAC,IAAI;CAChB,CAAC;AAEX,gCAAgC;AAChC,MAAM,sBAAsB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;IACrB,OAAO,EAAE,UAAU,CAAC,MAAM;IAC1B,KAAK,EAAE,UAAU,CAAC,GAAG;CACb,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,OAAO,yBAAyB;IACpC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAmB;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;QAEtF,2BAA2B;QAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE3C,mCAAmC;QACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE3C,yBAAyB;QACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,sBAAsB;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,oBAAoB;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,WAAyB;QACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,CAAC,CAAC,CAAC;QAE/D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAElE,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CACnF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,IAAmB;QAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,mBAAmB,CAAC,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,CAClG,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,KAAK,GACT,OAAO,IAAI,IAAI;gBACb,CAAC,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE;gBAC5B,CAAC,CAAC,QAAQ,IAAI,IAAI;oBAChB,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;oBACvB,CAAC,CAAC,cAAc,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,+CAA+C;QAC/C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,iEAAiE;QACjE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,MAAoB;QAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACvD,MAAM,+BAA+B,GAAG,MAAM,CAAC,+BAA+B,IAAI,EAAE,CAAC;QAErF,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,kBAAkB,CAAC,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CACpF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,CAC7F,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CACnJ,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,CACrK,CAAC;QAEF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CACpE,CAAC;YACF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,KAAK,eAAe,IAAI,CAAC,EAAE,CACtJ,CAAC;QACJ,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;YAC9F,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEtE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAC3F,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,KAAK,eAAe,GAAG,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,sDAAsD;QACtD,IAAI,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,qCAAqC,CAAC,EAAE,CAC3F,CAAC;YACF,KAAK,MAAM,EAAE,IAAI,+BAA+B,EAAE,CAAC;gBACjD,MAAM,YAAY,GAAG,EAAE,CAAC,qBAAqB;oBAC3C,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC5D,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,oBAAoB,CACpI,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,OAAgD;QACzE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,kBAAkB,CAAC,CAAC,CAAC;QAEjE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC;YACnE,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,MAAM,CAAC;gBACd,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB;SACF,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,MAAM,cAAc,GAClB,MAAM,CAAC,QAAQ,IAAI,EAAE;gBACnB,CAAC,CAAC,UAAU,CAAC,KAAK;gBAClB,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;oBACrB,CAAC,CAAC,UAAU,CAAC,MAAM;oBACnB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAEvB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAE5E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO;gBAClC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9D,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE3B,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS;gBACT,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACzB,cAAc,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC;gBACrC,GAAG,kBAAkB,KAAK,kBAAkB,GAAG;gBAC/C,aAAa;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,QAAsB;QAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,CAAC,CAAC,CAAC;QAE/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,YAAY;YACZ,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CACnF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAEtD,mBAAmB;YACnB,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,kBAAkB,GAAG,WAAW,CAAC;YAEpD,MAAM,WAAW,GACf,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAEtF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CACrG,CAAC;YAEF,eAAe;YACf,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;gBACvB,MAAM,UAAU,GACd,MAAM,KAAK,MAAM;oBACf,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBAC9B,CAAC,CAAC,MAAM,KAAK,MAAM;wBACjB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;wBAC5B,CAAC,CAAC,MAAM,KAAK,SAAS;4BACpB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;4BACtB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC1C,OAAO,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;YAClC,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;YAE9D,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,QAAyB;QAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,aAAa,CAAC,CAAC,CAAC;QAE5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACtE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAE9D,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CACjI,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,MAAe;QAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,WAAW,CAAC,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,2BAA2B,CAAC,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAE7D,OAAO,CAAC,GAAG,CACT,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAC/F,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU;QACtB,kCAAkC;QAClC,mDAAmD;QACnD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,SAAS;SACzB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { GitAdapter } from './git-adapter.js';
|
|
2
|
+
export interface AtomicMergeCallbackContext {
|
|
3
|
+
worktreePath: string;
|
|
4
|
+
gitWorktree: GitAdapter;
|
|
5
|
+
tempBranchName: string;
|
|
6
|
+
}
|
|
7
|
+
export interface WithAtomicMergeOptions {
|
|
8
|
+
id: string;
|
|
9
|
+
laneBranch: string;
|
|
10
|
+
afterMerge?: (context: AtomicMergeCallbackContext) => Promise<void>;
|
|
11
|
+
operation?: string;
|
|
12
|
+
logPrefix?: string;
|
|
13
|
+
mergeRetries?: number;
|
|
14
|
+
command?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface WithAtomicMergeResult {
|
|
17
|
+
tempBranchName: string;
|
|
18
|
+
worktreePath: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function withAtomicMerge(options: WithAtomicMergeOptions): Promise<WithAtomicMergeResult>;
|
|
21
|
+
//# sourceMappingURL=atomic-merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-merge.d.ts","sourceRoot":"","sources":["../src/atomic-merge.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAkDD,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA0EhC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createGitForPath, getGitForCwd } from './git-adapter.js';
|
|
2
|
+
import { MAX_MERGE_RETRIES, cleanupMicroWorktree, cleanupOrphanedMicroWorktree, createMicroWorktreeDir, formatRetryExhaustionError, getTempBranchName, isRetryExhaustionError, pushRefspecWithRetry, } from './micro-worktree-shared.js';
|
|
3
|
+
import { BRANCHES, GIT_REFS, REMOTES } from './wu-constants.js';
|
|
4
|
+
function buildMergeRetryExhaustionMessage(laneBranch, mergeRetries, command) {
|
|
5
|
+
return (`Atomic merge failed after ${mergeRetries} attempts while merging ${laneBranch}.\n\n` +
|
|
6
|
+
`Next steps:\n` +
|
|
7
|
+
` 1. Wait a few seconds and retry:\n` +
|
|
8
|
+
` ${command}\n` +
|
|
9
|
+
` 2. If the issue persists, inspect branch divergence and rerun wu:prep\n` +
|
|
10
|
+
` 3. Check if another agent is rapidly pushing to origin/main`);
|
|
11
|
+
}
|
|
12
|
+
async function mergeLaneBranchWithRetry(options) {
|
|
13
|
+
const { mainGit, gitWorktree, laneBranch, mergeRetries, logPrefix, command } = options;
|
|
14
|
+
for (let attempt = 1; attempt <= mergeRetries; attempt++) {
|
|
15
|
+
try {
|
|
16
|
+
console.log(`${logPrefix} Merging ${laneBranch} in temp worktree (attempt ${attempt}/${mergeRetries})...`);
|
|
17
|
+
await gitWorktree.merge(laneBranch, { ffOnly: true });
|
|
18
|
+
console.log(`${logPrefix} ✅ Temp-worktree merge succeeded`);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (attempt >= mergeRetries) {
|
|
23
|
+
throw new Error(buildMergeRetryExhaustionMessage(laneBranch, mergeRetries, command));
|
|
24
|
+
}
|
|
25
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
26
|
+
console.warn(`${logPrefix} ⚠️ Merge attempt failed: ${errorMessage}`);
|
|
27
|
+
console.log(`${logPrefix} Fetching ${REMOTES.ORIGIN}/${BRANCHES.MAIN} before retry...`);
|
|
28
|
+
await mainGit.fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
29
|
+
console.log(`${logPrefix} Rebasing temp branch onto ${GIT_REFS.ORIGIN_MAIN}...`);
|
|
30
|
+
await gitWorktree.rebase(GIT_REFS.ORIGIN_MAIN);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export async function withAtomicMerge(options) {
|
|
35
|
+
const { id, laneBranch, afterMerge, operation = 'wu-done', logPrefix = '[wu-done]', mergeRetries = MAX_MERGE_RETRIES, command = `pnpm wu:done --id ${id}`, } = options;
|
|
36
|
+
const mainGit = getGitForCwd();
|
|
37
|
+
const tempBranchName = getTempBranchName(operation, id);
|
|
38
|
+
const worktreePath = createMicroWorktreeDir(`${operation}-`);
|
|
39
|
+
await cleanupOrphanedMicroWorktree(operation, id, mainGit, logPrefix);
|
|
40
|
+
try {
|
|
41
|
+
console.log(`${logPrefix} Fetching ${REMOTES.ORIGIN}/${BRANCHES.MAIN} before atomic merge...`);
|
|
42
|
+
await mainGit.fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
43
|
+
console.log(`${logPrefix} Creating temp branch: ${tempBranchName}`);
|
|
44
|
+
await mainGit.createBranchNoCheckout(tempBranchName, GIT_REFS.ORIGIN_MAIN);
|
|
45
|
+
console.log(`${logPrefix} Creating temp worktree: ${worktreePath}`);
|
|
46
|
+
await mainGit.worktreeAddExisting(worktreePath, tempBranchName);
|
|
47
|
+
const gitWorktree = createGitForPath(worktreePath);
|
|
48
|
+
await mergeLaneBranchWithRetry({
|
|
49
|
+
mainGit,
|
|
50
|
+
gitWorktree,
|
|
51
|
+
laneBranch,
|
|
52
|
+
mergeRetries,
|
|
53
|
+
logPrefix,
|
|
54
|
+
command,
|
|
55
|
+
});
|
|
56
|
+
if (afterMerge) {
|
|
57
|
+
await afterMerge({ worktreePath, gitWorktree, tempBranchName });
|
|
58
|
+
}
|
|
59
|
+
const pushDescription = `${operation} atomic merge push for ${id} (automated)`;
|
|
60
|
+
await pushRefspecWithRetry(gitWorktree, mainGit, REMOTES.ORIGIN, tempBranchName, BRANCHES.MAIN, pushDescription, logPrefix);
|
|
61
|
+
try {
|
|
62
|
+
console.log(`${logPrefix} Catching up local ${BRANCHES.MAIN} after atomic push...`);
|
|
63
|
+
await mainGit.fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
|
|
64
|
+
await mainGit.merge(GIT_REFS.ORIGIN_MAIN, { ffOnly: true });
|
|
65
|
+
console.log(`${logPrefix} ✅ Local ${BRANCHES.MAIN} caught up`);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
69
|
+
console.warn(`${logPrefix} ⚠️ Could not fast-forward local ${BRANCHES.MAIN}: ${errorMessage}`);
|
|
70
|
+
}
|
|
71
|
+
return { tempBranchName, worktreePath };
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (error instanceof Error && isRetryExhaustionError(error)) {
|
|
75
|
+
throw new Error(formatRetryExhaustionError(error, { command }));
|
|
76
|
+
}
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
await cleanupMicroWorktree(worktreePath, tempBranchName, logPrefix);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=atomic-merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-merge.js","sourceRoot":"","sources":["../src/atomic-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Escalation Module (WU-1952, WU-1967)
|
|
3
|
+
*
|
|
4
|
+
* WU-1967: Replaced Bug WU creation with memory bus signalling.
|
|
5
|
+
* Signals orchestrator inbox instead of creating human-in-loop Bug WUs.
|
|
6
|
+
*
|
|
7
|
+
* Escalation Flow:
|
|
8
|
+
* 1. recoverStuckDelegation() returns { recovered: false, action: ESCALATED_STUCK }
|
|
9
|
+
* 2. escalateStuckDelegation() signals orchestrator via memory bus
|
|
10
|
+
* 3. Delegation status updated to ESCALATED (prevents duplicate signals)
|
|
11
|
+
* 4. Orchestrator decides: retry (1st), block (2nd), human escalate (3rd+)
|
|
12
|
+
*
|
|
13
|
+
* Library-First Note: This is project-specific delegation escalation code for
|
|
14
|
+
* PatientPath's custom delegation-registry.jsonl and memory bus patterns.
|
|
15
|
+
* No external library exists for this domain-specific agent lifecycle management.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-escalation.test.ts} - Tests
|
|
18
|
+
* @see {@link packages/@lumenflow/cli/src/lib/delegation-recovery.ts} - Recovery logic
|
|
19
|
+
* @see {@link packages/@lumenflow/cli/src/lib/mem-signal-core.ts} - Signal creation
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Signal type for delegation failures.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DELEGATION_FAILURE_SIGNAL_TYPE = "delegation_failure";
|
|
25
|
+
/**
|
|
26
|
+
* Severity levels for delegation failure signals
|
|
27
|
+
*/
|
|
28
|
+
export declare const SignalSeverity: Readonly<{
|
|
29
|
+
WARNING: "warning";
|
|
30
|
+
ERROR: "error";
|
|
31
|
+
CRITICAL: "critical";
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Suggested actions for delegation failure signals
|
|
35
|
+
*/
|
|
36
|
+
export declare const SuggestedAction: Readonly<{
|
|
37
|
+
RETRY: "retry";
|
|
38
|
+
BLOCK: "block";
|
|
39
|
+
HUMAN_ESCALATE: "human_escalate";
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Escalates a stuck delegation by signalling the orchestrator.
|
|
43
|
+
*
|
|
44
|
+
* WU-1967: Replaced Bug WU creation with memory bus signalling.
|
|
45
|
+
* Called when recoverStuckDelegation() returns ESCALATED_STUCK.
|
|
46
|
+
* Signals orchestrator inbox with delegation failure context.
|
|
47
|
+
*
|
|
48
|
+
* Escalation levels based on recovery attempts:
|
|
49
|
+
* - 1st attempt: severity=warning, suggested_action=retry
|
|
50
|
+
* - 2nd attempt: severity=error, suggested_action=block
|
|
51
|
+
* - 3rd+ attempt: severity=critical, suggested_action=human_escalate
|
|
52
|
+
*
|
|
53
|
+
* @param {string} delegationId - ID of the stuck delegation
|
|
54
|
+
* @param {Object} options - Options
|
|
55
|
+
* @param {string} options.baseDir - Base directory for .lumenflow/
|
|
56
|
+
* @param {boolean} [options.dryRun=false] - If true, returns signal without sending
|
|
57
|
+
* @returns {Promise<EscalationResult>} Escalation result with signal details
|
|
58
|
+
*
|
|
59
|
+
* @throws {Error} If delegation not found
|
|
60
|
+
* @throws {Error} If delegation already escalated (duplicate prevention)
|
|
61
|
+
* @throws {Error} If no escalation audit log exists
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* // After recoverStuckDelegation returns ESCALATED_STUCK
|
|
65
|
+
* const result = await escalateStuckDelegation('delegation-1234', { baseDir: '/path/to/project' });
|
|
66
|
+
* console.log(`Signal sent: ${result.signalId}, action: ${result.signal.suggested_action}`);
|
|
67
|
+
*/
|
|
68
|
+
export interface EscalateStuckDelegationOptions {
|
|
69
|
+
/** Base directory for .lumenflow/ */
|
|
70
|
+
baseDir?: string;
|
|
71
|
+
/** If true, return spec only without sending signal */
|
|
72
|
+
dryRun?: boolean;
|
|
73
|
+
}
|
|
74
|
+
export declare function escalateStuckDelegation(delegationId: any, options?: EscalateStuckDelegationOptions): Promise<{
|
|
75
|
+
signalId: string;
|
|
76
|
+
signal: {
|
|
77
|
+
type: string;
|
|
78
|
+
severity: "error" | "warning" | "critical";
|
|
79
|
+
delegation_id: any;
|
|
80
|
+
target_wu_id: any;
|
|
81
|
+
parent_wu_id: any;
|
|
82
|
+
lane: any;
|
|
83
|
+
recovery_action: any;
|
|
84
|
+
recovery_attempts: any;
|
|
85
|
+
last_checkpoint: any;
|
|
86
|
+
suggested_action: "block" | "retry" | "human_escalate";
|
|
87
|
+
message: string;
|
|
88
|
+
};
|
|
89
|
+
delegationStatus: "escalated";
|
|
90
|
+
}>;
|
|
91
|
+
//# sourceMappingURL=delegation-escalation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-escalation.d.ts","sourceRoot":"","sources":["../src/delegation-escalation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA4BH;;GAEG;AACH,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;EAIzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;EAI1B,CAAC;AAiJH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,8BAA8B;IAC7C,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,KAAA,EACZ,OAAO,GAAE,8BAAmC;;;;;;;;;;;;;;;;GAiF7C"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Escalation Module (WU-1952, WU-1967)
|
|
3
|
+
*
|
|
4
|
+
* WU-1967: Replaced Bug WU creation with memory bus signalling.
|
|
5
|
+
* Signals orchestrator inbox instead of creating human-in-loop Bug WUs.
|
|
6
|
+
*
|
|
7
|
+
* Escalation Flow:
|
|
8
|
+
* 1. recoverStuckDelegation() returns { recovered: false, action: ESCALATED_STUCK }
|
|
9
|
+
* 2. escalateStuckDelegation() signals orchestrator via memory bus
|
|
10
|
+
* 3. Delegation status updated to ESCALATED (prevents duplicate signals)
|
|
11
|
+
* 4. Orchestrator decides: retry (1st), block (2nd), human escalate (3rd+)
|
|
12
|
+
*
|
|
13
|
+
* Library-First Note: This is project-specific delegation escalation code for
|
|
14
|
+
* PatientPath's custom delegation-registry.jsonl and memory bus patterns.
|
|
15
|
+
* No external library exists for this domain-specific agent lifecycle management.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-escalation.test.ts} - Tests
|
|
18
|
+
* @see {@link packages/@lumenflow/cli/src/lib/delegation-recovery.ts} - Recovery logic
|
|
19
|
+
* @see {@link packages/@lumenflow/cli/src/lib/mem-signal-core.ts} - Signal creation
|
|
20
|
+
*/
|
|
21
|
+
import fs from 'node:fs/promises';
|
|
22
|
+
import path from 'node:path';
|
|
23
|
+
import { DelegationRegistryStore } from './delegation-registry-store.js';
|
|
24
|
+
import { DelegationStatus } from './delegation-registry-schema.js';
|
|
25
|
+
import { RECOVERY_DIR_NAME } from './delegation-recovery.js';
|
|
26
|
+
import { LUMENFLOW_PATHS } from './wu-constants.js';
|
|
27
|
+
let createSignal = null;
|
|
28
|
+
try {
|
|
29
|
+
const mod = await import('@lumenflow/memory/signal');
|
|
30
|
+
createSignal = mod.createSignal;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// @lumenflow/memory not available - signal features disabled
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Log prefix for delegation-escalation messages
|
|
37
|
+
*/
|
|
38
|
+
const LOG_PREFIX = '[delegation-escalation]';
|
|
39
|
+
/**
|
|
40
|
+
* Signal type for delegation failures.
|
|
41
|
+
*/
|
|
42
|
+
export const DELEGATION_FAILURE_SIGNAL_TYPE = 'delegation_failure';
|
|
43
|
+
/**
|
|
44
|
+
* Severity levels for delegation failure signals
|
|
45
|
+
*/
|
|
46
|
+
export const SignalSeverity = Object.freeze({
|
|
47
|
+
WARNING: 'warning',
|
|
48
|
+
ERROR: 'error',
|
|
49
|
+
CRITICAL: 'critical',
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Suggested actions for delegation failure signals
|
|
53
|
+
*/
|
|
54
|
+
export const SuggestedAction = Object.freeze({
|
|
55
|
+
RETRY: 'retry',
|
|
56
|
+
BLOCK: 'block',
|
|
57
|
+
HUMAN_ESCALATE: 'human_escalate',
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* @typedef {Object} DelegationFailureSignal
|
|
61
|
+
* @property {string} type - Always 'delegation_failure'
|
|
62
|
+
* @property {string} severity - 'warning' | 'error' | 'critical'
|
|
63
|
+
* @property {string} delegation_id - Delegation ID
|
|
64
|
+
* @property {string} target_wu_id - Target WU ID
|
|
65
|
+
* @property {string} parent_wu_id - Parent WU ID (orchestrator)
|
|
66
|
+
* @property {string} lane - Lane name
|
|
67
|
+
* @property {string} recovery_action - Recovery action that triggered escalation
|
|
68
|
+
* @property {number} recovery_attempts - Number of recovery attempts
|
|
69
|
+
* @property {string|null} last_checkpoint - Last checkpoint timestamp
|
|
70
|
+
* @property {string} suggested_action - 'retry' | 'block' | 'human_escalate'
|
|
71
|
+
* @property {string} message - Human-readable message
|
|
72
|
+
*/
|
|
73
|
+
/**
|
|
74
|
+
* @typedef {Object} EscalationResult
|
|
75
|
+
* @property {string} signalId - Signal ID (e.g., 'sig-abc12345')
|
|
76
|
+
* @property {DelegationFailureSignal} signal - The signal payload
|
|
77
|
+
* @property {string} delegationStatus - Updated delegation status (ESCALATED)
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* @typedef {Object} AuditLogEntry
|
|
81
|
+
* @property {string} timestamp - ISO timestamp of recovery action
|
|
82
|
+
* @property {string} delegationId - ID of the delegation being recovered
|
|
83
|
+
* @property {string} action - Recovery action taken
|
|
84
|
+
* @property {string} reason - Explanation of why action was taken
|
|
85
|
+
* @property {Object} context - Additional context
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* Counts existing escalation attempts for a delegation by reading audit logs.
|
|
89
|
+
*
|
|
90
|
+
* @param {string} baseDir - Base directory
|
|
91
|
+
* @param {string} delegationId - Delegation ID to count attempts for
|
|
92
|
+
* @returns {Promise<number>} Number of previous escalation attempts
|
|
93
|
+
*/
|
|
94
|
+
async function countEscalationAttempts(baseDir, delegationId) {
|
|
95
|
+
// WU-1421: Use LUMENFLOW_PATHS.BASE for consistency
|
|
96
|
+
const recoveryDir = path.join(baseDir, LUMENFLOW_PATHS.BASE, RECOVERY_DIR_NAME);
|
|
97
|
+
try {
|
|
98
|
+
const files = await fs.readdir(recoveryDir);
|
|
99
|
+
const delegationFiles = files.filter((f) => f.startsWith(`${delegationId}-`) && f.endsWith('.json'));
|
|
100
|
+
return delegationFiles.length;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error.code === 'ENOENT') {
|
|
104
|
+
return 0;
|
|
105
|
+
}
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Determines severity and suggested action based on recovery attempts.
|
|
111
|
+
*
|
|
112
|
+
* @param {number} attempts - Number of recovery attempts
|
|
113
|
+
* @returns {{ severity: string, suggestedAction: string }}
|
|
114
|
+
*/
|
|
115
|
+
function determineEscalationLevel(attempts) {
|
|
116
|
+
if (attempts <= 1) {
|
|
117
|
+
return {
|
|
118
|
+
severity: SignalSeverity.WARNING,
|
|
119
|
+
suggestedAction: SuggestedAction.RETRY,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
else if (attempts === 2) {
|
|
123
|
+
return {
|
|
124
|
+
severity: SignalSeverity.ERROR,
|
|
125
|
+
suggestedAction: SuggestedAction.BLOCK,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
return {
|
|
130
|
+
severity: SignalSeverity.CRITICAL,
|
|
131
|
+
suggestedAction: SuggestedAction.HUMAN_ESCALATE,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Find the most recent escalation audit log for a delegation.
|
|
137
|
+
*
|
|
138
|
+
* @param {string} baseDir - Base directory
|
|
139
|
+
* @param {string} delegationId - Delegation ID to find audit log for
|
|
140
|
+
* @returns {Promise<AuditLogEntry|null>} Audit log entry or null if not found
|
|
141
|
+
*/
|
|
142
|
+
async function findEscalationAuditLog(baseDir, delegationId) {
|
|
143
|
+
// WU-1421: Use LUMENFLOW_PATHS.BASE for consistency
|
|
144
|
+
const recoveryDir = path.join(baseDir, LUMENFLOW_PATHS.BASE, RECOVERY_DIR_NAME);
|
|
145
|
+
try {
|
|
146
|
+
const files = await fs.readdir(recoveryDir);
|
|
147
|
+
// Filter files for this delegation ID, sorted by name (timestamp-based)
|
|
148
|
+
const delegationFiles = files
|
|
149
|
+
.filter((f) => f.startsWith(`${delegationId}-`) && f.endsWith('.json'))
|
|
150
|
+
.sort()
|
|
151
|
+
.reverse(); // Most recent first
|
|
152
|
+
if (delegationFiles.length === 0) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
// Read the most recent audit log
|
|
156
|
+
const auditPath = path.join(recoveryDir, delegationFiles[0]);
|
|
157
|
+
const content = await fs.readFile(auditPath, 'utf-8');
|
|
158
|
+
return JSON.parse(content);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
if (error.code === 'ENOENT') {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Builds a delegation failure signal payload.
|
|
169
|
+
*
|
|
170
|
+
* @param {Object} delegation - Delegation event data
|
|
171
|
+
* @param {AuditLogEntry} auditLog - Escalation audit log
|
|
172
|
+
* @param {number} attempts - Number of recovery attempts
|
|
173
|
+
* @returns {DelegationFailureSignal} Signal payload
|
|
174
|
+
*/
|
|
175
|
+
function buildDelegationFailureSignal(delegation, auditLog, attempts) {
|
|
176
|
+
const { severity, suggestedAction } = determineEscalationLevel(attempts);
|
|
177
|
+
const lastCheckpoint = auditLog.context.lastCheckpoint || null;
|
|
178
|
+
return {
|
|
179
|
+
type: DELEGATION_FAILURE_SIGNAL_TYPE,
|
|
180
|
+
severity,
|
|
181
|
+
delegation_id: delegation.id,
|
|
182
|
+
target_wu_id: delegation.targetWuId,
|
|
183
|
+
parent_wu_id: delegation.parentWuId,
|
|
184
|
+
lane: delegation.lane,
|
|
185
|
+
recovery_action: auditLog.action,
|
|
186
|
+
recovery_attempts: attempts,
|
|
187
|
+
last_checkpoint: lastCheckpoint,
|
|
188
|
+
suggested_action: suggestedAction,
|
|
189
|
+
message: `Delegation ${delegation.id} for ${delegation.targetWuId} stuck: ${auditLog.reason}`,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
export async function escalateStuckDelegation(delegationId, options = {}) {
|
|
193
|
+
const { baseDir = process.cwd(), dryRun = false } = options;
|
|
194
|
+
// WU-1421: Use LUMENFLOW_PATHS.STATE_DIR for consistency
|
|
195
|
+
const registryDir = path.join(baseDir, LUMENFLOW_PATHS.STATE_DIR);
|
|
196
|
+
// Load delegation registry
|
|
197
|
+
const store = new DelegationRegistryStore(registryDir);
|
|
198
|
+
try {
|
|
199
|
+
await store.load();
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
throw new Error(`Delegation ${delegationId} not found: registry unavailable`);
|
|
203
|
+
}
|
|
204
|
+
// Find the delegation
|
|
205
|
+
const delegation = store.getById(delegationId);
|
|
206
|
+
if (!delegation) {
|
|
207
|
+
throw new Error(`Delegation ${delegationId} not found in registry`);
|
|
208
|
+
}
|
|
209
|
+
// Check if signal module is available
|
|
210
|
+
if (!createSignal) {
|
|
211
|
+
throw new Error('Signal module (@lumenflow/memory) not available - cannot escalate');
|
|
212
|
+
}
|
|
213
|
+
// WU-1967: Check if already escalated (prevents duplicate signals)
|
|
214
|
+
if (delegation.status === DelegationStatus.ESCALATED) {
|
|
215
|
+
throw new Error(`Delegation ${delegationId} already escalated`);
|
|
216
|
+
}
|
|
217
|
+
// Find escalation audit log
|
|
218
|
+
const auditLog = await findEscalationAuditLog(baseDir, delegationId);
|
|
219
|
+
if (!auditLog) {
|
|
220
|
+
throw new Error(`No escalation audit log found for delegation ${delegationId}`);
|
|
221
|
+
}
|
|
222
|
+
// Count previous escalation attempts
|
|
223
|
+
const attempts = await countEscalationAttempts(baseDir, delegationId);
|
|
224
|
+
// Build signal payload
|
|
225
|
+
const signalPayload = buildDelegationFailureSignal(delegation, auditLog, attempts);
|
|
226
|
+
if (dryRun) {
|
|
227
|
+
console.log(`${LOG_PREFIX} [dry-run] Would signal orchestrator`);
|
|
228
|
+
console.log(`${LOG_PREFIX} [dry-run] Severity: ${signalPayload.severity}`);
|
|
229
|
+
console.log(`${LOG_PREFIX} [dry-run] Suggested action: ${signalPayload.suggested_action}`);
|
|
230
|
+
console.log(`${LOG_PREFIX} [dry-run] Message: ${signalPayload.message}`);
|
|
231
|
+
return {
|
|
232
|
+
signalId: 'sig-dry-run',
|
|
233
|
+
signal: signalPayload,
|
|
234
|
+
delegationStatus: DelegationStatus.ESCALATED,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
// WU-1967: Send signal to orchestrator inbox
|
|
238
|
+
console.log(`${LOG_PREFIX} Signalling orchestrator for delegation ${delegationId}`);
|
|
239
|
+
console.log(`${LOG_PREFIX} Target WU: ${delegation.targetWuId}`);
|
|
240
|
+
console.log(`${LOG_PREFIX} Severity: ${signalPayload.severity}`);
|
|
241
|
+
console.log(`${LOG_PREFIX} Suggested action: ${signalPayload.suggested_action}`);
|
|
242
|
+
// Create signal with structured message (JSON payload in message field)
|
|
243
|
+
const signalResult = await createSignal(baseDir, {
|
|
244
|
+
message: JSON.stringify(signalPayload),
|
|
245
|
+
wuId: delegation.parentWuId, // Signal targets the orchestrator (parent WU)
|
|
246
|
+
lane: delegation.lane,
|
|
247
|
+
});
|
|
248
|
+
// Update delegation status to ESCALATED (prevents duplicate signals)
|
|
249
|
+
await store.updateStatus(delegationId, DelegationStatus.ESCALATED);
|
|
250
|
+
console.log(`${LOG_PREFIX} Signal sent: ${signalResult.signal.id}`);
|
|
251
|
+
console.log(`${LOG_PREFIX} Delegation ${delegationId} status updated to ESCALATED`);
|
|
252
|
+
return {
|
|
253
|
+
signalId: signalResult.signal.id,
|
|
254
|
+
signal: signalPayload,
|
|
255
|
+
delegationStatus: DelegationStatus.ESCALATED,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=delegation-escalation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-escalation.js","sourceRoot":"","sources":["../src/delegation-escalation.ts"],"names":[],"mappings":"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"}
|