@lumenflow/core 2.18.3 → 2.20.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/arg-parser.js +2 -2
- package/dist/arg-parser.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/context/wu-state-reader.d.ts +2 -0
- package/dist/context/wu-state-reader.d.ts.map +1 -1
- package/dist/context/wu-state-reader.js +3 -0
- package/dist/context/wu-state-reader.js.map +1 -1
- 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 +16 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -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 +19 -4
- 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/sandbox-allowlist.d.ts +16 -0
- package/dist/sandbox-allowlist.d.ts.map +1 -0
- package/dist/sandbox-allowlist.js +75 -0
- package/dist/sandbox-allowlist.js.map +1 -0
- package/dist/sandbox-backend-linux.d.ts +6 -0
- package/dist/sandbox-backend-linux.d.ts.map +1 -0
- package/dist/sandbox-backend-linux.js +65 -0
- package/dist/sandbox-backend-linux.js.map +1 -0
- package/dist/sandbox-backend-macos.d.ts +6 -0
- package/dist/sandbox-backend-macos.d.ts.map +1 -0
- package/dist/sandbox-backend-macos.js +64 -0
- package/dist/sandbox-backend-macos.js.map +1 -0
- package/dist/sandbox-backend-windows.d.ts +6 -0
- package/dist/sandbox-backend-windows.d.ts.map +1 -0
- package/dist/sandbox-backend-windows.js +28 -0
- package/dist/sandbox-backend-windows.js.map +1 -0
- package/dist/sandbox-profile.d.ts +53 -0
- package/dist/sandbox-profile.d.ts.map +1 -0
- package/dist/sandbox-profile.js +62 -0
- package/dist/sandbox-profile.js.map +1 -0
- 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 +11 -11
- 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 +6 -2
- package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
- package/dist/spawn-strategy.d.ts +1 -1
- package/dist/spawn-strategy.js +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/validation/types.d.ts +2 -0
- package/dist/validation/types.d.ts.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 +4 -2
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +4 -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-preflight.d.ts +8 -0
- package/dist/wu-done-preflight.d.ts.map +1 -1
- package/dist/wu-done-preflight.js +17 -1
- package/dist/wu-done-preflight.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 +53 -37
- package/dist/wu-lint.d.ts.map +1 -1
- package/dist/wu-lint.js +95 -105
- 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-preflight-validators.d.ts +28 -77
- package/dist/wu-preflight-validators.d.ts.map +1 -1
- package/dist/wu-preflight-validators.js +86 -130
- package/dist/wu-preflight-validators.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-rules-core.d.ts +95 -0
- package/dist/wu-rules-core.d.ts.map +1 -0
- package/dist/wu-rules-core.js +399 -0
- package/dist/wu-rules-core.js.map +1 -0
- package/dist/wu-rules-engine.d.ts +29 -0
- package/dist/wu-rules-engine.d.ts.map +1 -0
- package/dist/wu-rules-engine.js +59 -0
- package/dist/wu-rules-engine.js.map +1 -0
- package/dist/wu-rules-resolvers.d.ts +19 -0
- package/dist/wu-rules-resolvers.d.ts.map +1 -0
- package/dist/wu-rules-resolvers.js +208 -0
- package/dist/wu-rules-resolvers.js.map +1 -0
- package/dist/wu-schema.d.ts +24 -9
- package/dist/wu-schema.d.ts.map +1 -1
- package/dist/wu-schema.js +14 -1
- package/dist/wu-schema.js.map +1 -1
- 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 +14 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-monitor.js","sourceRoot":"","sources":["../src/delegation-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Recovery Module (WU-1951)
|
|
3
|
+
*
|
|
4
|
+
* Auto-recovery heuristics for stuck delegations and zombie locks.
|
|
5
|
+
* Used by orchestrate:monitor for automatic delegation health management.
|
|
6
|
+
*
|
|
7
|
+
* Recovery Heuristics:
|
|
8
|
+
* 1. Zombie lock (PID not running) -> auto-release, mark delegation crashed
|
|
9
|
+
* 2. Stale lock (>2h) -> auto-release, mark delegation timeout
|
|
10
|
+
* 3. Active lock + no checkpoint in 1h -> mark stuck, escalate
|
|
11
|
+
*
|
|
12
|
+
* All recovery actions are logged to .lumenflow/recovery/ for audit.
|
|
13
|
+
*
|
|
14
|
+
* Library-First Note: This is project-specific delegation recovery code for
|
|
15
|
+
* PatientPath's custom delegation-registry.jsonl, lane-lock, and memory-store.
|
|
16
|
+
* No external library exists for this domain-specific agent lifecycle management.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-recovery.test.ts} - Tests
|
|
19
|
+
* @see {@link packages/@lumenflow/cli/src/lib/delegation-monitor.ts} - Monitoring logic
|
|
20
|
+
* @see {@link packages/@lumenflow/cli/src/lib/delegation-registry-store.ts} - Delegation state
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Recovery action constants
|
|
24
|
+
*/
|
|
25
|
+
export declare const RecoveryAction: Readonly<{
|
|
26
|
+
/** No recovery needed */
|
|
27
|
+
NONE: "none";
|
|
28
|
+
/** Zombie lock released (PID not running) */
|
|
29
|
+
RELEASED_ZOMBIE: "released_zombie";
|
|
30
|
+
/** Stale lock released (>2h old) */
|
|
31
|
+
RELEASED_STALE: "released_stale";
|
|
32
|
+
/** Stuck delegation escalated (active but no checkpoint in 1h) */
|
|
33
|
+
ESCALATED_STUCK: "escalated_stuck";
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Recovery directory name
|
|
37
|
+
*/
|
|
38
|
+
export declare const RECOVERY_DIR_NAME = "recovery";
|
|
39
|
+
/**
|
|
40
|
+
* Threshold for "no checkpoint" detection (1 hour in milliseconds)
|
|
41
|
+
*/
|
|
42
|
+
export declare const NO_CHECKPOINT_THRESHOLD_MS: number;
|
|
43
|
+
/**
|
|
44
|
+
* Recovers a stuck delegation by applying appropriate heuristics.
|
|
45
|
+
*
|
|
46
|
+
* Recovery order (first match wins):
|
|
47
|
+
* 1. Zombie lock (PID not running) -> release lock, mark crashed
|
|
48
|
+
* 2. Stale lock (>2h) -> release lock, mark timeout
|
|
49
|
+
* 3. Active lock + no checkpoint in 1h -> escalate (no auto-release)
|
|
50
|
+
* 4. Healthy delegation -> no action
|
|
51
|
+
*
|
|
52
|
+
* @param {string} delegationId - ID of the delegation to recover
|
|
53
|
+
* @param {RecoverStuckDelegationOptions} options - Options
|
|
54
|
+
* @returns {Promise<RecoveryResult>} Recovery result
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* const result = await recoverStuckDelegation('delegation-1234', { baseDir: '/path/to/project' });
|
|
58
|
+
* if (result.recovered) {
|
|
59
|
+
* console.log(`Recovered: ${result.action} - ${result.reason}`);
|
|
60
|
+
* }
|
|
61
|
+
*/
|
|
62
|
+
export interface RecoverStuckDelegationOptions {
|
|
63
|
+
/** Base directory for .lumenflow/ */
|
|
64
|
+
baseDir?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare function recoverStuckDelegation(delegationId: any, options?: RecoverStuckDelegationOptions): Promise<{
|
|
67
|
+
recovered: boolean;
|
|
68
|
+
action: "none";
|
|
69
|
+
reason: string;
|
|
70
|
+
} | {
|
|
71
|
+
recovered: boolean;
|
|
72
|
+
action: "released_zombie";
|
|
73
|
+
reason: string;
|
|
74
|
+
} | {
|
|
75
|
+
recovered: boolean;
|
|
76
|
+
action: "released_stale";
|
|
77
|
+
reason: string;
|
|
78
|
+
} | {
|
|
79
|
+
recovered: boolean;
|
|
80
|
+
action: "escalated_stuck";
|
|
81
|
+
reason: string;
|
|
82
|
+
}>;
|
|
83
|
+
//# sourceMappingURL=delegation-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-recovery.d.ts","sourceRoot":"","sources":["../src/delegation-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA6BH;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,yBAAyB;;IAEzB,6CAA6C;;IAE7C,oCAAoC;;IAEpC,kEAAkE;;EAElE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AA8HzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,KAAA,EACZ,OAAO,GAAE,6BAAkC;;;;;;;;;;;;;;;;GAsK5C"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Recovery Module (WU-1951)
|
|
3
|
+
*
|
|
4
|
+
* Auto-recovery heuristics for stuck delegations and zombie locks.
|
|
5
|
+
* Used by orchestrate:monitor for automatic delegation health management.
|
|
6
|
+
*
|
|
7
|
+
* Recovery Heuristics:
|
|
8
|
+
* 1. Zombie lock (PID not running) -> auto-release, mark delegation crashed
|
|
9
|
+
* 2. Stale lock (>2h) -> auto-release, mark delegation timeout
|
|
10
|
+
* 3. Active lock + no checkpoint in 1h -> mark stuck, escalate
|
|
11
|
+
*
|
|
12
|
+
* All recovery actions are logged to .lumenflow/recovery/ for audit.
|
|
13
|
+
*
|
|
14
|
+
* Library-First Note: This is project-specific delegation recovery code for
|
|
15
|
+
* PatientPath's custom delegation-registry.jsonl, lane-lock, and memory-store.
|
|
16
|
+
* No external library exists for this domain-specific agent lifecycle management.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-recovery.test.ts} - Tests
|
|
19
|
+
* @see {@link packages/@lumenflow/cli/src/lib/delegation-monitor.ts} - Monitoring logic
|
|
20
|
+
* @see {@link packages/@lumenflow/cli/src/lib/delegation-registry-store.ts} - Delegation state
|
|
21
|
+
*/
|
|
22
|
+
import fs from 'node:fs/promises';
|
|
23
|
+
import path from 'node:path';
|
|
24
|
+
import { DelegationRegistryStore } from './delegation-registry-store.js';
|
|
25
|
+
import { DelegationStatus } from './delegation-registry-schema.js';
|
|
26
|
+
import { isZombieLock, isLockStale, readLockMetadata, getLockFilePath, releaseLaneLock, } from './lane-lock.js';
|
|
27
|
+
import { toKebab, LUMENFLOW_PATHS } from './wu-constants.js';
|
|
28
|
+
// Optional import from @lumenflow/memory
|
|
29
|
+
let loadMemory = null;
|
|
30
|
+
try {
|
|
31
|
+
const mod = await import('@lumenflow/memory/store');
|
|
32
|
+
loadMemory = mod.loadMemory;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// @lumenflow/memory not available - memory features disabled
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Recovery action constants
|
|
39
|
+
*/
|
|
40
|
+
export const RecoveryAction = Object.freeze({
|
|
41
|
+
/** No recovery needed */
|
|
42
|
+
NONE: 'none',
|
|
43
|
+
/** Zombie lock released (PID not running) */
|
|
44
|
+
RELEASED_ZOMBIE: 'released_zombie',
|
|
45
|
+
/** Stale lock released (>2h old) */
|
|
46
|
+
RELEASED_STALE: 'released_stale',
|
|
47
|
+
/** Stuck delegation escalated (active but no checkpoint in 1h) */
|
|
48
|
+
ESCALATED_STUCK: 'escalated_stuck',
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Recovery directory name
|
|
52
|
+
*/
|
|
53
|
+
export const RECOVERY_DIR_NAME = 'recovery';
|
|
54
|
+
/**
|
|
55
|
+
* Threshold for "no checkpoint" detection (1 hour in milliseconds)
|
|
56
|
+
*/
|
|
57
|
+
export const NO_CHECKPOINT_THRESHOLD_MS = 60 * 60 * 1000;
|
|
58
|
+
/**
|
|
59
|
+
* Log prefix for delegation-recovery messages
|
|
60
|
+
*/
|
|
61
|
+
const LOG_PREFIX = '[delegation-recovery]';
|
|
62
|
+
/**
|
|
63
|
+
* @typedef {Object} RecoveryResult
|
|
64
|
+
* @property {boolean} recovered - Whether a recovery action was taken
|
|
65
|
+
* @property {string} action - The recovery action taken (from RecoveryAction)
|
|
66
|
+
* @property {string} reason - Human-readable explanation of the result
|
|
67
|
+
*/
|
|
68
|
+
/**
|
|
69
|
+
* @typedef {Object} AuditLogEntry
|
|
70
|
+
* @property {string} timestamp - ISO timestamp of recovery action
|
|
71
|
+
* @property {string} delegationId - ID of the delegation being recovered
|
|
72
|
+
* @property {string} action - Recovery action taken
|
|
73
|
+
* @property {string} reason - Explanation of why action was taken
|
|
74
|
+
* @property {Object} context - Additional context
|
|
75
|
+
* @property {string} context.targetWuId - Target WU ID
|
|
76
|
+
* @property {string} context.lane - Lane name
|
|
77
|
+
* @property {Object|null} context.lockMetadata - Lock metadata if present
|
|
78
|
+
* @property {string|null} context.lastCheckpoint - Last checkpoint timestamp
|
|
79
|
+
*/
|
|
80
|
+
/**
|
|
81
|
+
* Converts lane name to lock file path (kebab-case)
|
|
82
|
+
*
|
|
83
|
+
* @param {string} lane - Lane name (e.g., "Operations: Tooling")
|
|
84
|
+
* @returns {string} Kebab-case lane name (e.g., "operations-tooling")
|
|
85
|
+
*/
|
|
86
|
+
function laneToKebab(lane) {
|
|
87
|
+
return toKebab(lane);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Gets the recovery directory path
|
|
91
|
+
*
|
|
92
|
+
* @param {string} baseDir - Base directory
|
|
93
|
+
* @returns {string} Path to .lumenflow/recovery/
|
|
94
|
+
*/
|
|
95
|
+
function getRecoveryDir(baseDir) {
|
|
96
|
+
return path.join(baseDir, LUMENFLOW_PATHS.BASE, RECOVERY_DIR_NAME);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Creates an audit log entry
|
|
100
|
+
*
|
|
101
|
+
* @param {string} baseDir - Base directory
|
|
102
|
+
* @param {AuditLogEntry} entry - Audit log entry
|
|
103
|
+
* @returns {Promise<void>}
|
|
104
|
+
*/
|
|
105
|
+
async function createAuditLog(baseDir, entry) {
|
|
106
|
+
const recoveryDir = getRecoveryDir(baseDir);
|
|
107
|
+
await fs.mkdir(recoveryDir, { recursive: true });
|
|
108
|
+
const timestamp = entry.timestamp.replace(/[:.]/g, '-');
|
|
109
|
+
const fileName = `${entry.delegationId}-${timestamp}.json`;
|
|
110
|
+
const filePath = path.join(recoveryDir, fileName);
|
|
111
|
+
await fs.writeFile(filePath, JSON.stringify(entry, null, 2), 'utf-8');
|
|
112
|
+
console.log(`${LOG_PREFIX} Audit log created: ${fileName}`);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Gets the most recent checkpoint for a WU from the memory store
|
|
116
|
+
*
|
|
117
|
+
* @param {string} baseDir - Base directory
|
|
118
|
+
* @param {string} wuId - WU ID to find checkpoints for
|
|
119
|
+
* @returns {Promise<{timestamp: string, content: string}|null>} Most recent checkpoint or null
|
|
120
|
+
*/
|
|
121
|
+
async function getLastCheckpoint(baseDir, wuId) {
|
|
122
|
+
// If memory module not available, return null
|
|
123
|
+
if (!loadMemory) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const memoryDir = path.join(baseDir, LUMENFLOW_PATHS.STATE_DIR);
|
|
127
|
+
try {
|
|
128
|
+
const memory = await loadMemory(memoryDir, wuId);
|
|
129
|
+
if (!memory) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const checkpoints = memory.checkpoints ?? [];
|
|
133
|
+
if (checkpoints.length === 0) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
// Sort by timestamp descending, get most recent
|
|
137
|
+
checkpoints.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
138
|
+
const latest = checkpoints[0];
|
|
139
|
+
return {
|
|
140
|
+
timestamp: latest.timestamp,
|
|
141
|
+
content: '',
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Memory store doesn't exist or is invalid
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Checks if a checkpoint is recent enough (within 1 hour)
|
|
151
|
+
*
|
|
152
|
+
* @param {string|null} checkpointTimestamp - ISO timestamp of last checkpoint
|
|
153
|
+
* @returns {boolean} True if checkpoint is recent (within 1 hour)
|
|
154
|
+
*/
|
|
155
|
+
function isCheckpointRecent(checkpointTimestamp) {
|
|
156
|
+
if (!checkpointTimestamp) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
const checkpointTime = new Date(checkpointTimestamp).getTime();
|
|
160
|
+
const now = Date.now();
|
|
161
|
+
return now - checkpointTime <= NO_CHECKPOINT_THRESHOLD_MS;
|
|
162
|
+
}
|
|
163
|
+
export async function recoverStuckDelegation(delegationId, options = {}) {
|
|
164
|
+
const { baseDir = process.cwd() } = options;
|
|
165
|
+
const registryDir = path.join(baseDir, LUMENFLOW_PATHS.STATE_DIR);
|
|
166
|
+
// Load delegation registry
|
|
167
|
+
const store = new DelegationRegistryStore(registryDir);
|
|
168
|
+
try {
|
|
169
|
+
await store.load();
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// Registry doesn't exist or is invalid
|
|
173
|
+
return {
|
|
174
|
+
recovered: false,
|
|
175
|
+
action: RecoveryAction.NONE,
|
|
176
|
+
reason: `Delegation ${delegationId} not found: registry unavailable`,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// Find the delegation
|
|
180
|
+
const delegation = store.getById(delegationId);
|
|
181
|
+
if (!delegation) {
|
|
182
|
+
return {
|
|
183
|
+
recovered: false,
|
|
184
|
+
action: RecoveryAction.NONE,
|
|
185
|
+
reason: `Delegation ${delegationId} not found in registry`,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
// Check if already completed
|
|
189
|
+
if (delegation.status !== DelegationStatus.PENDING) {
|
|
190
|
+
return {
|
|
191
|
+
recovered: false,
|
|
192
|
+
action: RecoveryAction.NONE,
|
|
193
|
+
reason: `Delegation ${delegationId} already ${delegation.status}`,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// Get lock for this delegation's lane
|
|
197
|
+
const _laneKebab = laneToKebab(delegation.lane);
|
|
198
|
+
const lockPath = getLockFilePath(delegation.lane, baseDir);
|
|
199
|
+
const lockMetadata = readLockMetadata(lockPath);
|
|
200
|
+
// If no lock, nothing to recover
|
|
201
|
+
if (!lockMetadata) {
|
|
202
|
+
return {
|
|
203
|
+
recovered: false,
|
|
204
|
+
action: RecoveryAction.NONE,
|
|
205
|
+
reason: `No lock found for delegation ${delegationId} (lane: ${delegation.lane})`,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
// Check if lock belongs to this WU
|
|
209
|
+
if (lockMetadata.wuId !== delegation.targetWuId) {
|
|
210
|
+
return {
|
|
211
|
+
recovered: false,
|
|
212
|
+
action: RecoveryAction.NONE,
|
|
213
|
+
reason: `Lock belongs to ${lockMetadata.wuId}, not delegation target ${delegation.targetWuId}`,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
// Get last checkpoint for context
|
|
217
|
+
const lastCheckpoint = await getLastCheckpoint(baseDir, delegation.targetWuId);
|
|
218
|
+
const lastCheckpointTs = lastCheckpoint?.timestamp ?? null;
|
|
219
|
+
// Build common audit context
|
|
220
|
+
const auditContext = {
|
|
221
|
+
targetWuId: delegation.targetWuId,
|
|
222
|
+
parentWuId: delegation.parentWuId,
|
|
223
|
+
lane: delegation.lane,
|
|
224
|
+
delegatedAt: delegation.delegatedAt,
|
|
225
|
+
lockMetadata,
|
|
226
|
+
lastCheckpoint: lastCheckpointTs,
|
|
227
|
+
};
|
|
228
|
+
// Heuristic 1: Zombie lock (PID not running)
|
|
229
|
+
if (isZombieLock(lockMetadata)) {
|
|
230
|
+
console.log(`${LOG_PREFIX} Detected zombie lock for ${delegationId} (PID ${lockMetadata.pid} not running)`);
|
|
231
|
+
// Release the lock
|
|
232
|
+
releaseLaneLock(delegation.lane, { baseDir, force: true });
|
|
233
|
+
// Mark delegation as crashed
|
|
234
|
+
await store.updateStatus(delegationId, DelegationStatus.CRASHED);
|
|
235
|
+
const reason = `Zombie lock detected: PID ${lockMetadata.pid} not running`;
|
|
236
|
+
// Create audit log
|
|
237
|
+
await createAuditLog(baseDir, {
|
|
238
|
+
timestamp: new Date().toISOString(),
|
|
239
|
+
delegationId,
|
|
240
|
+
action: RecoveryAction.RELEASED_ZOMBIE,
|
|
241
|
+
reason,
|
|
242
|
+
context: auditContext,
|
|
243
|
+
});
|
|
244
|
+
return {
|
|
245
|
+
recovered: true,
|
|
246
|
+
action: RecoveryAction.RELEASED_ZOMBIE,
|
|
247
|
+
reason,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// Heuristic 2: Stale lock (>2h old)
|
|
251
|
+
if (isLockStale(lockMetadata)) {
|
|
252
|
+
console.log(`${LOG_PREFIX} Detected stale lock for ${delegationId} (acquired ${lockMetadata.timestamp})`);
|
|
253
|
+
// Release the lock
|
|
254
|
+
releaseLaneLock(delegation.lane, { baseDir, force: true });
|
|
255
|
+
// Mark delegation as timeout
|
|
256
|
+
await store.updateStatus(delegationId, DelegationStatus.TIMEOUT);
|
|
257
|
+
const reason = `Stale lock detected: acquired ${lockMetadata.timestamp} (>2h threshold)`;
|
|
258
|
+
// Create audit log
|
|
259
|
+
await createAuditLog(baseDir, {
|
|
260
|
+
timestamp: new Date().toISOString(),
|
|
261
|
+
delegationId,
|
|
262
|
+
action: RecoveryAction.RELEASED_STALE,
|
|
263
|
+
reason,
|
|
264
|
+
context: auditContext,
|
|
265
|
+
});
|
|
266
|
+
return {
|
|
267
|
+
recovered: true,
|
|
268
|
+
action: RecoveryAction.RELEASED_STALE,
|
|
269
|
+
reason,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
// Heuristic 3: Active lock + no recent checkpoint -> escalate
|
|
273
|
+
if (!isCheckpointRecent(lastCheckpointTs)) {
|
|
274
|
+
const reason = lastCheckpointTs
|
|
275
|
+
? `No checkpoint in last hour (last: ${lastCheckpointTs})`
|
|
276
|
+
: 'No checkpoints recorded for this delegation';
|
|
277
|
+
console.log(`${LOG_PREFIX} Escalating stuck delegation ${delegationId}: ${reason}`);
|
|
278
|
+
// Create audit log (escalation, not recovery)
|
|
279
|
+
await createAuditLog(baseDir, {
|
|
280
|
+
timestamp: new Date().toISOString(),
|
|
281
|
+
delegationId,
|
|
282
|
+
action: RecoveryAction.ESCALATED_STUCK,
|
|
283
|
+
reason,
|
|
284
|
+
context: auditContext,
|
|
285
|
+
});
|
|
286
|
+
return {
|
|
287
|
+
recovered: false, // No auto-recovery, just escalation
|
|
288
|
+
action: RecoveryAction.ESCALATED_STUCK,
|
|
289
|
+
reason: `Stuck delegation: ${reason}`,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
// Healthy delegation with recent checkpoint
|
|
293
|
+
return {
|
|
294
|
+
recovered: false,
|
|
295
|
+
action: RecoveryAction.NONE,
|
|
296
|
+
reason: `Delegation ${delegationId} healthy (recent checkpoint at ${lastCheckpointTs})`,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=delegation-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-recovery.js","sourceRoot":"","sources":["../src/delegation-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Registry Schema (WU-1674)
|
|
3
|
+
*
|
|
4
|
+
* Canonical delegation schema and helpers for delegation lifecycle records.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
/**
|
|
8
|
+
* Delegation status values.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DelegationStatus: {
|
|
11
|
+
readonly PENDING: "pending";
|
|
12
|
+
readonly COMPLETED: string;
|
|
13
|
+
readonly TIMEOUT: "timeout";
|
|
14
|
+
readonly CRASHED: "crashed";
|
|
15
|
+
readonly ESCALATED: "escalated";
|
|
16
|
+
};
|
|
17
|
+
/** Type for delegation status values */
|
|
18
|
+
export type DelegationStatusValue = (typeof DelegationStatus)[keyof typeof DelegationStatus];
|
|
19
|
+
/** Array of valid delegation statuses */
|
|
20
|
+
export declare const DELEGATION_STATUSES: readonly ["pending", string, "timeout", "crashed", "escalated"];
|
|
21
|
+
/**
|
|
22
|
+
* Optional delegation intent source values.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DelegationIntent: {
|
|
25
|
+
readonly DELEGATION: "delegation";
|
|
26
|
+
readonly LEGACY_SPAWN: "legacy-spawn";
|
|
27
|
+
};
|
|
28
|
+
/** Type for delegation intent values */
|
|
29
|
+
export type DelegationIntentValue = (typeof DelegationIntent)[keyof typeof DelegationIntent];
|
|
30
|
+
/** Array of valid delegation intent values */
|
|
31
|
+
export declare const DELEGATION_INTENTS: readonly ["delegation", "legacy-spawn"];
|
|
32
|
+
/**
|
|
33
|
+
* Regex patterns for delegation validation.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DELEGATION_PATTERNS: {
|
|
36
|
+
DELEGATION_ID: RegExp;
|
|
37
|
+
WU_ID: RegExp;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Delegation event schema.
|
|
41
|
+
*/
|
|
42
|
+
export declare const DelegationEventSchema: z.ZodObject<{
|
|
43
|
+
id: z.ZodString;
|
|
44
|
+
parentWuId: z.ZodString;
|
|
45
|
+
targetWuId: z.ZodString;
|
|
46
|
+
lane: z.ZodString;
|
|
47
|
+
intent: z.ZodOptional<z.ZodEnum<{
|
|
48
|
+
delegation: "delegation";
|
|
49
|
+
"legacy-spawn": "legacy-spawn";
|
|
50
|
+
}>>;
|
|
51
|
+
delegatedAt: z.ZodString;
|
|
52
|
+
status: z.ZodEnum<{
|
|
53
|
+
[x: string]: string;
|
|
54
|
+
}>;
|
|
55
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
56
|
+
pickedUpAt: z.ZodOptional<z.ZodString>;
|
|
57
|
+
pickedUpBy: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
/** TypeScript type inferred from schema */
|
|
60
|
+
export type DelegationEvent = z.infer<typeof DelegationEventSchema>;
|
|
61
|
+
/**
|
|
62
|
+
* Validates delegation event data against schema.
|
|
63
|
+
*/
|
|
64
|
+
export declare function validateDelegationEvent(data: unknown): z.ZodSafeParseResult<{
|
|
65
|
+
id: string;
|
|
66
|
+
parentWuId: string;
|
|
67
|
+
targetWuId: string;
|
|
68
|
+
lane: string;
|
|
69
|
+
delegatedAt: string;
|
|
70
|
+
status: string;
|
|
71
|
+
intent?: "delegation" | "legacy-spawn";
|
|
72
|
+
completedAt?: string;
|
|
73
|
+
pickedUpAt?: string;
|
|
74
|
+
pickedUpBy?: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Generates a unique delegation ID.
|
|
78
|
+
*/
|
|
79
|
+
export declare function generateDelegationId(parentWuId: string, targetWuId: string): string;
|
|
80
|
+
//# sourceMappingURL=delegation-registry-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-registry-schema.d.ts","sourceRoot":"","sources":["../src/delegation-registry-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX,wCAAwC;AACxC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAE7F,yCAAyC;AACzC,eAAO,MAAM,mBAAmB,iEAMtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,wCAAwC;AACxC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAE7F,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,yCAGrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAeF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;iBAahC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;GAEpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Registry Schema (WU-1674)
|
|
3
|
+
*
|
|
4
|
+
* Canonical delegation schema and helpers for delegation lifecycle records.
|
|
5
|
+
*/
|
|
6
|
+
import crypto from 'node:crypto';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { WU_STATUS } from './wu-constants.js';
|
|
9
|
+
/**
|
|
10
|
+
* Delegation status values.
|
|
11
|
+
*/
|
|
12
|
+
export const DelegationStatus = {
|
|
13
|
+
PENDING: 'pending',
|
|
14
|
+
COMPLETED: WU_STATUS.COMPLETED,
|
|
15
|
+
TIMEOUT: 'timeout',
|
|
16
|
+
CRASHED: 'crashed',
|
|
17
|
+
ESCALATED: 'escalated',
|
|
18
|
+
};
|
|
19
|
+
/** Array of valid delegation statuses */
|
|
20
|
+
export const DELEGATION_STATUSES = [
|
|
21
|
+
DelegationStatus.PENDING,
|
|
22
|
+
DelegationStatus.COMPLETED,
|
|
23
|
+
DelegationStatus.TIMEOUT,
|
|
24
|
+
DelegationStatus.CRASHED,
|
|
25
|
+
DelegationStatus.ESCALATED,
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* Optional delegation intent source values.
|
|
29
|
+
*/
|
|
30
|
+
export const DelegationIntent = {
|
|
31
|
+
DELEGATION: 'delegation',
|
|
32
|
+
LEGACY_SPAWN: 'legacy-spawn',
|
|
33
|
+
};
|
|
34
|
+
/** Array of valid delegation intent values */
|
|
35
|
+
export const DELEGATION_INTENTS = [
|
|
36
|
+
DelegationIntent.DELEGATION,
|
|
37
|
+
DelegationIntent.LEGACY_SPAWN,
|
|
38
|
+
];
|
|
39
|
+
/**
|
|
40
|
+
* Regex patterns for delegation validation.
|
|
41
|
+
*/
|
|
42
|
+
export const DELEGATION_PATTERNS = {
|
|
43
|
+
DELEGATION_ID: /^dlg-[0-9a-f]{4}$/,
|
|
44
|
+
WU_ID: /^WU-\d+$/,
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Error messages for schema validation.
|
|
48
|
+
*/
|
|
49
|
+
const ERROR_MESSAGES = {
|
|
50
|
+
DELEGATION_ID: 'Delegation ID must match pattern dlg-XXXX (e.g., dlg-a1b2)',
|
|
51
|
+
WU_ID: 'WU ID must match pattern WU-XXX (e.g., WU-1000)',
|
|
52
|
+
LANE_REQUIRED: 'Lane is required',
|
|
53
|
+
STATUS: `Status must be one of: ${DELEGATION_STATUSES.join(', ')}`,
|
|
54
|
+
INTENT: `Intent must be one of: ${DELEGATION_INTENTS.join(', ')}`,
|
|
55
|
+
TIMESTAMP_REQUIRED: 'Timestamp is required',
|
|
56
|
+
PICKUP_BY_REQUIRED: 'pickedUpBy must be a non-empty string when pickup is recorded',
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Delegation event schema.
|
|
60
|
+
*/
|
|
61
|
+
export const DelegationEventSchema = z.object({
|
|
62
|
+
id: z.string().regex(DELEGATION_PATTERNS.DELEGATION_ID, {
|
|
63
|
+
message: ERROR_MESSAGES.DELEGATION_ID,
|
|
64
|
+
}),
|
|
65
|
+
parentWuId: z.string().regex(DELEGATION_PATTERNS.WU_ID, { message: ERROR_MESSAGES.WU_ID }),
|
|
66
|
+
targetWuId: z.string().regex(DELEGATION_PATTERNS.WU_ID, { message: ERROR_MESSAGES.WU_ID }),
|
|
67
|
+
lane: z.string().min(1, { message: ERROR_MESSAGES.LANE_REQUIRED }),
|
|
68
|
+
intent: z.enum(DELEGATION_INTENTS, { error: ERROR_MESSAGES.INTENT }).optional(),
|
|
69
|
+
delegatedAt: z.string().datetime({ message: ERROR_MESSAGES.TIMESTAMP_REQUIRED }),
|
|
70
|
+
status: z.enum(DELEGATION_STATUSES, { error: ERROR_MESSAGES.STATUS }),
|
|
71
|
+
completedAt: z.string().datetime().nullable(),
|
|
72
|
+
pickedUpAt: z.string().datetime().optional(),
|
|
73
|
+
pickedUpBy: z.string().min(1, { message: ERROR_MESSAGES.PICKUP_BY_REQUIRED }).optional(),
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* Validates delegation event data against schema.
|
|
77
|
+
*/
|
|
78
|
+
export function validateDelegationEvent(data) {
|
|
79
|
+
return DelegationEventSchema.safeParse(data);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Generates a unique delegation ID.
|
|
83
|
+
*/
|
|
84
|
+
export function generateDelegationId(parentWuId, targetWuId) {
|
|
85
|
+
const timestamp = Date.now().toString();
|
|
86
|
+
const randomBytes = crypto.randomBytes(4).toString('hex');
|
|
87
|
+
const input = `${parentWuId}:${targetWuId}:${timestamp}:${randomBytes}`;
|
|
88
|
+
const hash = crypto.createHash('sha256').update(input).digest('hex');
|
|
89
|
+
return `dlg-${hash.slice(0, 4)}`;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=delegation-registry-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-registry-schema.js","sourceRoot":"","sources":["../src/delegation-registry-schema.ts"],"names":[],"mappings":"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"}
|