harnery 0.42.0 → 0.44.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/README.md +3 -3
- package/dist/commander.d.ts +16 -0
- package/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +18 -0
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +95 -52
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +38 -11
- package/dist/commands/diagnostics.d.ts.map +1 -1
- package/dist/commands/diagnostics.js +10 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +22 -7
- package/dist/commands/governor.js +22 -10
- package/dist/commands/inbox.d.ts +1 -1
- package/dist/commands/inbox.d.ts.map +1 -1
- package/dist/commands/inbox.js +55 -2
- package/dist/commands/rm.d.ts.map +1 -1
- package/dist/commands/rm.js +28 -4
- package/dist/commands/servers.d.ts.map +1 -1
- package/dist/commands/servers.js +16 -1
- package/dist/commands/supervisor.d.ts.map +1 -1
- package/dist/commands/supervisor.js +7 -2
- package/dist/commands/toc.d.ts +14 -0
- package/dist/commands/toc.d.ts.map +1 -1
- package/dist/commands/toc.js +7 -4
- package/dist/commands/tunnel.d.ts +65 -0
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +290 -101
- package/dist/commands/web-fetch.d.ts +3 -2
- package/dist/commands/web-fetch.d.ts.map +1 -1
- package/dist/commands/web-fetch.js +25 -19
- package/dist/commands/web.d.ts +7 -1
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +9 -3
- package/dist/commands/workflow.js +24 -30
- package/dist/core/agents/live-authority-v3.d.ts +1 -0
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
- package/dist/core/agents/live-authority-v3.js +11 -0
- package/dist/core/agents/live-lifecycle-v3.d.ts +4 -2
- package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -1
- package/dist/core/agents/live-lifecycle-v3.js +28 -7
- package/dist/core/agents/mailbox.d.ts +9 -8
- package/dist/core/agents/mailbox.d.ts.map +1 -1
- package/dist/core/agents/mailbox.js +24 -17
- package/dist/core/agents/render/prompt-context.d.ts +2 -0
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +19 -17
- package/dist/core/agents/render/session-context.d.ts +2 -8
- package/dist/core/agents/render/session-context.d.ts.map +1 -1
- package/dist/core/agents/render/session-context.js +64 -43
- package/dist/core/agents/rules/stop-hook.js +3 -3
- package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +25 -14
- package/dist/core/agents/state/live-coordination-writer.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-writer.js +5 -0
- package/dist/core/agents/state/names.d.ts +43 -3
- package/dist/core/agents/state/names.d.ts.map +1 -1
- package/dist/core/agents/state/names.js +87 -3
- package/dist/core/agents/state/pidmap.d.ts.map +1 -1
- package/dist/core/agents/state/pidmap.js +5 -0
- package/dist/core/agents/state/proc-start.d.ts +19 -0
- package/dist/core/agents/state/proc-start.d.ts.map +1 -1
- package/dist/core/agents/state/proc-start.js +41 -0
- package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
- package/dist/core/agents/state/stale-sweep.js +180 -70
- package/dist/core/agents/state/unchanged-file.d.ts +44 -0
- package/dist/core/agents/state/unchanged-file.d.ts.map +1 -0
- package/dist/core/agents/state/unchanged-file.js +390 -0
- package/dist/core/context/index.d.ts +22 -10
- package/dist/core/context/index.d.ts.map +1 -1
- package/dist/core/context/index.js +381 -119
- package/dist/core/context/observation.d.ts +26 -0
- package/dist/core/context/observation.d.ts.map +1 -0
- package/dist/core/context/observation.js +11 -0
- package/dist/core/diagnostics/bundle.d.ts.map +1 -1
- package/dist/core/diagnostics/bundle.js +25 -14
- package/dist/core/diagnostics/path-identity.d.ts +3 -0
- package/dist/core/diagnostics/path-identity.d.ts.map +1 -0
- package/dist/core/diagnostics/path-identity.js +12 -0
- package/dist/core/diagnostics/sanitize.d.ts.map +1 -1
- package/dist/core/diagnostics/sanitize.js +4 -3
- package/dist/core/events/v3/authority-outbox.d.ts.map +1 -1
- package/dist/core/events/v3/authority-outbox.js +29 -0
- package/dist/core/events/v3/generation-custody.d.ts +5 -0
- package/dist/core/events/v3/generation-custody.d.ts.map +1 -0
- package/dist/core/events/v3/generation-custody.js +50 -0
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +1 -0
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/coordination-recorder.js +7 -0
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +77 -64
- package/dist/core/events/v3/support-storage/pack-reader.d.ts.map +1 -1
- package/dist/core/events/v3/support-storage/pack-reader.js +42 -16
- package/dist/core/governor/planning.d.ts.map +1 -1
- package/dist/core/governor/planning.js +14 -1
- package/dist/core/governor/service-read.d.ts +10 -2
- package/dist/core/governor/service-read.d.ts.map +1 -1
- package/dist/core/governor/service-read.js +105 -22
- package/dist/core/governor/service.d.ts +20 -2
- package/dist/core/governor/service.d.ts.map +1 -1
- package/dist/core/governor/service.js +72 -47
- package/dist/core/hooks/cli.js +120 -23
- package/dist/core/hooks/fork-lineage.d.ts +40 -0
- package/dist/core/hooks/fork-lineage.d.ts.map +1 -0
- package/dist/core/hooks/fork-lineage.js +62 -0
- package/dist/core/hooks/resolve/transcript.d.ts +16 -0
- package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
- package/dist/core/hooks/resolve/transcript.js +84 -0
- package/dist/core/hooks/shell-rm.d.ts +2 -0
- package/dist/core/hooks/shell-rm.d.ts.map +1 -0
- package/dist/core/hooks/shell-rm.js +105 -0
- package/dist/core/hooks/shell-tokens.d.ts +12 -0
- package/dist/core/hooks/shell-tokens.d.ts.map +1 -0
- package/dist/core/hooks/shell-tokens.js +97 -0
- package/dist/core/hooks/shell-waiter.d.ts.map +1 -1
- package/dist/core/hooks/shell-waiter.js +3 -93
- package/dist/core/inbox/contract.d.ts +2 -1
- package/dist/core/inbox/contract.d.ts.map +1 -1
- package/dist/core/inbox/index.d.ts +2 -0
- package/dist/core/inbox/index.d.ts.map +1 -1
- package/dist/core/inbox/index.js +2 -0
- package/dist/core/inbox/peer-messages.d.ts +37 -0
- package/dist/core/inbox/peer-messages.d.ts.map +1 -0
- package/dist/core/inbox/peer-messages.js +72 -0
- package/dist/core/inbox/service.d.ts +8 -1
- package/dist/core/inbox/service.d.ts.map +1 -1
- package/dist/core/inbox/service.js +67 -21
- package/dist/core/inbox/targets.d.ts +22 -0
- package/dist/core/inbox/targets.d.ts.map +1 -0
- package/dist/core/inbox/targets.js +108 -0
- package/dist/core/inbox/watcher.js +7 -3
- package/dist/core/journal/index.d.ts.map +1 -1
- package/dist/core/journal/index.js +17 -2
- package/dist/core/resources/contract.d.ts +3 -0
- package/dist/core/resources/contract.d.ts.map +1 -1
- package/dist/core/resources/service-status.d.ts +14 -1
- package/dist/core/resources/service-status.d.ts.map +1 -1
- package/dist/core/resources/service-status.js +23 -13
- package/dist/core/resources/service.d.ts +9 -1
- package/dist/core/resources/service.d.ts.map +1 -1
- package/dist/core/resources/service.js +47 -27
- package/dist/core/resources/status.d.ts +2 -5
- package/dist/core/resources/status.d.ts.map +1 -1
- package/dist/core/resources/status.js +36 -7
- package/dist/core/semantic/contract.d.ts +5 -5
- package/dist/core/servers/index.d.ts +24 -13
- package/dist/core/servers/index.d.ts.map +1 -1
- package/dist/core/servers/index.js +132 -92
- package/dist/core/servers/tunnels.d.ts +3 -5
- package/dist/core/servers/tunnels.d.ts.map +1 -1
- package/dist/core/servers/tunnels.js +3 -9
- package/dist/core/storage/process-log.d.ts +12 -0
- package/dist/core/storage/process-log.d.ts.map +1 -1
- package/dist/core/storage/process-log.js +10 -2
- package/dist/core/supervisor/contract.d.ts +12 -0
- package/dist/core/supervisor/contract.d.ts.map +1 -1
- package/dist/core/supervisor/explanations.d.ts.map +1 -1
- package/dist/core/supervisor/explanations.js +2 -1
- package/dist/core/supervisor/findings.d.ts.map +1 -1
- package/dist/core/supervisor/findings.js +54 -9
- package/dist/core/supervisor/service.d.ts +9 -1
- package/dist/core/supervisor/service.d.ts.map +1 -1
- package/dist/core/supervisor/service.js +59 -29
- package/dist/core/supervisor/services.d.ts.map +1 -1
- package/dist/core/supervisor/services.js +22 -1
- package/dist/core/supervisor/status.d.ts +17 -2
- package/dist/core/supervisor/status.d.ts.map +1 -1
- package/dist/core/supervisor/status.js +70 -12
- package/dist/core/supervisor/timeline.d.ts.map +1 -1
- package/dist/core/supervisor/timeline.js +2 -1
- package/dist/core/work/state.js +7 -7
- package/dist/core/workflow/engine.d.ts.map +1 -1
- package/dist/core/workflow/engine.js +105 -32
- package/dist/core/workflow/failure-evidence.d.ts +16 -0
- package/dist/core/workflow/failure-evidence.d.ts.map +1 -0
- package/dist/core/workflow/failure-evidence.js +114 -0
- package/dist/core/workflow/index.d.ts +1 -1
- package/dist/core/workflow/index.d.ts.map +1 -1
- package/dist/core/workflow/index.js +1 -1
- package/dist/core/workflow/live-session-v3.d.ts +6 -0
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
- package/dist/core/workflow/live-session-v3.js +126 -5
- package/dist/core/workflow/proof.d.ts +5 -5
- package/dist/core/workflow/proof.d.ts.map +1 -1
- package/dist/core/workflow/proof.js +115 -20
- package/dist/core/workflow/run-state.d.ts +3 -1
- package/dist/core/workflow/run-state.d.ts.map +1 -1
- package/dist/core/workflow/run-state.js +31 -27
- package/dist/core/workflow/spawn-claude.d.ts.map +1 -1
- package/dist/core/workflow/spawn-claude.js +19 -0
- package/dist/core/workflow/spawn-codex.d.ts.map +1 -1
- package/dist/core/workflow/spawn-codex.js +13 -0
- package/dist/core/workflow/spawn-cursor.d.ts.map +1 -1
- package/dist/core/workflow/spawn-cursor.js +19 -0
- package/dist/core/workflow/spawn-opencode.d.ts.map +1 -1
- package/dist/core/workflow/spawn-opencode.js +14 -0
- package/dist/core/workflow/types.d.ts +64 -17
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/index.d.ts +0 -1
- package/dist/core/workflow/workspaces/index.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/index.js +0 -1
- package/dist/core/workflow/workspaces/leases.d.ts +3 -1
- package/dist/core/workflow/workspaces/leases.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/leases.js +30 -16
- package/dist/core/workflow/workspaces/local-git.d.ts +6 -2
- package/dist/core/workflow/workspaces/local-git.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/local-git.js +270 -6
- package/dist/core/workflow/workspaces/ownership.d.ts +11 -0
- package/dist/core/workflow/workspaces/ownership.d.ts.map +1 -0
- package/dist/core/workflow/workspaces/ownership.js +194 -0
- package/dist/core/workflow/workspaces/reclaim.d.ts +35 -0
- package/dist/core/workflow/workspaces/reclaim.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/reclaim.js +14 -0
- package/dist/core/workflow/workspaces/recovery.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/recovery.js +21 -13
- package/dist/core/workflow/workspaces/state.d.ts +1 -0
- package/dist/core/workflow/workspaces/state.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/state.js +21 -1
- package/dist/lib/browser/windows-chrome.d.ts +100 -12
- package/dist/lib/browser/windows-chrome.d.ts.map +1 -1
- package/dist/lib/browser/windows-chrome.js +262 -73
- package/dist/lib/docs-links.d.ts.map +1 -1
- package/dist/lib/docs-links.js +45 -2
- package/dist/lib/guarded-remove.d.ts +7 -0
- package/dist/lib/guarded-remove.d.ts.map +1 -1
- package/dist/lib/guarded-remove.js +106 -12
- package/dist/lib/identities/assume.d.ts.map +1 -1
- package/dist/lib/identities/assume.js +4 -0
- package/dist/lib/tunnel/allowlist.d.ts +44 -0
- package/dist/lib/tunnel/allowlist.d.ts.map +1 -0
- package/dist/lib/tunnel/allowlist.js +204 -0
- package/dist/lib/tunnel/current-address.d.ts +41 -0
- package/dist/lib/tunnel/current-address.d.ts.map +1 -0
- package/dist/lib/tunnel/current-address.js +123 -0
- package/dist/lib/tunnel/gate.js +13 -6
- package/dist/lib/tunnel/processes.d.ts +39 -0
- package/dist/lib/tunnel/processes.d.ts.map +1 -0
- package/dist/lib/tunnel/processes.js +121 -0
- package/dist/lib/tunnel/state.d.ts +28 -3
- package/dist/lib/tunnel/state.d.ts.map +1 -1
- package/dist/lib/tunnel/state.js +98 -27
- package/dist/lib/zip/index.d.ts +41 -0
- package/dist/lib/zip/index.d.ts.map +1 -0
- package/dist/lib/zip/index.js +398 -0
- package/package.json +8 -1
- package/src/commander.ts +32 -0
- package/src/commands/agents.ts +151 -74
- package/src/commands/browse.ts +50 -14
- package/src/commands/diagnostics.ts +10 -0
- package/src/commands/doctor.ts +26 -7
- package/src/commands/governor.ts +23 -10
- package/src/commands/inbox.ts +52 -2
- package/src/commands/rm.ts +43 -4
- package/src/commands/servers.ts +16 -4
- package/src/commands/supervisor.ts +7 -2
- package/src/commands/toc.ts +14 -6
- package/src/commands/tunnel.ts +394 -116
- package/src/commands/web-fetch.ts +30 -19
- package/src/commands/web.ts +9 -3
- package/src/commands/workflow.ts +30 -30
- package/src/core/agents/live-authority-v3.ts +17 -0
- package/src/core/agents/live-lifecycle-v3.ts +52 -14
- package/src/core/agents/mailbox.ts +26 -17
- package/src/core/agents/render/prompt-context.ts +35 -20
- package/src/core/agents/render/session-context.ts +92 -48
- package/src/core/agents/rules/stop-hook.ts +3 -3
- package/src/core/agents/state/heartbeat-writer.ts +29 -12
- package/src/core/agents/state/live-coordination-writer.ts +29 -0
- package/src/core/agents/state/names.ts +117 -6
- package/src/core/agents/state/pidmap.ts +13 -0
- package/src/core/agents/state/proc-start.ts +57 -0
- package/src/core/agents/state/stale-sweep.ts +247 -82
- package/src/core/agents/state/unchanged-file.ts +456 -0
- package/src/core/context/index.ts +446 -136
- package/src/core/context/observation.ts +29 -0
- package/src/core/diagnostics/bundle.ts +23 -18
- package/src/core/diagnostics/path-identity.ts +15 -0
- package/src/core/diagnostics/sanitize.ts +4 -3
- package/src/core/events/v3/authority-outbox.ts +56 -0
- package/src/core/events/v3/generation-custody.ts +59 -0
- package/src/core/events/v3/producers/coordination-recorder.ts +15 -0
- package/src/core/events/v3/producers/recorder.ts +94 -68
- package/src/core/events/v3/support-storage/pack-reader.ts +45 -19
- package/src/core/governor/planning.ts +20 -8
- package/src/core/governor/service-read.ts +128 -20
- package/src/core/governor/service.ts +119 -42
- package/src/core/hooks/cli.ts +139 -22
- package/src/core/hooks/fork-lineage.ts +82 -0
- package/src/core/hooks/resolve/transcript.ts +88 -0
- package/src/core/hooks/shell-rm.ts +103 -0
- package/src/core/hooks/shell-tokens.ts +96 -0
- package/src/core/hooks/shell-waiter.ts +4 -91
- package/src/core/inbox/contract.ts +2 -1
- package/src/core/inbox/index.ts +2 -0
- package/src/core/inbox/peer-messages.ts +94 -0
- package/src/core/inbox/service.ts +88 -22
- package/src/core/inbox/targets.ts +148 -0
- package/src/core/inbox/watcher.ts +8 -9
- package/src/core/journal/index.ts +19 -2
- package/src/core/resources/contract.ts +4 -0
- package/src/core/resources/service-status.ts +35 -12
- package/src/core/resources/service.ts +71 -24
- package/src/core/resources/status.ts +57 -8
- package/src/core/servers/index.ts +177 -91
- package/src/core/servers/tunnels.ts +3 -11
- package/src/core/storage/process-log.ts +17 -2
- package/src/core/supervisor/contract.ts +13 -0
- package/src/core/supervisor/explanations.ts +4 -1
- package/src/core/supervisor/findings.ts +68 -10
- package/src/core/supervisor/service.ts +88 -26
- package/src/core/supervisor/services.ts +26 -8
- package/src/core/supervisor/status.ts +89 -12
- package/src/core/supervisor/timeline.ts +2 -1
- package/src/core/work/state.ts +7 -7
- package/src/core/workflow/engine.ts +131 -49
- package/src/core/workflow/failure-evidence.ts +141 -0
- package/src/core/workflow/index.ts +0 -1
- package/src/core/workflow/live-session-v3.ts +146 -5
- package/src/core/workflow/proof.ts +134 -26
- package/src/core/workflow/run-state.ts +31 -29
- package/src/core/workflow/spawn-claude.ts +18 -0
- package/src/core/workflow/spawn-codex.ts +13 -0
- package/src/core/workflow/spawn-cursor.ts +18 -0
- package/src/core/workflow/spawn-opencode.ts +14 -0
- package/src/core/workflow/types.ts +51 -17
- package/src/core/workflow/workspaces/index.ts +0 -1
- package/src/core/workflow/workspaces/leases.ts +48 -17
- package/src/core/workflow/workspaces/local-git.ts +315 -5
- package/src/core/workflow/workspaces/ownership.ts +232 -0
- package/src/core/workflow/workspaces/reclaim.ts +58 -0
- package/src/core/workflow/workspaces/recovery.ts +25 -13
- package/src/core/workflow/workspaces/state.ts +20 -0
- package/src/lib/browser/windows-chrome.ts +346 -86
- package/src/lib/docs-links.ts +49 -2
- package/src/lib/guarded-remove.ts +132 -14
- package/src/lib/identities/assume.ts +4 -0
- package/src/lib/tunnel/allowlist.ts +208 -0
- package/src/lib/tunnel/current-address.ts +158 -0
- package/src/lib/tunnel/gate.ts +16 -8
- package/src/lib/tunnel/processes.ts +149 -0
- package/src/lib/tunnel/state.ts +123 -27
- package/src/lib/zip/index.ts +483 -0
|
@@ -34,11 +34,11 @@ export function captureDiagnosticBundle(repoRootRaw, input = {}) {
|
|
|
34
34
|
const capturedAt = now.toISOString();
|
|
35
35
|
const aggregateStats = { sanitized_value_count: 0, omitted_value_count: 0 };
|
|
36
36
|
const sources = [
|
|
37
|
-
...SOURCE_SPECS.map(([sourceKind, relativePath]) => readCapturedSource(repoRoot, sourceKind, relativePath
|
|
38
|
-
readShadowAdmissionSource(repoRoot, capturedAt
|
|
37
|
+
...SOURCE_SPECS.map(([sourceKind, relativePath]) => readCapturedSource(repoRoot, sourceKind, relativePath)),
|
|
38
|
+
readShadowAdmissionSource(repoRoot, capturedAt),
|
|
39
39
|
];
|
|
40
40
|
const selection = diagnosticSelection(input, sources, now);
|
|
41
|
-
const
|
|
41
|
+
const rawObservations = {
|
|
42
42
|
schema_version: DIAGNOSTIC_INPUT_SCHEMA_VERSION,
|
|
43
43
|
captured_at: capturedAt,
|
|
44
44
|
selection,
|
|
@@ -55,7 +55,24 @@ export function captureDiagnosticBundle(repoRootRaw, input = {}) {
|
|
|
55
55
|
pressure_policy: PRESSURE_POLICY,
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
// Freeze the producer's actual output before sanitization. The replay must
|
|
59
|
+
// independently preserve that output, rather than share a transformed oracle.
|
|
60
|
+
const rawExpected = deriveCapturedExpected(rawObservations, thresholds);
|
|
61
|
+
const sanitizedExpected = sanitizeDiagnosticValue(JSON.parse(JSON.stringify(rawExpected)));
|
|
62
|
+
aggregateStats.sanitized_value_count += sanitizedExpected.stats.sanitized_value_count;
|
|
63
|
+
aggregateStats.omitted_value_count += sanitizedExpected.stats.omitted_value_count;
|
|
64
|
+
const observations = {
|
|
65
|
+
...rawObservations,
|
|
66
|
+
sources: rawObservations.sources.map((source) => {
|
|
67
|
+
if (source.value === undefined)
|
|
68
|
+
return source;
|
|
69
|
+
const sanitized = sanitizeDiagnosticValue(source.value);
|
|
70
|
+
aggregateStats.sanitized_value_count += sanitized.stats.sanitized_value_count;
|
|
71
|
+
aggregateStats.omitted_value_count += sanitized.stats.omitted_value_count;
|
|
72
|
+
return { ...source, value: sanitized.value };
|
|
73
|
+
}),
|
|
74
|
+
};
|
|
75
|
+
const expected = sanitizedExpected.value;
|
|
59
76
|
if (input.findingId && !expected.findings.some((finding) => finding.id === input.findingId)) {
|
|
60
77
|
throw new Error(`finding "${input.findingId}" is not present in the captured findings projection`);
|
|
61
78
|
}
|
|
@@ -312,7 +329,7 @@ export function replayDiagnosticBundle(repoRoot, ref, now = new Date()) {
|
|
|
312
329
|
finding_count: actual.findings.length,
|
|
313
330
|
};
|
|
314
331
|
}
|
|
315
|
-
function readCapturedSource(repoRoot, sourceKind, relativePath
|
|
332
|
+
function readCapturedSource(repoRoot, sourceKind, relativePath) {
|
|
316
333
|
const path = join(repoRoot, relativePath);
|
|
317
334
|
if (!existsSync(path)) {
|
|
318
335
|
return { source_kind: sourceKind, capability: "unsupported", reason_code: "source_missing" };
|
|
@@ -328,10 +345,7 @@ function readCapturedSource(repoRoot, sourceKind, relativePath, aggregateStats)
|
|
|
328
345
|
: (() => {
|
|
329
346
|
throw new Error("source_is_not_regular_file");
|
|
330
347
|
})();
|
|
331
|
-
const
|
|
332
|
-
aggregateStats.sanitized_value_count += sanitized.stats.sanitized_value_count;
|
|
333
|
-
aggregateStats.omitted_value_count += sanitized.stats.omitted_value_count;
|
|
334
|
-
const value = sanitized.value;
|
|
348
|
+
const value = parsed;
|
|
335
349
|
const record = object(value);
|
|
336
350
|
return {
|
|
337
351
|
source_kind: sourceKind,
|
|
@@ -349,7 +363,7 @@ function readCapturedSource(repoRoot, sourceKind, relativePath, aggregateStats)
|
|
|
349
363
|
};
|
|
350
364
|
}
|
|
351
365
|
}
|
|
352
|
-
function readShadowAdmissionSource(repoRoot, capturedAt
|
|
366
|
+
function readShadowAdmissionSource(repoRoot, capturedAt) {
|
|
353
367
|
const sourceKind = "workflow.diagnostic-admission";
|
|
354
368
|
const workflowsRoot = join(repoRoot, ".harnery", "workflows");
|
|
355
369
|
if (!existsSync(workflowsRoot)) {
|
|
@@ -408,15 +422,12 @@ function readShadowAdmissionSource(repoRoot, capturedAt, aggregateStats) {
|
|
|
408
422
|
invalid_run_count: invalidCount,
|
|
409
423
|
records,
|
|
410
424
|
};
|
|
411
|
-
const sanitized = sanitizeDiagnosticValue(projection);
|
|
412
|
-
aggregateStats.sanitized_value_count += sanitized.stats.sanitized_value_count;
|
|
413
|
-
aggregateStats.omitted_value_count += sanitized.stats.omitted_value_count;
|
|
414
425
|
return {
|
|
415
426
|
source_kind: sourceKind,
|
|
416
427
|
capability: omittedCount > 0 || invalidCount > 0 ? "partial" : "supported",
|
|
417
428
|
schema_version: 1,
|
|
418
429
|
observed_at: records[0]?.ended_at,
|
|
419
|
-
value:
|
|
430
|
+
value: projection,
|
|
420
431
|
...(omittedCount > 0
|
|
421
432
|
? { reason_code: "bounded_workflow_window_truncated" }
|
|
422
433
|
: invalidCount > 0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-identity.d.ts","sourceRoot":"","sources":["../../../src/core/diagnostics/path-identity.ts"],"names":[],"mappings":"AAKA,sFAAsF;AACtF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
const HOME_PATH = /(?:[A-Za-z]:[\\/]Users[\\/](?:[^\\/\r\n\0:"<>|]+(?=[\\/])|[^\\/\s\0:]+)|\/home\/[^/\s\0:]+|\/Users\/[^/\s\0:]+)/g;
|
|
3
|
+
/** One stable representation for private home paths in values and identity inputs. */
|
|
4
|
+
export function canonicalizeDiagnosticIdentity(value) {
|
|
5
|
+
return value.replace(HOME_PATH, (home) => {
|
|
6
|
+
const digest = createHash("sha256")
|
|
7
|
+
.update("harnery-diagnostic-home-v1\0")
|
|
8
|
+
.update(home)
|
|
9
|
+
.digest("hex");
|
|
10
|
+
return `[REDACTED:home:${digest}]`;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/core/diagnostics/sanitize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/core/diagnostics/sanitize.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,iBAAiB,CAAC;CAC1B,CAGA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const SENSITIVE_KEY = /(?:authorization|cookie|credential|password|passwd|private[_-]?key|secret|session[_-]?token|access[_-]?token|refresh[_-]?token|api[_-]?key)/i;
|
|
2
2
|
const OMITTED_CONTENT_KEY = /(?:^|[_-])(?:environment|env|prompt|prompts|tool[_-]?payload|tool[_-]?result|transcript|transcripts)(?:$|[_-])/i;
|
|
3
|
-
const HOME_PATH = /(?:[A-Za-z]:\\Users\\[^\\\s]+|\/home\/[^/\s]+|\/Users\/[^/\s]+)/g;
|
|
4
3
|
const BEARER_VALUE = /\bBearer\s+[A-Za-z0-9._~+/-]+=*/gi;
|
|
5
4
|
const URL_CREDENTIALS = /([a-z][a-z0-9+.-]*:\/\/)[^\s/@:]+:[^\s/@]+@/gi;
|
|
6
5
|
const PRIVATE_KEY = /-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g;
|
|
@@ -62,7 +61,9 @@ function sanitize(value, stats, depth) {
|
|
|
62
61
|
return result;
|
|
63
62
|
}
|
|
64
63
|
function sanitizeString(value, stats) {
|
|
65
|
-
let next = value;
|
|
64
|
+
let next = canonicalizeDiagnosticIdentity(value);
|
|
65
|
+
if (next !== value)
|
|
66
|
+
stats.sanitized_value_count += 1;
|
|
66
67
|
const replacements = [
|
|
67
68
|
[PRIVATE_KEY, "[REDACTED:private-key]"],
|
|
68
69
|
[BEARER_VALUE, "Bearer [REDACTED:token]"],
|
|
@@ -72,7 +73,6 @@ function sanitizeString(value, stats) {
|
|
|
72
73
|
[SENSITIVE_ENV, "$1[REDACTED]"],
|
|
73
74
|
[SENSITIVE_ARGUMENT, "$1[REDACTED]"],
|
|
74
75
|
[URL_CREDENTIALS, (_match, scheme) => `${scheme}[REDACTED]@`],
|
|
75
|
-
[HOME_PATH, "[REDACTED:home]"],
|
|
76
76
|
];
|
|
77
77
|
for (const [pattern, replacement] of replacements) {
|
|
78
78
|
const replaced = next.replace(pattern, replacement);
|
|
@@ -82,3 +82,4 @@ function sanitizeString(value, stats) {
|
|
|
82
82
|
}
|
|
83
83
|
return next;
|
|
84
84
|
}
|
|
85
|
+
import { canonicalizeDiagnosticIdentity } from "./path-identity.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority-outbox.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/authority-outbox.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"authority-outbox.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/authority-outbox.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAM7C,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC;CACrC;AAQD,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,UAAU,MAAM,EAAE,CAAC;CACvC,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,kBAAkB,EAAE,UAAU,MAAM,EAAE,CAAC;IACvC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC7C,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EACL,YAAY,GACZ,UAAU,GACV,UAAU,GACV,gBAAgB,GAChB,YAAY,GACZ,WAAW,CAAC;CACjB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EACH,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,GACX,QAAQ,GACR,aAAa,GACb,SAAS,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,kCAAkC;IACjD,cAAc,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC;IACjC,2BAA2B,EAAE,UAAU,MAAM,EAAE,CAAC;IAChD,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,wCAAwC,CAAC;IACjD,cAAc,EAAE,CAAC,CAAC;IAClB,cAAc,EAAE,OAAO,MAAM,EAAE,CAAC;IAChC,2BAA2B,EAAE,UAAU,MAAM,EAAE,CAAC;IAChD,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,oCAAoC,CAAC;IAC7C,cAAc,EAAE,CAAC,CAAC;IAClB,cAAc,EAAE,OAAO,MAAM,EAAE,CAAC;IAChC,kBAAkB,EAAE,UAAU,MAAM,EAAE,CAAC;IACvC,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,UAAU,MAAM,EAAE,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,UAAU,MAAM,EAAE,CAAC;IAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wFAAwF;AACxF,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kCAAkC,GACxC,sBAAsB,CAExB;AAED,kFAAkF;AAClF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,kCAAkC,GACxC,sBAAsB,CAgBxB;AAED,qFAAqF;AACrF,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,sBAAsB,EACnC,KAAK,GAAE,qBAA0B,GAChC,sBAAsB,CAMxB;AA0CD,sGAAsG;AACtG,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,qBAAqB,EACjC,KAAK,GAAE,qBAA0B,GAChC,kBAAkB,CAapB;AAgED,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAO9F;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAG9F;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAa/E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAavE"}
|
|
@@ -5,6 +5,7 @@ import { stateFileMode } from "../../storage/modes.js";
|
|
|
5
5
|
import { fsyncParentDirectory } from "../../workflow/durable-record.js";
|
|
6
6
|
import { canonicalJsonV3, sha256V3 } from "./canonical.js";
|
|
7
7
|
import { liveGenesisIdV3 } from "./control.js";
|
|
8
|
+
import { assertCurrentGenerationV3, withGenerationCustodyV3 } from "./generation-custody.js";
|
|
8
9
|
import { assertEventV3 } from "./validate.js";
|
|
9
10
|
import { ensureEventV3Layout, eventV3Paths, writeEventV3 } from "./writer.js";
|
|
10
11
|
const SHA256_PATTERN = /^sha256:[a-f0-9]{64}$/;
|
|
@@ -36,8 +37,20 @@ export function buildAuthorityTransactionV3(input) {
|
|
|
36
37
|
}
|
|
37
38
|
/** Publish an already-built transaction exactly, preserving its pre-minted event. */
|
|
38
39
|
export function publishAuthorityTransactionV3(coordRoot, transaction, fence = {}) {
|
|
40
|
+
return withGenerationCustodyV3(coordRoot, [transaction.actor_instance_id, transaction.subject_instance_id], () => publishAuthorityTransactionWithCustodyV3(coordRoot, transaction, fence));
|
|
41
|
+
}
|
|
42
|
+
function publishAuthorityTransactionWithCustodyV3(coordRoot, transaction, fence) {
|
|
39
43
|
validateTransaction(transaction);
|
|
40
44
|
const paths = ensureEventV3Layout(coordRoot);
|
|
45
|
+
const committedPath = authorityCommittedPath(paths.authorityOutbox, transaction.transaction_id);
|
|
46
|
+
if (existsSync(committedPath)) {
|
|
47
|
+
if (readAuthorityReceiptV3(committedPath).transaction_digest !==
|
|
48
|
+
sha256V3(`${canonicalJsonV3(transaction)}\n`)) {
|
|
49
|
+
throw new Error("authority committed transaction conflicts with this transaction");
|
|
50
|
+
}
|
|
51
|
+
return transaction;
|
|
52
|
+
}
|
|
53
|
+
assertTransactionGeneration(coordRoot, transaction);
|
|
41
54
|
if (fence.expectedGenesisId && liveGenesisIdV3(coordRoot) !== fence.expectedGenesisId) {
|
|
42
55
|
throw new Error("authority transaction epoch was replaced before publication");
|
|
43
56
|
}
|
|
@@ -63,6 +76,15 @@ export function publishAuthorityTransactionV3(coordRoot, transaction, fence = {}
|
|
|
63
76
|
}
|
|
64
77
|
/** Apply or recognize the desired state, durably submit its event, then leave a hash-only receipt. */
|
|
65
78
|
export function reconcileAuthorityTransactionV3(coordRoot, transactionId, reconciler, fence = {}) {
|
|
79
|
+
assertTransactionId(transactionId);
|
|
80
|
+
const paths = ensureEventV3Layout(coordRoot);
|
|
81
|
+
const committedPath = authorityCommittedPath(paths.authorityOutbox, transactionId);
|
|
82
|
+
if (existsSync(committedPath))
|
|
83
|
+
return readAuthorityReceiptV3(committedPath);
|
|
84
|
+
const transaction = readAuthorityTransactionV3(authorityReadyPath(paths.authorityOutbox, transactionId));
|
|
85
|
+
return withGenerationCustodyV3(coordRoot, [transaction.actor_instance_id, transaction.subject_instance_id], () => reconcileAuthorityTransactionWithCustodyV3(coordRoot, transactionId, reconciler, fence));
|
|
86
|
+
}
|
|
87
|
+
function reconcileAuthorityTransactionWithCustodyV3(coordRoot, transactionId, reconciler, fence) {
|
|
66
88
|
assertTransactionId(transactionId);
|
|
67
89
|
const paths = ensureEventV3Layout(coordRoot);
|
|
68
90
|
const committedPath = authorityCommittedPath(paths.authorityOutbox, transactionId);
|
|
@@ -70,8 +92,10 @@ export function reconcileAuthorityTransactionV3(coordRoot, transactionId, reconc
|
|
|
70
92
|
return readAuthorityReceiptV3(committedPath);
|
|
71
93
|
const readyPath = authorityReadyPath(paths.authorityOutbox, transactionId);
|
|
72
94
|
const transaction = readAuthorityTransactionV3(readyPath);
|
|
95
|
+
assertTransactionGeneration(coordRoot, transaction);
|
|
73
96
|
const current = reconciler.readStateDigest();
|
|
74
97
|
if (current === transaction.expected_prior_state_digest) {
|
|
98
|
+
assertTransactionGeneration(coordRoot, transaction);
|
|
75
99
|
reconciler.apply(transaction.mutation, transaction.transaction_id);
|
|
76
100
|
}
|
|
77
101
|
else if (current !== transaction.desired_state_digest) {
|
|
@@ -80,6 +104,7 @@ export function reconcileAuthorityTransactionV3(coordRoot, transactionId, reconc
|
|
|
80
104
|
if (reconciler.readStateDigest() !== transaction.desired_state_digest) {
|
|
81
105
|
throw new Error("authority transaction did not reach its declared desired state");
|
|
82
106
|
}
|
|
107
|
+
assertTransactionGeneration(coordRoot, transaction);
|
|
83
108
|
const event = JSON.parse(transaction.event_row);
|
|
84
109
|
assertEventV3(event);
|
|
85
110
|
const durability = writeEventV3(coordRoot, event, {
|
|
@@ -110,6 +135,10 @@ export function reconcileAuthorityTransactionV3(coordRoot, transactionId, reconc
|
|
|
110
135
|
fsyncParentDirectory(readyPath);
|
|
111
136
|
return receipt;
|
|
112
137
|
}
|
|
138
|
+
function assertTransactionGeneration(coordRoot, transaction) {
|
|
139
|
+
const event = JSON.parse(transaction.event_row);
|
|
140
|
+
assertCurrentGenerationV3(coordRoot, transaction.actor_instance_id, "generation_id" in event.scope ? event.scope.generation_id : undefined);
|
|
141
|
+
}
|
|
113
142
|
export function listPendingAuthorityTransactionsV3(coordRoot) {
|
|
114
143
|
const outbox = eventV3Paths(coordRoot).authorityOutbox;
|
|
115
144
|
if (!existsSync(outbox))
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Serialize synchronous authority work with generation changes for these instances only. */
|
|
2
|
+
export declare function withGenerationCustodyV3<T>(coordRoot: string, instanceIds: readonly string[], operation: () => T): T;
|
|
3
|
+
/** The event already durably binds the generation; replay must not rebind its actor. */
|
|
4
|
+
export declare function assertCurrentGenerationV3(coordRoot: string, instanceId: string, generationId: string | undefined): void;
|
|
5
|
+
//# sourceMappingURL=generation-custody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generation-custody.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/generation-custody.ts"],"names":[],"mappings":"AAQA,6FAA6F;AAC7F,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,SAAS,EAAE,MAAM,CAAC,GACjB,CAAC,CAiCH;AAED,wFAAwF;AACxF,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,IAAI,CAKN"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { hostname } from "node:os";
|
|
3
|
+
import { join, resolve } from "node:path";
|
|
4
|
+
import { acquireNoClobberLease } from "../../workflow/workspaces/leases.js";
|
|
5
|
+
import { readHookProducerStateByInstanceV3 } from "./producers/recorder.js";
|
|
6
|
+
const held = new Set();
|
|
7
|
+
/** Serialize synchronous authority work with generation changes for these instances only. */
|
|
8
|
+
export function withGenerationCustodyV3(coordRoot, instanceIds, operation) {
|
|
9
|
+
const ids = [...new Set(instanceIds)].sort();
|
|
10
|
+
for (const id of ids) {
|
|
11
|
+
if (!/^inst_[a-zA-Z0-9._-]{1,128}$/.test(id)) {
|
|
12
|
+
throw new Error("generation custody instance is invalid");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const enter = (index) => {
|
|
16
|
+
const id = ids[index];
|
|
17
|
+
if (id === undefined)
|
|
18
|
+
return operation();
|
|
19
|
+
const key = `${resolve(coordRoot)}\0${id}`;
|
|
20
|
+
if (held.has(key))
|
|
21
|
+
return enter(index + 1);
|
|
22
|
+
const authority = createHash("sha256").update(key).digest("hex");
|
|
23
|
+
const lease = acquireNoClobberLease({
|
|
24
|
+
// Custody spans epoch rotation; the ledger directory itself is archived.
|
|
25
|
+
path: join(coordRoot, ".harnery", "private", "event-v3-generation-custody", authority),
|
|
26
|
+
scope: "event-v3-generation-custody",
|
|
27
|
+
authoritySha256: authority,
|
|
28
|
+
// Expiry never permits stealing a live/unknown owner. A dead local process
|
|
29
|
+
// can be recovered immediately, including after a cache-handoff crash.
|
|
30
|
+
staleAfterMs: 1,
|
|
31
|
+
validateStaleOwner: (owner) => owner.host === hostname() && owner.authority_sha256 === authority,
|
|
32
|
+
});
|
|
33
|
+
held.add(key);
|
|
34
|
+
try {
|
|
35
|
+
return enter(index + 1);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
held.delete(key);
|
|
39
|
+
lease.release();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
return enter(0);
|
|
43
|
+
}
|
|
44
|
+
/** The event already durably binds the generation; replay must not rebind its actor. */
|
|
45
|
+
export function assertCurrentGenerationV3(coordRoot, instanceId, generationId) {
|
|
46
|
+
const current = readHookProducerStateByInstanceV3(coordRoot, instanceId);
|
|
47
|
+
if (!generationId || !current || current.generation_id !== generationId) {
|
|
48
|
+
throw new Error("authority_generation_changed");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -22,6 +22,7 @@ export interface RecordCoordinationAuthorityV3Input<S extends CoordinationAuthor
|
|
|
22
22
|
bridge?: "codex-wsl";
|
|
23
23
|
expected_prior_state_digest: `sha256:${string}`;
|
|
24
24
|
desired_state_digest: `sha256:${string}`;
|
|
25
|
+
expected_generation_id?: `gen_${string}`;
|
|
25
26
|
monotonic_ns?: string;
|
|
26
27
|
observed_at?: string;
|
|
27
28
|
reconciler: AuthorityReconcilerV3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordination-recorder.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/producers/coordination-recorder.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAK5B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"coordination-recorder.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/producers/coordination-recorder.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAK5B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,eAAe,CAAC;AAM/E,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EAEvC,MAAM,mBAAmB,CAAC;AAyC3B,MAAM,WAAW,wCAAwC;IACvD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,kCAAkC,CACjD,CAAC,SAAS,6BAA6B,GAAG,6BAA6B;IAEvE,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,EAAE,iCAAiC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,QAAQ,MAAM,EAAE,CAAC;IACpC,mBAAmB,EAAE,QAAQ,MAAM,EAAE,CAAC;IACtC,WAAW,EAAE,OAAO,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2BAA2B,EAAE,UAAU,MAAM,EAAE,CAAC;IAChD,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;IACzC,sBAAsB,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,qBAAqB,CAAC;CACnC;AAED,MAAM,MAAM,mCAAmC,GAC3C;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,KAAK,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,KAAK,EAAE,qBAAqB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC/E;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEN;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,6BAA6B,EACnF,KAAK,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAC3C,mCAAmC,CAMrC;AAiOD,uFAAuF;AACvF,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,wCAAwC,GAAG,IAAI,CAgBjD;AAED,mGAAmG;AACnG,wBAAgB,4CAA4C,CAAC,CAAC,EAC5D,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,sBAAsB,EACnC,mBAAmB,EAAE,OAAO,EAC5B,SAAS,EAAE,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,SAAS,GAAG,iBAAiB,CAAA;CAAE,KAAK,CAAC,GAC/E,CAAC,CA+BH"}
|
|
@@ -11,6 +11,7 @@ import { canonicalJsonV3, normalizeNativeIdV3 } from "../canonical.js";
|
|
|
11
11
|
import { markObservedClockRegressionV3 } from "../clock-order.js";
|
|
12
12
|
import { readEventV3ControlState } from "../control.js";
|
|
13
13
|
import { fingerprintContextV3 } from "../fingerprint-keys.js";
|
|
14
|
+
import { assertCurrentGenerationV3, withGenerationCustodyV3 } from "../generation-custody.js";
|
|
14
15
|
import { clockIdV3, spanIdV3 } from "../ids.js";
|
|
15
16
|
import { closeSpanStateV3, openSpanStateV3 } from "../span-state.js";
|
|
16
17
|
import { EVENT_V3_LEDGER_RELATIVE_ROOT } from "../writer.js";
|
|
@@ -27,12 +28,17 @@ const MAX_OBSERVATIONS = 512;
|
|
|
27
28
|
* settled is refused rather than guessed at.
|
|
28
29
|
*/
|
|
29
30
|
export function recordCoordinationAuthorityV3(input) {
|
|
31
|
+
return withGenerationCustodyV3(input.coordRoot, [input.actor_instance_id, input.subject_instance_id], () => recordCoordinationAuthorityWithCustodyV3(input));
|
|
32
|
+
}
|
|
33
|
+
function recordCoordinationAuthorityWithCustodyV3(input) {
|
|
30
34
|
const control = readEventV3ControlState(input.coordRoot);
|
|
31
35
|
if (control.state !== input.mode)
|
|
32
36
|
return { state: "gate_closed", reason: control.state };
|
|
33
37
|
const hook = readJoinableHookProducerStateV3(input.coordRoot, input.adapter, input.native_actor_session_id, input.actor_instance_id);
|
|
34
38
|
if (!hook ||
|
|
35
39
|
hook.terminal ||
|
|
40
|
+
(input.expected_generation_id !== undefined &&
|
|
41
|
+
hook.generation_id !== input.expected_generation_id) ||
|
|
36
42
|
hook.instance_id !== input.actor_instance_id ||
|
|
37
43
|
!hook.last_event_id) {
|
|
38
44
|
return { state: "generation_unavailable", reason: "hook_generation_not_joinable" };
|
|
@@ -186,6 +192,7 @@ export function recordCoordinationAuthorityV3(input) {
|
|
|
186
192
|
mutation: normalized.mutation,
|
|
187
193
|
event: normalized.event,
|
|
188
194
|
});
|
|
195
|
+
assertCurrentGenerationV3(input.coordRoot, state.actor_instance_id, state.generation_id);
|
|
189
196
|
if (input.signal === "wait-ended" && waitId)
|
|
190
197
|
delete state.open_waits[waitId];
|
|
191
198
|
state.pending = { source_id: sourceId, transaction };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/producers/recorder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/producers/recorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { capabilityDriftPayloadsV3 } from "../capability-drift.js";
|
|
|
17
17
|
import { markObservedClockRegressionV3 } from "../clock-order.js";
|
|
18
18
|
import { readEventV3ControlState } from "../control.js";
|
|
19
19
|
import { fingerprintContextV3 } from "../fingerprint-keys.js";
|
|
20
|
+
import { withGenerationCustodyV3 } from "../generation-custody.js";
|
|
20
21
|
import { attestationIdV3, clockIdV3, delegationIdV3, eventIdV3, generationIdV3, spanIdV3, } from "../ids.js";
|
|
21
22
|
import { readLedgerV3 } from "../reader.js";
|
|
22
23
|
import { effectiveRuntimeTelemetryCapabilitiesV3, } from "../runtime-telemetry-capabilities.js";
|
|
@@ -291,6 +292,9 @@ function sleepSync(milliseconds) {
|
|
|
291
292
|
}
|
|
292
293
|
/** The pre-spool body of the recorder: requires the session's state lease to be held. */
|
|
293
294
|
function processHookSignalLocked(control, input, sessionHash, path) {
|
|
295
|
+
return withGenerationCustodyV3(input.coordRoot, [input.instance_id], () => processHookSignalWithCustodyLocked(control, input, sessionHash, path));
|
|
296
|
+
}
|
|
297
|
+
function processHookSignalWithCustodyLocked(control, input, sessionHash, path) {
|
|
294
298
|
const behavior = adapterBehavior(input.adapter);
|
|
295
299
|
const rootId = control.genesis.event.scope.root_id;
|
|
296
300
|
const epochId = control.genesis.profile.privacy_key_epoch;
|
|
@@ -2348,6 +2352,9 @@ function suppressClosedSpanSignal(input, sessionHash, category) {
|
|
|
2348
2352
|
* here so they cannot race each other or append activity after termination.
|
|
2349
2353
|
*/
|
|
2350
2354
|
export function recordApprovedSessionEndV3(input) {
|
|
2355
|
+
return withGenerationCustodyV3(input.coordRoot, [input.instance_id], () => recordApprovedSessionEndWithCustodyV3(input));
|
|
2356
|
+
}
|
|
2357
|
+
function recordApprovedSessionEndWithCustodyV3(input) {
|
|
2351
2358
|
const control = readEventV3ControlState(input.coordRoot);
|
|
2352
2359
|
if (control.state !== input.mode) {
|
|
2353
2360
|
return { state: "gate_closed", reason: control.state };
|
|
@@ -2618,72 +2625,76 @@ export function reanchorArchivedHookProducersV3(input) {
|
|
|
2618
2625
|
const previous = archived.state;
|
|
2619
2626
|
if (previous.terminal || !previous.started_event_id)
|
|
2620
2627
|
continue;
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
try {
|
|
2627
|
-
if (existsSync(path)) {
|
|
2628
|
-
const current = readProducerState(path);
|
|
2629
|
-
if (current.epoch_genesis_id === genesisId)
|
|
2630
|
-
continue;
|
|
2631
|
-
}
|
|
2632
|
-
const sourceEvent = `${previous.adapter}.epoch-rotation-reanchor`;
|
|
2633
|
-
const rotationInput = {
|
|
2634
|
-
coordRoot: input.coordRoot,
|
|
2635
|
-
mode: input.mode,
|
|
2636
|
-
signal: "session-start",
|
|
2637
|
-
payload: {
|
|
2638
|
-
raw: {},
|
|
2639
|
-
...(previous.current_native_turn_id ? { turn_id: previous.current_native_turn_id } : {}),
|
|
2640
|
-
...(adapterBehavior(previous.adapter).tracksExecutionMode && previous.cursor_mode
|
|
2641
|
-
? { cursor_mode: previous.cursor_mode }
|
|
2642
|
-
: {}),
|
|
2643
|
-
},
|
|
2644
|
-
adapter: previous.adapter,
|
|
2645
|
-
instance_id: previous.instance_id,
|
|
2646
|
-
producer_id: "prd_agent-hook",
|
|
2647
|
-
build_id: input.build_id,
|
|
2648
|
-
platform: input.platform,
|
|
2649
|
-
observed_at: observedAt,
|
|
2650
|
-
writerOptions: { expectedGenesisId: genesisId },
|
|
2651
|
-
};
|
|
2652
|
-
const state = newProducerState(rotationInput, previous.session_id, epochId, boundaryEventId, genesisId);
|
|
2653
|
-
const sessionStart = buildMidFlightSessionStart(rotationInput, state, rootId);
|
|
2654
|
-
if (sessionStart.event_type !== "session.started") {
|
|
2655
|
-
throw new Error("rotation re-anchor session start could not be normalized");
|
|
2628
|
+
withGenerationCustodyV3(input.coordRoot, [previous.instance_id], () => {
|
|
2629
|
+
const path = producerStatePath(input.coordRoot, previous.adapter, archived.sessionHash);
|
|
2630
|
+
const lease = acquireStateLeaseWithRetry(input.coordRoot, path, 40);
|
|
2631
|
+
if (!lease) {
|
|
2632
|
+
throw new Error(`event_v3_rotation_reanchor_busy:${previous.instance_id}`);
|
|
2656
2633
|
}
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2634
|
+
try {
|
|
2635
|
+
if (existsSync(path)) {
|
|
2636
|
+
const current = readProducerState(path);
|
|
2637
|
+
if (current.epoch_genesis_id === genesisId)
|
|
2638
|
+
return;
|
|
2639
|
+
}
|
|
2640
|
+
const sourceEvent = `${previous.adapter}.epoch-rotation-reanchor`;
|
|
2641
|
+
const rotationInput = {
|
|
2642
|
+
coordRoot: input.coordRoot,
|
|
2643
|
+
mode: input.mode,
|
|
2644
|
+
signal: "session-start",
|
|
2645
|
+
payload: {
|
|
2646
|
+
raw: {},
|
|
2647
|
+
...(previous.current_native_turn_id
|
|
2648
|
+
? { turn_id: previous.current_native_turn_id }
|
|
2649
|
+
: {}),
|
|
2650
|
+
...(adapterBehavior(previous.adapter).tracksExecutionMode && previous.cursor_mode
|
|
2651
|
+
? { cursor_mode: previous.cursor_mode }
|
|
2652
|
+
: {}),
|
|
2653
|
+
},
|
|
2654
|
+
adapter: previous.adapter,
|
|
2655
|
+
instance_id: previous.instance_id,
|
|
2656
|
+
producer_id: "prd_agent-hook",
|
|
2657
|
+
build_id: input.build_id,
|
|
2658
|
+
platform: input.platform,
|
|
2659
|
+
observed_at: observedAt,
|
|
2660
|
+
writerOptions: { expectedGenesisId: genesisId },
|
|
2661
|
+
};
|
|
2662
|
+
const state = newProducerState(rotationInput, previous.session_id, epochId, boundaryEventId, genesisId);
|
|
2663
|
+
const sessionStart = buildMidFlightSessionStart(rotationInput, state, rootId);
|
|
2664
|
+
if (sessionStart.event_type !== "session.started") {
|
|
2665
|
+
throw new Error("rotation re-anchor session start could not be normalized");
|
|
2666
|
+
}
|
|
2667
|
+
sessionStart.provenance = {
|
|
2668
|
+
...sessionStart.provenance,
|
|
2677
2669
|
source_event: sourceEvent,
|
|
2670
|
+
attestation: "derived",
|
|
2678
2671
|
confidence: "high",
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2672
|
+
attribution: {
|
|
2673
|
+
method: "session_env",
|
|
2674
|
+
state: "verified",
|
|
2675
|
+
subject_instance_id: state.instance_id,
|
|
2676
|
+
},
|
|
2677
|
+
};
|
|
2678
|
+
sessionStart.payload.resume = {
|
|
2679
|
+
state: "unknown",
|
|
2680
|
+
reason: "epoch_rotation_reanchor",
|
|
2681
|
+
};
|
|
2682
|
+
assertEventV3(sessionStart);
|
|
2683
|
+
commitEventLocked(rotationInput, state, path, sessionStart);
|
|
2684
|
+
sessions += 1;
|
|
2685
|
+
if (previous.current_turn_id && previous.current_turn_span) {
|
|
2686
|
+
commitMidFlightTurnStart(rotationInput, state, path, rootId, {
|
|
2687
|
+
source_event: sourceEvent,
|
|
2688
|
+
confidence: "high",
|
|
2689
|
+
attribution_method: "session_env",
|
|
2690
|
+
});
|
|
2691
|
+
turns += 1;
|
|
2692
|
+
}
|
|
2682
2693
|
}
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
}
|
|
2694
|
+
finally {
|
|
2695
|
+
lease.release();
|
|
2696
|
+
}
|
|
2697
|
+
});
|
|
2687
2698
|
}
|
|
2688
2699
|
return { sessions, turns };
|
|
2689
2700
|
}
|
|
@@ -2851,8 +2862,10 @@ export function readHookProducerStateByInstanceV3(coordRoot, instanceId) {
|
|
|
2851
2862
|
*/
|
|
2852
2863
|
export function readJoinableHookProducerStateV3(coordRoot, adapter, nativeSessionId, instanceId) {
|
|
2853
2864
|
const direct = readHookProducerStateV3(coordRoot, adapter, nativeSessionId);
|
|
2854
|
-
|
|
2855
|
-
|
|
2865
|
+
// A terminal native session belonging to this actor is stale authority,
|
|
2866
|
+
// not permission to adopt a replacement published under the same instance.
|
|
2867
|
+
if (direct?.instance_id === instanceId)
|
|
2868
|
+
return direct.terminal ? undefined : direct;
|
|
2856
2869
|
const byInstance = readHookProducerStateByInstanceV3(coordRoot, instanceId);
|
|
2857
2870
|
return byInstance?.adapter === adapter && !byInstance.terminal ? byInstance : undefined;
|
|
2858
2871
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-reader.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/support-storage/pack-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pack-reader.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/support-storage/pack-reader.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAI9B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,+BACf,SAAQ,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,+BAA+B,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAUD,wBAAsB,8BAA8B,CAClD,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,wBAA6B,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAarC;AAED,4FAA4F;AAC5F,wBAAuB,+BAA+B,CACpD,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,wBAA6B,GACpC,cAAc,CAAC,+BAA+B,CAAC,CAGjD;AAoGD,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,wBAA6B,GACpC,OAAO,CAAC,2BAA2B,CAAC,CAWtC;AAED,yFAAyF;AACzF,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,wBAA6B,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAarC;AAED,0FAA0F;AAC1F,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,wBAA6B,GACpC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BhE"}
|