pi-daddy 0.43.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/CHANGELOG.md +104 -33
- package/README.md +27 -5
- package/THIRD_PARTY_LICENSES/musl-COPYRIGHT.txt +193 -0
- package/THIRD_PARTY_LICENSES/zig-MIT.txt +21 -0
- package/THIRD_PARTY_NOTICES.md +9 -0
- package/contracts/ledger-record/v1/README.md +40 -25
- package/dist/cli.d.ts +2 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -5
- package/dist/cli.js.map +1 -1
- package/dist/executors/activity-session.js +116 -65
- package/dist/executors/activity-session.js.map +1 -1
- package/dist/executors/captured-execution.d.ts +13 -0
- package/dist/executors/captured-execution.d.ts.map +1 -0
- package/dist/executors/captured-execution.js +53 -0
- package/dist/executors/captured-execution.js.map +1 -0
- package/dist/executors/child-final.d.ts +31 -0
- package/dist/executors/child-final.d.ts.map +1 -0
- package/dist/executors/child-final.js +197 -0
- package/dist/executors/child-final.js.map +1 -0
- package/dist/executors/executor.d.ts +2 -1
- package/dist/executors/executor.d.ts.map +1 -1
- package/dist/executors/executor.js +12 -0
- package/dist/executors/executor.js.map +1 -1
- package/dist/executors/owned-worker.d.ts +18 -0
- package/dist/executors/owned-worker.d.ts.map +1 -0
- package/dist/executors/owned-worker.js +295 -0
- package/dist/executors/owned-worker.js.map +1 -0
- package/dist/executors/worker-artifact.d.ts +3 -0
- package/dist/executors/worker-artifact.d.ts.map +1 -0
- package/dist/executors/worker-artifact.js +3 -0
- package/dist/executors/worker-artifact.js.map +1 -0
- package/dist/governance/approval-prompt.d.ts +4 -3
- package/dist/governance/approval-prompt.d.ts.map +1 -1
- package/dist/governance/approval-prompt.js +13 -6
- package/dist/governance/approval-prompt.js.map +1 -1
- package/dist/governance/captured-worker-record.d.ts +9 -0
- package/dist/governance/captured-worker-record.d.ts.map +1 -0
- package/dist/governance/captured-worker-record.js +123 -0
- package/dist/governance/captured-worker-record.js.map +1 -0
- package/dist/governance/lease-record.d.ts +4 -0
- package/dist/governance/lease-record.d.ts.map +1 -1
- package/dist/governance/lease-record.js +19 -2
- package/dist/governance/lease-record.js.map +1 -1
- package/dist/governance/ledger-events.d.ts +5 -5
- package/dist/governance/ledger-events.d.ts.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/workspace-acceptance.d.ts +3 -1
- package/dist/governance/workspace-acceptance.d.ts.map +1 -1
- package/dist/governance/workspace-acceptance.js +21 -5
- package/dist/governance/workspace-acceptance.js.map +1 -1
- package/dist/governance/workspace-lease.d.ts.map +1 -1
- package/dist/governance/workspace-lease.js +44 -1
- package/dist/governance/workspace-lease.js.map +1 -1
- package/dist/kernel/authority-text.d.ts +3 -0
- package/dist/kernel/authority-text.d.ts.map +1 -0
- package/dist/kernel/authority-text.js +22 -0
- package/dist/kernel/authority-text.js.map +1 -0
- package/dist/kernel/bounded-read-failures.d.ts +9 -0
- package/dist/kernel/bounded-read-failures.d.ts.map +1 -0
- package/dist/kernel/bounded-read-failures.js +33 -0
- package/dist/kernel/bounded-read-failures.js.map +1 -0
- package/dist/kernel/bounded-read-sync.d.ts +24 -0
- package/dist/kernel/bounded-read-sync.d.ts.map +1 -0
- package/dist/kernel/bounded-read-sync.js +75 -0
- package/dist/kernel/bounded-read-sync.js.map +1 -0
- package/dist/kernel/bounded-read.d.ts +29 -2
- package/dist/kernel/bounded-read.d.ts.map +1 -1
- package/dist/kernel/bounded-read.js +98 -9
- package/dist/kernel/bounded-read.js.map +1 -1
- package/dist/kernel/capacity.d.ts +36 -0
- package/dist/kernel/capacity.d.ts.map +1 -0
- package/dist/kernel/capacity.js +94 -0
- package/dist/kernel/capacity.js.map +1 -0
- package/dist/kernel/captured-worker-contract.d.ts +38 -0
- package/dist/kernel/captured-worker-contract.d.ts.map +1 -0
- package/dist/kernel/captured-worker-contract.js +2 -0
- package/dist/kernel/captured-worker-contract.js.map +1 -0
- package/dist/kernel/catalog.d.ts +12 -3
- package/dist/kernel/catalog.d.ts.map +1 -1
- package/dist/kernel/catalog.js +28 -8
- package/dist/kernel/catalog.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/definitions.d.ts +11 -1
- package/dist/kernel/definitions.d.ts.map +1 -1
- package/dist/kernel/definitions.js +6 -3
- package/dist/kernel/definitions.js.map +1 -1
- package/dist/kernel/fanout.d.ts +5 -25
- package/dist/kernel/fanout.d.ts.map +1 -1
- package/dist/kernel/fanout.js +15 -30
- package/dist/kernel/fanout.js.map +1 -1
- package/dist/kernel/grant-env.d.ts +0 -2
- package/dist/kernel/grant-env.d.ts.map +1 -1
- package/dist/kernel/grant-env.js +0 -1
- package/dist/kernel/grant-env.js.map +1 -1
- package/dist/kernel/model-preflight.d.ts +8 -0
- package/dist/kernel/model-preflight.d.ts.map +1 -1
- package/dist/kernel/model-preflight.js +23 -0
- package/dist/kernel/model-preflight.js.map +1 -1
- package/dist/kernel/selected-definitions.d.ts +15 -0
- package/dist/kernel/selected-definitions.d.ts.map +1 -0
- package/dist/kernel/selected-definitions.js +146 -0
- package/dist/kernel/selected-definitions.js.map +1 -0
- package/dist/kernel/skill-packages.d.ts +4 -2
- package/dist/kernel/skill-packages.d.ts.map +1 -1
- package/dist/kernel/skill-packages.js +34 -41
- package/dist/kernel/skill-packages.js.map +1 -1
- package/dist/kernel/skill-resources.d.ts.map +1 -1
- package/dist/kernel/skill-resources.js +8 -11
- package/dist/kernel/skill-resources.js.map +1 -1
- package/dist/kernel/workspace.d.ts +6 -3
- package/dist/kernel/workspace.d.ts.map +1 -1
- package/dist/kernel/workspace.js +10 -6
- package/dist/kernel/workspace.js.map +1 -1
- package/dist/products/dashboard-cli.js +1 -1
- package/dist/products/dashboard-cli.js.map +1 -1
- package/dist/products/dashboard-render.d.ts +1 -2
- package/dist/products/dashboard-render.d.ts.map +1 -1
- package/dist/products/dashboard-render.js +3 -1
- package/dist/products/dashboard-render.js.map +1 -1
- package/dist/products/dashboard-session-client.d.ts +1 -2
- package/dist/products/dashboard-session-client.d.ts.map +1 -1
- package/dist/products/dashboard-session-client.js.map +1 -1
- package/dist/products/episode-report.d.ts +12 -8
- package/dist/products/episode-report.d.ts.map +1 -1
- package/dist/products/episode-report.js +61 -12
- package/dist/products/episode-report.js.map +1 -1
- package/extensions/approvals.ts +1 -1
- package/extensions/chain-plan.ts +9 -3
- package/extensions/context-staging.ts +30 -35
- package/extensions/dashboard-session-server.ts +1 -2
- package/extensions/definition-describe.ts +44 -0
- package/extensions/definition-runtime.ts +89 -26
- package/extensions/delegate-chain.ts +273 -256
- package/extensions/delegation-activation.ts +1 -1
- package/extensions/delegation.ts +41 -53
- package/extensions/execute-child.ts +167 -134
- package/extensions/fanout-outcome.ts +1 -9
- package/extensions/grants-command.ts +2 -9
- package/extensions/grants.ts +106 -38
- package/extensions/init-command.ts +52 -12
- package/extensions/reload-environment.ts +21 -2
- package/extensions/retired-inputs.ts +7 -0
- package/extensions/run-delegation.ts +212 -265
- package/extensions/session-capacity.ts +53 -0
- package/extensions/session-environment.ts +5 -2
- package/extensions/session-model-prompt.ts +33 -32
- package/extensions/session-report.ts +28 -11
- package/extensions/session.ts +200 -157
- package/extensions/workspace-runtime.ts +2 -1
- package/native/README.md +25 -0
- package/native/linux-x64/worker +0 -0
- package/native/linux-x64/worker.sha256 +1 -0
- package/native/provenance.json +42 -0
- package/native/toolchain.json +18 -0
- package/native/worker.c +209 -0
- package/package.json +15 -7
- package/src/cli.ts +16 -6
- package/src/executors/activity-session.ts +120 -66
- package/src/executors/captured-execution.ts +61 -0
- package/src/executors/child-final.ts +190 -0
- package/src/executors/executor.ts +14 -1
- package/src/executors/owned-worker.ts +322 -0
- package/src/executors/worker-artifact.ts +2 -0
- package/src/governance/approval-prompt.ts +18 -8
- package/src/governance/captured-worker-record.ts +138 -0
- package/src/governance/lease-record.ts +21 -2
- package/src/governance/ledger-events.ts +5 -5
- package/src/governance/ledger-v3-validation.ts +1 -1
- package/src/governance/workspace-acceptance.ts +20 -4
- package/src/governance/workspace-lease.ts +59 -1
- package/src/kernel/authority-text.ts +17 -0
- package/src/kernel/bounded-read-failures.ts +42 -0
- package/src/kernel/bounded-read-sync.ts +87 -0
- package/src/kernel/bounded-read.ts +128 -11
- package/src/kernel/capacity.ts +123 -0
- package/src/kernel/captured-worker-contract.ts +29 -0
- package/src/kernel/catalog.ts +45 -16
- package/src/kernel/chain.ts +1 -0
- package/src/kernel/definitions.ts +11 -2
- package/src/kernel/fanout.ts +17 -32
- package/src/kernel/grant-env.ts +0 -3
- package/src/kernel/model-preflight.ts +29 -0
- package/src/kernel/selected-definitions.ts +156 -0
- package/src/kernel/skill-packages.ts +40 -38
- package/src/kernel/skill-resources.ts +8 -9
- package/src/kernel/workspace.ts +12 -5
- package/src/products/dashboard-cli.ts +1 -1
- package/src/products/dashboard-render.ts +6 -2
- package/src/products/dashboard-session-client.ts +1 -2
- package/src/products/episode-report.ts +80 -17
- package/dist/advisors/advisor.d.ts +0 -90
- package/dist/advisors/advisor.d.ts.map +0 -1
- package/dist/advisors/advisor.js +0 -154
- package/dist/advisors/advisor.js.map +0 -1
- package/dist/advisors/decider.d.ts +0 -88
- package/dist/advisors/decider.d.ts.map +0 -1
- package/dist/advisors/decider.js +0 -29
- package/dist/advisors/decider.js.map +0 -1
- package/dist/advisors/jev.d.ts +0 -41
- package/dist/advisors/jev.d.ts.map +0 -1
- package/dist/advisors/jev.js +0 -139
- package/dist/advisors/jev.js.map +0 -1
- package/dist/advisors/settings.d.ts +0 -49
- package/dist/advisors/settings.d.ts.map +0 -1
- package/dist/advisors/settings.js +0 -99
- package/dist/advisors/settings.js.map +0 -1
- package/dist/governance/episode-cost-gate.d.ts +0 -31
- package/dist/governance/episode-cost-gate.d.ts.map +0 -1
- package/dist/governance/episode-cost-gate.js +0 -112
- package/dist/governance/episode-cost-gate.js.map +0 -1
- package/extensions/advisor-session.ts +0 -67
- package/extensions/effort-advice.ts +0 -112
- package/extensions/pruning-advice.ts +0 -133
- package/src/advisors/advisor.ts +0 -246
- package/src/advisors/decider.ts +0 -74
- package/src/advisors/jev.ts +0 -163
- package/src/advisors/settings.ts +0 -115
- package/src/governance/episode-cost-gate.ts +0 -128
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Newest first. **Breaking changes are marked and say what to do about them.**
|
|
4
4
|
|
|
5
5
|
This file exists because the README had grown ninety lines of stacked version banners before a reader
|
|
6
|
-
reached what the package
|
|
6
|
+
reached what the package _does_ — churn documentation in front of product documentation. The banners are
|
|
7
7
|
the record of how the package got here and are worth keeping; they are not worth reading first.
|
|
8
8
|
|
|
9
9
|
> **0.13.0 is the first PUBLISHED release.** Every version below it was developed in this repository and
|
|
@@ -12,14 +12,87 @@ the record of how the package got here and are worth keeping; they are not worth
|
|
|
12
12
|
> the record of how the package arrived at what it does, and because the reasoning behind each one is
|
|
13
13
|
> usually the clearest statement of why the current behaviour is what it is.
|
|
14
14
|
|
|
15
|
+
## 0.44.0 — stable release (2026-10-07)
|
|
16
|
+
|
|
17
|
+
- Rebuild the native helper using a SHA-pinned Zig/static-musl toolchain, retain exact source/artifact/license
|
|
18
|
+
provenance, and have CI reproduce every output byte. The loader verifies the held executable against its generated
|
|
19
|
+
JavaScript constant; the checksum sidecar is no longer runtime authority. Ship the corresponding musl and Zig notices.
|
|
20
|
+
- Reject invalid native control/status descriptors and unsupported child enumeration before admitting a worker;
|
|
21
|
+
treat control-read failures as owner loss, validate numeric bounds, send TERM once per unreaped child, and preserve
|
|
22
|
+
the original stop reason during hard escalation. Startup uses the caller's timeout/deadline, retaining late valid
|
|
23
|
+
ownership evidence without reopening a cancelled worker's start gate.
|
|
24
|
+
- Recheck retained reservations against their original durable receipts before single, parallel and chain dispatch.
|
|
25
|
+
Exact later settlement proof releases capacity once; missing or mismatched proof remains retained, and the original
|
|
26
|
+
failed/unknown result remains unchanged. Use `delegate_all` for independent parallel work.
|
|
27
|
+
- Compare streamed/persisted messages structurally: object-key order is irrelevant, array order and every value remain
|
|
28
|
+
binding. Share a final-output conformance table with skill-harness, preserving text bytes without invented separators.
|
|
29
|
+
- **Breaking — explicit package support:** require Linux x64 and exact Pi 1.0.4 in package platform and peer metadata.
|
|
30
|
+
Other platforms or Pi versions must retain their previously qualified runtime until separately qualified.
|
|
31
|
+
- Clarify the original candidate's removed monetary/advisor/model automation and passive-cost JSON breaking changes,
|
|
32
|
+
with migration guidance and version-scoped changelog entries.
|
|
33
|
+
|
|
34
|
+
## 0.44.0-rc.1 — captured delegation qualification (2026-10-07)
|
|
35
|
+
|
|
36
|
+
Release candidate for review, not a stable or npm publication. Use the immutable candidate tag for source review.
|
|
37
|
+
|
|
38
|
+
- **Breaking — delegation bounds:** budget now caps active descendants through disjoint subtree reservations, alongside
|
|
39
|
+
depth and per-call limits. Settled children return capacity; uncertain cleanup retains it. A single child
|
|
40
|
+
conservatively reserves the available subtree, and active ownership survives extension reloads.
|
|
41
|
+
- **Bounded input and approval handling:** retain cleanup failures on the original owner, guard manual history
|
|
42
|
+
reads, and time out approvals without weakening their authority. Named approval revocation uses the pinned
|
|
43
|
+
selected definition; `revoke --all` remains available without resource acquisition.
|
|
44
|
+
- **Captured execution contract:** qualify Pi 1.0.4 JSON settlement against the exact persisted current turn and
|
|
45
|
+
active branch. Preserve complete final text and expose work/final/cleanup/observation states independently.
|
|
46
|
+
Failed children return native error results with available evidence; optional recording failures preserve work.
|
|
47
|
+
- **Cleanup:** use the packaged Linux x64 subreaper and execution-bound durable receipts. Unknown subtree cleanup
|
|
48
|
+
retains capacity and quarantines workspace reuse; preserve the referenced ownership directory as evidence.
|
|
49
|
+
- **Breaking — platform/backend support:** the package now declares Linux x64 only. macOS, ARM64 and native Windows users must remain on their previous qualified release; this candidate has no qualified executor there.
|
|
50
|
+
- **Breaking — staged backend release:** governed Herdr execution refuses, even when its server answers, until parity is
|
|
51
|
+
qualified. Explicitly set `PI_DADDY_HERDR=0` for captured execution; there is no fallback after selection.
|
|
52
|
+
- **Required handoffs:** block dependent chain steps when the complete prior final exceeds the handoff limit.
|
|
53
|
+
The completed step and its full result remain available; no tail-only handoff is promoted to complete.
|
|
54
|
+
- **Selected Principal resources:** bind the native phase to selected inline and delegated bytes, hash and exact
|
|
55
|
+
package manifest, use `delegate_describe` to obtain the required definition identity, and pin it until reload.
|
|
56
|
+
Missing, moved or tampered marked Principal resources refuse rather than becoming ordinary inline definitions.
|
|
57
|
+
|
|
58
|
+
- **Breaking — removed automation:** remove monetary execution gates, external advisors and the automatic first-delegation model chooser. Configure provider-side spend controls if required, and select models/thinking manually. Recognized
|
|
59
|
+
legacy settings and cost arguments are inert; manual model edits, permission approvals and retained historical
|
|
60
|
+
usage remain. Pi 1.0.4 argument preparation validates active arguments after removing the retired cost override.
|
|
61
|
+
- Live complete episode cost is explicitly unavailable in the session dashboard; historical usage remains in reports.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### Passive cost coverage
|
|
65
|
+
|
|
66
|
+
- **Breaking — report JSON change:** row/group/total cost and episode-cost percentiles may be null when coverage is incomplete.
|
|
67
|
+
Use observedCost for the known subtotal and costCoverage for complete/partial/unavailable status. A reported zero
|
|
68
|
+
remains zero. Cost coverage concerns recorded child executions only; root and unrecorded work are not measured.
|
|
69
|
+
|
|
70
|
+
### Surviving guard repairs
|
|
71
|
+
|
|
72
|
+
- Treat damaged or oversized runtime/resource settings and package metadata as failures, not missing defaults.
|
|
73
|
+
Bounded reads reject FIFOs and malformed UTF-8; unresolved cleanup stays attached to the operation and session owner.
|
|
74
|
+
- Pruned handoffs carry only the active Pi branch and shared ancestry. Unavailable input is labeled incomplete.
|
|
75
|
+
Named file handoffs require Linux held-descriptor confinement proof and refuse when it is unavailable.
|
|
76
|
+
- Approval timeouts accept absent (120 seconds), literal 0 (unlimited), or canonical whole seconds 1..2147483.
|
|
77
|
+
Fix malformed values before requesting a new prompt; existing authority remains usable.
|
|
78
|
+
|
|
79
|
+
## 0.43.1 — Pi-only documentation refresh (2026-09-29)
|
|
80
|
+
|
|
81
|
+
- Refresh `README.md`, `AGENTS.md`, the package README, and the ledger-record contract README against the shipped
|
|
82
|
+
initialization, privacy, model, outcome, workspace, executor, CLI, and compatibility behavior.
|
|
83
|
+
- Remove obsolete Claude-specific formatting policy and describe Pi as this repository's only supported agent
|
|
84
|
+
workflow; retain ignore guards against accidentally committing assistant-specific scratch state.
|
|
85
|
+
- Extend documentation drift checks to verify the published contract's file references and root workspace commands.
|
|
86
|
+
No runtime behavior or default changed.
|
|
87
|
+
|
|
15
88
|
## 0.43.0 — episode outcome labeling (2026-09-29)
|
|
16
89
|
|
|
17
90
|
- PR #85 adds `pi-daddy outcomes`, which reads Git history for `Pi-Episode` trailers and appends `episode_outcome`
|
|
18
91
|
ledger records covering survival on the default branch, reverts by name or inverse diff, CI state via `gh`,
|
|
19
92
|
amendments, and operator corrections.
|
|
20
93
|
- `pi-daddy report` now fills its outcome column from those records.
|
|
21
|
-
-
|
|
22
|
-
future kinds instead of throwing. No default changed.
|
|
94
|
+
- The dashboard ledger reader now validates every known record kind before skipping kinds it does not render, and
|
|
95
|
+
skips unknown future kinds instead of throwing. No default changed.
|
|
23
96
|
|
|
24
97
|
## 0.42.0 — model-attributed usage records (2026-09-29)
|
|
25
98
|
|
|
@@ -777,7 +850,6 @@ and test synchronization only; dependencies and runtime are unchanged.
|
|
|
777
850
|
Rename prose/whitespace keys before calling `runNamedCheck`; invalid IDs now refuse before the executable
|
|
778
851
|
or lease starts rather than failing only when a v3 receipt is appended.
|
|
779
852
|
|
|
780
|
-
|
|
781
853
|
## 0.19.0 — workspace routing is a capability (2026-08-23)
|
|
782
854
|
|
|
783
855
|
**The four hang fixes below were staged for a 0.18.2 and are released here instead — a decision reversed
|
|
@@ -785,13 +857,13 @@ deliberately, so the reversal is recorded rather than the reason vanishing.** Th
|
|
|
785
857
|
argued for cutting them as a patch so a fix for released code would not be gated on a breaking change. The
|
|
786
858
|
counter-argument won: **R-131 — workspace routing does not attenuate — is a live escalation in published
|
|
787
859
|
0.18.0 and 0.18.1**, a child routed to `staging` can route its grandchild to `prod` with a real lease and a
|
|
788
|
-
ledger line that reads as authorised, and the fix for it
|
|
860
|
+
ledger line that reads as authorised, and the fix for it _is_ the breaking change. A 0.18.2 would have fixed
|
|
789
861
|
one defect and left that one open, on a line that then needed supporting alongside this one. Shipping once
|
|
790
862
|
fixes all three.
|
|
791
863
|
|
|
792
864
|
- **FIX — a retained lease no longer reports a retention that did not happen (R-152).** `markRetained`
|
|
793
865
|
returned `void` and `releaseDelegationWorkspace` hardcoded the ledger word, so a `workspace_lease` event
|
|
794
|
-
said `retained` —
|
|
866
|
+
said `retained` — _"the pane may still be live"_ — for a helper that had already died (the fact is `lost`),
|
|
795
867
|
for a lease already cleanly released, and for a retention whose record could not be written. It now answers
|
|
796
868
|
in the release vocabulary and the caller ledgers what it says. **Breaking for direct library callers only:**
|
|
797
869
|
`WorkspaceLease.markRetained` returns `Promise<LeaseReleaseOutcome>` instead of `Promise<void>`, and
|
|
@@ -818,7 +890,6 @@ fixes all three.
|
|
|
818
890
|
explicitly rejected outcome. Measured with a `herdr` that sleeps: before, `LOCK=HELD` with no marker
|
|
819
891
|
indefinitely; after, released with the marker written. Tunable via `herdrCloseTimeoutMs` (default 15s).
|
|
820
892
|
|
|
821
|
-
|
|
822
893
|
- Ship a canonical JSON Schema draft 2020-12 contract for `ledgerVersion: 2` plus deterministic fixtures for
|
|
823
894
|
all four event types, generated through the production builders. Stable package export paths let external
|
|
824
895
|
harnesses pin the real contract instead of maintaining a parallel format.
|
|
@@ -877,7 +948,7 @@ and a mutation battery, and are listed because ADR-0035 claimed three of them as
|
|
|
877
948
|
amendment). **The entries under "Present in earlier releases" below DID ship**, and an earlier draft of this section put
|
|
878
949
|
them under this heading, telling operators the `tool:*` attenuation escape could not affect them. (That draft
|
|
879
950
|
then said "two" while three bullets sat under the heading, one of which — the v2 enum — is the single item
|
|
880
|
-
here that provably did
|
|
951
|
+
here that provably did _not_ ship. It has moved back.)
|
|
881
952
|
|
|
882
953
|
- **Routing terminated below the root instead of attenuating.** `unknownCapabilities` did not know the
|
|
883
954
|
namespace, and a catalog is always present in a real session, so every requested `workspace:<id>` was
|
|
@@ -999,7 +1070,7 @@ is never a force-push, and `test/branch-guard.test.ts`, which pins it against se
|
|
|
999
1070
|
|
|
1000
1071
|
**Why a version at all**, since nothing here changed: rule 10 says version bumps take the same path as
|
|
1001
1072
|
everything else, and this one did — branch, PR, review, squash-merge. The rule's first draft was reviewed by
|
|
1002
|
-
six independent agents across two rounds that found sixteen defects, including that
|
|
1073
|
+
six independent agents across two rounds that found sixteen defects, including that _"never commit to `main`"_
|
|
1003
1074
|
forbids the merge the rule requires, and that the guard written to fix that had reproduced the same defect in
|
|
1004
1075
|
shell. `docs/03-risks.md` R-85 and the 2026-08-18 session-log entry hold the details.
|
|
1005
1076
|
|
|
@@ -1012,11 +1083,11 @@ order is now what the sentence says it is.
|
|
|
1012
1083
|
one that removes the last reason to keep an ungoverned spawner installed alongside this one.
|
|
1013
1084
|
|
|
1014
1085
|
- **The handoff is fenced, labelled and nonce-delimited.** A chain makes step N's task the output of a governed
|
|
1015
|
-
child, which is the highest-authority text a child receives after its own `SKILL.md`. The label is
|
|
1086
|
+
child, which is the highest-authority text a child receives after its own `SKILL.md`. The label is _framing_ — a
|
|
1016
1087
|
determined injection can argue with it — but the **nonce is mechanism**: minted after the producing child
|
|
1017
1088
|
finished, so it cannot forge a closing delimiter. ADR-0033 records the stronger option (quarantine to a file the
|
|
1018
1089
|
next step must `read`) as the prepared answer if framing proves insufficient.
|
|
1019
|
-
- **Gated upfront: one dialog per capability
|
|
1090
|
+
- **Gated upfront: one dialog per capability _and_ definition, all before the first step runs.** Approvals arrive
|
|
1020
1091
|
together instead of interrupting a running pipeline. Not one dialog for everything — an approval is keyed
|
|
1021
1092
|
`capability@subject`, so a single dialog spanning several definitions would ask about one and spend the answer on
|
|
1022
1093
|
the rest. ADR-0033 originally specified that, three reviewers found it was a privilege path, and the ADR carries
|
|
@@ -1031,7 +1102,7 @@ one that removes the last reason to keep an ungoverned spawner installed alongsi
|
|
|
1031
1102
|
`PI_GRANTS_FANOUT=12` (the default is 8). At most 8 steps.
|
|
1032
1103
|
|
|
1033
1104
|
**Also:** `test-integration/herdr.it.ts` now checks herdr's own contracts against a real server in an isolated
|
|
1034
|
-
workspace — the gap that hid three shipping defects in 0.16.0, where the unit fake was a
|
|
1105
|
+
workspace — the gap that hid three shipping defects in 0.16.0, where the unit fake was a _claim_ about herdr that
|
|
1035
1106
|
nothing verified.
|
|
1036
1107
|
|
|
1037
1108
|
## 0.16.0 — children you can watch, in panes chosen for you
|
|
@@ -1039,17 +1110,17 @@ nothing verified.
|
|
|
1039
1110
|
**If herdr is running, your sub-agents now run in herdr panes without you configuring anything — and the
|
|
1040
1111
|
parent shows what each one is doing while it works.** Two ADRs, shipped together.
|
|
1041
1112
|
|
|
1042
|
-
### `PI_GRANTS_HERDR` is three-state, and unset now means
|
|
1113
|
+
### `PI_GRANTS_HERDR` is three-state, and unset now means _probe_ (ADR-0031)
|
|
1043
1114
|
|
|
1044
|
-
| Value | Behaviour
|
|
1045
|
-
|
|
|
1115
|
+
| Value | Behaviour |
|
|
1116
|
+
| :---- | :-------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1046
1117
|
| unset | Probe once at session start (`herdr tab list`, 2s bound). A server that **answers** ⇒ herdr panes; anything else ⇒ captured subprocess. |
|
|
1047
|
-
| `1`
|
|
1048
|
-
| `0`
|
|
1118
|
+
| `1` | Demand herdr. **Every delegation refuses** if it is unreachable — no fallback. |
|
|
1119
|
+
| `0` | Demand the captured subprocess. No probe. |
|
|
1049
1120
|
|
|
1050
1121
|
**Not a `PATH` check.** A binary with no server behind it would make every delegation fail at `tab create`, on
|
|
1051
|
-
a path nobody chose — so only a
|
|
1052
|
-
refused auto-detection on the grounds that a run must not "silently relocate"; the answer to
|
|
1122
|
+
a path nobody chose — so only a _reachable_ server counts. This reverses part of ADR-0016 point 6, which
|
|
1123
|
+
refused auto-detection on the grounds that a run must not "silently relocate"; the answer to _silently_ is that
|
|
1053
1124
|
the executor is now named at session start, in `/grants`, and per child in the ledger.
|
|
1054
1125
|
|
|
1055
1126
|
**What to do about it:** nothing, unless you relied on an unset variable meaning subprocesses. If you did, set
|
|
@@ -1081,7 +1152,7 @@ returned.
|
|
|
1081
1152
|
|
|
1082
1153
|
A pane used to be destroyed the instant its child settled, so a twenty-second child's pane was gone before
|
|
1083
1154
|
anyone could switch to it. Panes now belong to the **agent run** and are swept at `agent_settled`, capped at 8
|
|
1084
|
-
at once, with process `exit` as the backstop. `PI_GRANTS_HERDR_KEEP_PANE=1` still means
|
|
1155
|
+
at once, with process `exit` as the backstop. `PI_GRANTS_HERDR_KEEP_PANE=1` still means _not even then_.
|
|
1085
1156
|
|
|
1086
1157
|
A child's pane also defaults to the **parent's own herdr workspace** now, so switching to one is a tab away
|
|
1087
1158
|
rather than a workspace away.
|
|
@@ -1097,7 +1168,7 @@ shipping blockers, and they change what the herdr path guarantees:
|
|
|
1097
1168
|
working with its grant after its result was reported.
|
|
1098
1169
|
- **herdr binds an agent name to its tab.** With panes outliving their calls, the **second `delegate` of every
|
|
1099
1170
|
turn** failed with `agent_name_taken`. Names are now unique per spawn.
|
|
1100
|
-
- **The 8-pane cap killed live siblings**, because pi runs tool calls in parallel by default. Only
|
|
1171
|
+
- **The 8-pane cap killed live siblings**, because pi runs tool calls in parallel by default. Only _settled_ panes
|
|
1101
1172
|
are reclaimable now; if they are all live the cap yields rather than enforcing.
|
|
1102
1173
|
- **The pane reader amplified output 89,000×** once a pane scrolled or passed the output cap: `agent read` returns
|
|
1103
1174
|
a snapshot of a bounded terminal and was being diffed as an append-only stream.
|
|
@@ -1118,7 +1189,7 @@ and coverage was added where it was simply absent — including that nothing ver
|
|
|
1118
1189
|
### Also
|
|
1119
1190
|
|
|
1120
1191
|
- **`/grants ledger` tallies executors**, so "which children ran in panes?" no longer needs `jq`.
|
|
1121
|
-
- **The tripwire names `delegate_all`.** It said only
|
|
1192
|
+
- **The tripwire names `delegate_all`.** It said only _"Use `delegate` instead"_, and a request for parallel
|
|
1122
1193
|
work was answered with a single sequential call as a result.
|
|
1123
1194
|
- **The ledger records `executor` per child** — required, not optional. The executor is decided by a probe now,
|
|
1124
1195
|
so nothing outside the record preserves which one ran, and the two paths do not produce the same argv.
|
|
@@ -1149,7 +1220,7 @@ pi
|
|
|
1149
1220
|
**always wins**: it is how a child is governed and how CI is configured. `.pi/grants.env` is still written
|
|
1150
1221
|
and still worth committing — it is the reviewable record, no longer what the enforcer reads. (ADR-0030)
|
|
1151
1222
|
- **The dialog does not ask questions whose answers cannot matter.** `tool:bash` subsumes `write` and
|
|
1152
|
-
`edit`, so once bash is granted those are conferred; asking anyway let an operator answer
|
|
1223
|
+
`edit`, so once bash is granted those are conferred; asking anyway let an operator answer _no_ to
|
|
1153
1224
|
`tool:write` and then watch `build` be allowed it. It now reports them as already conferred instead.
|
|
1154
1225
|
- **An unknown `/grants` subcommand is refused rather than ignored.** `/grants init` used to print the
|
|
1155
1226
|
ordinary status screen with the word silently dropped, so a command that did not exist looked like it had
|
|
@@ -1173,7 +1244,7 @@ resolution, enforcement, approvals or the ledger changed — this is the part be
|
|
|
1173
1244
|
- **The generated grant is READ-ONLY by default** (ADR-0029). `init` grants what the copied skills declare
|
|
1174
1245
|
minus anything that can change your machine — `bash`, `write`, `edit` and the universal capabilities are
|
|
1175
1246
|
written **commented**, naming the definitions that need them. `init` + `source` gives a working read-only
|
|
1176
|
-
setup; widening costs one deliberate uncomment. The reason: `PI_GRANTS_GRANT` is what
|
|
1247
|
+
setup; widening costs one deliberate uncomment. The reason: `PI_GRANTS_GRANT` is what _bounds_ a declared
|
|
1177
1248
|
ceiling, so generating it from those ceilings would give the bound and the bounded one author, and it
|
|
1178
1249
|
would not be you.
|
|
1179
1250
|
|
|
@@ -1184,14 +1255,14 @@ resolution, enforcement, approvals or the ledger changed — this is the part be
|
|
|
1184
1255
|
`PI_GRANTS_GRANT` string by hand — seven times for `principal-pi-skills`.
|
|
1185
1256
|
|
|
1186
1257
|
**It chooses no ceiling, and that boundary is the whole design.** A skill that declares `allowed-tools` is
|
|
1187
|
-
copied byte for byte; one that declares none is copied with a
|
|
1258
|
+
copied byte for byte; one that declares none is copied with a _commented_ placeholder and stays
|
|
1188
1259
|
unspawnable until a human fills it in. The placeholder is deliberately not a working example, so
|
|
1189
1260
|
uncommenting it unedited fails loudly instead of granting something nobody decided. An existing file is
|
|
1190
1261
|
**kept**, never overwritten — that edit is the capability decision, and a second `init` run is exactly
|
|
1191
1262
|
when it would be destroyed. `--force` exists and says what it costs.
|
|
1192
1263
|
|
|
1193
1264
|
- **Session start says how many definitions are spawnable, and names the withheld ones.** The line reported
|
|
1194
|
-
the grant and never the definitions, so
|
|
1265
|
+
the grant and never the definitions, so _"governance is working"_ and _"did the install fail?"_ looked
|
|
1195
1266
|
identical:
|
|
1196
1267
|
|
|
1197
1268
|
```
|
|
@@ -1215,11 +1286,11 @@ resolution, enforcement, approvals or the ledger changed — this is the part be
|
|
|
1215
1286
|
from a package are refused, and the assembled grant is charset-checked before the file is written at all.
|
|
1216
1287
|
|
|
1217
1288
|
- **Fixed before release: `init` overwrote an operator's file and wrote through symlinks** (R-79). The
|
|
1218
|
-
presence probe was `readFile`, which treats
|
|
1289
|
+
presence probe was `readFile`, which treats _unreadable_ as _absent_ — so a permissions-restricted
|
|
1219
1290
|
`SKILL.md` was replaced and its ceiling **widened**, with no `--force`. And `writeFile` follows symlinks, so
|
|
1220
1291
|
a dangling link at a target path created the file outside the project while reporting an in-project path.
|
|
1221
1292
|
Both are one `open(path, "wx")`. `--force` no longer regenerates `.pi/grants.env`, and `pi-daddy init
|
|
1222
|
-
|
|
1293
|
+
--Force` is no longer accepted as a silent no-op.
|
|
1223
1294
|
|
|
1224
1295
|
- **Fixed before release: the startup line blamed your files for a session-level refusal** (R-81). A session
|
|
1225
1296
|
at its depth limit, or with a malformed `PI_GRANTS_MAX_DEPTH`, was told its `SKILL.md` files were written
|
|
@@ -1249,17 +1320,17 @@ as a user of this package:
|
|
|
1249
1320
|
the path, not the lock this process created, so a broken stale lock cascaded: the old holder freed the new
|
|
1250
1321
|
owner's lock on the way out, and the next arrival — which raced nothing — walked in beside it. Reproduced
|
|
1251
1322
|
across real OS processes. Every lock now carries a token and proves ownership before deleting.
|
|
1252
|
-
- **The ledger over-claimed human approval under concurrency.** One
|
|
1323
|
+
- **The ledger over-claimed human approval under concurrency.** One _Allow for this session_ answered under
|
|
1253
1324
|
a fan-out of eight wrote eight lines each recording `approvalSource: "prompt"`. Riders now record
|
|
1254
1325
|
`session`, which is what actually happened.
|
|
1255
1326
|
|
|
1256
1327
|
One breaking change, and it is a type.
|
|
1257
1328
|
|
|
1258
1329
|
- **BREAKING: `revokeApproval` returns `"revoked" | "absent" | "failed" | "busy"`**, not a boolean. It had
|
|
1259
|
-
two outcomes for four facts, and `/grants revoke` printed
|
|
1330
|
+
two outcomes for four facts, and `/grants revoke` printed _"no persisted approval named X"_ whenever the
|
|
1260
1331
|
write failed — telling an operator that the approval they are revoking does not exist **while it is still
|
|
1261
1332
|
in effect**. The most alarming outcome wore the most reassuring message. `busy` is separate because a lock
|
|
1262
|
-
timeout happens
|
|
1333
|
+
timeout happens _before_ the load, so nothing was looked at and nothing may be claimed about the entry.
|
|
1263
1334
|
Callers switching on the boolean must switch on the string; `"revoked"` is the only success.
|
|
1264
1335
|
- **Approval writes hold a lock (R-49).** Every write is load → modify → write and none of them was
|
|
1265
1336
|
serialised, so session 1 could load, session 2 could revoke, and session 1's next save would restore the
|
|
@@ -1269,10 +1340,10 @@ One breaking change, and it is a type.
|
|
|
1269
1340
|
- **`/grants ledger` counts where each approval came from.** ADR-0020 keeps the persistence layer on an
|
|
1270
1341
|
asserted fatigue argument and named the evidence that would settle it — `persisted` against `prompt` over
|
|
1271
1342
|
real use. The data was already recorded and nothing read it. **Two numbers, both labelled**: raw records
|
|
1272
|
-
are an
|
|
1343
|
+
are an _upper bound_ on prompts avoided, because within one session only the first would have been a
|
|
1273
1344
|
prompt and the rest come from the in-memory session cache; distinct `capability@subject` pairs are the
|
|
1274
1345
|
closer estimate. Reporting records alone overstated the layer twentyfold in the obvious case (R-63).
|
|
1275
|
-
Records written before per-capability sources existed are reported as
|
|
1346
|
+
Records written before per-capability sources existed are reported as _not counted_ rather than folded in,
|
|
1276
1347
|
because that older scalar over-claimed `prompt`.
|
|
1277
1348
|
- **A revoke is documented as taking effect at the next gate check**, not "immediately". A spawn whose gate
|
|
1278
1349
|
check already passed is not retracted by a revoke arriving microseconds later — inherent to revoking
|
package/README.md
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
# pi-daddy
|
|
2
2
|
|
|
3
|
+
Stable release: **0.44.0** (tag `v0.44.0`), published to npm.
|
|
4
|
+
|
|
3
5
|
Capability governance and coordination for [pi](https://github.com/badlogic/pi-mono)'s multi-level agent system. An
|
|
4
6
|
orchestrator grants each sub-agent a deliberate subset of what it holds and withholds the rest; a sub-agent may delegate
|
|
5
7
|
further, but only ever a subset of what it holds. Enforcement is pi's own `--tools` allowlist on a separate child
|
|
6
|
-
process, with an append-only, hash-chained ledger
|
|
8
|
+
process, with an optional append-only, hash-chained governance ledger.
|
|
7
9
|
|
|
8
10
|
```bash
|
|
9
11
|
pi install npm:pi-daddy
|
|
10
12
|
pi
|
|
11
13
|
```
|
|
12
14
|
|
|
13
|
-
`/grants` shows the session's ceiling and spawnable definitions
|
|
14
|
-
the
|
|
15
|
-
|
|
15
|
+
`/grants` shows the session's ceiling and spawnable definitions. `/grants init` writes the review copy at
|
|
16
|
+
`.pi/pi-daddy/settings.json`, stores the enforced grant outside the workspace, enables the project ledger, and applies
|
|
17
|
+
the decisions to the running session; commit the review copy when the project's ignore rules permit it. A definition
|
|
18
|
+
is an [Agent Skills](https://agentskills.io/specification) `SKILL.md` whose `allowed-tools` is the ceiling and whose
|
|
19
|
+
body is the child's system prompt.
|
|
16
20
|
|
|
17
21
|
```
|
|
18
22
|
delegate({ agent: "review-security", task: "Review the diff." })
|
|
@@ -26,7 +30,25 @@ effective = ( requested ∩ parentGrant ∩ ceiling ) \ (gated \ approved)
|
|
|
26
30
|
|
|
27
31
|
Escalation is impossible by construction on the tool surface. It does not contain an agent holding an execution
|
|
28
32
|
primitive: a child granted `bash` can start an ungoverned descendant, so `bash` is gated by default and every gate
|
|
29
|
-
answer is recorded.
|
|
33
|
+
answer is recorded when a governance ledger is configured.
|
|
34
|
+
|
|
35
|
+
This candidate targets Pi 1.0.4 and captured Linux x64 execution. Qualification is limited to Ubuntu WSL2,
|
|
36
|
+
kernel `6.18.33.2-microsoft-standard-WSL2`, x86_64 and Node `v26.7.0`; other runtime/kernel combinations, native
|
|
37
|
+
Windows and WSL-to-Windows worker interop remain unqualified. Governed Herdr execution refuses until separately qualified. Select captured execution with `PI_DADDY_HERDR=0`. A final must match Pi's settled
|
|
38
|
+
JSON output and persisted current branch. Unknown subtree cleanup retains capacity and workspace exclusion.
|
|
39
|
+
`PI_DADDY_FANOUT` limits active descendants using conservative subtree reservations, with capacity returned only
|
|
40
|
+
after verified settlement. Complete results remain separate from optional recording failures.
|
|
41
|
+
|
|
42
|
+
The package dependency and peer requirement both pin exact Pi **1.0.4**; later Pi versions require new qualification. Use Principal **4.8.0** 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.
|
|
43
|
+
|
|
44
|
+
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.
|
|
45
|
+
|
|
46
|
+
Retained capacity is rechecked against the original bound ownership and settlement receipt before a new single, parallel or chain dispatch. Exact later proof refunds the reservation once; missing, malformed or mismatched proof and unbound ownership remain retained. Recovery does not rewrite the original failed/unknown outcome or mint new capacity on reload. A single delegation reserves its available subtree; use `delegate_all` to allocate independent parallel children.
|
|
47
|
+
|
|
48
|
+
The package requires Node.js 22.19.0 or newer. `pi-daddy report` joins episode usage and attribution;
|
|
49
|
+
`pi-daddy outcomes` adds Git, CI, amendment, and operator-correction signals for commits carrying a `Pi-Episode`
|
|
50
|
+
trailer. A connected dashboard can change model/thinking defaults for its owning session without changing persistent
|
|
51
|
+
settings or enforcement.
|
|
30
52
|
|
|
31
53
|
The full product description is the repository [README](https://github.com/mojomanyana/pi-daddy#readme); the
|
|
32
54
|
[CHANGELOG](./CHANGELOG.md) says what each release changed and what to do about breaking changes. The one shipped
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
musl as a whole is licensed under the following standard MIT license:
|
|
2
|
+
|
|
3
|
+
----------------------------------------------------------------------
|
|
4
|
+
Copyright © 2005-2020 Rich Felker, et al.
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
7
|
+
a copy of this software and associated documentation files (the
|
|
8
|
+
"Software"), to deal in the Software without restriction, including
|
|
9
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
10
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
11
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
12
|
+
the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be
|
|
15
|
+
included in all copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
20
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
21
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
22
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
23
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
24
|
+
----------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
Authors/contributors include:
|
|
27
|
+
|
|
28
|
+
A. Wilcox
|
|
29
|
+
Ada Worcester
|
|
30
|
+
Alex Dowad
|
|
31
|
+
Alex Suykov
|
|
32
|
+
Alexander Monakov
|
|
33
|
+
Andre McCurdy
|
|
34
|
+
Andrew Kelley
|
|
35
|
+
Anthony G. Basile
|
|
36
|
+
Aric Belsito
|
|
37
|
+
Arvid Picciani
|
|
38
|
+
Bartosz Brachaczek
|
|
39
|
+
Benjamin Peterson
|
|
40
|
+
Bobby Bingham
|
|
41
|
+
Boris Brezillon
|
|
42
|
+
Brent Cook
|
|
43
|
+
Chris Spiegel
|
|
44
|
+
Clément Vasseur
|
|
45
|
+
Daniel Micay
|
|
46
|
+
Daniel Sabogal
|
|
47
|
+
Daurnimator
|
|
48
|
+
David Carlier
|
|
49
|
+
David Edelsohn
|
|
50
|
+
Denys Vlasenko
|
|
51
|
+
Dmitry Ivanov
|
|
52
|
+
Dmitry V. Levin
|
|
53
|
+
Drew DeVault
|
|
54
|
+
Emil Renner Berthing
|
|
55
|
+
Fangrui Song
|
|
56
|
+
Felix Fietkau
|
|
57
|
+
Felix Janda
|
|
58
|
+
Gianluca Anzolin
|
|
59
|
+
Hauke Mehrtens
|
|
60
|
+
He X
|
|
61
|
+
Hiltjo Posthuma
|
|
62
|
+
Isaac Dunham
|
|
63
|
+
Jaydeep Patil
|
|
64
|
+
Jens Gustedt
|
|
65
|
+
Jeremy Huntwork
|
|
66
|
+
Jo-Philipp Wich
|
|
67
|
+
Joakim Sindholt
|
|
68
|
+
John Spencer
|
|
69
|
+
Julien Ramseier
|
|
70
|
+
Justin Cormack
|
|
71
|
+
Kaarle Ritvanen
|
|
72
|
+
Khem Raj
|
|
73
|
+
Kylie McClain
|
|
74
|
+
Leah Neukirchen
|
|
75
|
+
Luca Barbato
|
|
76
|
+
Luka Perkov
|
|
77
|
+
M Farkas-Dyck (Strake)
|
|
78
|
+
Mahesh Bodapati
|
|
79
|
+
Markus Wichmann
|
|
80
|
+
Masanori Ogino
|
|
81
|
+
Michael Clark
|
|
82
|
+
Michael Forney
|
|
83
|
+
Mikhail Kremnyov
|
|
84
|
+
Natanael Copa
|
|
85
|
+
Nicholas J. Kain
|
|
86
|
+
orc
|
|
87
|
+
Pascal Cuoq
|
|
88
|
+
Patrick Oppenlander
|
|
89
|
+
Petr Hosek
|
|
90
|
+
Petr Skocik
|
|
91
|
+
Pierre Carrier
|
|
92
|
+
Reini Urban
|
|
93
|
+
Rich Felker
|
|
94
|
+
Richard Pennington
|
|
95
|
+
Ryan Fairfax
|
|
96
|
+
Samuel Holland
|
|
97
|
+
Segev Finer
|
|
98
|
+
Shiz
|
|
99
|
+
sin
|
|
100
|
+
Solar Designer
|
|
101
|
+
Stefan Kristiansson
|
|
102
|
+
Stefan O'Rear
|
|
103
|
+
Szabolcs Nagy
|
|
104
|
+
Timo Teräs
|
|
105
|
+
Trutz Behn
|
|
106
|
+
Valentin Ochs
|
|
107
|
+
Will Dietz
|
|
108
|
+
William Haddon
|
|
109
|
+
William Pitcock
|
|
110
|
+
|
|
111
|
+
Portions of this software are derived from third-party works licensed
|
|
112
|
+
under terms compatible with the above MIT license:
|
|
113
|
+
|
|
114
|
+
The TRE regular expression implementation (src/regex/reg* and
|
|
115
|
+
src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed
|
|
116
|
+
under a 2-clause BSD license (license text in the source files). The
|
|
117
|
+
included version has been heavily modified by Rich Felker in 2012, in
|
|
118
|
+
the interests of size, simplicity, and namespace cleanliness.
|
|
119
|
+
|
|
120
|
+
Much of the math library code (src/math/* and src/complex/*) is
|
|
121
|
+
Copyright © 1993,2004 Sun Microsystems or
|
|
122
|
+
Copyright © 2003-2011 David Schultz or
|
|
123
|
+
Copyright © 2003-2009 Steven G. Kargl or
|
|
124
|
+
Copyright © 2003-2009 Bruce D. Evans or
|
|
125
|
+
Copyright © 2008 Stephen L. Moshier or
|
|
126
|
+
Copyright © 2017-2018 Arm Limited
|
|
127
|
+
and labelled as such in comments in the individual source files. All
|
|
128
|
+
have been licensed under extremely permissive terms.
|
|
129
|
+
|
|
130
|
+
The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
|
|
131
|
+
The Android Open Source Project and is licensed under a two-clause BSD
|
|
132
|
+
license. It was taken from Bionic libc, used on Android.
|
|
133
|
+
|
|
134
|
+
The AArch64 memcpy and memset code (src/string/aarch64/*) are
|
|
135
|
+
Copyright © 1999-2019, Arm Limited.
|
|
136
|
+
|
|
137
|
+
The implementation of DES for crypt (src/crypt/crypt_des.c) is
|
|
138
|
+
Copyright © 1994 David Burren. It is licensed under a BSD license.
|
|
139
|
+
|
|
140
|
+
The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was
|
|
141
|
+
originally written by Solar Designer and placed into the public
|
|
142
|
+
domain. The code also comes with a fallback permissive license for use
|
|
143
|
+
in jurisdictions that may not recognize the public domain.
|
|
144
|
+
|
|
145
|
+
The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
|
|
146
|
+
Valentin Ochs and is licensed under an MIT-style license.
|
|
147
|
+
|
|
148
|
+
The x86_64 port was written by Nicholas J. Kain and is licensed under
|
|
149
|
+
the standard MIT terms.
|
|
150
|
+
|
|
151
|
+
The mips and microblaze ports were originally written by Richard
|
|
152
|
+
Pennington for use in the ellcc project. The original code was adapted
|
|
153
|
+
by Rich Felker for build system and code conventions during upstream
|
|
154
|
+
integration. It is licensed under the standard MIT terms.
|
|
155
|
+
|
|
156
|
+
The mips64 port was contributed by Imagination Technologies and is
|
|
157
|
+
licensed under the standard MIT terms.
|
|
158
|
+
|
|
159
|
+
The powerpc port was also originally written by Richard Pennington,
|
|
160
|
+
and later supplemented and integrated by John Spencer. It is licensed
|
|
161
|
+
under the standard MIT terms.
|
|
162
|
+
|
|
163
|
+
All other files which have no copyright comments are original works
|
|
164
|
+
produced specifically for use as part of this library, written either
|
|
165
|
+
by Rich Felker, the main author of the library, or by one or more
|
|
166
|
+
contibutors listed above. Details on authorship of individual files
|
|
167
|
+
can be found in the git version control history of the project. The
|
|
168
|
+
omission of copyright and license comments in each file is in the
|
|
169
|
+
interest of source tree size.
|
|
170
|
+
|
|
171
|
+
In addition, permission is hereby granted for all public header files
|
|
172
|
+
(include/* and arch/*/bits/*) and crt files intended to be linked into
|
|
173
|
+
applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
|
|
174
|
+
the copyright notice and permission notice otherwise required by the
|
|
175
|
+
license, and to use these files without any requirement of
|
|
176
|
+
attribution. These files include substantial contributions from:
|
|
177
|
+
|
|
178
|
+
Bobby Bingham
|
|
179
|
+
John Spencer
|
|
180
|
+
Nicholas J. Kain
|
|
181
|
+
Rich Felker
|
|
182
|
+
Richard Pennington
|
|
183
|
+
Stefan Kristiansson
|
|
184
|
+
Szabolcs Nagy
|
|
185
|
+
|
|
186
|
+
all of whom have explicitly granted such permission.
|
|
187
|
+
|
|
188
|
+
This file previously contained text expressing a belief that most of
|
|
189
|
+
the files covered by the above exception were sufficiently trivial not
|
|
190
|
+
to be subject to copyright, resulting in confusion over whether it
|
|
191
|
+
negated the permissions granted in the license. In the spirit of
|
|
192
|
+
permissive licensing, and of not having licensing issues being an
|
|
193
|
+
obstacle to adoption, that text has been removed.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (Expat)
|
|
2
|
+
|
|
3
|
+
Copyright (c) Zig contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -5,3 +5,12 @@
|
|
|
5
5
|
`src/executors/vendor/herdr-pi-lifecycle.ts` is the unmodified official Herdr Pi lifecycle integration, copied from Herdr `v0.8.2`, blob `67bc41889abc2791d6dcdfe8279bdc24186cc6fe` (SHA-256 `9b1c41cd72520fc2abe5f2a2aec995c12a926cce844df472c7fd5fcae4f4dbfa`).
|
|
6
6
|
|
|
7
7
|
It is licensed under Apache License 2.0. A copy of that license is distributed at `THIRD_PARTY_LICENSES/herdr-Apache-2.0.txt`.
|
|
8
|
+
|
|
9
|
+
## Captured Linux x64 worker
|
|
10
|
+
|
|
11
|
+
`native/linux-x64/worker` statically links the musl libc shipped in the official Zig 0.14.1
|
|
12
|
+
Linux x86-64 compiler distribution. Its complete copyright/license notice is reproduced in
|
|
13
|
+
`THIRD_PARTY_LICENSES/musl-COPYRIGHT.txt`; Zig's runtime notice is in `THIRD_PARTY_LICENSES/zig-MIT.txt`.
|
|
14
|
+
These are copied directly from the SHA-256-pinned compiler archive by `scripts/build-worker.ts`.
|
|
15
|
+
The worker does not link glibc. `native/provenance.json` records source, compiler archive, artifact
|
|
16
|
+
and license hashes. See `native/README.md` to reproduce and verify the committed binary.
|