pi-daddy 0.47.1 → 0.48.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/CHANGELOG.md +6 -0
- package/README.md +26 -1
- package/dist/executors/child-final.d.ts +3 -0
- package/dist/executors/child-final.d.ts.map +1 -1
- package/dist/executors/child-final.js +13 -1
- package/dist/executors/child-final.js.map +1 -1
- package/dist/governance/auto-mode-policy.d.ts.map +1 -1
- package/dist/governance/auto-mode-policy.js +32 -1
- package/dist/governance/auto-mode-policy.js.map +1 -1
- package/dist/governance/dispatch-operation-client.d.ts +4 -0
- package/dist/governance/dispatch-operation-client.d.ts.map +1 -0
- package/dist/governance/dispatch-operation-client.js +93 -0
- package/dist/governance/dispatch-operation-client.js.map +1 -0
- package/dist/governance/dispatch-operations.d.ts +17 -0
- package/dist/governance/dispatch-operations.d.ts.map +1 -0
- package/dist/governance/dispatch-operations.js +81 -0
- package/dist/governance/dispatch-operations.js.map +1 -0
- package/dist/governance/execution-retention.d.ts +5 -4
- package/dist/governance/execution-retention.d.ts.map +1 -1
- package/dist/governance/execution-retention.js +3 -1
- package/dist/governance/execution-retention.js.map +1 -1
- package/dist/governance/native-session.d.ts +10 -1
- package/dist/governance/native-session.d.ts.map +1 -1
- package/dist/governance/native-session.js +15 -0
- package/dist/governance/native-session.js.map +1 -1
- package/dist/governance/retention-contract.d.ts +30 -0
- package/dist/governance/retention-contract.d.ts.map +1 -1
- package/dist/governance/retention-contract.js +9 -4
- package/dist/governance/retention-contract.js.map +1 -1
- package/dist/kernel/auto-mode.d.ts +1 -0
- package/dist/kernel/auto-mode.d.ts.map +1 -1
- package/dist/kernel/auto-mode.js.map +1 -1
- package/dist/kernel/chain.d.ts +1 -0
- package/dist/kernel/chain.d.ts.map +1 -1
- package/dist/kernel/chain.js.map +1 -1
- package/dist/kernel/delegate.d.ts.map +1 -1
- package/dist/kernel/delegate.js +8 -0
- package/dist/kernel/delegate.js.map +1 -1
- package/dist/kernel/dispatch-operation.d.ts +47 -0
- package/dist/kernel/dispatch-operation.d.ts.map +1 -0
- package/dist/kernel/dispatch-operation.js +4 -0
- package/dist/kernel/dispatch-operation.js.map +1 -0
- package/dist/kernel/propagation.d.ts +4 -1
- package/dist/kernel/propagation.d.ts.map +1 -1
- package/dist/kernel/propagation.js +11 -1
- package/dist/kernel/propagation.js.map +1 -1
- package/dist/products/activity-timeline.d.ts +8 -0
- package/dist/products/activity-timeline.d.ts.map +1 -1
- package/dist/products/activity-timeline.js +8 -1
- package/dist/products/activity-timeline.js.map +1 -1
- package/dist/products/dashboard-screen.d.ts +1 -0
- package/dist/products/dashboard-screen.d.ts.map +1 -1
- package/dist/products/dashboard-screen.js +20 -2
- package/dist/products/dashboard-screen.js.map +1 -1
- package/extensions/activity-timeline.ts +12 -2
- package/extensions/delegate-chain.ts +46 -4
- package/extensions/delegation-operations.ts +171 -0
- package/extensions/delegation.ts +34 -10
- package/extensions/execute-child.ts +21 -3
- package/extensions/execution-evidence.ts +3 -0
- package/extensions/fanout-outcome.ts +1 -0
- package/extensions/grants.ts +2 -3
- package/extensions/run-delegation.ts +58 -3
- package/extensions/runtime-snapshot.ts +59 -1
- package/package.json +1 -1
- package/src/executors/child-final.ts +17 -1
- package/src/governance/auto-mode-policy.ts +27 -1
- package/src/governance/dispatch-operation-client.ts +96 -0
- package/src/governance/dispatch-operations.ts +81 -0
- package/src/governance/execution-retention.ts +7 -3
- package/src/governance/native-session.ts +28 -1
- package/src/governance/retention-contract.ts +9 -4
- package/src/kernel/auto-mode.ts +1 -0
- package/src/kernel/chain.ts +1 -0
- package/src/kernel/delegate.ts +14 -0
- package/src/kernel/dispatch-operation.ts +38 -0
- package/src/kernel/propagation.ts +18 -1
- package/src/products/activity-timeline.ts +10 -0
- package/src/products/dashboard-screen.ts +21 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog — pi-daddy
|
|
2
2
|
|
|
3
|
+
## 0.48.0 — 2026-10-09
|
|
4
|
+
|
|
5
|
+
- Admit a stable operation only once across the live delegation tree. Duplicate single/batch/chain requests return an execution reference; changed requests conflict and completed mutations never replay. Expose session-bound operation status and actual execution workspace to deterministic coordinators.
|
|
6
|
+
- Show last observed tool activity, elapsed silence and actual recorded working directory in the dashboard. Preserve normal native nested-tool permissions and cancellation; governed child Codemode remains refused.
|
|
7
|
+
- Preserve the active native branch in diagnostic retention when the executor qualified the final and the complete session bytes still match. New manifests use schema 2.1 with explicit `pi-captured-final` provenance; update strict 2.0 readers. Historical records stay readable, and truncated or changed files remain incomplete.
|
|
8
|
+
|
|
3
9
|
## 0.47.1 — 2026-10-09
|
|
4
10
|
|
|
5
11
|
- Clear each terminal row when the dashboard changes views or redraws shorter text, so previous task/history text cannot remain beside Versions or other rows. Unchanged frames still avoid redraws. Update Daddy and reopen the dashboard to use the fix.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pi-daddy
|
|
2
2
|
|
|
3
|
-
Source target: **0.
|
|
3
|
+
Source target: **0.48.0**. Before installation, verify that `npm view pi-daddy version` and Git tag `v0.48.0` both resolve to this release.
|
|
4
4
|
|
|
5
5
|
**Capability governance and coordination for [pi](https://github.com/badlogic/pi-mono)'s multi-level agent system.**
|
|
6
6
|
An orchestrator grants each sub-agent a deliberate subset of what it holds and withholds the rest. A sub-agent may
|
|
@@ -10,6 +10,24 @@ child process, with an optional append-only, hash-chained governance ledger.
|
|
|
10
10
|
This file is the product description, present tense. If code and this file disagree, fix this file. Agents start at
|
|
11
11
|
`AGENTS.md`, which carries the rules, the decisions still in force, the measured facts and the roadmap.
|
|
12
12
|
|
|
13
|
+
## Reliable workflow handoffs
|
|
14
|
+
|
|
15
|
+
Native delegation accepts an optional stable `operation_id`. The session owner admits one
|
|
16
|
+
matching request; a concurrent or later duplicate returns its existing execution reference.
|
|
17
|
+
It does not launch another child, replay a completed mutation, or grant approval. A changed
|
|
18
|
+
request under the same ID refuses. An intentional retry needs a new attempt after the
|
|
19
|
+
previous operation is proven settled or never started; uncertainty stays blocked.
|
|
20
|
+
Principal 4.12.0 supplies these IDs and exact candidate/report references automatically.
|
|
21
|
+
|
|
22
|
+
The dashboard shows the selected task's last observed tool event and time since that event.
|
|
23
|
+
Details include the actual recorded working directory and phase where available. Silence is
|
|
24
|
+
not proof of a hang, and a finished process is not an approved task. Tool observations retain
|
|
25
|
+
names and timestamps, not arguments or output. Diagnostic retention remains operator opt-in.
|
|
26
|
+
|
|
27
|
+
The coordinator can use Principal's native tool-only Codemode adapter. Nested calls retain
|
|
28
|
+
Pi's normal permission and cancellation hooks. Governed children cannot request `codemode`
|
|
29
|
+
or `principal_codemode`; that child execution path is not qualified.
|
|
30
|
+
|
|
13
31
|
## Install and first run
|
|
14
32
|
|
|
15
33
|
```bash
|
|
@@ -375,6 +393,13 @@ native JSONL session. The coordinator keeps its normal Pi session. Diagnostic ma
|
|
|
375
393
|
bytes go under `archive`; inspect each delegation result's retention status and manifest coverage for losses.
|
|
376
394
|
An opt-in is not a claim that every observation was retained. Keep the private directory until diagnosis is done;
|
|
377
395
|
the operator controls its lifetime and disposal.
|
|
396
|
+
Retention manifests now emit schema **2.1**. The reader still accepts historical 2.0 records; consumers
|
|
397
|
+
with a strict 2.0 schema must update before reading new manifests. A `pi-captured-final` branch observation
|
|
398
|
+
uses the executor's verified native final and an exact full-session byte hash. An ordinary JSONL file alone
|
|
399
|
+
does not establish its active branch. Changed, unavailable or truncated bytes keep that gap explicit.
|
|
400
|
+
The 1 MiB diagnostic session-copy bound remains a byte-storage limit, not a model token budget or work deadline;
|
|
401
|
+
a complete native source may exist even when its archived copy is truncated. Coverage remains incomplete and
|
|
402
|
+
retention never supplies task acceptance.
|
|
378
403
|
|
|
379
404
|
These files may contain task text, tool output and private model reasoning. Local diagnostic retention does not
|
|
380
405
|
enable JEV, provider egress, LoRA collection or training. Existing `/skill-harness` consent remains separate.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CapturedSessionBranch } from "../governance/native-session.ts";
|
|
1
2
|
import { BoundedReadCleanupError, readBoundedBytes } from "../kernel/bounded-read.ts";
|
|
2
3
|
export type ChildFinal = {
|
|
3
4
|
state: "complete";
|
|
@@ -11,6 +12,8 @@ export type ChildFinal = {
|
|
|
11
12
|
reason: string;
|
|
12
13
|
diagnosticText?: string;
|
|
13
14
|
};
|
|
15
|
+
/** Only the original in-process final carries this observation; JSON/copies do not recreate it. */
|
|
16
|
+
export declare function capturedFinalSession(final: ChildFinal): Readonly<CapturedSessionBranch> | undefined;
|
|
14
17
|
export declare class ChildFinalCapture {
|
|
15
18
|
private decoder;
|
|
16
19
|
private buffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-final.d.ts","sourceRoot":"","sources":["../../src/executors/child-final.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAMtF,MAAM,MAAM,UAAU,GAClB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"child-final.d.ts","sourceRoot":"","sources":["../../src/executors/child-final.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAMtF,MAAM,MAAM,UAAU,GAClB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAEnG;AACD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAC,CAAsB;IACpC,OAAO,CAAC,IAAI,CAAC,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA2C;gBAC9D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI;IAIrG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgB5B,OAAO,CAAC,KAAK;IAmDb,OAAO,CAAC,OAAO;IAOT,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,WAAW,0BAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CA+FnH"}
|
|
@@ -8,6 +8,11 @@ import { BoundedReadCleanupError, readBoundedBytes } from "../kernel/bounded-rea
|
|
|
8
8
|
const MAX_FINAL_BYTES = 4 * 1024 * 1024, MAX_LINE_BYTES = 32 * 1024 * 1024, MAX_SESSION_BYTES = 64 * 1024 * 1024;
|
|
9
9
|
const object = (x) => !!x && typeof x === "object" && !Array.isArray(x);
|
|
10
10
|
const hash = (s) => createHash("sha256").update(s, "utf8").digest("hex");
|
|
11
|
+
const capturedSessions = new WeakMap();
|
|
12
|
+
/** Only the original in-process final carries this observation; JSON/copies do not recreate it. */
|
|
13
|
+
export function capturedFinalSession(final) {
|
|
14
|
+
return capturedSessions.get(final);
|
|
15
|
+
}
|
|
11
16
|
export class ChildFinalCapture {
|
|
12
17
|
decoder = new TextDecoder("utf-8", { fatal: true });
|
|
13
18
|
buffer = "";
|
|
@@ -175,7 +180,7 @@ export class ChildFinalCapture {
|
|
|
175
180
|
!currentUser ||
|
|
176
181
|
!isDeepStrictEqual(currentUser.message, this.user))
|
|
177
182
|
throw Error("stream final does not match the current persisted branch and turn");
|
|
178
|
-
|
|
183
|
+
const complete = {
|
|
179
184
|
state: "complete",
|
|
180
185
|
text,
|
|
181
186
|
sessionId: this.sessionId,
|
|
@@ -183,6 +188,13 @@ export class ChildFinalCapture {
|
|
|
183
188
|
leafId: manager.getLeafId(),
|
|
184
189
|
sha256: hash(text),
|
|
185
190
|
};
|
|
191
|
+
capturedSessions.set(complete, Object.freeze({
|
|
192
|
+
path,
|
|
193
|
+
sessionId: this.sessionId,
|
|
194
|
+
leafId: complete.leafId,
|
|
195
|
+
sha256: createHash("sha256").update(read.bytes).digest("hex"),
|
|
196
|
+
}));
|
|
197
|
+
return complete;
|
|
186
198
|
}
|
|
187
199
|
catch (error) {
|
|
188
200
|
if (error instanceof BoundedReadCleanupError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-final.js","sourceRoot":"","sources":["../../src/executors/child-final.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAkB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"child-final.js","sourceRoot":"","sources":["../../src/executors/child-final.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-mode-policy.d.ts","sourceRoot":"","sources":["../../src/governance/auto-mode-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auto-mode-policy.d.ts","sourceRoot":"","sources":["../../src/governance/auto-mode-policy.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAShC,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,IAAI,gBAAgB,CAAC;IAC7B,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAAC;CACjE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;CACxB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmL7B;AA8CD,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,cAAc,CAiEtE"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { createDispatchOperations } from "./dispatch-operations.js";
|
|
2
|
+
import { connectDispatchOperations } from "./dispatch-operation-client.js";
|
|
1
3
|
/** Root-owned live Auto authority. Descendants receive read/admit access, never mutation access. */
|
|
2
4
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
3
5
|
import { chmod, unlink } from "node:fs/promises";
|
|
@@ -20,6 +22,7 @@ export async function createAutoModeAuthority(initial) {
|
|
|
20
22
|
ownerId: randomBytes(16).toString("hex"),
|
|
21
23
|
};
|
|
22
24
|
let enabled = initial.enabled, source = initial.source, revision = 0, closed = false;
|
|
25
|
+
const operations = createDispatchOperations();
|
|
23
26
|
const pending = new Map();
|
|
24
27
|
const waiters = new Set();
|
|
25
28
|
const sockets = new Set();
|
|
@@ -77,12 +80,13 @@ export async function createAutoModeAuthority(initial) {
|
|
|
77
80
|
socket.setEncoding("utf8");
|
|
78
81
|
socket.setTimeout(2000, () => socket.destroy());
|
|
79
82
|
const controller = new AbortController();
|
|
80
|
-
let input = "", handled = false, untrack;
|
|
83
|
+
let input = "", handled = false, untrack, abandonOperation;
|
|
81
84
|
socket.on("error", () => { });
|
|
82
85
|
socket.once("close", () => {
|
|
83
86
|
sockets.delete(socket);
|
|
84
87
|
controller.abort();
|
|
85
88
|
untrack?.();
|
|
89
|
+
abandonOperation?.();
|
|
86
90
|
});
|
|
87
91
|
const reply = (value) => {
|
|
88
92
|
if (!socket.destroyed)
|
|
@@ -120,6 +124,27 @@ export async function createAutoModeAuthority(initial) {
|
|
|
120
124
|
socket.setTimeout(0);
|
|
121
125
|
untrack = trackPending(request.approval);
|
|
122
126
|
}
|
|
127
|
+
else if (request.action === "operation-claim") {
|
|
128
|
+
const value = operations.claim(request.request);
|
|
129
|
+
if (!value.reused) {
|
|
130
|
+
socket.setTimeout(0);
|
|
131
|
+
abandonOperation = () => operations.abandoned(value.operation.operationId, value.ticket);
|
|
132
|
+
socket.write(JSON.stringify({ ok: true, value }) + "\n");
|
|
133
|
+
}
|
|
134
|
+
else
|
|
135
|
+
reply({ ok: true, value });
|
|
136
|
+
}
|
|
137
|
+
else if (request.action === "operation-read") {
|
|
138
|
+
reply({ ok: true, value: operations.read(request.operationId) });
|
|
139
|
+
}
|
|
140
|
+
else if (request.action === "operation-started") {
|
|
141
|
+
operations.started(request.operationId, request.ticket, request.cwd, request.workspaceId);
|
|
142
|
+
reply({ ok: true });
|
|
143
|
+
}
|
|
144
|
+
else if (request.action === "operation-finish") {
|
|
145
|
+
operations.finish(request.operationId, request.ticket, request.state, request.runtime);
|
|
146
|
+
reply({ ok: true });
|
|
147
|
+
}
|
|
123
148
|
else
|
|
124
149
|
throw new Error("Unknown Auto policy action");
|
|
125
150
|
}
|
|
@@ -148,7 +173,9 @@ export async function createAutoModeAuthority(initial) {
|
|
|
148
173
|
catch { }
|
|
149
174
|
};
|
|
150
175
|
process.once("exit", exit);
|
|
176
|
+
const operationAccess = connectDispatchOperations(reference);
|
|
151
177
|
return {
|
|
178
|
+
operations: operationAccess,
|
|
152
179
|
reference,
|
|
153
180
|
snapshot,
|
|
154
181
|
read: async () => snapshot(),
|
|
@@ -174,6 +201,7 @@ export async function createAutoModeAuthority(initial) {
|
|
|
174
201
|
if (closed)
|
|
175
202
|
return;
|
|
176
203
|
closed = true;
|
|
204
|
+
operationAccess.close();
|
|
177
205
|
enabled = false;
|
|
178
206
|
for (const wake of [...waiters])
|
|
179
207
|
wake();
|
|
@@ -238,6 +266,7 @@ function request(ref, action, signal) {
|
|
|
238
266
|
});
|
|
239
267
|
}
|
|
240
268
|
export function connectAutoMode(reference) {
|
|
269
|
+
const operations = connectDispatchOperations(reference);
|
|
241
270
|
let closed = false;
|
|
242
271
|
const active = new Set();
|
|
243
272
|
const pending = new Set();
|
|
@@ -260,6 +289,7 @@ export function connectAutoMode(reference) {
|
|
|
260
289
|
};
|
|
261
290
|
return {
|
|
262
291
|
reference,
|
|
292
|
+
operations,
|
|
263
293
|
read: async () => {
|
|
264
294
|
const value = (await call("read"));
|
|
265
295
|
if (!value ||
|
|
@@ -299,6 +329,7 @@ export function connectAutoMode(reference) {
|
|
|
299
329
|
},
|
|
300
330
|
close: async () => {
|
|
301
331
|
closed = true;
|
|
332
|
+
operations.close();
|
|
302
333
|
for (const controller of active)
|
|
303
334
|
controller.abort();
|
|
304
335
|
for (const socket of pending)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-mode-policy.js","sourceRoot":"","sources":["../../src/governance/auto-mode-policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-mode-policy.js","sourceRoot":"","sources":["../../src/governance/auto-mode-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AutoModeRef } from "../kernel/auto-mode.ts";
|
|
2
|
+
import type { OperationAccess } from "../kernel/dispatch-operation.ts";
|
|
3
|
+
export declare function connectDispatchOperations(reference: AutoModeRef): OperationAccess;
|
|
4
|
+
//# sourceMappingURL=dispatch-operation-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-operation-client.d.ts","sourceRoot":"","sources":["../../src/governance/dispatch-operation-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,iCAAiC,CAAC;AAEzC,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAqFjF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/** A held claim connection makes caller loss uncertain; another caller never inherits execution. */
|
|
2
|
+
import { createConnection } from "node:net";
|
|
3
|
+
export function connectDispatchOperations(reference) {
|
|
4
|
+
const sockets = new Set();
|
|
5
|
+
let closed = false;
|
|
6
|
+
const request = (action, input, signal, hold = false) => new Promise((resolve, reject) => {
|
|
7
|
+
if (closed || signal?.aborted)
|
|
8
|
+
return reject(Error("Operation owner unavailable or request aborted"));
|
|
9
|
+
const socket = createConnection(reference.socketPath);
|
|
10
|
+
sockets.add(socket);
|
|
11
|
+
let output = "", answered = false;
|
|
12
|
+
const cleanup = () => signal?.removeEventListener("abort", abort);
|
|
13
|
+
const fail = (error) => {
|
|
14
|
+
cleanup();
|
|
15
|
+
socket.destroy();
|
|
16
|
+
if (!answered) {
|
|
17
|
+
answered = true;
|
|
18
|
+
reject(error);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const abort = () => fail(Error("Operation request aborted"));
|
|
22
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
23
|
+
socket.setEncoding("utf8");
|
|
24
|
+
socket.setTimeout(2000, () => fail(Error("Operation owner unavailable")));
|
|
25
|
+
socket.once("error", () => fail(Error("Operation owner unavailable")));
|
|
26
|
+
socket.once("connect", () => socket.write(JSON.stringify({ ...reference, action, ...input }) + "\n"));
|
|
27
|
+
socket.once("close", () => {
|
|
28
|
+
sockets.delete(socket);
|
|
29
|
+
cleanup();
|
|
30
|
+
if (!answered)
|
|
31
|
+
fail(Error("Operation owner disconnected"));
|
|
32
|
+
});
|
|
33
|
+
socket.on("data", (chunk) => {
|
|
34
|
+
if (answered)
|
|
35
|
+
return;
|
|
36
|
+
output += chunk;
|
|
37
|
+
if (output.length > 65536)
|
|
38
|
+
return fail(Error("Operation response too large"));
|
|
39
|
+
const end = output.indexOf("\n");
|
|
40
|
+
if (end < 0)
|
|
41
|
+
return;
|
|
42
|
+
try {
|
|
43
|
+
const reply = JSON.parse(output.slice(0, end));
|
|
44
|
+
if (reply.ok !== true)
|
|
45
|
+
throw Error(reply.error ?? "Operation request failed");
|
|
46
|
+
answered = true;
|
|
47
|
+
cleanup();
|
|
48
|
+
socket.setTimeout(0);
|
|
49
|
+
if (!hold || reply.value?.reused)
|
|
50
|
+
socket.destroy();
|
|
51
|
+
resolve({ value: reply.value, socket });
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
fail(error instanceof Error ? error : Error(String(error)));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
claim: async (input, signal) => {
|
|
60
|
+
const { value, socket } = await request("operation-claim", { request: input }, signal, true);
|
|
61
|
+
if (value.reused)
|
|
62
|
+
return { operation: value.operation, reused: true };
|
|
63
|
+
const update = async (action, data) => {
|
|
64
|
+
if (socket.destroyed)
|
|
65
|
+
throw Error("Operation claim owner disconnected; settlement is uncertain");
|
|
66
|
+
return request(action, { operationId: input.operationId, ticket: value.ticket, ...data });
|
|
67
|
+
};
|
|
68
|
+
return {
|
|
69
|
+
operation: value.operation,
|
|
70
|
+
reused: false,
|
|
71
|
+
started: async (cwd, workspaceId) => {
|
|
72
|
+
await update("operation-started", { cwd, workspaceId });
|
|
73
|
+
},
|
|
74
|
+
finish: async (state, runtime) => {
|
|
75
|
+
try {
|
|
76
|
+
await update("operation-finish", { state, runtime });
|
|
77
|
+
Object.assign(value.operation, (await request("operation-read", { operationId: input.operationId })).value);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
socket.destroy();
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
read: async (operationId) => (await request("operation-read", { operationId })).value,
|
|
86
|
+
close: () => {
|
|
87
|
+
closed = true;
|
|
88
|
+
for (const socket of sockets)
|
|
89
|
+
socket.destroy();
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=dispatch-operation-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-operation-client.js","sourceRoot":"","sources":["../../src/governance/dispatch-operation-client.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,OAAO,EAAE,gBAAgB,EAAe,MAAM,UAAU,CAAC;AASzD,MAAM,UAAU,yBAAyB,CAAC,SAAsB;IAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,OAAO,GAAG,CACd,MAAc,EACd,KAAa,EACb,MAAoB,EACpB,IAAI,GAAG,KAAK,EAC6B,EAAE,CAC3C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,IAAI,MAAM,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,MAAM,GAAG,EAAE,EACb,QAAQ,GAAG,KAAK,CAAC;QACnB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACtG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,QAAQ;gBAAE,OAAO;YACrB,MAAM,IAAI,KAAK,CAAC;YAChB,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO;YACpB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;oBAAE,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;gBAC9E,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnD,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACL,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAuB,EAAE,MAAoB,EAA2B,EAAE;YACtF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7F,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACtE,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,EAAE;gBACpD,IAAI,MAAM,CAAC,SAAS;oBAAE,MAAM,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBACjG,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YAC5F,CAAC,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE;oBAClC,MAAM,MAAM,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC/B,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;wBACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,OAAO,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC9G,CAAC;4BAAS,CAAC;wBACT,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,WAAmB,EAAE,EAAE,CAClC,CAAC,MAAM,OAAO,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,KAAkC;QACvF,KAAK,EAAE,GAAG,EAAE;YACV,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OperationReference, OperationRequest } from "../kernel/dispatch-operation.ts";
|
|
2
|
+
export declare function createDispatchOperations(): {
|
|
3
|
+
claim(request: OperationRequest): {
|
|
4
|
+
reused: boolean;
|
|
5
|
+
operation: OperationReference;
|
|
6
|
+
ticket?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
reused: boolean;
|
|
9
|
+
operation: OperationReference;
|
|
10
|
+
ticket: string;
|
|
11
|
+
};
|
|
12
|
+
read(id: string): OperationReference | null;
|
|
13
|
+
started(id: string, ticket: string, cwd: string, workspaceId: string | null): void;
|
|
14
|
+
finish(id: string, ticket: string, state: OperationReference["state"], runtime?: OperationReference["runtime"]): void;
|
|
15
|
+
abandoned(id: string, ticket: string): void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=dispatch-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-operations.d.ts","sourceRoot":"","sources":["../../src/governance/dispatch-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAG5F,wBAAgB,wBAAwB;mBASrB,gBAAgB;;;;;;;;;aAqCtB,MAAM;gBAKH,MAAM,UAAU,MAAM,OAAO,MAAM,eAAe,MAAM,GAAG,IAAI;eAYhE,MAAM,UAAU,MAAM,SAAS,kBAAkB,CAAC,OAAO,CAAC,YAAY,kBAAkB,CAAC,SAAS,CAAC;kBAMhG,MAAM,UAAU,MAAM;EAMvC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Atomic leader election at the tree owner. No task text, execution permission or cached output. */
|
|
2
|
+
import { randomBytes } from "node:crypto";
|
|
3
|
+
import { validOperationId } from "../kernel/dispatch-operation.js";
|
|
4
|
+
export function createDispatchOperations() {
|
|
5
|
+
const records = new Map();
|
|
6
|
+
const copy = (value) => structuredClone(value);
|
|
7
|
+
const requireTicket = (id, ticket) => {
|
|
8
|
+
const row = records.get(id);
|
|
9
|
+
if (!row || typeof ticket !== "string" || row.ticket !== ticket)
|
|
10
|
+
throw Error("Operation owner mismatch");
|
|
11
|
+
return row;
|
|
12
|
+
};
|
|
13
|
+
return {
|
|
14
|
+
claim(request) {
|
|
15
|
+
if (!request ||
|
|
16
|
+
!validOperationId(request.operationId) ||
|
|
17
|
+
typeof request.requestDigest !== "string" ||
|
|
18
|
+
!/^[a-f0-9]{64}$/.test(request.requestDigest) ||
|
|
19
|
+
typeof request.executionId !== "string" ||
|
|
20
|
+
!request.executionId.startsWith("exec:") ||
|
|
21
|
+
request.executionId.length > 128 ||
|
|
22
|
+
typeof request.cwd !== "string" ||
|
|
23
|
+
!request.cwd.startsWith("/") ||
|
|
24
|
+
request.cwd.length > 4096 ||
|
|
25
|
+
!(request.workspaceId === null || typeof request.workspaceId === "string"))
|
|
26
|
+
throw Error("Invalid dispatch operation request");
|
|
27
|
+
const old = records.get(request.operationId);
|
|
28
|
+
if (old) {
|
|
29
|
+
if (old.digest !== request.requestDigest)
|
|
30
|
+
throw Error("Operation identity conflict; inspect the original request before choosing a new operation_id");
|
|
31
|
+
return { reused: true, operation: copy(old.value) };
|
|
32
|
+
}
|
|
33
|
+
// Never evict a terminal ID and accidentally permit a mutation to run twice.
|
|
34
|
+
if (records.size >= 4096)
|
|
35
|
+
throw Error("Session operation registry is full; no dispatch was admitted");
|
|
36
|
+
const now = new Date().toISOString(), ticket = randomBytes(24).toString("hex");
|
|
37
|
+
const value = {
|
|
38
|
+
operationId: request.operationId,
|
|
39
|
+
executionId: request.executionId,
|
|
40
|
+
cwd: request.cwd,
|
|
41
|
+
workspaceId: request.workspaceId,
|
|
42
|
+
state: "admitting",
|
|
43
|
+
startedAt: now,
|
|
44
|
+
updatedAt: now,
|
|
45
|
+
};
|
|
46
|
+
records.set(request.operationId, { digest: request.requestDigest, ticket, value });
|
|
47
|
+
return { reused: false, operation: copy(value), ticket };
|
|
48
|
+
},
|
|
49
|
+
read(id) {
|
|
50
|
+
if (!validOperationId(id))
|
|
51
|
+
throw Error("Invalid operation_id");
|
|
52
|
+
const value = records.get(id)?.value;
|
|
53
|
+
return value ? copy(value) : null;
|
|
54
|
+
},
|
|
55
|
+
started(id, ticket, cwd, workspaceId) {
|
|
56
|
+
const row = requireTicket(id, ticket);
|
|
57
|
+
if (row.value.state !== "admitting")
|
|
58
|
+
throw Error("Operation is no longer admitting");
|
|
59
|
+
if (typeof cwd !== "string" ||
|
|
60
|
+
!cwd.startsWith("/") ||
|
|
61
|
+
cwd.length > 4096 ||
|
|
62
|
+
!(workspaceId === null || typeof workspaceId === "string"))
|
|
63
|
+
throw Error("Invalid operation workspace");
|
|
64
|
+
row.value = { ...row.value, state: "running", cwd, workspaceId, updatedAt: new Date().toISOString() };
|
|
65
|
+
},
|
|
66
|
+
finish(id, ticket, state, runtime) {
|
|
67
|
+
const row = requireTicket(id, ticket);
|
|
68
|
+
if (!["settled", "not-started", "uncertain"].includes(state))
|
|
69
|
+
throw Error("Invalid operation terminal state");
|
|
70
|
+
if (!["admitting", "running"].includes(row.value.state))
|
|
71
|
+
throw Error("Operation already ended");
|
|
72
|
+
row.value = { ...row.value, state, ...(runtime ? { runtime } : {}), updatedAt: new Date().toISOString() };
|
|
73
|
+
},
|
|
74
|
+
abandoned(id, ticket) {
|
|
75
|
+
const row = requireTicket(id, ticket);
|
|
76
|
+
if (["admitting", "running"].includes(row.value.state))
|
|
77
|
+
row.value = { ...row.value, state: "uncertain", updatedAt: new Date().toISOString() };
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=dispatch-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-operations.js","sourceRoot":"","sources":["../../src/governance/dispatch-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type NativeSessionObservation, type NativeSessionManager } from "./native-session.ts";
|
|
1
|
+
import { type NativeSessionObservation, type NativeSessionManager, type CapturedSessionBranch } from "./native-session.ts";
|
|
2
2
|
export { buildExecutionRetentionManifest, parseExecutionRetentionManifest, RETENTION_SCHEMA, } from "./retention-contract.ts";
|
|
3
3
|
export { ENV_NATIVE_SESSION_ROOT, readNativeSession, parseNativeSessionBytes, type NativeSessionObservation, type NativeSessionManager, } from "./native-session.ts";
|
|
4
4
|
export { ENV_EXECUTION_ARCHIVE } from "../kernel/env-names.ts";
|
|
5
5
|
/** Operator-owned archive boundary; never a model-facing parameter or an authority source. */
|
|
6
|
-
export declare const RETENTION_VERSION = "2.
|
|
6
|
+
export declare const RETENTION_VERSION = "2.1";
|
|
7
7
|
export interface RetentionIdentity {
|
|
8
8
|
executionId: string;
|
|
9
9
|
parentExecutionId: string | null;
|
|
@@ -22,7 +22,7 @@ export interface RetainedContent {
|
|
|
22
22
|
bytes: number | null;
|
|
23
23
|
}
|
|
24
24
|
export interface ExecutionRetentionManifest {
|
|
25
|
-
version: "2.0";
|
|
25
|
+
version: "2.0" | "2.1";
|
|
26
26
|
archiveId: string;
|
|
27
27
|
identity: RetentionIdentity;
|
|
28
28
|
native: {
|
|
@@ -71,9 +71,10 @@ export declare const retentionConfigurationDigest: (configuration: unknown) => s
|
|
|
71
71
|
export declare function beginExecutionRetention(identity: RetentionIdentity, directory?: string | undefined): {
|
|
72
72
|
/** Read-only native API reference; never derive IDs from the locator or a displayed name. */
|
|
73
73
|
observeSession: (reference: NonNullable<{
|
|
74
|
-
source: "herdr-id" | "herdr-path" | "pi-session-file" | "pi-session-manager";
|
|
74
|
+
source: "herdr-id" | "herdr-path" | "pi-session-file" | "pi-session-manager" | "pi-captured-final";
|
|
75
75
|
value: string;
|
|
76
76
|
manager?: NativeSessionManager;
|
|
77
|
+
capturedBranch?: CapturedSessionBranch;
|
|
77
78
|
} | undefined>) => void;
|
|
78
79
|
observeSessionManager(manager: NativeSessionManager): void;
|
|
79
80
|
status: () => RetentionStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-retention.d.ts","sourceRoot":"","sources":["../../src/governance/execution-retention.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"execution-retention.d.ts","sourceRoot":"","sources":["../../src/governance/execution-retention.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { ENV_EXECUTION_ARCHIVE } from "../kernel/env-names.js";
|
|
|
9
9
|
export { ENV_EXECUTION_ARCHIVE } from "../kernel/env-names.js";
|
|
10
10
|
import { isUnderPiProjectDir } from "../kernel/project-paths.js";
|
|
11
11
|
/** Operator-owned archive boundary; never a model-facing parameter or an authority source. */
|
|
12
|
-
export const RETENTION_VERSION = "2.
|
|
12
|
+
export const RETENTION_VERSION = "2.1";
|
|
13
13
|
const LIMIT = 1024 * 1024;
|
|
14
14
|
const MAX_ACTIVE = 32;
|
|
15
15
|
let active = 0;
|
|
@@ -169,6 +169,7 @@ export function beginExecutionRetention(identity, directory = process.env[ENV_EX
|
|
|
169
169
|
source: reference.source,
|
|
170
170
|
value: reference.value,
|
|
171
171
|
...(reference.manager ? { manager: reference.manager } : {}),
|
|
172
|
+
...(reference.capturedBranch ? { capturedBranch: { ...reference.capturedBranch } } : {}),
|
|
172
173
|
};
|
|
173
174
|
if (nativeTask)
|
|
174
175
|
return;
|
|
@@ -191,6 +192,7 @@ export function beginExecutionRetention(identity, directory = process.env[ENV_EX
|
|
|
191
192
|
path: current.value,
|
|
192
193
|
source: current.source,
|
|
193
194
|
manager: current.manager,
|
|
195
|
+
capturedBranch: current.capturedBranch,
|
|
194
196
|
expectedSessionId: pinnedSessionId,
|
|
195
197
|
expectedFile: pinnedFile,
|
|
196
198
|
});
|