pi-daddy 0.46.0 → 0.46.1
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 +38 -2
- package/contracts/ledger-record/v1/governance-event.schema.json +2 -0
- package/dist/governance/approval-prompt.d.ts +4 -11
- package/dist/governance/approval-prompt.d.ts.map +1 -1
- package/dist/governance/approval-prompt.js +83 -24
- package/dist/governance/approval-prompt.js.map +1 -1
- package/dist/governance/ledger-v3-validation.js +1 -1
- package/dist/governance/ledger-v3-validation.js.map +1 -1
- package/dist/governance/ledger.d.ts +3 -4
- package/dist/governance/ledger.d.ts.map +1 -1
- package/dist/governance/ledger.js +1 -1
- package/dist/governance/ledger.js.map +1 -1
- package/extensions/activity-timeline.ts +94 -31
- package/extensions/execution-controls.ts +42 -0
- package/extensions/grants-command.ts +4 -0
- package/extensions/grants.ts +1 -0
- package/package.json +1 -1
- package/src/governance/approval-prompt.ts +86 -29
- package/src/governance/ledger-v3-validation.ts +1 -1
- package/src/governance/ledger.ts +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog — pi-daddy
|
|
2
2
|
|
|
3
|
+
## 0.46.1 — 2026-10-08
|
|
4
|
+
|
|
5
|
+
- Correct activity prompt/final attribution across consecutive root turns using Pi's actual hook order. Finalized message transformations are observed within the current turn; steering and canceled turns cannot seed the next task.
|
|
6
|
+
- Interactive approvals now wait for the human by default. Explicit `PI_DADDY_APPROVAL_TIMEOUT` deadlines still work; expiry, dismissal and caller cancellation remain refusals with distinct outcomes and retry guidance. The published ledger `gateOutcome` enum adds `expired` and `aborted`; schema-pinned consumers must update their pin.
|
|
7
|
+
- Show effective child wall/idle deadlines and diagnostic retention settings in `/grants`. Existing child defaults remain unchanged. Document a single-launch private native-session/diagnostic opt-in, separate from JEV/LoRA consent.
|
|
8
|
+
|
|
3
9
|
## 0.46.0 — 2026-10-08
|
|
4
10
|
|
|
5
11
|
Qualify owned Herdr execution on Linux x64 with client/server 0.8.2 and protocol 20. Native ownership gates execution and independently reaps descendants after coordinator, launcher or server loss; final answers use the same Pi 1.0.4 settled/persisted checks as captured execution. Add a durable session settlement journal and trusted runtime snapshot bridge for one-shot Principal resume. Unsupported versions refuse without backend substitution.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pi-daddy
|
|
2
2
|
|
|
3
|
-
Source target: **0.46.
|
|
3
|
+
Source target: **0.46.1**. Before installation, verify that `npm view pi-daddy version` and Git tag `v0.46.1` 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
|
|
@@ -216,7 +216,7 @@ work, final availability, subtree cleanup and optional observation completeness
|
|
|
216
216
|
execution returns `isError` with its available evidence. Display, diagnostics and optional recording cannot replace
|
|
217
217
|
the primary final. Unknown cleanup retains capacity and workspace exclusion.
|
|
218
218
|
|
|
219
|
-
Pi and TypeBox are wildcard host-provided peers so Pi's extension loader supplies one shared runtime copy. Development and release qualification pin exact Pi **1.0.4**; later Pi versions require new qualification. Prefer a Pi-managed install under a host pinned to 1.0.4. An ordinary standalone npm install may resolve newer peer versions and is outside this qualification. In a Pi-managed no-peer install, standalone help, version and reporting remain available; run initialization inside Pi with `/grants init`. Use Principal **4.
|
|
219
|
+
Pi and TypeBox are wildcard host-provided peers so Pi's extension loader supplies one shared runtime copy. Development and release qualification pin exact Pi **1.0.4**; later Pi versions require new qualification. Prefer a Pi-managed install under a host pinned to 1.0.4. An ordinary standalone npm install may resolve newer peer versions and is outside this qualification. In a Pi-managed no-peer install, standalone help, version and reporting remain available; run initialization inside Pi with `/grants init`. Use Principal **4.11.1** with this runtime's `delegate_describe` contract. Native phases use `plan`, `build`, `review`, `debug`, and `investigate` with their returned `definitionId`; independent parallel work uses one `delegate_all` batch.
|
|
220
220
|
|
|
221
221
|
Final capture preserves whitespace and concatenates text blocks without inserting separators. Tool-call terminals, empty visible finals and non-`stop` reasons are unavailable. Persisted message comparisons ignore object key order while preserving array order and every field value. The shared `final-conformance.json` table checks these semantics in both runtime and harness. Capture remains bounded: 4 MiB visible final, 32 MiB protocol line, 64 MiB persisted session, and a 3-second bounded session read. Exceeding a limit reports an unavailable final and blocks dependent handoffs; it does not imply the worker failed to settle.
|
|
222
222
|
|
|
@@ -276,6 +276,16 @@ limits still apply independently; this is not a lifetime call quota.
|
|
|
276
276
|
The retired `PI_DADDY_EPISODE_COST_CEILING`, `PI_DADDY_ADVISOR`, `PI_DADDY_ADVISOR_KEY`,
|
|
277
277
|
`PI_DADDY_ADVISOR_MODEL` and `PI_DADDY_ADVISOR_TASK_EGRESS` inputs are inert compatibility inputs.
|
|
278
278
|
|
|
279
|
+
Interactive approval prompts wait for the human by default. Set `PI_DADDY_APPROVAL_TIMEOUT` to canonical
|
|
280
|
+
whole seconds (1 through 2,147,483) for an explicit deadline; unset it or use literal `0` to wait indefinitely.
|
|
281
|
+
Expiry, user dismissal and caller cancellation have distinct `expired`, `dismissed` and `aborted` outcomes.
|
|
282
|
+
Each grants no permission and explains how to retry the delegation for a new prompt. Existing approvals
|
|
283
|
+
remain usable without consulting an unused timeout setting. Malformed values refuse a needed new prompt.
|
|
284
|
+
|
|
285
|
+
`/grants` shows effective child deadlines, approval waiting policy, and diagnostic retention settings.
|
|
286
|
+
Child wall/idle controls remain runtime safety bounds; zero or malformed child settings select their defaults.
|
|
287
|
+
They do not add time or token instructions to model prompts.
|
|
288
|
+
|
|
279
289
|
`PI_DADDY_CHILD_IDLE_TIMEOUT` is seconds without activity before a child is stopped (default fifteen minutes);
|
|
280
290
|
activity is output, a child-session-file change, or Linux process-tree CPU/descendant activity.
|
|
281
291
|
`PI_DADDY_CHILD_TIMEOUT` is the runaway ceiling for a child that never goes quiet (default six hours). The remaining
|
|
@@ -315,6 +325,32 @@ or a connected dashboard to edit session overrides. Delegation never opens an au
|
|
|
315
325
|
Valid thinking values are `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. `/grants` shows the
|
|
316
326
|
resolved value and source for every displayed definition.
|
|
317
327
|
|
|
328
|
+
### Keep evidence for one diagnostic session
|
|
329
|
+
|
|
330
|
+
Native child transcripts and execution diagnostics are separate opt-ins. To retain them for one Pi launch,
|
|
331
|
+
create private local directories outside the repository and scope the settings to that command:
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
diagnostic_root=$(mktemp -d "${TMPDIR:-/tmp}/pi-daddy-diagnostic.XXXXXX")
|
|
335
|
+
mkdir -m 700 "$diagnostic_root/native" "$diagnostic_root/archive"
|
|
336
|
+
PI_DADDY_RETAIN_NATIVE_SESSIONS=1 \
|
|
337
|
+
PI_DADDY_NATIVE_SESSION_ROOT="$diagnostic_root/native" \
|
|
338
|
+
PI_DADDY_EXECUTION_ARCHIVE="$diagnostic_root/archive" \
|
|
339
|
+
pi
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Use `/grants` to confirm the session's opt-in and destinations. The native root must be an existing canonical
|
|
343
|
+
absolute path owned by your user, mode 0700, without symlink ancestors. Each delegated execution gets a fresh
|
|
344
|
+
native JSONL session. The coordinator keeps its normal Pi session. Diagnostic manifests and bounded captured
|
|
345
|
+
bytes go under `archive`; inspect each delegation result's retention status and manifest coverage for losses.
|
|
346
|
+
An opt-in is not a claim that every observation was retained. Keep the private directory until diagnosis is done;
|
|
347
|
+
the operator controls its lifetime and disposal.
|
|
348
|
+
|
|
349
|
+
These files may contain task text, tool output and private model reasoning. Local diagnostic retention does not
|
|
350
|
+
enable JEV, provider egress, LoRA collection or training. Existing `/skill-harness` consent remains separate.
|
|
351
|
+
Without native-session opt-in, temporary child transcripts are removed after settlement and cannot be recovered
|
|
352
|
+
later from the activity timeline.
|
|
353
|
+
|
|
318
354
|
## Retired intervention inputs
|
|
319
355
|
|
|
320
356
|
External advisors, monetary cost gates and the first-delegation model chooser were removed. These recognized old
|
|
@@ -32,20 +32,13 @@ export interface PromptRequest {
|
|
|
32
32
|
bindingKey?: string;
|
|
33
33
|
signal?: AbortSignal;
|
|
34
34
|
}
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
* `scope: null` alone conflates four different kinds of no — a caller that needs to know whether a
|
|
39
|
-
* PERSON actually declined (as opposed to nobody being there to ask, a dismissal, or the dialog itself
|
|
40
|
-
* breaking) cannot recover that from `scope` or from parsing `reason`. Only "declined" means a human said
|
|
41
|
-
* no; the other three are absence-of-signal, not a signal.
|
|
42
|
-
*/
|
|
43
|
-
export declare const PROMPT_OUTCOME_KINDS: readonly ["granted", "declined", "dismissed", "no-ui", "error"];
|
|
35
|
+
/** Only declined means a human chose Deny. Expiry, cancellation and dismissal grant nothing. */
|
|
36
|
+
export declare const PROMPT_OUTCOME_KINDS: readonly ["granted", "declined", "dismissed", "expired", "aborted", "no-ui", "error"];
|
|
44
37
|
export type PromptOutcomeKind = (typeof PROMPT_OUTCOME_KINDS)[number];
|
|
45
38
|
export interface PromptOutcome {
|
|
46
39
|
/** The scope the human chose, or null for any form of no. */
|
|
47
40
|
scope: ApprovalScope | null;
|
|
48
|
-
/** Which
|
|
41
|
+
/** Which outcome this was. Set on every return path. */
|
|
49
42
|
kind: PromptOutcomeKind;
|
|
50
43
|
/** Why, when the answer was no. */
|
|
51
44
|
reason?: string;
|
|
@@ -75,7 +68,7 @@ export interface ApprovalGate {
|
|
|
75
68
|
/**
|
|
76
69
|
* Read `PI_DADDY_APPROVAL_TIMEOUT`, in SECONDS, into the milliseconds pi expects.
|
|
77
70
|
*
|
|
78
|
-
*
|
|
71
|
+
* Absent or literal `0` waits for the human without a deadline. Other values must be canonical whole seconds
|
|
79
72
|
* within Node's signed 32-bit millisecond timer limit; malformed settings refuse a needed prompt.
|
|
80
73
|
*/
|
|
81
74
|
export declare function timeoutMsFromEnv(raw: string | undefined): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-prompt.d.ts","sourceRoot":"","sources":["../../src/governance/approval-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAChD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;CACpE;AAED,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAItD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED
|
|
1
|
+
{"version":3,"file":"approval-prompt.d.ts","sourceRoot":"","sources":["../../src/governance/approval-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAChD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;CACpE;AAED,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAItD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,gGAAgG;AAChG,eAAO,MAAM,oBAAoB,uFAQvB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,wDAAwD;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,6GAA6G;IAC7G,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO5E;AA+DD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,IAAI,CAAC,OAAO,EAAE,mBAAmB,KAAK,YAAY,CAG3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,GAAE,iBAA6B,GACtC,YAAY,CAgFd"}
|
|
@@ -16,26 +16,24 @@ export const SCOPE_LABELS = {
|
|
|
16
16
|
session: "Allow for this session",
|
|
17
17
|
always: "Always allow in this project (30 days)",
|
|
18
18
|
};
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
/** Only declined means a human chose Deny. Expiry, cancellation and dismissal grant nothing. */
|
|
20
|
+
export const PROMPT_OUTCOME_KINDS = [
|
|
21
|
+
"granted",
|
|
22
|
+
"declined",
|
|
23
|
+
"dismissed",
|
|
24
|
+
"expired",
|
|
25
|
+
"aborted",
|
|
26
|
+
"no-ui",
|
|
27
|
+
"error",
|
|
28
|
+
];
|
|
29
29
|
/**
|
|
30
30
|
* Read `PI_DADDY_APPROVAL_TIMEOUT`, in SECONDS, into the milliseconds pi expects.
|
|
31
31
|
*
|
|
32
|
-
*
|
|
32
|
+
* Absent or literal `0` waits for the human without a deadline. Other values must be canonical whole seconds
|
|
33
33
|
* within Node's signed 32-bit millisecond timer limit; malformed settings refuse a needed prompt.
|
|
34
34
|
*/
|
|
35
35
|
export function timeoutMsFromEnv(raw) {
|
|
36
|
-
if (raw === undefined)
|
|
37
|
-
return DEFAULT_TIMEOUT_MS;
|
|
38
|
-
if (raw === "0")
|
|
36
|
+
if (raw === undefined || raw === "0")
|
|
39
37
|
return undefined;
|
|
40
38
|
if (!/^[1-9][0-9]*$/.test(raw) || Number(raw) > 2_147_483)
|
|
41
39
|
throw new Error("PI_DADDY_APPROVAL_TIMEOUT must be literal 0 or whole seconds 1..2147483 without signs, padding or units");
|
|
@@ -44,6 +42,63 @@ export function timeoutMsFromEnv(raw) {
|
|
|
44
42
|
function labelToScope(label, scopes) {
|
|
45
43
|
return scopes.find((s) => SCOPE_LABELS[s] === label) ?? null;
|
|
46
44
|
}
|
|
45
|
+
const interrupted = (request, kind) => ({
|
|
46
|
+
scope: null,
|
|
47
|
+
kind,
|
|
48
|
+
reason: `approval for ${request.capability} ${kind === "expired" ? "expired before an answer" : "was canceled"}. ` +
|
|
49
|
+
"No permission was granted. Retry the delegation to open a new approval prompt.",
|
|
50
|
+
});
|
|
51
|
+
/** Own the deadline so Pi's undefined dismissal cannot erase whether our timer or cancellation fired. */
|
|
52
|
+
async function selectApproval(options, request, title, labels) {
|
|
53
|
+
const timeout = typeof options.timeoutMs === "function" ? options.timeoutMs() : options.timeoutMs;
|
|
54
|
+
const controller = new AbortController();
|
|
55
|
+
let outcome;
|
|
56
|
+
let wake;
|
|
57
|
+
const stopped = new Promise((resolve) => {
|
|
58
|
+
wake = resolve;
|
|
59
|
+
});
|
|
60
|
+
const stop = (kind) => {
|
|
61
|
+
if (outcome)
|
|
62
|
+
return;
|
|
63
|
+
outcome = interrupted(request, kind);
|
|
64
|
+
// Resolve our tagged outcome before a UI reacts to abort by returning undefined.
|
|
65
|
+
wake(outcome);
|
|
66
|
+
controller.abort();
|
|
67
|
+
};
|
|
68
|
+
const abort = () => stop("aborted");
|
|
69
|
+
request.signal?.addEventListener("abort", abort, { once: true });
|
|
70
|
+
const timer = timeout === undefined ? undefined : setTimeout(() => stop("expired"), timeout);
|
|
71
|
+
try {
|
|
72
|
+
if (request.signal?.aborted)
|
|
73
|
+
stop("aborted");
|
|
74
|
+
if (outcome)
|
|
75
|
+
return outcome;
|
|
76
|
+
const chosen = await Promise.race([options.ui.select(title, labels, { signal: controller.signal }), stopped]);
|
|
77
|
+
return outcome ?? chosen;
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
if (timer !== undefined)
|
|
81
|
+
clearTimeout(timer);
|
|
82
|
+
request.signal?.removeEventListener("abort", abort);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function joinApproval(pending, request) {
|
|
86
|
+
if (!request.signal)
|
|
87
|
+
return pending;
|
|
88
|
+
let abort;
|
|
89
|
+
const stopped = new Promise((resolve) => {
|
|
90
|
+
abort = () => resolve(interrupted(request, "aborted"));
|
|
91
|
+
request.signal.addEventListener("abort", abort, { once: true });
|
|
92
|
+
if (request.signal.aborted)
|
|
93
|
+
abort();
|
|
94
|
+
});
|
|
95
|
+
try {
|
|
96
|
+
return await Promise.race([pending, stopped]);
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
request.signal.removeEventListener("abort", abort);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
47
102
|
/**
|
|
48
103
|
* Build gates that SHARE one single-flight queue.
|
|
49
104
|
*
|
|
@@ -71,10 +126,7 @@ export function createApprovalGate(options, inFlight = new Map()) {
|
|
|
71
126
|
(request.task ? `\n task: ${request.task}` : "");
|
|
72
127
|
let chosen;
|
|
73
128
|
try {
|
|
74
|
-
chosen = await options
|
|
75
|
-
timeout: typeof options.timeoutMs === "function" ? options.timeoutMs() : options.timeoutMs,
|
|
76
|
-
signal: request.signal,
|
|
77
|
-
});
|
|
129
|
+
chosen = await selectApproval(options, request, title, [DENY_LABEL, ...scopes.map((s) => SCOPE_LABELS[s])]);
|
|
78
130
|
}
|
|
79
131
|
catch (error) {
|
|
80
132
|
// A governance layer that errors must deny, not permit. This is a dialog malfunction, not a
|
|
@@ -82,10 +134,17 @@ export function createApprovalGate(options, inFlight = new Map()) {
|
|
|
82
134
|
return { scope: null, kind: "error", reason: `approval dialog failed, denying (${String(error)})` };
|
|
83
135
|
}
|
|
84
136
|
if (request.signal?.aborted)
|
|
85
|
-
return
|
|
86
|
-
|
|
137
|
+
return interrupted(request, "aborted");
|
|
138
|
+
if (typeof chosen === "object")
|
|
139
|
+
return chosen;
|
|
140
|
+
// Only an ordinary UI dismissal reaches undefined; our deadline and abort carry explicit outcomes.
|
|
87
141
|
if (chosen === undefined) {
|
|
88
|
-
return {
|
|
142
|
+
return {
|
|
143
|
+
scope: null,
|
|
144
|
+
kind: "dismissed",
|
|
145
|
+
reason: `approval for ${request.capability} was dismissed. No permission was granted. ` +
|
|
146
|
+
"Retry the delegation to open a new approval prompt.",
|
|
147
|
+
};
|
|
89
148
|
}
|
|
90
149
|
if (chosen === DENY_LABEL) {
|
|
91
150
|
return { scope: null, kind: "declined", reason: `${request.capability} was denied by a human` };
|
|
@@ -98,7 +157,7 @@ export function createApprovalGate(options, inFlight = new Map()) {
|
|
|
98
157
|
return {
|
|
99
158
|
async request(request) {
|
|
100
159
|
if (request.signal?.aborted)
|
|
101
|
-
return
|
|
160
|
+
return interrupted(request, "aborted");
|
|
102
161
|
if (!options.hasUI) {
|
|
103
162
|
// Nobody was there to ask — distinct from a person declining, which is why this is its own kind
|
|
104
163
|
// rather than being folded into "declined" (see PromptOutcomeKind).
|
|
@@ -119,9 +178,9 @@ export function createApprovalGate(options, inFlight = new Map()) {
|
|
|
119
178
|
const existing = inFlight.get(key);
|
|
120
179
|
if (!existing)
|
|
121
180
|
break;
|
|
122
|
-
const outcome = await existing;
|
|
181
|
+
const outcome = await joinApproval(existing, request);
|
|
123
182
|
if (request.signal?.aborted)
|
|
124
|
-
return
|
|
183
|
+
return interrupted(request, "aborted");
|
|
125
184
|
// **`joined` marks the rider, and the ledger depends on it (R-66).** Sharing a non-`once` outcome
|
|
126
185
|
// is correct — the human authorised the capability for the session, not for one child — but the
|
|
127
186
|
// caller then stamped `approvalSource: "prompt"` on every one of them, so a fan-out of eight wrote
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-prompt.js","sourceRoot":"","sources":["../../src/governance/approval-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAyC,MAAM,uBAAuB,CAAC;AAa1G,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,wBAAwB;IACjC,MAAM,EAAE,wCAAwC;CACjD,CAAC;AAcF
|
|
1
|
+
{"version":3,"file":"approval-prompt.js","sourceRoot":"","sources":["../../src/governance/approval-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ const SHA256_RE = /^[a-f0-9]{64}$/i;
|
|
|
19
19
|
const EXECUTORS = new Set(["process", "herdr"]);
|
|
20
20
|
const APPROVAL_SOURCES = new Set(["prompt", "session", "persisted", "inherited"]);
|
|
21
21
|
const APPROVAL_SCOPES = new Set(["once", "session", "always"]);
|
|
22
|
-
const GATE_OUTCOMES = new Set(["declined", "dismissed", "no-ui", "error"]);
|
|
22
|
+
const GATE_OUTCOMES = new Set(["declined", "dismissed", "expired", "aborted", "no-ui", "error"]);
|
|
23
23
|
const LEASE_OUTCOMES = new Set([
|
|
24
24
|
"acquired",
|
|
25
25
|
"uncontended",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-v3-validation.js","sourceRoot":"","sources":["../../src/governance/ledger-v3-validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ledger-v3-validation.js","sourceRoot":"","sources":["../../src/governance/ledger-v3-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ import type { RuntimeLedgerEvent } from "./ledger-events.ts";
|
|
|
29
29
|
export declare const LEDGER_VERSION: 3;
|
|
30
30
|
export declare const LEDGER_EVENT_KINDS: readonly ["capability_decision", "workspace_lease", "child_lifecycle", "cost_gate", "session_config", "episode_outcome"];
|
|
31
31
|
export type LedgerEventKind = (typeof LEDGER_EVENT_KINDS)[number];
|
|
32
|
-
export declare const LEDGER_GATE_OUTCOMES: readonly ["declined", "dismissed", "no-ui", "error"];
|
|
32
|
+
export declare const LEDGER_GATE_OUTCOMES: readonly ["declined", "dismissed", "expired", "aborted", "no-ui", "error"];
|
|
33
33
|
export type LedgerGateOutcome = (typeof LEDGER_GATE_OUTCOMES)[number];
|
|
34
34
|
export interface LedgerEventBase {
|
|
35
35
|
/** Optional only on the legacy-compatible `GrantRecord` public type; every v3 event builder writes it. */
|
|
@@ -123,9 +123,8 @@ export interface GrantRecord extends LedgerEventBase {
|
|
|
123
123
|
* The discriminant was already computed and thrown away. ADR-0026 leans on this vocabulary being able to
|
|
124
124
|
* say *"nobody was there to ask"* and be believed, so it is recorded rather than inferred.
|
|
125
125
|
*
|
|
126
|
-
* **Privacy is unchanged**: this is a fixed
|
|
127
|
-
*
|
|
128
|
-
* four-member ledger enum because the approval source/scope fields already record a yes.
|
|
126
|
+
* **Privacy is unchanged**: this is a fixed enum, not task-authored text. Explicit expiry and caller
|
|
127
|
+
* cancellation have their own outcomes; `granted` is omitted because approval source/scope records a yes.
|
|
129
128
|
*/
|
|
130
129
|
gateOutcome?: LedgerGateOutcome;
|
|
131
130
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/governance/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK7D,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AACzC,eAAO,MAAM,kBAAkB,0HAOrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/governance/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export const LEDGER_EVENT_KINDS = [
|
|
|
32
32
|
"session_config",
|
|
33
33
|
"episode_outcome",
|
|
34
34
|
];
|
|
35
|
-
export const LEDGER_GATE_OUTCOMES = ["declined", "dismissed", "no-ui", "error"];
|
|
35
|
+
export const LEDGER_GATE_OUTCOMES = ["declined", "dismissed", "expired", "aborted", "no-ui", "error"];
|
|
36
36
|
export function buildRecord(args) {
|
|
37
37
|
if (args.episodeId !== undefined)
|
|
38
38
|
assertEpisodeId(args.episodeId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/governance/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAU,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,gBAAgB;IAChB,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/governance/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,13 @@ interface HookContext {
|
|
|
21
21
|
cwd: string;
|
|
22
22
|
model?: { id?: string };
|
|
23
23
|
thinkingLevel?: string;
|
|
24
|
+
sessionManager?: {
|
|
25
|
+
getBranch(): Array<{
|
|
26
|
+
id: string;
|
|
27
|
+
type: string;
|
|
28
|
+
message?: { role?: string; content?: unknown; stopReason?: string };
|
|
29
|
+
}>;
|
|
30
|
+
};
|
|
24
31
|
ui: { notify(message: string, level?: "info" | "warning" | "error"): void };
|
|
25
32
|
}
|
|
26
33
|
const digest = (text: string) => createHash("sha256").update(text).digest("hex");
|
|
@@ -32,7 +39,11 @@ const digest = (text: string) => createHash("sha256").update(text).digest("hex")
|
|
|
32
39
|
export function registerActivityTimeline(pi: ExtensionAPI, session?: ActivitySessionState, lifecycleTool = true): void {
|
|
33
40
|
let recorder: ActivityTimelineRecorder | undefined,
|
|
34
41
|
pendingFinal: string | undefined,
|
|
35
|
-
|
|
42
|
+
pendingStopReason: string | undefined,
|
|
43
|
+
observedUser: string | undefined,
|
|
44
|
+
pendingStart: { event: unknown; prompt: string; priorIds: Set<string> } | undefined;
|
|
45
|
+
let turnPriorIds = new Set<string>();
|
|
46
|
+
let activeRoot = false;
|
|
36
47
|
let paths = new Map<string, string>(),
|
|
37
48
|
available = new Map<string, ActivitySkill>();
|
|
38
49
|
let reported = false;
|
|
@@ -77,6 +88,44 @@ export function registerActivityTimeline(pi: ExtensionAPI, session?: ActivitySes
|
|
|
77
88
|
await target.skill("skill_available", fact);
|
|
78
89
|
}
|
|
79
90
|
};
|
|
91
|
+
const messageText = (content: unknown): string =>
|
|
92
|
+
typeof content === "string"
|
|
93
|
+
? content
|
|
94
|
+
: Array.isArray(content)
|
|
95
|
+
? content
|
|
96
|
+
.filter((part) => part?.type === "text")
|
|
97
|
+
.map((part) => part.text ?? "")
|
|
98
|
+
.join("")
|
|
99
|
+
: "";
|
|
100
|
+
// Pi emits before_agent_start before user message_end. Read the finalized branch only after
|
|
101
|
+
// every message transformer has run; never carry a prior turn's user into the next task.
|
|
102
|
+
const startPending = async (ctx: HookContext) => {
|
|
103
|
+
const pending = pendingStart;
|
|
104
|
+
if (!pending) return;
|
|
105
|
+
const user = ctx.sessionManager
|
|
106
|
+
?.getBranch()
|
|
107
|
+
.find((entry) => !pending.priorIds.has(entry.id) && entry.type === "message" && entry.message?.role === "user");
|
|
108
|
+
const target = current(ctx);
|
|
109
|
+
const taskId = await target.start(
|
|
110
|
+
user ? messageText(user.message?.content) : (observedUser ?? pending.prompt),
|
|
111
|
+
ctx.model?.id,
|
|
112
|
+
ctx.thinkingLevel,
|
|
113
|
+
);
|
|
114
|
+
pendingStart = undefined;
|
|
115
|
+
observedUser = undefined;
|
|
116
|
+
if (session) session.activity = { rootId: target.rootId, path: target.path, ...(taskId ? { taskId } : {}) };
|
|
117
|
+
await skills(pending.event, target);
|
|
118
|
+
};
|
|
119
|
+
const resetTurn = () => {
|
|
120
|
+
activeRoot = false;
|
|
121
|
+
pendingStart = undefined;
|
|
122
|
+
observedUser = undefined;
|
|
123
|
+
pendingFinal = undefined;
|
|
124
|
+
pendingStopReason = undefined;
|
|
125
|
+
turnPriorIds = new Set();
|
|
126
|
+
paths.clear();
|
|
127
|
+
available.clear();
|
|
128
|
+
};
|
|
80
129
|
if (lifecycleTool)
|
|
81
130
|
pi.registerTool({
|
|
82
131
|
name: "activity_lifecycle",
|
|
@@ -101,6 +150,8 @@ export function registerActivityTimeline(pi: ExtensionAPI, session?: ActivitySes
|
|
|
101
150
|
},
|
|
102
151
|
});
|
|
103
152
|
pi.on("session_start", (_event, ctx: HookContext) => {
|
|
153
|
+
resetTurn();
|
|
154
|
+
recorder = undefined;
|
|
104
155
|
try {
|
|
105
156
|
recorder = current(ctx);
|
|
106
157
|
// A leaf observer attaches to the parent-owned child event; a root gets a stable session identity.
|
|
@@ -122,42 +173,45 @@ export function registerActivityTimeline(pi: ExtensionAPI, session?: ActivitySes
|
|
|
122
173
|
}
|
|
123
174
|
return undefined;
|
|
124
175
|
});
|
|
176
|
+
pi.on("session_shutdown", () => {
|
|
177
|
+
resetTurn();
|
|
178
|
+
recorder = undefined;
|
|
179
|
+
});
|
|
125
180
|
pi.on("before_agent_start", async (event, ctx: HookContext) => {
|
|
126
181
|
try {
|
|
182
|
+
resetTurn();
|
|
127
183
|
const target = current(ctx);
|
|
128
|
-
//
|
|
129
|
-
//
|
|
184
|
+
// Leaves attach to the parent-owned execution. Roots bind the current finalized user at
|
|
185
|
+
// the first context boundary, or at settlement if cancelled before the first model call.
|
|
130
186
|
if (!process.env[ENV_ACTIVITY_TASK]) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
187
|
+
activeRoot = true;
|
|
188
|
+
turnPriorIds = new Set(ctx.sessionManager?.getBranch().map((entry) => entry.id) ?? []);
|
|
189
|
+
pendingStart = { event, prompt: (event as { prompt?: string }).prompt ?? "", priorIds: turnPriorIds };
|
|
190
|
+
if (session) session.activity = { rootId: target.rootId, path: target.path };
|
|
191
|
+
} else await skills(event, target);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
report(ctx, error);
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
});
|
|
197
|
+
pi.on("context", async (_event, ctx: HookContext) => {
|
|
198
|
+
try {
|
|
199
|
+
await startPending(ctx);
|
|
141
200
|
} catch (error) {
|
|
142
201
|
report(ctx, error);
|
|
143
202
|
}
|
|
144
203
|
return undefined;
|
|
145
204
|
});
|
|
146
205
|
pi.on("message_end", (event) => {
|
|
147
|
-
const message = (
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
.map((part) => part.text ?? "")
|
|
157
|
-
.join("")
|
|
158
|
-
: "";
|
|
159
|
-
if (message?.role === "user") finalizedUser = text;
|
|
160
|
-
if (message?.role === "assistant") pendingFinal = text;
|
|
206
|
+
const message = (event as { message?: { role?: string; content?: unknown; stopReason?: string } }).message;
|
|
207
|
+
// This fallback is scoped to this pending start. Steering within an active turn cannot
|
|
208
|
+
// overwrite its initial prompt or seed the next root task.
|
|
209
|
+
if (message?.role === "user" && pendingStart && observedUser === undefined)
|
|
210
|
+
observedUser = messageText(message.content);
|
|
211
|
+
if (message?.role === "assistant") {
|
|
212
|
+
pendingFinal = messageText(message.content);
|
|
213
|
+
pendingStopReason = message.stopReason;
|
|
214
|
+
}
|
|
161
215
|
return undefined;
|
|
162
216
|
});
|
|
163
217
|
pi.on("tool_execution_start", (event) => {
|
|
@@ -178,19 +232,28 @@ export function registerActivityTimeline(pi: ExtensionAPI, session?: ActivitySes
|
|
|
178
232
|
return undefined;
|
|
179
233
|
});
|
|
180
234
|
pi.on("agent_settled", async (event, ctx: HookContext) => {
|
|
235
|
+
if (!activeRoot) return undefined;
|
|
181
236
|
try {
|
|
237
|
+
await startPending(ctx);
|
|
238
|
+
const final = ctx.sessionManager
|
|
239
|
+
?.getBranch()
|
|
240
|
+
.findLast(
|
|
241
|
+
(entry) => !turnPriorIds.has(entry.id) && entry.type === "message" && entry.message?.role === "assistant",
|
|
242
|
+
);
|
|
243
|
+
const stopReason = final?.message?.stopReason ?? pendingStopReason;
|
|
182
244
|
if (recorder && !process.env[ENV_ACTIVITY_TASK])
|
|
183
245
|
await recorder.finish(
|
|
184
|
-
pendingFinal,
|
|
185
|
-
(event as {
|
|
246
|
+
final ? messageText(final.message?.content) : pendingFinal,
|
|
247
|
+
(event as { aborted?: boolean }).aborted || stopReason === "aborted"
|
|
186
248
|
? "cancelled"
|
|
187
|
-
:
|
|
249
|
+
: stopReason === "error"
|
|
188
250
|
? "failed"
|
|
189
251
|
: "completed",
|
|
190
252
|
);
|
|
191
|
-
pendingFinal = undefined;
|
|
192
253
|
} catch (error) {
|
|
193
254
|
report(ctx, error);
|
|
255
|
+
} finally {
|
|
256
|
+
resetTurn();
|
|
194
257
|
}
|
|
195
258
|
return undefined;
|
|
196
259
|
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Operator-facing execution settings; display never changes admission, deadlines or retention. */
|
|
2
|
+
import { timeoutFromEnv, idleTimeoutFromEnv } from "../src/kernel/run-child.ts";
|
|
3
|
+
import { timeoutMsFromEnv } from "../src/governance/approval-prompt.ts";
|
|
4
|
+
import {
|
|
5
|
+
ENV_APPROVAL_TIMEOUT,
|
|
6
|
+
ENV_CHILD_TIMEOUT,
|
|
7
|
+
ENV_CHILD_IDLE_TIMEOUT,
|
|
8
|
+
ENV_EXECUTION_ARCHIVE,
|
|
9
|
+
} from "../src/kernel/env-names.ts";
|
|
10
|
+
|
|
11
|
+
export function renderExecutionControls(
|
|
12
|
+
nativeSessionRoot: string | undefined,
|
|
13
|
+
env: NodeJS.ProcessEnv = process.env,
|
|
14
|
+
): string[] {
|
|
15
|
+
let approval: string;
|
|
16
|
+
try {
|
|
17
|
+
const timeout = timeoutMsFromEnv(env[ENV_APPROVAL_TIMEOUT]);
|
|
18
|
+
approval = timeout === undefined ? "wait for human; no deadline" : `${timeout / 1000}s configured deadline`;
|
|
19
|
+
} catch {
|
|
20
|
+
approval = `${ENV_APPROVAL_TIMEOUT} invalid; a needed new prompt will refuse`;
|
|
21
|
+
}
|
|
22
|
+
const source = (key: string) => (env[key] === undefined ? "default" : `from ${key}; zero/invalid uses default`);
|
|
23
|
+
return [
|
|
24
|
+
` child wall ${timeoutFromEnv(env[ENV_CHILD_TIMEOUT]) / 1000}s (${source(ENV_CHILD_TIMEOUT)})`,
|
|
25
|
+
` child idle ${idleTimeoutFromEnv(env[ENV_CHILD_IDLE_TIMEOUT]) / 1000}s (${source(ENV_CHILD_IDLE_TIMEOUT)})`,
|
|
26
|
+
" process safety controls; no time/token budget is added to the model prompt",
|
|
27
|
+
` approval ${approval}`,
|
|
28
|
+
` transcripts ${
|
|
29
|
+
nativeSessionRoot === undefined
|
|
30
|
+
? "off"
|
|
31
|
+
: nativeSessionRoot
|
|
32
|
+
? `opted in at ${JSON.stringify(nativeSessionRoot)}; destination checked at dispatch`
|
|
33
|
+
: "opted in but native session root is missing"
|
|
34
|
+
}`,
|
|
35
|
+
` diagnostics ${
|
|
36
|
+
env[ENV_EXECUTION_ARCHIVE]
|
|
37
|
+
? `configured at ${JSON.stringify(env[ENV_EXECUTION_ARCHIVE])}; check each result's retention status`
|
|
38
|
+
: "off"
|
|
39
|
+
}`,
|
|
40
|
+
" local diagnostic retention is separate from JEV/LoRA consent",
|
|
41
|
+
];
|
|
42
|
+
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* being whatever happened to be in scope.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import { renderExecutionControls } from "./execution-controls.ts";
|
|
15
16
|
import type { Capability } from "../src/kernel/resolve.ts";
|
|
16
17
|
import type { ExecutorChoice } from "../src/executors/executor.ts";
|
|
17
18
|
import type { Catalog } from "../src/kernel/catalog.ts";
|
|
@@ -25,6 +26,8 @@ import type { ResolvedDefinitionRuntime } from "./definition-runtime.ts";
|
|
|
25
26
|
export interface GrantsCommandContext {
|
|
26
27
|
cwd: string;
|
|
27
28
|
governed: boolean;
|
|
29
|
+
/** Host opt-in captured by this session, not a later environment reread. */
|
|
30
|
+
nativeSessionRoot?: string;
|
|
28
31
|
ownGrant: Capability[];
|
|
29
32
|
/**
|
|
30
33
|
* Which executor this session settled on, and why — ADR-0031.
|
|
@@ -407,6 +410,7 @@ export const grantsCommand = {
|
|
|
407
410
|
// ADR-0031, and its probe is only defensible because this line exists. Placed next to `holding` so the
|
|
408
411
|
// two facts about what a spawn will be sit together.
|
|
409
412
|
` executor ${executor.disclosure}`,
|
|
413
|
+
...renderExecutionControls(ctx.grants.nativeSessionRoot),
|
|
410
414
|
` depth ${depth} of max ${maxDepth}${maxDepth <= 0 ? " (spawning disabled)" : ""}`,
|
|
411
415
|
` ledger ${ledgerPath || "(not recording — set PI_DADDY_LEDGER)"}`,
|
|
412
416
|
` approvals ${sessionApprovals.size} this session, ${valid.size} persisted` +
|
package/extensions/grants.ts
CHANGED
|
@@ -462,6 +462,7 @@ export default function (pi: ExtensionAPI, trustedSession?: GrantsSession) {
|
|
|
462
462
|
},
|
|
463
463
|
}
|
|
464
464
|
: {}),
|
|
465
|
+
nativeSessionRoot: session.nativeSessionRoot,
|
|
465
466
|
catalog: session.catalog,
|
|
466
467
|
definitions: session.definitions,
|
|
467
468
|
sessionApprovals: session.sessionApprovals,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-daddy",
|
|
3
|
-
"version": "0.46.
|
|
3
|
+
"version": "0.46.1",
|
|
4
4
|
"description": "Capability governance for pi sub-agents: spawn Agent Skills (SKILL.md) definitions whose allowed-tools becomes a grant that can only narrow going down a delegation tree, enforced by pi's own --tools allowlist, with an append-only ledger.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -43,21 +43,22 @@ export interface PromptRequest {
|
|
|
43
43
|
signal?: AbortSignal;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
/** Only declined means a human chose Deny. Expiry, cancellation and dismissal grant nothing. */
|
|
47
|
+
export const PROMPT_OUTCOME_KINDS = [
|
|
48
|
+
"granted",
|
|
49
|
+
"declined",
|
|
50
|
+
"dismissed",
|
|
51
|
+
"expired",
|
|
52
|
+
"aborted",
|
|
53
|
+
"no-ui",
|
|
54
|
+
"error",
|
|
55
|
+
] as const;
|
|
55
56
|
export type PromptOutcomeKind = (typeof PROMPT_OUTCOME_KINDS)[number];
|
|
56
57
|
|
|
57
58
|
export interface PromptOutcome {
|
|
58
59
|
/** The scope the human chose, or null for any form of no. */
|
|
59
60
|
scope: ApprovalScope | null;
|
|
60
|
-
/** Which
|
|
61
|
+
/** Which outcome this was. Set on every return path. */
|
|
61
62
|
kind: PromptOutcomeKind;
|
|
62
63
|
/** Why, when the answer was no. */
|
|
63
64
|
reason?: string;
|
|
@@ -87,17 +88,14 @@ export interface ApprovalGate {
|
|
|
87
88
|
request(request: PromptRequest): Promise<PromptOutcome>;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
const DEFAULT_TIMEOUT_MS = 120_000;
|
|
91
|
-
|
|
92
91
|
/**
|
|
93
92
|
* Read `PI_DADDY_APPROVAL_TIMEOUT`, in SECONDS, into the milliseconds pi expects.
|
|
94
93
|
*
|
|
95
|
-
*
|
|
94
|
+
* Absent or literal `0` waits for the human without a deadline. Other values must be canonical whole seconds
|
|
96
95
|
* within Node's signed 32-bit millisecond timer limit; malformed settings refuse a needed prompt.
|
|
97
96
|
*/
|
|
98
97
|
export function timeoutMsFromEnv(raw: string | undefined): number | undefined {
|
|
99
|
-
if (raw === undefined) return
|
|
100
|
-
if (raw === "0") return undefined;
|
|
98
|
+
if (raw === undefined || raw === "0") return undefined;
|
|
101
99
|
if (!/^[1-9][0-9]*$/.test(raw) || Number(raw) > 2_147_483)
|
|
102
100
|
throw new Error(
|
|
103
101
|
"PI_DADDY_APPROVAL_TIMEOUT must be literal 0 or whole seconds 1..2147483 without signs, padding or units",
|
|
@@ -108,6 +106,64 @@ function labelToScope(label: string, scopes: ApprovalScope[]): ApprovalScope | n
|
|
|
108
106
|
return scopes.find((s) => SCOPE_LABELS[s] === label) ?? null;
|
|
109
107
|
}
|
|
110
108
|
|
|
109
|
+
const interrupted = (request: PromptRequest, kind: "expired" | "aborted"): PromptOutcome => ({
|
|
110
|
+
scope: null,
|
|
111
|
+
kind,
|
|
112
|
+
reason:
|
|
113
|
+
`approval for ${request.capability} ${kind === "expired" ? "expired before an answer" : "was canceled"}. ` +
|
|
114
|
+
"No permission was granted. Retry the delegation to open a new approval prompt.",
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
/** Own the deadline so Pi's undefined dismissal cannot erase whether our timer or cancellation fired. */
|
|
118
|
+
async function selectApproval(
|
|
119
|
+
options: ApprovalGateOptions,
|
|
120
|
+
request: PromptRequest,
|
|
121
|
+
title: string,
|
|
122
|
+
labels: string[],
|
|
123
|
+
): Promise<string | undefined | PromptOutcome> {
|
|
124
|
+
const timeout = typeof options.timeoutMs === "function" ? options.timeoutMs() : options.timeoutMs;
|
|
125
|
+
const controller = new AbortController();
|
|
126
|
+
let outcome: PromptOutcome | undefined;
|
|
127
|
+
let wake!: (value: PromptOutcome) => void;
|
|
128
|
+
const stopped = new Promise<PromptOutcome>((resolve) => {
|
|
129
|
+
wake = resolve;
|
|
130
|
+
});
|
|
131
|
+
const stop = (kind: "expired" | "aborted") => {
|
|
132
|
+
if (outcome) return;
|
|
133
|
+
outcome = interrupted(request, kind);
|
|
134
|
+
// Resolve our tagged outcome before a UI reacts to abort by returning undefined.
|
|
135
|
+
wake(outcome);
|
|
136
|
+
controller.abort();
|
|
137
|
+
};
|
|
138
|
+
const abort = () => stop("aborted");
|
|
139
|
+
request.signal?.addEventListener("abort", abort, { once: true });
|
|
140
|
+
const timer = timeout === undefined ? undefined : setTimeout(() => stop("expired"), timeout);
|
|
141
|
+
try {
|
|
142
|
+
if (request.signal?.aborted) stop("aborted");
|
|
143
|
+
if (outcome) return outcome;
|
|
144
|
+
const chosen = await Promise.race([options.ui.select(title, labels, { signal: controller.signal }), stopped]);
|
|
145
|
+
return outcome ?? chosen;
|
|
146
|
+
} finally {
|
|
147
|
+
if (timer !== undefined) clearTimeout(timer);
|
|
148
|
+
request.signal?.removeEventListener("abort", abort);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
async function joinApproval(pending: Promise<PromptOutcome>, request: PromptRequest): Promise<PromptOutcome> {
|
|
153
|
+
if (!request.signal) return pending;
|
|
154
|
+
let abort!: () => void;
|
|
155
|
+
const stopped = new Promise<PromptOutcome>((resolve) => {
|
|
156
|
+
abort = () => resolve(interrupted(request, "aborted"));
|
|
157
|
+
request.signal!.addEventListener("abort", abort, { once: true });
|
|
158
|
+
if (request.signal!.aborted) abort();
|
|
159
|
+
});
|
|
160
|
+
try {
|
|
161
|
+
return await Promise.race([pending, stopped]);
|
|
162
|
+
} finally {
|
|
163
|
+
request.signal.removeEventListener("abort", abort);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
111
167
|
/**
|
|
112
168
|
* The single-flight queue: one dialog per approval key at a time.
|
|
113
169
|
*
|
|
@@ -160,24 +216,27 @@ export function createApprovalGate(
|
|
|
160
216
|
`grants: approve ${request.capability} for ${request.subject}?` +
|
|
161
217
|
(request.task ? `\n task: ${request.task}` : "");
|
|
162
218
|
|
|
163
|
-
let chosen: string | undefined;
|
|
219
|
+
let chosen: string | undefined | PromptOutcome;
|
|
164
220
|
try {
|
|
165
|
-
chosen = await options
|
|
166
|
-
timeout: typeof options.timeoutMs === "function" ? options.timeoutMs() : options.timeoutMs,
|
|
167
|
-
signal: request.signal,
|
|
168
|
-
});
|
|
221
|
+
chosen = await selectApproval(options, request, title, [DENY_LABEL, ...scopes.map((s) => SCOPE_LABELS[s])]);
|
|
169
222
|
} catch (error) {
|
|
170
223
|
// A governance layer that errors must deny, not permit. This is a dialog malfunction, not a
|
|
171
224
|
// person's answer — `kind: "error"` keeps it out of "declined".
|
|
172
225
|
return { scope: null, kind: "error", reason: `approval dialog failed, denying (${String(error)})` };
|
|
173
226
|
}
|
|
174
227
|
|
|
175
|
-
if (request.signal?.aborted)
|
|
176
|
-
return { scope: null, kind: "dismissed", reason: `approval for ${request.capability} was canceled` };
|
|
228
|
+
if (request.signal?.aborted) return interrupted(request, "aborted");
|
|
177
229
|
|
|
178
|
-
|
|
230
|
+
if (typeof chosen === "object") return chosen;
|
|
231
|
+
// Only an ordinary UI dismissal reaches undefined; our deadline and abort carry explicit outcomes.
|
|
179
232
|
if (chosen === undefined) {
|
|
180
|
-
return {
|
|
233
|
+
return {
|
|
234
|
+
scope: null,
|
|
235
|
+
kind: "dismissed",
|
|
236
|
+
reason:
|
|
237
|
+
`approval for ${request.capability} was dismissed. No permission was granted. ` +
|
|
238
|
+
"Retry the delegation to open a new approval prompt.",
|
|
239
|
+
};
|
|
181
240
|
}
|
|
182
241
|
if (chosen === DENY_LABEL) {
|
|
183
242
|
return { scope: null, kind: "declined", reason: `${request.capability} was denied by a human` };
|
|
@@ -191,8 +250,7 @@ export function createApprovalGate(
|
|
|
191
250
|
|
|
192
251
|
return {
|
|
193
252
|
async request(request: PromptRequest): Promise<PromptOutcome> {
|
|
194
|
-
if (request.signal?.aborted)
|
|
195
|
-
return { scope: null, kind: "dismissed", reason: `approval for ${request.capability} was canceled` };
|
|
253
|
+
if (request.signal?.aborted) return interrupted(request, "aborted");
|
|
196
254
|
if (!options.hasUI) {
|
|
197
255
|
// Nobody was there to ask — distinct from a person declining, which is why this is its own kind
|
|
198
256
|
// rather than being folded into "declined" (see PromptOutcomeKind).
|
|
@@ -215,9 +273,8 @@ export function createApprovalGate(
|
|
|
215
273
|
for (;;) {
|
|
216
274
|
const existing = inFlight.get(key);
|
|
217
275
|
if (!existing) break;
|
|
218
|
-
const outcome = await existing;
|
|
219
|
-
if (request.signal?.aborted)
|
|
220
|
-
return { scope: null, kind: "dismissed", reason: `approval for ${request.capability} was canceled` };
|
|
276
|
+
const outcome = await joinApproval(existing, request);
|
|
277
|
+
if (request.signal?.aborted) return interrupted(request, "aborted");
|
|
221
278
|
// **`joined` marks the rider, and the ledger depends on it (R-66).** Sharing a non-`once` outcome
|
|
222
279
|
// is correct — the human authorised the capability for the session, not for one child — but the
|
|
223
280
|
// caller then stamped `approvalSource: "prompt"` on every one of them, so a fan-out of eight wrote
|
|
@@ -23,7 +23,7 @@ const SHA256_RE = /^[a-f0-9]{64}$/i;
|
|
|
23
23
|
const EXECUTORS = new Set(["process", "herdr"]);
|
|
24
24
|
const APPROVAL_SOURCES = new Set(["prompt", "session", "persisted", "inherited"]);
|
|
25
25
|
const APPROVAL_SCOPES = new Set(["once", "session", "always"]);
|
|
26
|
-
const GATE_OUTCOMES = new Set(["declined", "dismissed", "no-ui", "error"]);
|
|
26
|
+
const GATE_OUTCOMES = new Set(["declined", "dismissed", "expired", "aborted", "no-ui", "error"]);
|
|
27
27
|
const LEASE_OUTCOMES = new Set([
|
|
28
28
|
"acquired",
|
|
29
29
|
"uncontended",
|
package/src/governance/ledger.ts
CHANGED
|
@@ -44,7 +44,7 @@ export const LEDGER_EVENT_KINDS = [
|
|
|
44
44
|
"episode_outcome",
|
|
45
45
|
] as const;
|
|
46
46
|
export type LedgerEventKind = (typeof LEDGER_EVENT_KINDS)[number];
|
|
47
|
-
export const LEDGER_GATE_OUTCOMES = ["declined", "dismissed", "no-ui", "error"] as const;
|
|
47
|
+
export const LEDGER_GATE_OUTCOMES = ["declined", "dismissed", "expired", "aborted", "no-ui", "error"] as const;
|
|
48
48
|
export type LedgerGateOutcome = (typeof LEDGER_GATE_OUTCOMES)[number];
|
|
49
49
|
|
|
50
50
|
export interface LedgerEventBase {
|
|
@@ -137,9 +137,8 @@ export interface GrantRecord extends LedgerEventBase {
|
|
|
137
137
|
* The discriminant was already computed and thrown away. ADR-0026 leans on this vocabulary being able to
|
|
138
138
|
* say *"nobody was there to ask"* and be believed, so it is recorded rather than inferred.
|
|
139
139
|
*
|
|
140
|
-
* **Privacy is unchanged**: this is a fixed
|
|
141
|
-
*
|
|
142
|
-
* four-member ledger enum because the approval source/scope fields already record a yes.
|
|
140
|
+
* **Privacy is unchanged**: this is a fixed enum, not task-authored text. Explicit expiry and caller
|
|
141
|
+
* cancellation have their own outcomes; `granted` is omitted because approval source/scope records a yes.
|
|
143
142
|
*/
|
|
144
143
|
gateOutcome?: LedgerGateOutcome;
|
|
145
144
|
/**
|