pi-daddy 0.22.0 → 0.24.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 +40 -0
- package/README.md +12 -6
- package/contracts/daily-view/v1/README.md +114 -0
- package/contracts/daily-view/v1/fixtures/view.json +525 -0
- package/contracts/daily-view/v1/fixtures/view.txt +75 -0
- package/contracts/daily-view/v1/fixtures/work.jsonl +17 -0
- package/contracts/daily-view/v1/p03/README.md +26 -0
- package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +241 -0
- package/contracts/daily-view/v1/p03/projection.schema.json +194 -0
- package/contracts/daily-view/v1/p03/provenance.json +21 -0
- package/contracts/dashboard-host/v1/README.md +176 -0
- package/contracts/debrief/v1/README.md +146 -0
- package/contracts/debrief/v1/intervention/README.md +32 -0
- package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +1 -0
- package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +1 -0
- package/contracts/debrief/v1/intervention/fixtures/assessment.json +29 -0
- package/contracts/debrief/v1/intervention/fixtures/blind-view.json +20 -0
- package/contracts/debrief/v1/intervention/fixtures/choice.json +7 -0
- package/contracts/debrief/v1/intervention/fixtures/manifest.json +57 -0
- package/contracts/debrief/v1/intervention/fixtures/reveal.json +39 -0
- package/contracts/debrief/v1/provenance.json +89 -0
- package/contracts/debrief/v1/work-capture/README.md +38 -0
- package/contracts/debrief/v1/work-capture/fixtures/batch.json +17 -0
- package/contracts/debrief/v1/work-capture/fixtures/cases.json +184 -0
- package/contracts/debrief/v1/work-capture/fixtures/review.json +184 -0
- package/contracts/debrief/v1/work-capture/review-request.schema.json +41 -0
- package/contracts/debrief/v1/work-capture/work-case.schema.json +190 -0
- package/contracts/debrief/v2/README.md +71 -0
- package/contracts/debrief/v2/input-pin.json +66 -0
- package/contracts/debrief/v2/intervention-upstream.md +40 -0
- package/contracts/debrief/v2/work-signals-upstream.md +22 -0
- package/contracts/dispatch-control/v1/README.md +109 -0
- package/contracts/dispatch-control/v1/request.schema.json +19 -0
- package/contracts/effect-profile/v1/README.md +124 -0
- package/contracts/execution-retention/v1/README.md +109 -0
- package/contracts/execution-retention/v2/README.md +148 -0
- package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +91 -0
- package/contracts/execution-retention/v2/fixtures/missing-native-session.json +91 -0
- package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +91 -0
- package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +91 -0
- package/contracts/execution-retention/v2/fixtures/native-live-branch.json +90 -0
- package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +92 -0
- package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +1 -0
- package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +3 -0
- package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +3 -0
- package/contracts/execution-retention/v2/manifest.schema.json +858 -0
- package/contracts/experiment/v1/README.md +164 -0
- package/contracts/factory-order/v1/README.md +151 -0
- package/contracts/factory-order/v1/adoption-pin.json +8 -0
- package/contracts/intent-control/v1/README.md +135 -0
- package/contracts/intent-control/v1/request.schema.json +1096 -0
- package/contracts/intent-control/v2/README.md +34 -0
- package/contracts/intent-control/v2/request.schema.json +1070 -0
- package/contracts/ledger/v4/README.md +241 -0
- package/contracts/ledger/v4/fixtures/layout-options.json +428 -0
- package/contracts/ledger/v4/fixtures/work-acceptance.json +57 -0
- package/contracts/ledger/v4/fixtures/work-occurrence.json +44 -0
- package/contracts/ledger/v4/fixtures/work-revision.json +26 -0
- package/contracts/ledger/v4/fixtures/work-snapshot.json +73 -0
- package/contracts/ledger/v4/ledger-event.schema.json +162 -0
- package/contracts/ordinary-control/v1/README.md +59 -0
- package/contracts/producer-ipc/v1/README.md +137 -0
- package/dist/check-runner.d.ts +5 -0
- package/dist/check-runner.d.ts.map +1 -1
- package/dist/check-runner.js +16 -2
- package/dist/check-runner.js.map +1 -1
- package/dist/cli.d.ts +3 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -3
- package/dist/cli.js.map +1 -1
- package/dist/control-journal.d.ts +20 -0
- package/dist/control-journal.d.ts.map +1 -0
- package/dist/control-journal.js +73 -0
- package/dist/control-journal.js.map +1 -0
- package/dist/daily-dashboard-host.d.ts +99 -0
- package/dist/daily-dashboard-host.d.ts.map +1 -0
- package/dist/daily-dashboard-host.js +71 -0
- package/dist/daily-dashboard-host.js.map +1 -0
- package/dist/daily-view-input.d.ts +44 -0
- package/dist/daily-view-input.d.ts.map +1 -0
- package/dist/daily-view-input.js +68 -0
- package/dist/daily-view-input.js.map +1 -0
- package/dist/daily-view-render.d.ts +4 -0
- package/dist/daily-view-render.d.ts.map +1 -0
- package/dist/daily-view-render.js +41 -0
- package/dist/daily-view-render.js.map +1 -0
- package/dist/daily-view.d.ts +74 -0
- package/dist/daily-view.d.ts.map +1 -0
- package/dist/daily-view.js +170 -0
- package/dist/daily-view.js.map +1 -0
- package/dist/dashboard-cli.d.ts +26 -1
- package/dist/dashboard-cli.d.ts.map +1 -1
- package/dist/dashboard-cli.js +128 -3
- package/dist/dashboard-cli.js.map +1 -1
- package/dist/dashboard-harness.d.ts +22 -0
- package/dist/dashboard-harness.d.ts.map +1 -0
- package/dist/dashboard-harness.js +89 -0
- package/dist/dashboard-harness.js.map +1 -0
- package/dist/dashboard-herdr.d.ts.map +1 -1
- package/dist/dashboard-herdr.js +7 -2
- package/dist/dashboard-herdr.js.map +1 -1
- package/dist/dashboard-host-contract.d.ts +116 -0
- package/dist/dashboard-host-contract.d.ts.map +1 -0
- package/dist/dashboard-host-contract.js +14 -0
- package/dist/dashboard-host-contract.js.map +1 -0
- package/dist/dashboard-host-transport.d.ts +16 -0
- package/dist/dashboard-host-transport.d.ts.map +1 -0
- package/dist/dashboard-host-transport.js +124 -0
- package/dist/dashboard-host-transport.js.map +1 -0
- package/dist/dashboard-host.d.ts +203 -0
- package/dist/dashboard-host.d.ts.map +1 -0
- package/dist/dashboard-host.js +376 -0
- package/dist/dashboard-host.js.map +1 -0
- package/dist/dashboard-observation.d.ts +28 -0
- package/dist/dashboard-observation.d.ts.map +1 -0
- package/dist/dashboard-observation.js +86 -0
- package/dist/dashboard-observation.js.map +1 -0
- package/dist/debrief-contract.d.ts +65 -0
- package/dist/debrief-contract.d.ts.map +1 -0
- package/dist/debrief-contract.js +151 -0
- package/dist/debrief-contract.js.map +1 -0
- package/dist/debrief-fixture.d.ts +16 -0
- package/dist/debrief-fixture.d.ts.map +1 -0
- package/dist/debrief-fixture.js +41 -0
- package/dist/debrief-fixture.js.map +1 -0
- package/dist/debrief-host.d.ts +59 -0
- package/dist/debrief-host.d.ts.map +1 -0
- package/dist/debrief-host.js +49 -0
- package/dist/debrief-host.js.map +1 -0
- package/dist/debrief-render.d.ts +5 -0
- package/dist/debrief-render.d.ts.map +1 -0
- package/dist/debrief-render.js +65 -0
- package/dist/debrief-render.js.map +1 -0
- package/dist/debrief.d.ts +90 -0
- package/dist/debrief.d.ts.map +1 -0
- package/dist/debrief.js +263 -0
- package/dist/debrief.js.map +1 -0
- package/dist/delegate-types.d.ts +2 -0
- package/dist/delegate-types.d.ts.map +1 -1
- package/dist/delegate-types.js.map +1 -1
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +1 -0
- package/dist/delegate.js.map +1 -1
- package/dist/dispatch-control.d.ts +45 -0
- package/dist/dispatch-control.d.ts.map +1 -0
- package/dist/dispatch-control.js +76 -0
- package/dist/dispatch-control.js.map +1 -0
- package/dist/effect-profile-runtime.d.ts +40 -0
- package/dist/effect-profile-runtime.d.ts.map +1 -0
- package/dist/effect-profile-runtime.js +51 -0
- package/dist/effect-profile-runtime.js.map +1 -0
- package/dist/effect-profile.d.ts +40 -0
- package/dist/effect-profile.d.ts.map +1 -0
- package/dist/effect-profile.js +152 -0
- package/dist/effect-profile.js.map +1 -0
- package/dist/execution-retention.d.ts +90 -0
- package/dist/execution-retention.d.ts.map +1 -0
- package/dist/execution-retention.js +247 -0
- package/dist/execution-retention.js.map +1 -0
- package/dist/experiment-contract.d.ts +56 -0
- package/dist/experiment-contract.d.ts.map +1 -0
- package/dist/experiment-contract.js +80 -0
- package/dist/experiment-contract.js.map +1 -0
- package/dist/experiment-state.d.ts +22 -0
- package/dist/experiment-state.d.ts.map +1 -0
- package/dist/experiment-state.js +79 -0
- package/dist/experiment-state.js.map +1 -0
- package/dist/experiment-store.d.ts +30 -0
- package/dist/experiment-store.d.ts.map +1 -0
- package/dist/experiment-store.js +147 -0
- package/dist/experiment-store.js.map +1 -0
- package/dist/experiment.d.ts +65 -0
- package/dist/experiment.d.ts.map +1 -0
- package/dist/experiment.js +357 -0
- package/dist/experiment.js.map +1 -0
- package/dist/factory-contract.d.ts +79 -0
- package/dist/factory-contract.d.ts.map +1 -0
- package/dist/factory-contract.js +89 -0
- package/dist/factory-contract.js.map +1 -0
- package/dist/factory-migration.d.ts +20 -0
- package/dist/factory-migration.d.ts.map +1 -0
- package/dist/factory-migration.js +55 -0
- package/dist/factory-migration.js.map +1 -0
- package/dist/factory-order.d.ts +848 -0
- package/dist/factory-order.d.ts.map +1 -0
- package/dist/factory-order.js +83 -0
- package/dist/factory-order.js.map +1 -0
- package/dist/factory-registry.d.ts +121 -0
- package/dist/factory-registry.d.ts.map +1 -0
- package/dist/factory-registry.js +133 -0
- package/dist/factory-registry.js.map +1 -0
- package/dist/file-lock.d.ts +8 -2
- package/dist/file-lock.d.ts.map +1 -1
- package/dist/file-lock.js +78 -19
- package/dist/file-lock.js.map +1 -1
- package/dist/herdr-poll.d.ts +8 -0
- package/dist/herdr-poll.d.ts.map +1 -1
- package/dist/herdr-poll.js +23 -0
- package/dist/herdr-poll.js.map +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/intent-application.d.ts +17 -0
- package/dist/intent-application.d.ts.map +1 -0
- package/dist/intent-application.js +113 -0
- package/dist/intent-application.js.map +1 -0
- package/dist/intent-control.d.ts +201 -0
- package/dist/intent-control.d.ts.map +1 -0
- package/dist/intent-control.js +110 -0
- package/dist/intent-control.js.map +1 -0
- package/dist/intent-scheduling.d.ts +9 -0
- package/dist/intent-scheduling.d.ts.map +1 -0
- package/dist/intent-scheduling.js +15 -0
- package/dist/intent-scheduling.js.map +1 -0
- package/dist/ledger-append.d.ts +15 -0
- package/dist/ledger-append.d.ts.map +1 -0
- package/dist/ledger-append.js +94 -0
- package/dist/ledger-append.js.map +1 -0
- package/dist/ledger.d.ts +11 -0
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +3 -7
- package/dist/ledger.js.map +1 -1
- package/dist/native-session-target.d.ts +9 -0
- package/dist/native-session-target.d.ts.map +1 -0
- package/dist/native-session-target.js +29 -0
- package/dist/native-session-target.js.map +1 -0
- package/dist/native-session.d.ts +59 -0
- package/dist/native-session.d.ts.map +1 -0
- package/dist/native-session.js +154 -0
- package/dist/native-session.js.map +1 -0
- package/dist/order-schedule.d.ts +37 -0
- package/dist/order-schedule.d.ts.map +1 -0
- package/dist/order-schedule.js +81 -0
- package/dist/order-schedule.js.map +1 -0
- package/dist/ordinary-children.d.ts +52 -0
- package/dist/ordinary-children.d.ts.map +1 -0
- package/dist/ordinary-children.js +93 -0
- package/dist/ordinary-children.js.map +1 -0
- package/dist/producer-ipc-contract.d.ts +29 -0
- package/dist/producer-ipc-contract.d.ts.map +1 -0
- package/dist/producer-ipc-contract.js +29 -0
- package/dist/producer-ipc-contract.js.map +1 -0
- package/dist/producer-ipc.d.ts +55 -0
- package/dist/producer-ipc.d.ts.map +1 -0
- package/dist/producer-ipc.js +143 -0
- package/dist/producer-ipc.js.map +1 -0
- package/dist/resource-budget.d.ts +334 -0
- package/dist/resource-budget.d.ts.map +1 -0
- package/dist/resource-budget.js +415 -0
- package/dist/resource-budget.js.map +1 -0
- package/dist/retention-contract.d.ts +73 -0
- package/dist/retention-contract.d.ts.map +1 -0
- package/dist/retention-contract.js +104 -0
- package/dist/retention-contract.js.map +1 -0
- package/dist/retention-json.d.ts +3 -0
- package/dist/retention-json.d.ts.map +1 -0
- package/dist/retention-json.js +32 -0
- package/dist/retention-json.js.map +1 -0
- package/dist/run-child.d.ts +4 -0
- package/dist/run-child.d.ts.map +1 -1
- package/dist/run-child.js +16 -2
- package/dist/run-child.js.map +1 -1
- package/dist/run-herdr.d.ts +6 -0
- package/dist/run-herdr.d.ts.map +1 -1
- package/dist/run-herdr.js +19 -6
- package/dist/run-herdr.js.map +1 -1
- package/dist/vendor/adoption.d.ts +129 -0
- package/dist/vendor/adoption.d.ts.map +1 -0
- package/dist/vendor/adoption.js +102 -0
- package/dist/vendor/adoption.js.map +1 -0
- package/dist/work-command.d.ts +30 -0
- package/dist/work-command.d.ts.map +1 -0
- package/dist/work-command.js +148 -0
- package/dist/work-command.js.map +1 -0
- package/dist/work-ledger-destination.d.ts +20 -0
- package/dist/work-ledger-destination.d.ts.map +1 -0
- package/dist/work-ledger-destination.js +131 -0
- package/dist/work-ledger-destination.js.map +1 -0
- package/dist/work-ledger-json.d.ts +25 -0
- package/dist/work-ledger-json.d.ts.map +1 -0
- package/dist/work-ledger-json.js +267 -0
- package/dist/work-ledger-json.js.map +1 -0
- package/dist/work-ledger-occurrences.d.ts +227 -0
- package/dist/work-ledger-occurrences.d.ts.map +1 -0
- package/dist/work-ledger-occurrences.js +115 -0
- package/dist/work-ledger-occurrences.js.map +1 -0
- package/dist/work-ledger-projection.d.ts +295 -0
- package/dist/work-ledger-projection.d.ts.map +1 -0
- package/dist/work-ledger-projection.js +237 -0
- package/dist/work-ledger-projection.js.map +1 -0
- package/dist/work-ledger-snapshot.d.ts +29 -0
- package/dist/work-ledger-snapshot.d.ts.map +1 -0
- package/dist/work-ledger-snapshot.js +267 -0
- package/dist/work-ledger-snapshot.js.map +1 -0
- package/dist/work-ledger-types.d.ts +261 -0
- package/dist/work-ledger-types.d.ts.map +1 -0
- package/dist/work-ledger-types.js +13 -0
- package/dist/work-ledger-types.js.map +1 -0
- package/dist/work-ledger-validation.d.ts +14 -0
- package/dist/work-ledger-validation.d.ts.map +1 -0
- package/dist/work-ledger-validation.js +226 -0
- package/dist/work-ledger-validation.js.map +1 -0
- package/dist/work-ledger.d.ts +43 -0
- package/dist/work-ledger.d.ts.map +1 -0
- package/dist/work-ledger.js +225 -0
- package/dist/work-ledger.js.map +1 -0
- package/extensions/daily-dashboard-session.ts +30 -0
- package/extensions/daily-work-session.ts +20 -0
- package/extensions/delegate-chain.ts +1 -0
- package/extensions/delegation-native.ts +12 -0
- package/extensions/delegation.ts +25 -11
- package/extensions/execute-child.ts +44 -5
- package/extensions/executor-session.ts +9 -0
- package/extensions/grants-command.ts +14 -15
- package/extensions/grants-connected-command.ts +19 -0
- package/extensions/grants.ts +26 -2
- package/extensions/ordinary-runtime.ts +14 -0
- package/extensions/primary-shadow.ts +11 -0
- package/extensions/run-delegation.ts +9 -7
- package/extensions/session.ts +10 -20
- package/extensions/work-runtime.ts +44 -0
- package/package.json +78 -4
- package/src/check-runner.ts +20 -2
- package/src/cli.ts +41 -4
- package/src/control-journal.ts +26 -0
- package/src/daily-dashboard-host.ts +49 -0
- package/src/daily-view-input.ts +59 -0
- package/src/daily-view-render.ts +44 -0
- package/src/daily-view.ts +152 -0
- package/src/dashboard-cli.ts +108 -4
- package/src/dashboard-harness.ts +37 -0
- package/src/dashboard-herdr.ts +7 -2
- package/src/dashboard-host-contract.ts +45 -0
- package/src/dashboard-host-transport.ts +40 -0
- package/src/dashboard-host.ts +191 -0
- package/src/dashboard-observation.ts +45 -0
- package/src/debrief-contract.ts +127 -0
- package/src/debrief-fixture.ts +29 -0
- package/src/debrief-host.ts +53 -0
- package/src/debrief-render.ts +49 -0
- package/src/debrief.ts +198 -0
- package/src/delegate-types.ts +2 -0
- package/src/delegate.ts +1 -0
- package/src/dispatch-control.ts +81 -0
- package/src/effect-profile-runtime.ts +46 -0
- package/src/effect-profile.ts +129 -0
- package/src/execution-retention.ts +230 -0
- package/src/experiment-contract.ts +66 -0
- package/src/experiment-state.ts +44 -0
- package/src/experiment-store.ts +98 -0
- package/src/experiment.ts +231 -0
- package/src/factory-contract.ts +47 -0
- package/src/factory-migration.ts +29 -0
- package/src/factory-order.ts +56 -0
- package/src/factory-registry.ts +60 -0
- package/src/file-lock.ts +47 -11
- package/src/herdr-poll.ts +18 -0
- package/src/index.ts +32 -0
- package/src/intent-application.ts +90 -0
- package/src/intent-control.ts +107 -0
- package/src/intent-scheduling.ts +14 -0
- package/src/ledger-append.ts +72 -0
- package/src/ledger.ts +3 -9
- package/src/native-session-target.ts +23 -0
- package/src/native-session.ts +139 -0
- package/src/order-schedule.ts +42 -0
- package/src/ordinary-children.ts +59 -0
- package/src/producer-ipc-contract.ts +26 -0
- package/src/producer-ipc.ts +107 -0
- package/src/resource-budget.ts +349 -0
- package/src/retention-contract.ts +84 -0
- package/src/retention-json.ts +20 -0
- package/src/run-child.ts +13 -2
- package/src/run-herdr.ts +11 -7
- package/src/vendor/adoption.ts +109 -0
- package/src/work-command.ts +179 -0
- package/src/work-ledger-destination.ts +113 -0
- package/src/work-ledger-json.ts +228 -0
- package/src/work-ledger-occurrences.ts +99 -0
- package/src/work-ledger-projection.ts +262 -0
- package/src/work-ledger-snapshot.ts +246 -0
- package/src/work-ledger-types.ts +229 -0
- package/src/work-ledger-validation.ts +174 -0
- package/src/work-ledger.ts +186 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Execution archive read-model v1
|
|
2
|
+
|
|
3
|
+
Owner: skill-harness. This is a read-only projection contract, not work intent, acceptance, a grant, or a replacement producer ledger.
|
|
4
|
+
|
|
5
|
+
`packages/adapters/src/execution-retention-archive.ts` exposes `ingestRetainedExecution`, `readRetainedExecution`, and `projectRetainedExecutions`. Producer input is exactly execution-retention2.0 at pi-daddy `7c78769c47177b1972b09e1f5c5474ad44cd2cac`; its schema, fixtures and validation implementation are vendored via `scripts/vendor-execution-retention.mjs`, never hand-edited. Historical ledger selectors remain separate.
|
|
6
|
+
|
|
7
|
+
- Validate producer JSON and cross-field invariants before normalization. Read no producer-supplied path: the caller supplies policy-authorized bounded blob bytes keyed by validated basenames.
|
|
8
|
+
- Exact-content policy is mandatory for semantic ingestion. Redacted/reference-only inputs remain supported by the opaque archive APIs, but cannot impersonate a verified native semantic snapshot.
|
|
9
|
+
- Actual retained byte length/hash determines availability. Bounded mismatched bytes are preserved as forensic input and remain mismatched. Missing/deleted bytes remain missing when reread; stored availability is not inherited.
|
|
10
|
+
- Native session headers/trees are independently parsed from retained bytes. A reported live leaf is checked for consistency, not authenticated as active. `activeBranch` is always null here. File tails are never elected as active branches.
|
|
11
|
+
- Group by unique execution ID, not logical child name, timestamp, public tool-call ID or native-session parent path. Public calls may join several executions. Distinct attempts may share a session legitimately. Duplicate observations do not create additional executions, and differing observations of the same manifest keep their coverage findings.
|
|
12
|
+
- Terminal runtime is producer-reported, not accepted work. Contradictory identity/outcome facts produce conflict; parent cycles/missing parents remain explicit. `outcome` is available only for a single consistent terminal outcome. Its code0 can coexist with failed control receipts.
|
|
13
|
+
- Source references are SHA256 identities of retained raw producer manifests, not executable paths or arbitrary URLs. The configured private archive contains those bytes separately. Missing linked evidence must remain visible to consumers.
|
|
14
|
+
- Every result has `coverage:"partial"` and `acceptance:"not-assessed"`. Intended/unstarted obligations and accepted progress must come separately from P01 with genuine host authority. This projection cannot authorize dispatch or adoption.
|
|
15
|
+
|
|
16
|
+
`projection.schema.json` is emitted from the source-owned schema; `fixtures/retained-executions.json` is emitted by the actual adapter over all six pinned synthetic producer cases. No live model/Pi/Herdr qualification is implied.
|
|
17
|
+
|
|
18
|
+
After a direct compiler build:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
node scripts/generate-execution-projection.mjs --check
|
|
22
|
+
node scripts/vendor-execution-retention.mjs <local-pi-daddy-repo> 7c78769c47177b1972b09e1f5c5474ad44cd2cac --check
|
|
23
|
+
node node_modules/vitest/vitest.mjs run packages/adapters/test/execution-retention-archive.test.ts
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The retained TypeBox1.3.4 package is now an explicit runtime adapter dependency for the copied producer validator; no package was installed or downloaded. Installation/pack compatibility remains unrun under the local no-lifecycle restriction. Private ingestion policy and immutable checkpoints are separate existing APIs; automatic watching and a deployed archive policy are not implied.
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "execution-archive-projection-v1",
|
|
3
|
+
"executions": [
|
|
4
|
+
{
|
|
5
|
+
"executionId": "exec:00000000-0000-4000-8000-000000000001",
|
|
6
|
+
"parentExecutionIds": [
|
|
7
|
+
"exec:00000000-0000-4000-8000-000000000099"
|
|
8
|
+
],
|
|
9
|
+
"retainedSessionIds": [],
|
|
10
|
+
"activeBranch": null,
|
|
11
|
+
"toolCallIds": [
|
|
12
|
+
"call:layout:1"
|
|
13
|
+
],
|
|
14
|
+
"archiveIds": [
|
|
15
|
+
"00000000-0000-4000-8000-000000000001"
|
|
16
|
+
],
|
|
17
|
+
"runtime": "terminal",
|
|
18
|
+
"outcome": {
|
|
19
|
+
"code": 0,
|
|
20
|
+
"signal": null,
|
|
21
|
+
"timedOut": false,
|
|
22
|
+
"aborted": false,
|
|
23
|
+
"truncated": false,
|
|
24
|
+
"failed": false
|
|
25
|
+
},
|
|
26
|
+
"sourceReferences": [
|
|
27
|
+
"aa913c6061b2e51e13a729facd19a0ca53c466cc603ba84d6da09842ff9d74f5"
|
|
28
|
+
],
|
|
29
|
+
"issues": [
|
|
30
|
+
"active-branch-unknown",
|
|
31
|
+
"content-missing:checkReceipt",
|
|
32
|
+
"content-missing:paneSnapshot",
|
|
33
|
+
"content-missing:result",
|
|
34
|
+
"content-missing:session",
|
|
35
|
+
"content-missing:stderr",
|
|
36
|
+
"content-missing:stdout",
|
|
37
|
+
"native-session-unavailable",
|
|
38
|
+
"parent-not-in-snapshot"
|
|
39
|
+
],
|
|
40
|
+
"coverage": "partial",
|
|
41
|
+
"acceptance": "not-assessed"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"executionId": "exec:00000000-0000-4000-8000-000000000002",
|
|
45
|
+
"parentExecutionIds": [
|
|
46
|
+
"exec:00000000-0000-4000-8000-000000000099"
|
|
47
|
+
],
|
|
48
|
+
"retainedSessionIds": [],
|
|
49
|
+
"activeBranch": null,
|
|
50
|
+
"toolCallIds": [
|
|
51
|
+
"call:layout:2"
|
|
52
|
+
],
|
|
53
|
+
"archiveIds": [
|
|
54
|
+
"00000000-0000-4000-8000-000000000002"
|
|
55
|
+
],
|
|
56
|
+
"runtime": "terminal",
|
|
57
|
+
"outcome": {
|
|
58
|
+
"code": 0,
|
|
59
|
+
"signal": null,
|
|
60
|
+
"timedOut": false,
|
|
61
|
+
"aborted": false,
|
|
62
|
+
"truncated": false,
|
|
63
|
+
"failed": false
|
|
64
|
+
},
|
|
65
|
+
"sourceReferences": [
|
|
66
|
+
"ce7f59468b935af873c7dbb063cac3431dc0d12ec5b969d9984dc12547d61192"
|
|
67
|
+
],
|
|
68
|
+
"issues": [
|
|
69
|
+
"active-branch-unknown",
|
|
70
|
+
"content-missing:checkReceipt",
|
|
71
|
+
"content-missing:paneSnapshot",
|
|
72
|
+
"content-missing:result",
|
|
73
|
+
"content-missing:session",
|
|
74
|
+
"content-missing:stderr",
|
|
75
|
+
"content-missing:stdout",
|
|
76
|
+
"native-session-unavailable",
|
|
77
|
+
"parent-not-in-snapshot"
|
|
78
|
+
],
|
|
79
|
+
"coverage": "partial",
|
|
80
|
+
"acceptance": "not-assessed"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"executionId": "exec:00000000-0000-4000-8000-000000000003",
|
|
84
|
+
"parentExecutionIds": [
|
|
85
|
+
"exec:00000000-0000-4000-8000-000000000099"
|
|
86
|
+
],
|
|
87
|
+
"retainedSessionIds": [
|
|
88
|
+
"11111111-1111-4111-8111-111111111111"
|
|
89
|
+
],
|
|
90
|
+
"activeBranch": null,
|
|
91
|
+
"toolCallIds": [
|
|
92
|
+
"call:layout:3"
|
|
93
|
+
],
|
|
94
|
+
"archiveIds": [
|
|
95
|
+
"00000000-0000-4000-8000-000000000003"
|
|
96
|
+
],
|
|
97
|
+
"runtime": "terminal",
|
|
98
|
+
"outcome": {
|
|
99
|
+
"code": 0,
|
|
100
|
+
"signal": null,
|
|
101
|
+
"timedOut": false,
|
|
102
|
+
"aborted": false,
|
|
103
|
+
"truncated": false,
|
|
104
|
+
"failed": false
|
|
105
|
+
},
|
|
106
|
+
"sourceReferences": [
|
|
107
|
+
"a9b1899c783b41796342741fd38fdf5c77c7833047d4cb3d8f7829d1f62290bd"
|
|
108
|
+
],
|
|
109
|
+
"issues": [
|
|
110
|
+
"active-branch-unknown",
|
|
111
|
+
"content-missing:checkReceipt",
|
|
112
|
+
"content-missing:paneSnapshot",
|
|
113
|
+
"content-missing:stderr",
|
|
114
|
+
"content-missing:stdout",
|
|
115
|
+
"not-acceptance-evidence",
|
|
116
|
+
"parent-not-in-snapshot"
|
|
117
|
+
],
|
|
118
|
+
"coverage": "partial",
|
|
119
|
+
"acceptance": "not-assessed"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"executionId": "exec:00000000-0000-4000-8000-000000000004",
|
|
123
|
+
"parentExecutionIds": [
|
|
124
|
+
"exec:00000000-0000-4000-8000-000000000099"
|
|
125
|
+
],
|
|
126
|
+
"retainedSessionIds": [
|
|
127
|
+
"11111111-1111-4111-8111-111111111111"
|
|
128
|
+
],
|
|
129
|
+
"activeBranch": null,
|
|
130
|
+
"toolCallIds": [
|
|
131
|
+
"call:layout:4"
|
|
132
|
+
],
|
|
133
|
+
"archiveIds": [
|
|
134
|
+
"00000000-0000-4000-8000-000000000004"
|
|
135
|
+
],
|
|
136
|
+
"runtime": "terminal",
|
|
137
|
+
"outcome": {
|
|
138
|
+
"code": 0,
|
|
139
|
+
"signal": null,
|
|
140
|
+
"timedOut": false,
|
|
141
|
+
"aborted": false,
|
|
142
|
+
"truncated": false,
|
|
143
|
+
"failed": false
|
|
144
|
+
},
|
|
145
|
+
"sourceReferences": [
|
|
146
|
+
"d0171dd7cf8e8853511eb5f5e85659de6c3348c82414bd6b77db93c4e243850f"
|
|
147
|
+
],
|
|
148
|
+
"issues": [
|
|
149
|
+
"active-branch-not-independently-verified",
|
|
150
|
+
"content-missing:checkReceipt",
|
|
151
|
+
"content-missing:paneSnapshot",
|
|
152
|
+
"content-missing:stderr",
|
|
153
|
+
"content-missing:stdout",
|
|
154
|
+
"not-acceptance-evidence",
|
|
155
|
+
"parent-not-in-snapshot"
|
|
156
|
+
],
|
|
157
|
+
"coverage": "partial",
|
|
158
|
+
"acceptance": "not-assessed"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"executionId": "exec:00000000-0000-4000-8000-000000000005",
|
|
162
|
+
"parentExecutionIds": [
|
|
163
|
+
"exec:00000000-0000-4000-8000-000000000099"
|
|
164
|
+
],
|
|
165
|
+
"retainedSessionIds": [
|
|
166
|
+
"11111111-1111-4111-8111-111111111111"
|
|
167
|
+
],
|
|
168
|
+
"activeBranch": null,
|
|
169
|
+
"toolCallIds": [
|
|
170
|
+
"call:layout:5"
|
|
171
|
+
],
|
|
172
|
+
"archiveIds": [
|
|
173
|
+
"00000000-0000-4000-8000-000000000005"
|
|
174
|
+
],
|
|
175
|
+
"runtime": "terminal",
|
|
176
|
+
"outcome": {
|
|
177
|
+
"code": null,
|
|
178
|
+
"signal": "SIGTERM",
|
|
179
|
+
"timedOut": false,
|
|
180
|
+
"aborted": true,
|
|
181
|
+
"truncated": true,
|
|
182
|
+
"failed": true
|
|
183
|
+
},
|
|
184
|
+
"sourceReferences": [
|
|
185
|
+
"a6b253ade21351387e9df56fd2d686e022a356d72d46268a2feba346a6d616aa"
|
|
186
|
+
],
|
|
187
|
+
"issues": [
|
|
188
|
+
"content-missing:checkReceipt",
|
|
189
|
+
"content-missing:paneSnapshot",
|
|
190
|
+
"content-missing:stderr",
|
|
191
|
+
"content-missing:stdout",
|
|
192
|
+
"native-session-incomplete-bytes",
|
|
193
|
+
"not-acceptance-evidence",
|
|
194
|
+
"parent-not-in-snapshot"
|
|
195
|
+
],
|
|
196
|
+
"coverage": "partial",
|
|
197
|
+
"acceptance": "not-assessed"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"executionId": "exec:00000000-0000-4000-8000-000000000006",
|
|
201
|
+
"parentExecutionIds": [
|
|
202
|
+
"exec:00000000-0000-4000-8000-000000000099"
|
|
203
|
+
],
|
|
204
|
+
"retainedSessionIds": [],
|
|
205
|
+
"activeBranch": null,
|
|
206
|
+
"toolCallIds": [
|
|
207
|
+
"call:layout:6"
|
|
208
|
+
],
|
|
209
|
+
"archiveIds": [
|
|
210
|
+
"00000000-0000-4000-8000-000000000006"
|
|
211
|
+
],
|
|
212
|
+
"runtime": "terminal",
|
|
213
|
+
"outcome": {
|
|
214
|
+
"code": 0,
|
|
215
|
+
"signal": null,
|
|
216
|
+
"timedOut": false,
|
|
217
|
+
"aborted": false,
|
|
218
|
+
"truncated": false,
|
|
219
|
+
"failed": false
|
|
220
|
+
},
|
|
221
|
+
"sourceReferences": [
|
|
222
|
+
"4a3b22a4351f333b47a7b63ac7acf87757558ba16a2f80911f7055f205d2f795"
|
|
223
|
+
],
|
|
224
|
+
"issues": [
|
|
225
|
+
"active-branch-unknown",
|
|
226
|
+
"content-missing:checkReceipt",
|
|
227
|
+
"content-missing:paneSnapshot",
|
|
228
|
+
"content-missing:result",
|
|
229
|
+
"content-missing:session",
|
|
230
|
+
"content-missing:stderr",
|
|
231
|
+
"content-missing:stdout",
|
|
232
|
+
"native-session-file-replaced",
|
|
233
|
+
"native-session-unavailable",
|
|
234
|
+
"parent-not-in-snapshot"
|
|
235
|
+
],
|
|
236
|
+
"coverage": "partial",
|
|
237
|
+
"acceptance": "not-assessed"
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
"acceptance": "not-assessed"
|
|
241
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/mojomanyana/skill-harness/contracts/execution-archive/v1/projection.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"version": {
|
|
7
|
+
"const": "execution-archive-projection-v1"
|
|
8
|
+
},
|
|
9
|
+
"executions": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"maxItems": 4096,
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"executionId": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"maxLength": 512
|
|
19
|
+
},
|
|
20
|
+
"parentExecutionIds": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"anyOf": [
|
|
24
|
+
{
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1,
|
|
27
|
+
"maxLength": 512
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "null"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"maxItems": 4096,
|
|
35
|
+
"uniqueItems": true
|
|
36
|
+
},
|
|
37
|
+
"retainedSessionIds": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"minLength": 1,
|
|
42
|
+
"maxLength": 512
|
|
43
|
+
},
|
|
44
|
+
"maxItems": 4096,
|
|
45
|
+
"uniqueItems": true
|
|
46
|
+
},
|
|
47
|
+
"activeBranch": {
|
|
48
|
+
"const": null
|
|
49
|
+
},
|
|
50
|
+
"toolCallIds": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": {
|
|
53
|
+
"anyOf": [
|
|
54
|
+
{
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"maxLength": 512
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "null"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"maxItems": 4096,
|
|
65
|
+
"uniqueItems": true
|
|
66
|
+
},
|
|
67
|
+
"archiveIds": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"minLength": 1,
|
|
72
|
+
"maxLength": 512
|
|
73
|
+
},
|
|
74
|
+
"maxItems": 4096,
|
|
75
|
+
"uniqueItems": true
|
|
76
|
+
},
|
|
77
|
+
"runtime": {
|
|
78
|
+
"enum": [
|
|
79
|
+
"running",
|
|
80
|
+
"terminal",
|
|
81
|
+
"conflict"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"outcome": {
|
|
85
|
+
"anyOf": [
|
|
86
|
+
{
|
|
87
|
+
"type": "object",
|
|
88
|
+
"properties": {
|
|
89
|
+
"code": {
|
|
90
|
+
"anyOf": [
|
|
91
|
+
{
|
|
92
|
+
"type": "integer",
|
|
93
|
+
"minimum": -2147483648,
|
|
94
|
+
"maximum": 2147483647
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "null"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"signal": {
|
|
102
|
+
"anyOf": [
|
|
103
|
+
{
|
|
104
|
+
"type": "string",
|
|
105
|
+
"minLength": 1,
|
|
106
|
+
"maxLength": 512
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"type": "null"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"timedOut": {
|
|
114
|
+
"type": "boolean"
|
|
115
|
+
},
|
|
116
|
+
"aborted": {
|
|
117
|
+
"type": "boolean"
|
|
118
|
+
},
|
|
119
|
+
"truncated": {
|
|
120
|
+
"type": "boolean"
|
|
121
|
+
},
|
|
122
|
+
"failed": {
|
|
123
|
+
"type": "boolean"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"required": [
|
|
127
|
+
"code",
|
|
128
|
+
"signal",
|
|
129
|
+
"timedOut",
|
|
130
|
+
"aborted",
|
|
131
|
+
"truncated",
|
|
132
|
+
"failed"
|
|
133
|
+
],
|
|
134
|
+
"additionalProperties": false
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"type": "null"
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"sourceReferences": {
|
|
142
|
+
"type": "array",
|
|
143
|
+
"items": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
146
|
+
},
|
|
147
|
+
"maxItems": 4096,
|
|
148
|
+
"uniqueItems": true
|
|
149
|
+
},
|
|
150
|
+
"issues": {
|
|
151
|
+
"type": "array",
|
|
152
|
+
"items": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"minLength": 1,
|
|
155
|
+
"maxLength": 512
|
|
156
|
+
},
|
|
157
|
+
"maxItems": 4096,
|
|
158
|
+
"uniqueItems": true
|
|
159
|
+
},
|
|
160
|
+
"coverage": {
|
|
161
|
+
"const": "partial"
|
|
162
|
+
},
|
|
163
|
+
"acceptance": {
|
|
164
|
+
"const": "not-assessed"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"required": [
|
|
168
|
+
"executionId",
|
|
169
|
+
"parentExecutionIds",
|
|
170
|
+
"retainedSessionIds",
|
|
171
|
+
"activeBranch",
|
|
172
|
+
"toolCallIds",
|
|
173
|
+
"archiveIds",
|
|
174
|
+
"runtime",
|
|
175
|
+
"outcome",
|
|
176
|
+
"sourceReferences",
|
|
177
|
+
"issues",
|
|
178
|
+
"coverage",
|
|
179
|
+
"acceptance"
|
|
180
|
+
],
|
|
181
|
+
"additionalProperties": false
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"acceptance": {
|
|
185
|
+
"const": "not-assessed"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"required": [
|
|
189
|
+
"version",
|
|
190
|
+
"executions",
|
|
191
|
+
"acceptance"
|
|
192
|
+
],
|
|
193
|
+
"additionalProperties": false
|
|
194
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repository": "skill-harness",
|
|
3
|
+
"commit": "a311df8c991108ada7b6f4b901332232a78e9a44",
|
|
4
|
+
"entries": [
|
|
5
|
+
{
|
|
6
|
+
"sourcePath": "contracts/execution-archive/v1/README.md",
|
|
7
|
+
"targetPath": "README.md",
|
|
8
|
+
"sha256": "eae42c01ed7ac0749ba0a7d6187a2d29203f6c72e6db759b7184048628bfb0df"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"sourcePath": "contracts/execution-archive/v1/projection.schema.json",
|
|
12
|
+
"targetPath": "projection.schema.json",
|
|
13
|
+
"sha256": "860701885c2c6a1fc1bde39989f015b6354c8a5d392108d8e4f8afdb931b08c8"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"sourcePath": "contracts/execution-archive/v1/fixtures/retained-executions.json",
|
|
17
|
+
"targetPath": "fixtures/retained-executions.json",
|
|
18
|
+
"sha256": "ef06d522a6430e9b3981eb133c8a3a56de774faeda239c3e5f3570c469a50641"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Connected producer dashboard host v1 (local candidate)
|
|
2
|
+
|
|
3
|
+
This is the existing dashboard's explicit operational host, not another scheduler or learning-decision
|
|
4
|
+
store. It launches no models. Source through6212b9d is public draft PR35; subsequent ordinary-boundary
|
|
5
|
+
amendments are LOCAL ONLY. Original overall CHANGES-REQUESTED remains. No live/authenticated factory acceptance follows.
|
|
6
|
+
|
|
7
|
+
## Additive original ordinary control and revision application
|
|
8
|
+
|
|
9
|
+
Optional `ordinaryDigest` pins the original port retrieved using `ordinaryChildrenFor(originalExtensionAPI)`
|
|
10
|
+
BEFORE dispatch. Pass it as `options.ordinary` and independently approve native requests via `authority.ordinary`.
|
|
11
|
+
`ordinary-cancel` carries the exact closed v1 request through this SAME host journal/CLI handler. It requests
|
|
12
|
+
original abort, never reconstructs a PID/pane or replaces a caller promise. Failed final acknowledgement
|
|
13
|
+
remains failure despite cancellation/complete bytes. Late opt-in coverage gaps and failed/unknown ordinary
|
|
14
|
+
control withhold presentation quiescence. Absent original ports cannot cancel; old configs are unchanged.
|
|
15
|
+
See `contracts/ordinary-control/v1/README.md` for limits. The legacy P11 bridge remains separately supported.
|
|
16
|
+
|
|
17
|
+
Existing `intent`/`intent-reconcile` also carry opt-in `intent-request-v2` / `revise-selection` through the
|
|
18
|
+
actual P01 controller: direct non-scope successors, not topology/owner/policy/effect expansion. No acceptance
|
|
19
|
+
transfer or duplicate effect. See `contracts/intent-control/v2/README.md`. These narrow formerly absent A
|
|
20
|
+
paths; unretained/crashed handles, wider revision domains and atomic authenticated live TUI steering remain
|
|
21
|
+
unqualified. No new trust/case/blind/control store or worker observation hook is introduced.
|
|
22
|
+
|
|
23
|
+
### Original ordinary intent boundary
|
|
24
|
+
|
|
25
|
+
When ordinaryDigest is bound, intent application also requires the ORIGINAL ordinary port and separate
|
|
26
|
+
native approval. Busy direction is retained as `ordinary-intent-pending` in this existing journal without
|
|
27
|
+
P01 application. The original controller's bounded admission hold prevents new ordinary execution while
|
|
28
|
+
preserving running callers. Pending transport is historical request data, not application authority.
|
|
29
|
+
Only explicit `intent-reconcile`, after original ordinary and native resource quiescence, can apply it.
|
|
30
|
+
A hold spans awaited native append/sync and releases only after an explicit native applied/not-applied
|
|
31
|
+
receipt AND successful final host acknowledgement. Failed/unknown acknowledgement retains the hold even
|
|
32
|
+
with complete effect bytes; refresh, duplicate and reopen do not release it or replay an effect. Missing
|
|
33
|
+
original capability or late/unretained coverage is not reconstructed. No additional control database.
|
|
34
|
+
Older host writers lack this guard and must not be used to resume new pending ordinary operations.
|
|
35
|
+
|
|
36
|
+
## Loaded artifacts and independent authority
|
|
37
|
+
|
|
38
|
+
`pi-daddy/dashboard-harness` exports `loadDashboardHarness(artifactRoot, manifest, privateParent)`.
|
|
39
|
+
The manifest is `DashboardHarnessArtifact`: version `dashboard-harness-artifact-v1`, exact sourceCommit
|
|
40
|
+
`1c02194d4a3709d14890a5fbbad91ff5f0151f65`, relative compiled `files` SHA256 map, canonical existing
|
|
41
|
+
`typeboxRoot` and its `typeboxPackageSha256`. This exact harness commit is a LOCAL dependency, not claimed
|
|
42
|
+
public. Compile actual source first; the loader neither compiles nor installs. The ordinary fixture's37
|
|
43
|
+
source bodies/provenance demonstrate the real adapters, generated P01/retention readers and core writers.
|
|
44
|
+
|
|
45
|
+
An approved artifact has `package.json` bytes `{"type":"module"}`, `core.js` re-exporting the actual
|
|
46
|
+
work-capture/work-signals/intervention/factory-calibration core modules, and the original relative module
|
|
47
|
+
layout under `packages/adapters/src/` and `packages/core/src/`. The callable entries are learning-journal,
|
|
48
|
+
trust-lifecycle, archive-policy/observer/checkpoint, archived-work, execution-retention-archive,
|
|
49
|
+
work-case-review, blind-intervention, evidence-archive, work-signal-observation/cases and work-case-archive.
|
|
50
|
+
The learning journal is a genuine named module export at this pin, not yet an adapters-root re-export.
|
|
51
|
+
|
|
52
|
+
The loader checks bounded regular non-group/other-writable bytes, copies at most128 files/8MiB into an
|
|
53
|
+
exclusive private directory, loads the real modules and rechecks bytes. Fresh paths avoid substituting an
|
|
54
|
+
old module-cache instance for changed disk bytes. It returns `{api, artifactDigest, directory, manifest}`.
|
|
55
|
+
Typebox remains the actual existing peer; package metadata is bound, not its whole source graph. This is
|
|
56
|
+
loaded artifact identity, NOT human/module authentication, code confinement or hostile same-UID resistance.
|
|
57
|
+
No arbitrary unreviewed module should be authorized merely because someone can compute its checksum.
|
|
58
|
+
|
|
59
|
+
`pi-daddy/dashboard-host` exports `createDashboardHost` / `openDashboardHost`. Supply the loaded `api`, exact
|
|
60
|
+
`DashboardHostConfig`, original budget binding, optional ORIGINAL `openExperiment` controller and an
|
|
61
|
+
independent current `authority()` callback. The callback returns host/config and whole request digest
|
|
62
|
+
allowlists, independent P01 context and native dispatch/experiment authorities. Request fields and files
|
|
63
|
+
never supply authority to that callback. Copying a controller/interface or supplying a pin-shaped string
|
|
64
|
+
cannot substitute for the original branded object. Structural host authority is still not authentication.
|
|
65
|
+
|
|
66
|
+
Creation is explicit and exclusive. Reconnect ONLY opens `trustDirectory/producer-host`; no caller-selected
|
|
67
|
+
replacement attention directory. The original trust lifecycle validates its archive-local registration,
|
|
68
|
+
policy identity and fixed store. Its predeclared attention policy must allow no more than FIVE questions.
|
|
69
|
+
Host config binds source policy, selected initial P01 snapshot, budget/experiment, author, initial case/blind
|
|
70
|
+
IDs and loaded artifact digest. Changed config/another policy/store needs new explicit authority; no reset.
|
|
71
|
+
|
|
72
|
+
## Source → checkpoint → semantic daily view
|
|
73
|
+
|
|
74
|
+
Config sources have IDs and kind `work`, `facts` or `retention`. There may be at most one work source.
|
|
75
|
+
Explicit `observe` requests select one configured source and exact previous checkpoint; max32 sources.
|
|
76
|
+
No worker hooks, status messages, directory scan, automatic watcher or refresh-driven collection is added.
|
|
77
|
+
The journal claims the request BEFORE the actual harness ingestion. Policy path/SHA/root/expiry are checked
|
|
78
|
+
through real `archivePolicyBinding` and `ingestPolicySource`, not inferred from mtime or receipt shape.
|
|
79
|
+
|
|
80
|
+
- `facts`: an exact retained JSON/JSONL object containing genuine host-declared `WorkSignalFacts`; payload
|
|
81
|
+
`{sourceId, previousCheckpointId, facts:null}`. This does not make declarations authenticated truth.
|
|
82
|
+
- `work`: payload `{sourceId, previousCheckpointId, facts: <observed facts SOURCE MANIFEST ID>}`. Only an
|
|
83
|
+
already observed configured fact source is accepted, not caller replacement facts. The actual pinned P01
|
|
84
|
+
projector and `captureArchivedWorkSignals` bind scope/obligations and retain observation/case/linkage IDs.
|
|
85
|
+
Nomination failure preserves raw checkpoint plus semantic failure and never invents a successful case.
|
|
86
|
+
- `retention`: exact v2 policy with `contentPolicy:referenced-blobs`; facts:null. Real manifest/blob ingestion,
|
|
87
|
+
readback and `projectRetainedExecutions` feed the existing daily reader. Missing blobs stay gaps.
|
|
88
|
+
|
|
89
|
+
Frames re-read retained bytes and recompute projections. Native files do not prove an active TUI branch;
|
|
90
|
+
activeBranch remains null. Source SHA/checkpoints, unobserved sources, partial coverage, independently
|
|
91
|
+
supplied acceptance and declared facts remain separate. If control selection is unreadable, the initial
|
|
92
|
+
host declaration is labelled unavailable, acceptance is withheld, but explicit observation can still retain
|
|
93
|
+
incomplete bytes. Steering cannot use that fallback. Scope-changing intent requests update the actual
|
|
94
|
+
control selection; stale UI selection/CAS cannot overwrite it.
|
|
95
|
+
|
|
96
|
+
Only explicitly selected exact sources are semantically consumed. Reference-only/redacted bytes are not
|
|
97
|
+
masqueraded as exact replay. Ingestion/access policy expiry is enforced on these paths; no redactor,
|
|
98
|
+
credential-safe export approval UI or physical retention-duration deletion is invented here. Those remaining
|
|
99
|
+
P03.4 operations belong to a concrete separately supplied harness policy adapter. No history is deleted.
|
|
100
|
+
|
|
101
|
+
## Attention, pause and actual presentation acknowledgement
|
|
102
|
+
|
|
103
|
+
The host's independent `presence()` returns `{present, closing, evidenceDigest, expiresAt}` or null.
|
|
104
|
+
It must be sourced/authorized outside worker metadata. Idle, PID, title and agent-end events do not populate
|
|
105
|
+
it. Missing, expired, changed or absent presence hides cards on read without writing; explicit `defer`
|
|
106
|
+
retains weekly deferral. Neither a declaration nor a socket path authenticates a human.
|
|
107
|
+
|
|
108
|
+
A `present` request includes `{userPresent,closing,evidenceDigest,dispatchRevision}`. It checks the real
|
|
109
|
+
resource pause at zero active reservations (and optional original experiment quiescence) before/after
|
|
110
|
+
opening the existing manual presenter. Selected case detector version/population must match the real trust
|
|
111
|
+
policy. Each actual case/blind card reserves attention through ORIGINAL `trust.expose` before checkpoint
|
|
112
|
+
CAS. Silent/retired/insufficient policy defers; partial/failed reservations are never refunded. The fixed
|
|
113
|
+
checkpoint cannot change card IDs or refill on answers/reconnect. Blind occupies one of five total slots.
|
|
114
|
+
Zero-card issues and explicit v2/v3 selection remain visible.
|
|
115
|
+
|
|
116
|
+
A successful preparation returns its debrief frame digest, **prepared-not-delivery**. The actual dashboard
|
|
117
|
+
can render that frame, then an independently approved `presented` request names the exact frame digest.
|
|
118
|
+
The host rechecks original presence and pause before recording its presentation acknowledgement. This is
|
|
119
|
+
host-acknowledged delivery, not independently verified human perception or globally atomic live-TUI pause.
|
|
120
|
+
Another authorized controller could change a boundary after a snapshot; reads hide stale presentations and
|
|
121
|
+
resume/control actions close the original presenter. No stronger atomic transport primitive is invented.
|
|
122
|
+
|
|
123
|
+
`debrief` payload is the existing explicit command line (`label 1 skip`, `choose none`, `reveal`, etc.).
|
|
124
|
+
The original selected-batch/case writer and immutable blind quality writer own decisions. The host journal
|
|
125
|
+
holds only request/attention/presentation transport state and references/digests, not a cloned decision
|
|
126
|
+
history. Failed label acknowledgement propagates through the actual dashboard action rather than being
|
|
127
|
+
lost in a void return. Reopen reads original quality; it neither votes nor reveals automatically.
|
|
128
|
+
|
|
129
|
+
## Exact steering and original lifetimes
|
|
130
|
+
|
|
131
|
+
Requests are closed bounded `DashboardHostRequest` objects: version1.0, requestId, hostDigest,
|
|
132
|
+
expectedTip, selectionDigest, operation and payload. Use `dashboardHostRequestDigest` for independently
|
|
133
|
+
approved whole requests. Obtain tip/selectionDigest by reading `frame()`; reading them confers no authority.
|
|
134
|
+
|
|
135
|
+
- `dispatch`: original pause/resume `DispatchRequest` → resource controls. Native expected revision and
|
|
136
|
+
independently approved digest remain required. Busy reservations leave a durable pending barrier.
|
|
137
|
+
- `dispatch-reconcile`: explicit original request → existing reconcile; frame/refresh never calls it.
|
|
138
|
+
- `intent` / `intent-reconcile`: original `IntentRequest` → actual P01 scope/recorded alternative/priority
|
|
139
|
+
APIs and their original no owner/policy/effect expansion guards. General entity/topology expansion is
|
|
140
|
+
still outside the bounded adapter, not accepted merely by a UI action.
|
|
141
|
+
- `cancel`: `{dispatch:<legacy cancel-execution request>, cancellation:<ExperimentCancellation>}`. IDs,
|
|
142
|
+
current legacy revision, exact target and both independent approvals are checked. Cancellation invokes
|
|
143
|
+
ONLY the supplied original experiment controller, not a reopened PID/pane/terminal target. Reopen cannot
|
|
144
|
+
recover lost handles. This bridges the older protocol for the supported P11 controller, not arbitrary
|
|
145
|
+
live pi/Herdr or every ordinary child cancellation route.
|
|
146
|
+
|
|
147
|
+
Host journal CAS admits one exact request. Duplicate IDs read retained results without effects. A stale CAS
|
|
148
|
+
or immutable-ID mismatch rejected before any claim/effect leaves that in-memory host usable; it does not invent
|
|
149
|
+
unknown acknowledgement. Once a claim/effect may have happened, a required append/sync/close/release failure
|
|
150
|
+
remains failed/unknown even if bytes/effects exist. Best-effort host-failure
|
|
151
|
+
markers preserve that separately; their own persistence can fail. `reconcile()` is read-only, not a retry.
|
|
152
|
+
An unresolved claim/failure does not permit new dispatch, takeover, refund or unreceipted effect replay.
|
|
153
|
+
Original worker outcomes/accounting remain independent of host/control success.
|
|
154
|
+
|
|
155
|
+
## Existing dashboard process/plugin
|
|
156
|
+
|
|
157
|
+
`serveDashboardHost(privateSocketPath, originalHost)` runs inside the owning process. The existing dashboard
|
|
158
|
+
uses `--host-socket /private/host.sock` or explicit `PI_DADDY_HOST_SOCKET`, carried by the existing Herdr plugin
|
|
159
|
+
open path. It makes read-only frame requests on refresh and forwards only explicit approved JSON action
|
|
160
|
+
lines. `--once --daily-json --host-socket ...` is a real read-only CLI path. Programmatic
|
|
161
|
+
`runDashboard(argv, env, {connected:host})` uses the same handlers. No new monitoring service or scheduler.
|
|
162
|
+
|
|
163
|
+
The Unix socket is bounded/private, at most4 clients,64KiB request/512KiB response and5s client deadlines.
|
|
164
|
+
Close drains admitted host requests, not arbitrary worker tasks. A disconnected/failed reply is unknown;
|
|
165
|
+
never retry an action automatically. Resource/experiment owners retain their own lifetime/drain duties.
|
|
166
|
+
Blocking filesystem I/O, hostile same-UID actors, deployed privacy consent, authenticated modules/humans,
|
|
167
|
+
arbitrary TUI targeting and real model/provider qualification remain distinct B/C limits.
|
|
168
|
+
|
|
169
|
+
## Ordinary retention opt-in
|
|
170
|
+
|
|
171
|
+
Set `PI_GRANTS_RETAIN_NATIVE_SESSIONS=1` and an existing canonical private `PI_GRANTS_NATIVE_SESSION_ROOT`
|
|
172
|
+
in the ordinary host environment. Shared delegate/all/chain planning allocates a new per-execution directory
|
|
173
|
+
and passes its `--session` target into the recorded plan; model tool parameters cannot choose the path.
|
|
174
|
+
Invalid/reused/nonprivate targets refuse. Default children remain ephemeral. Existing asynchronous retention
|
|
175
|
+
captures available native bytes at the same execution seam; it does not create observer session entries,
|
|
176
|
+
claim final-source completeness, or infer an active TUI branch from a file tail.
|