pi-daddy 0.28.0 → 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +108 -124
- package/README.md +18 -896
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/contracts/ledger-record/v1/README.md +44 -0
- package/contracts/ledger-record/v1/fixtures/child-lifecycle.json +45 -0
- package/contracts/ledger-record/v1/fixtures/ledger-record.jsonl +3 -0
- package/contracts/ledger-record/v1/governance-event.schema.json +747 -0
- package/contracts/ledger-record/v1/record.schema.json +91 -0
- package/dist/cli.d.ts +10 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +120 -106
- package/dist/cli.js.map +1 -1
- package/dist/executors/activity-session.d.ts +12 -0
- package/dist/executors/activity-session.d.ts.map +1 -0
- package/dist/executors/activity-session.js +43 -0
- package/dist/executors/activity-session.js.map +1 -0
- package/dist/executors/executor.d.ts +39 -0
- package/dist/executors/executor.d.ts.map +1 -0
- package/dist/executors/executor.js +95 -0
- package/dist/executors/executor.js.map +1 -0
- package/dist/executors/herdr-cli.d.ts +78 -0
- package/dist/executors/herdr-cli.d.ts.map +1 -0
- package/dist/executors/herdr-cli.js +114 -0
- package/dist/executors/herdr-cli.js.map +1 -0
- package/dist/executors/herdr-name.d.ts.map +1 -0
- package/dist/executors/herdr-name.js.map +1 -0
- package/dist/executors/herdr-pi-lifecycle.d.ts.map +1 -0
- package/dist/executors/herdr-pi-lifecycle.js +22 -0
- package/dist/executors/herdr-pi-lifecycle.js.map +1 -0
- package/dist/executors/herdr-poll.d.ts +140 -0
- package/dist/executors/herdr-poll.d.ts.map +1 -0
- package/dist/executors/herdr-poll.js +252 -0
- package/dist/executors/herdr-poll.js.map +1 -0
- package/dist/executors/herdr-stage.d.ts +40 -0
- package/dist/executors/herdr-stage.d.ts.map +1 -0
- package/dist/executors/herdr-stage.js +54 -0
- package/dist/executors/herdr-stage.js.map +1 -0
- package/dist/executors/herdr-start.d.ts.map +1 -0
- package/dist/executors/herdr-start.js.map +1 -0
- package/dist/executors/native-session-target.d.ts +9 -0
- package/dist/executors/native-session-target.d.ts.map +1 -0
- package/dist/executors/native-session-target.js +30 -0
- package/dist/executors/native-session-target.js.map +1 -0
- package/dist/executors/pane-reaper.d.ts +111 -0
- package/dist/executors/pane-reaper.d.ts.map +1 -0
- package/dist/executors/pane-reaper.js +242 -0
- package/dist/executors/pane-reaper.js.map +1 -0
- package/dist/executors/process-activity.d.ts +3 -0
- package/dist/executors/process-activity.d.ts.map +1 -0
- package/dist/executors/process-activity.js +59 -0
- package/dist/executors/process-activity.js.map +1 -0
- package/dist/executors/run-herdr.d.ts +122 -0
- package/dist/executors/run-herdr.d.ts.map +1 -0
- package/dist/executors/run-herdr.js +341 -0
- package/dist/executors/run-herdr.js.map +1 -0
- package/dist/executors/vendor/herdr-pi-lifecycle.d.ts.map +1 -0
- package/dist/executors/vendor/herdr-pi-lifecycle.js.map +1 -0
- package/dist/governance/approval-prompt.d.ts +119 -0
- package/dist/governance/approval-prompt.d.ts.map +1 -0
- package/dist/governance/approval-prompt.js +133 -0
- package/dist/governance/approval-prompt.js.map +1 -0
- package/dist/governance/approval-store.d.ts +149 -0
- package/dist/governance/approval-store.d.ts.map +1 -0
- package/dist/governance/approval-store.js +309 -0
- package/dist/governance/approval-store.js.map +1 -0
- package/dist/governance/execution-retention.d.ts +90 -0
- package/dist/governance/execution-retention.d.ts.map +1 -0
- package/dist/governance/execution-retention.js +317 -0
- package/dist/governance/execution-retention.js.map +1 -0
- package/dist/governance/file-lock.d.ts.map +1 -0
- package/dist/governance/file-lock.js +205 -0
- package/dist/governance/file-lock.js.map +1 -0
- package/dist/governance/finalization.d.ts.map +1 -0
- package/dist/governance/finalization.js.map +1 -0
- package/dist/governance/grant-store.d.ts +96 -0
- package/dist/governance/grant-store.d.ts.map +1 -0
- package/dist/governance/grant-store.js +186 -0
- package/dist/governance/grant-store.js.map +1 -0
- package/dist/governance/init.d.ts +129 -0
- package/dist/governance/init.d.ts.map +1 -0
- package/dist/governance/init.js +360 -0
- package/dist/governance/init.js.map +1 -0
- package/dist/governance/lease-helper.d.ts.map +1 -0
- package/dist/governance/lease-helper.js +121 -0
- package/dist/governance/lease-helper.js.map +1 -0
- package/dist/governance/lease-record.d.ts +90 -0
- package/dist/governance/lease-record.d.ts.map +1 -0
- package/dist/governance/lease-record.js.map +1 -0
- package/dist/governance/ledger-events.d.ts +111 -0
- package/dist/governance/ledger-events.d.ts.map +1 -0
- package/dist/governance/ledger-events.js +129 -0
- package/dist/governance/ledger-events.js.map +1 -0
- package/dist/governance/ledger-report.d.ts +134 -0
- package/dist/governance/ledger-report.d.ts.map +1 -0
- package/dist/governance/ledger-report.js +294 -0
- package/dist/governance/ledger-report.js.map +1 -0
- package/dist/governance/ledger-v3-validation.d.ts +21 -0
- package/dist/governance/ledger-v3-validation.d.ts.map +1 -0
- package/dist/governance/ledger-v3-validation.js +353 -0
- package/dist/governance/ledger-v3-validation.js.map +1 -0
- package/dist/governance/ledger.d.ts +258 -0
- package/dist/governance/ledger.d.ts.map +1 -0
- package/dist/governance/ledger.js +201 -0
- package/dist/governance/ledger.js.map +1 -0
- package/dist/governance/native-session.d.ts +59 -0
- package/dist/governance/native-session.d.ts.map +1 -0
- package/dist/governance/native-session.js +208 -0
- package/dist/governance/native-session.js.map +1 -0
- package/dist/governance/record.d.ts +65 -0
- package/dist/governance/record.d.ts.map +1 -0
- package/dist/governance/record.js +259 -0
- package/dist/governance/record.js.map +1 -0
- package/dist/governance/retention-contract.d.ts.map +1 -0
- package/dist/governance/retention-contract.js +187 -0
- package/dist/governance/retention-contract.js.map +1 -0
- package/dist/governance/retention-json.d.ts.map +1 -0
- package/dist/governance/retention-json.js.map +1 -0
- package/dist/governance/workspace-lease.d.ts +40 -0
- package/dist/governance/workspace-lease.d.ts.map +1 -0
- package/dist/governance/workspace-lease.js +357 -0
- package/dist/governance/workspace-lease.js.map +1 -0
- package/dist/index.d.ts +59 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -42
- package/dist/index.js.map +1 -1
- package/dist/kernel/approval.d.ts +241 -0
- package/dist/kernel/approval.d.ts.map +1 -0
- package/dist/kernel/approval.js +270 -0
- package/dist/kernel/approval.js.map +1 -0
- package/dist/kernel/capabilities.d.ts +136 -0
- package/dist/kernel/capabilities.d.ts.map +1 -0
- package/dist/kernel/capabilities.js +199 -0
- package/dist/kernel/capabilities.js.map +1 -0
- package/dist/kernel/catalog.d.ts +125 -0
- package/dist/kernel/catalog.d.ts.map +1 -0
- package/dist/kernel/catalog.js +338 -0
- package/dist/kernel/catalog.js.map +1 -0
- package/dist/kernel/chain.d.ts.map +1 -0
- package/dist/kernel/chain.js.map +1 -0
- package/dist/kernel/correlation.d.ts.map +1 -0
- package/dist/kernel/correlation.js +267 -0
- package/dist/kernel/correlation.js.map +1 -0
- package/dist/kernel/definitions.d.ts.map +1 -0
- package/dist/kernel/definitions.js +164 -0
- package/dist/kernel/definitions.js.map +1 -0
- package/dist/kernel/delegate-types.d.ts +160 -0
- package/dist/kernel/delegate-types.d.ts.map +1 -0
- package/dist/kernel/delegate-types.js +9 -0
- package/dist/kernel/delegate-types.js.map +1 -0
- package/dist/kernel/delegate.d.ts.map +1 -0
- package/dist/kernel/delegate.js +320 -0
- package/dist/kernel/delegate.js.map +1 -0
- package/dist/kernel/delegation-approval.d.ts.map +1 -0
- package/dist/kernel/delegation-approval.js +93 -0
- package/dist/kernel/delegation-approval.js.map +1 -0
- package/dist/kernel/env-names.d.ts +51 -0
- package/dist/kernel/env-names.d.ts.map +1 -0
- package/dist/kernel/env-names.js +112 -0
- package/dist/kernel/env-names.js.map +1 -0
- package/dist/kernel/execution-id.d.ts.map +1 -0
- package/dist/kernel/execution-id.js.map +1 -0
- package/dist/kernel/fanout.d.ts.map +1 -0
- package/dist/kernel/fanout.js +93 -0
- package/dist/kernel/fanout.js.map +1 -0
- package/dist/kernel/grant-env.d.ts +118 -0
- package/dist/kernel/grant-env.d.ts.map +1 -0
- package/dist/kernel/grant-env.js +104 -0
- package/dist/kernel/grant-env.js.map +1 -0
- package/dist/kernel/ledger-identifiers.d.ts.map +1 -0
- package/dist/kernel/ledger-identifiers.js.map +1 -0
- package/dist/kernel/model-preflight.d.ts +13 -0
- package/dist/kernel/model-preflight.d.ts.map +1 -0
- package/dist/kernel/model-preflight.js +30 -0
- package/dist/kernel/model-preflight.js.map +1 -0
- package/dist/kernel/pi-tools.d.ts.map +1 -0
- package/dist/kernel/pi-tools.js +29 -0
- package/dist/kernel/pi-tools.js.map +1 -0
- package/dist/kernel/progress.d.ts.map +1 -0
- package/dist/kernel/progress.js.map +1 -0
- package/dist/kernel/project-paths.d.ts +43 -0
- package/dist/kernel/project-paths.d.ts.map +1 -0
- package/dist/kernel/project-paths.js +81 -0
- package/dist/kernel/project-paths.js.map +1 -0
- package/dist/kernel/propagation.d.ts +195 -0
- package/dist/kernel/propagation.d.ts.map +1 -0
- package/dist/kernel/propagation.js +275 -0
- package/dist/kernel/propagation.js.map +1 -0
- package/dist/kernel/refusals.d.ts +16 -0
- package/dist/kernel/refusals.d.ts.map +1 -0
- package/dist/kernel/refusals.js +53 -0
- package/dist/kernel/refusals.js.map +1 -0
- package/dist/kernel/resolve.d.ts +120 -0
- package/dist/kernel/resolve.d.ts.map +1 -0
- package/dist/kernel/resolve.js +201 -0
- package/dist/kernel/resolve.js.map +1 -0
- package/dist/kernel/routing-authority.d.ts +71 -0
- package/dist/kernel/routing-authority.d.ts.map +1 -0
- package/dist/kernel/routing-authority.js +100 -0
- package/dist/kernel/routing-authority.js.map +1 -0
- package/dist/kernel/run-child.d.ts +111 -0
- package/dist/kernel/run-child.d.ts.map +1 -0
- package/dist/kernel/run-child.js +324 -0
- package/dist/kernel/run-child.js.map +1 -0
- package/dist/kernel/skill-packages.d.ts +116 -0
- package/dist/kernel/skill-packages.d.ts.map +1 -0
- package/dist/kernel/skill-packages.js +300 -0
- package/dist/kernel/skill-packages.js.map +1 -0
- package/dist/kernel/skill-resources.d.ts.map +1 -0
- package/dist/kernel/skill-resources.js +56 -0
- package/dist/kernel/skill-resources.js.map +1 -0
- package/dist/kernel/spawn.d.ts +60 -0
- package/dist/kernel/spawn.d.ts.map +1 -0
- package/dist/kernel/spawn.js +116 -0
- package/dist/kernel/spawn.js.map +1 -0
- package/dist/kernel/workspace.d.ts +51 -0
- package/dist/kernel/workspace.d.ts.map +1 -0
- package/dist/kernel/workspace.js +223 -0
- package/dist/kernel/workspace.js.map +1 -0
- package/dist/products/activity-timeline.d.ts +126 -0
- package/dist/products/activity-timeline.d.ts.map +1 -0
- package/dist/products/activity-timeline.js +542 -0
- package/dist/products/activity-timeline.js.map +1 -0
- package/dist/products/dashboard-cli.d.ts +26 -0
- package/dist/products/dashboard-cli.d.ts.map +1 -0
- package/dist/products/dashboard-cli.js +224 -0
- package/dist/products/dashboard-cli.js.map +1 -0
- package/dist/products/dashboard-display-controls.d.ts +17 -0
- package/dist/products/dashboard-display-controls.d.ts.map +1 -0
- package/dist/products/dashboard-display-controls.js +38 -0
- package/dist/products/dashboard-display-controls.js.map +1 -0
- package/dist/products/dashboard-handshake.d.ts +42 -0
- package/dist/products/dashboard-handshake.d.ts.map +1 -0
- package/dist/products/dashboard-handshake.js +158 -0
- package/dist/products/dashboard-handshake.js.map +1 -0
- package/dist/products/dashboard-herdr.d.ts +55 -0
- package/dist/products/dashboard-herdr.d.ts.map +1 -0
- package/dist/products/dashboard-herdr.js +324 -0
- package/dist/products/dashboard-herdr.js.map +1 -0
- package/dist/products/dashboard-projection.d.ts +62 -0
- package/dist/products/dashboard-projection.d.ts.map +1 -0
- package/dist/products/dashboard-projection.js +305 -0
- package/dist/products/dashboard-projection.js.map +1 -0
- package/dist/products/dashboard-render.d.ts.map +1 -0
- package/dist/products/dashboard-render.js +208 -0
- package/dist/products/dashboard-render.js.map +1 -0
- package/extensions/activity-timeline.ts +134 -28
- package/extensions/approval-banking.ts +3 -3
- package/extensions/approvals.ts +18 -12
- package/extensions/chain-approval-facts.ts +9 -6
- package/extensions/chain-ledger.ts +4 -4
- package/extensions/chain-plan.ts +6 -6
- package/extensions/correlation-shape.ts +42 -33
- package/extensions/delegate-chain.ts +93 -45
- package/extensions/delegation-authority.ts +7 -3
- package/extensions/delegation-ledger.ts +2 -2
- package/extensions/delegation-native.ts +24 -7
- package/extensions/delegation.ts +91 -80
- package/extensions/execute-child.ts +440 -293
- package/extensions/execution-occurrence.ts +2 -2
- package/extensions/executor-session.ts +5 -5
- package/extensions/fanout-outcome.ts +8 -6
- package/extensions/grant-store-refusal.ts +24 -12
- package/extensions/grants-command.ts +42 -34
- package/extensions/grants-connected-command.ts +29 -15
- package/extensions/grants.ts +73 -73
- package/extensions/init-command.ts +18 -12
- package/extensions/reload-environment.ts +12 -5
- package/extensions/run-delegation.ts +29 -19
- package/extensions/session-environment.ts +25 -11
- package/extensions/session-report.ts +61 -12
- package/extensions/session.ts +58 -34
- package/extensions/spawn-summary.ts +5 -5
- package/extensions/stored-grant-session.ts +5 -5
- package/extensions/tripwire.ts +1 -1
- package/extensions/workspace-runtime.ts +26 -24
- package/herdr-plugin/herdr-plugin.toml +1 -1
- package/package.json +4 -211
- package/src/cli.ts +149 -92
- package/src/executors/activity-session.ts +54 -0
- package/src/executors/executor.ts +123 -0
- package/src/executors/herdr-cli.ts +132 -0
- package/src/executors/herdr-pi-lifecycle.ts +21 -0
- package/src/executors/herdr-poll.ts +305 -0
- package/src/executors/herdr-stage.ts +55 -0
- package/src/executors/native-session-target.ts +31 -0
- package/src/executors/pane-reaper.ts +270 -0
- package/src/executors/process-activity.ts +54 -0
- package/src/executors/run-herdr.ts +426 -0
- package/src/governance/approval-prompt.ts +225 -0
- package/src/governance/approval-store.ts +385 -0
- package/src/governance/execution-retention.ts +372 -0
- package/src/governance/file-lock.ts +210 -0
- package/src/governance/finalization.ts +82 -0
- package/src/governance/grant-store.ts +235 -0
- package/src/governance/init.ts +447 -0
- package/src/governance/lease-helper.ts +124 -0
- package/src/governance/lease-record.ts +131 -0
- package/src/governance/ledger-events.ts +222 -0
- package/src/governance/ledger-report.ts +396 -0
- package/src/governance/ledger-v3-validation.ts +384 -0
- package/src/governance/ledger.ts +419 -0
- package/src/governance/native-session.ts +264 -0
- package/src/governance/record.ts +294 -0
- package/src/governance/retention-contract.ts +201 -0
- package/src/governance/retention-json.ts +24 -0
- package/src/governance/workspace-lease.ts +429 -0
- package/src/index.ts +82 -92
- package/src/kernel/approval.ts +406 -0
- package/src/kernel/capabilities.ts +216 -0
- package/src/kernel/catalog.ts +373 -0
- package/src/kernel/correlation.ts +351 -0
- package/src/kernel/definitions.ts +215 -0
- package/src/kernel/delegate-types.ts +162 -0
- package/src/kernel/delegate.ts +375 -0
- package/src/kernel/delegation-approval.ts +126 -0
- package/src/kernel/env-names.ts +119 -0
- package/src/kernel/fanout.ts +106 -0
- package/src/kernel/grant-env.ts +174 -0
- package/src/kernel/model-preflight.ts +44 -0
- package/src/kernel/pi-tools.ts +32 -0
- package/src/kernel/project-paths.ts +97 -0
- package/src/kernel/propagation.ts +341 -0
- package/src/kernel/refusals.ts +64 -0
- package/src/kernel/resolve.ts +258 -0
- package/src/kernel/routing-authority.ts +121 -0
- package/src/kernel/run-child.ts +418 -0
- package/src/kernel/skill-packages.ts +329 -0
- package/src/kernel/skill-resources.ts +64 -0
- package/src/kernel/spawn.ts +156 -0
- package/src/kernel/workspace.ts +336 -0
- package/src/products/activity-timeline.ts +679 -0
- package/src/products/dashboard-cli.ts +250 -0
- package/src/products/dashboard-display-controls.ts +44 -0
- package/src/products/dashboard-handshake.ts +222 -0
- package/src/products/dashboard-herdr.ts +427 -0
- package/src/products/dashboard-projection.ts +389 -0
- package/src/products/dashboard-render.ts +260 -0
- package/PRODUCT-GUIDE.md +0 -155
- package/REQUIREMENTS.md +0 -41
- package/contracts/daily-view/v1/README.md +0 -114
- package/contracts/daily-view/v1/fixtures/view.json +0 -525
- package/contracts/daily-view/v1/fixtures/view.txt +0 -75
- package/contracts/daily-view/v1/fixtures/work.jsonl +0 -17
- package/contracts/daily-view/v1/p03/README.md +0 -26
- package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +0 -241
- package/contracts/daily-view/v1/p03/projection.schema.json +0 -194
- package/contracts/daily-view/v1/p03/provenance.json +0 -21
- package/contracts/dashboard-host/v1/README.md +0 -176
- package/contracts/debrief/v1/README.md +0 -146
- package/contracts/debrief/v1/intervention/README.md +0 -32
- package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +0 -1
- package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +0 -1
- package/contracts/debrief/v1/intervention/fixtures/assessment.json +0 -29
- package/contracts/debrief/v1/intervention/fixtures/blind-view.json +0 -20
- package/contracts/debrief/v1/intervention/fixtures/choice.json +0 -7
- package/contracts/debrief/v1/intervention/fixtures/manifest.json +0 -57
- package/contracts/debrief/v1/intervention/fixtures/reveal.json +0 -39
- package/contracts/debrief/v1/provenance.json +0 -89
- package/contracts/debrief/v1/work-capture/README.md +0 -38
- package/contracts/debrief/v1/work-capture/fixtures/batch.json +0 -17
- package/contracts/debrief/v1/work-capture/fixtures/cases.json +0 -184
- package/contracts/debrief/v1/work-capture/fixtures/review.json +0 -184
- package/contracts/debrief/v1/work-capture/review-request.schema.json +0 -41
- package/contracts/debrief/v1/work-capture/work-case.schema.json +0 -190
- package/contracts/debrief/v2/README.md +0 -71
- package/contracts/debrief/v2/input-pin.json +0 -66
- package/contracts/debrief/v2/intervention-upstream.md +0 -40
- package/contracts/debrief/v2/work-signals-upstream.md +0 -22
- package/contracts/dispatch-control/v1/README.md +0 -109
- package/contracts/dispatch-control/v1/request.schema.json +0 -19
- package/contracts/effect-profile/v1/README.md +0 -124
- package/contracts/execution-retention/v1/README.md +0 -109
- package/contracts/execution-retention/v2/README.md +0 -148
- package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +0 -91
- package/contracts/execution-retention/v2/fixtures/missing-native-session.json +0 -91
- package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +0 -91
- package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +0 -91
- package/contracts/execution-retention/v2/fixtures/native-live-branch.json +0 -90
- package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +0 -92
- package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +0 -1
- package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +0 -3
- package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +0 -3
- package/contracts/execution-retention/v2/manifest.schema.json +0 -858
- package/contracts/experiment/v1/README.md +0 -164
- package/contracts/factory-order/v1/README.md +0 -151
- package/contracts/factory-order/v1/adoption-pin.json +0 -8
- package/contracts/intent-control/v1/README.md +0 -135
- package/contracts/intent-control/v1/request.schema.json +0 -1096
- package/contracts/intent-control/v2/README.md +0 -34
- package/contracts/intent-control/v2/request.schema.json +0 -1070
- package/contracts/ledger/v2/README.md +0 -59
- package/contracts/ledger/v2/fixtures/capability-decision.json +0 -95
- package/contracts/ledger/v2/fixtures/check-receipt.json +0 -40
- package/contracts/ledger/v2/fixtures/child-lifecycle.json +0 -42
- package/contracts/ledger/v2/fixtures/workspace-lease.json +0 -41
- package/contracts/ledger/v2/ledger-event.schema.json +0 -633
- package/contracts/ledger/v3/README.md +0 -36
- package/contracts/ledger/v3/fixtures/check-receipt.json +0 -41
- package/contracts/ledger/v3/fixtures/child-lifecycle.json +0 -44
- package/contracts/ledger/v3/fixtures/workflow-fact.json +0 -40
- package/contracts/ledger/v3/ledger-event.schema.json +0 -955
- package/contracts/ledger/v4/README.md +0 -241
- package/contracts/ledger/v4/fixtures/layout-options.json +0 -428
- package/contracts/ledger/v4/fixtures/work-acceptance.json +0 -57
- package/contracts/ledger/v4/fixtures/work-occurrence.json +0 -44
- package/contracts/ledger/v4/fixtures/work-revision.json +0 -26
- package/contracts/ledger/v4/fixtures/work-snapshot.json +0 -73
- package/contracts/ledger/v4/ledger-event.schema.json +0 -162
- package/contracts/ordinary-control/v1/README.md +0 -59
- package/contracts/producer-ipc/v1/README.md +0 -137
- package/dist/activity-timeline.d.ts +0 -109
- package/dist/activity-timeline.d.ts.map +0 -1
- package/dist/activity-timeline.js +0 -208
- package/dist/activity-timeline.js.map +0 -1
- package/dist/approval-prompt.d.ts +0 -119
- package/dist/approval-prompt.d.ts.map +0 -1
- package/dist/approval-prompt.js +0 -133
- package/dist/approval-prompt.js.map +0 -1
- package/dist/approval-store.d.ts +0 -149
- package/dist/approval-store.d.ts.map +0 -1
- package/dist/approval-store.js +0 -314
- package/dist/approval-store.js.map +0 -1
- package/dist/approval.d.ts +0 -241
- package/dist/approval.d.ts.map +0 -1
- package/dist/approval.js +0 -268
- package/dist/approval.js.map +0 -1
- package/dist/capabilities.d.ts +0 -136
- package/dist/capabilities.d.ts.map +0 -1
- package/dist/capabilities.js +0 -203
- package/dist/capabilities.js.map +0 -1
- package/dist/catalog.d.ts +0 -98
- package/dist/catalog.d.ts.map +0 -1
- package/dist/catalog.js +0 -273
- package/dist/catalog.js.map +0 -1
- package/dist/chain.d.ts.map +0 -1
- package/dist/chain.js.map +0 -1
- package/dist/check-runner.d.ts +0 -66
- package/dist/check-runner.d.ts.map +0 -1
- package/dist/check-runner.js +0 -275
- package/dist/check-runner.js.map +0 -1
- package/dist/control-journal.d.ts +0 -20
- package/dist/control-journal.d.ts.map +0 -1
- package/dist/control-journal.js +0 -73
- package/dist/control-journal.js.map +0 -1
- package/dist/correlation.d.ts.map +0 -1
- package/dist/correlation.js +0 -231
- package/dist/correlation.js.map +0 -1
- package/dist/daily-dashboard-host.d.ts +0 -136
- package/dist/daily-dashboard-host.d.ts.map +0 -1
- package/dist/daily-dashboard-host.js +0 -164
- package/dist/daily-dashboard-host.js.map +0 -1
- package/dist/daily-panel.d.ts +0 -36
- package/dist/daily-panel.d.ts.map +0 -1
- package/dist/daily-panel.js +0 -84
- package/dist/daily-panel.js.map +0 -1
- package/dist/daily-view-input.d.ts +0 -44
- package/dist/daily-view-input.d.ts.map +0 -1
- package/dist/daily-view-input.js +0 -68
- package/dist/daily-view-input.js.map +0 -1
- package/dist/daily-view-render.d.ts +0 -5
- package/dist/daily-view-render.d.ts.map +0 -1
- package/dist/daily-view-render.js +0 -42
- package/dist/daily-view-render.js.map +0 -1
- package/dist/daily-view.d.ts +0 -77
- package/dist/daily-view.d.ts.map +0 -1
- package/dist/daily-view.js +0 -176
- package/dist/daily-view.js.map +0 -1
- package/dist/dashboard-cli.d.ts +0 -54
- package/dist/dashboard-cli.d.ts.map +0 -1
- package/dist/dashboard-cli.js +0 -367
- package/dist/dashboard-cli.js.map +0 -1
- package/dist/dashboard-display-controls.d.ts +0 -15
- package/dist/dashboard-display-controls.d.ts.map +0 -1
- package/dist/dashboard-display-controls.js +0 -34
- package/dist/dashboard-display-controls.js.map +0 -1
- package/dist/dashboard-handshake.d.ts +0 -42
- package/dist/dashboard-handshake.d.ts.map +0 -1
- package/dist/dashboard-handshake.js +0 -147
- package/dist/dashboard-handshake.js.map +0 -1
- package/dist/dashboard-harness.d.ts +0 -22
- package/dist/dashboard-harness.d.ts.map +0 -1
- package/dist/dashboard-harness.js +0 -89
- package/dist/dashboard-harness.js.map +0 -1
- package/dist/dashboard-herdr.d.ts +0 -55
- package/dist/dashboard-herdr.d.ts.map +0 -1
- package/dist/dashboard-herdr.js +0 -293
- package/dist/dashboard-herdr.js.map +0 -1
- package/dist/dashboard-host-contract.d.ts +0 -127
- package/dist/dashboard-host-contract.d.ts.map +0 -1
- package/dist/dashboard-host-contract.js +0 -14
- package/dist/dashboard-host-contract.js.map +0 -1
- package/dist/dashboard-host-transport.d.ts +0 -16
- package/dist/dashboard-host-transport.d.ts.map +0 -1
- package/dist/dashboard-host-transport.js +0 -127
- package/dist/dashboard-host-transport.js.map +0 -1
- package/dist/dashboard-host.d.ts +0 -239
- package/dist/dashboard-host.d.ts.map +0 -1
- package/dist/dashboard-host.js +0 -474
- package/dist/dashboard-host.js.map +0 -1
- package/dist/dashboard-menu.d.ts +0 -16
- package/dist/dashboard-menu.d.ts.map +0 -1
- package/dist/dashboard-menu.js +0 -33
- package/dist/dashboard-menu.js.map +0 -1
- package/dist/dashboard-observation.d.ts +0 -28
- package/dist/dashboard-observation.d.ts.map +0 -1
- package/dist/dashboard-observation.js +0 -87
- package/dist/dashboard-observation.js.map +0 -1
- package/dist/dashboard-projection.d.ts +0 -73
- package/dist/dashboard-projection.d.ts.map +0 -1
- package/dist/dashboard-projection.js +0 -294
- package/dist/dashboard-projection.js.map +0 -1
- package/dist/dashboard-render.d.ts.map +0 -1
- package/dist/dashboard-render.js +0 -212
- package/dist/dashboard-render.js.map +0 -1
- package/dist/debrief-contract.d.ts +0 -65
- package/dist/debrief-contract.d.ts.map +0 -1
- package/dist/debrief-contract.js +0 -151
- package/dist/debrief-contract.js.map +0 -1
- package/dist/debrief-fixture.d.ts +0 -16
- package/dist/debrief-fixture.d.ts.map +0 -1
- package/dist/debrief-fixture.js +0 -41
- package/dist/debrief-fixture.js.map +0 -1
- package/dist/debrief-host.d.ts +0 -59
- package/dist/debrief-host.d.ts.map +0 -1
- package/dist/debrief-host.js +0 -49
- package/dist/debrief-host.js.map +0 -1
- package/dist/debrief-render.d.ts +0 -5
- package/dist/debrief-render.d.ts.map +0 -1
- package/dist/debrief-render.js +0 -65
- package/dist/debrief-render.js.map +0 -1
- package/dist/debrief.d.ts +0 -90
- package/dist/debrief.d.ts.map +0 -1
- package/dist/debrief.js +0 -263
- package/dist/debrief.js.map +0 -1
- package/dist/definitions.d.ts.map +0 -1
- package/dist/definitions.js +0 -164
- package/dist/definitions.js.map +0 -1
- package/dist/delegate-types.d.ts +0 -154
- package/dist/delegate-types.d.ts.map +0 -1
- package/dist/delegate-types.js +0 -8
- package/dist/delegate-types.js.map +0 -1
- package/dist/delegate.d.ts.map +0 -1
- package/dist/delegate.js +0 -313
- package/dist/delegate.js.map +0 -1
- package/dist/delegation-approval.d.ts.map +0 -1
- package/dist/delegation-approval.js +0 -94
- package/dist/delegation-approval.js.map +0 -1
- package/dist/dispatch-control.d.ts +0 -45
- package/dist/dispatch-control.d.ts.map +0 -1
- package/dist/dispatch-control.js +0 -76
- package/dist/dispatch-control.js.map +0 -1
- package/dist/effect-profile-runtime.d.ts +0 -40
- package/dist/effect-profile-runtime.d.ts.map +0 -1
- package/dist/effect-profile-runtime.js +0 -51
- package/dist/effect-profile-runtime.js.map +0 -1
- package/dist/effect-profile.d.ts +0 -40
- package/dist/effect-profile.d.ts.map +0 -1
- package/dist/effect-profile.js +0 -152
- package/dist/effect-profile.js.map +0 -1
- package/dist/execution-id.d.ts.map +0 -1
- package/dist/execution-id.js.map +0 -1
- package/dist/execution-retention.d.ts +0 -90
- package/dist/execution-retention.d.ts.map +0 -1
- package/dist/execution-retention.js +0 -247
- package/dist/execution-retention.js.map +0 -1
- package/dist/executor.d.ts +0 -39
- package/dist/executor.d.ts.map +0 -1
- package/dist/executor.js +0 -94
- package/dist/executor.js.map +0 -1
- package/dist/experiment-contract.d.ts +0 -56
- package/dist/experiment-contract.d.ts.map +0 -1
- package/dist/experiment-contract.js +0 -80
- package/dist/experiment-contract.js.map +0 -1
- package/dist/experiment-state.d.ts +0 -22
- package/dist/experiment-state.d.ts.map +0 -1
- package/dist/experiment-state.js +0 -79
- package/dist/experiment-state.js.map +0 -1
- package/dist/experiment-store.d.ts +0 -30
- package/dist/experiment-store.d.ts.map +0 -1
- package/dist/experiment-store.js +0 -147
- package/dist/experiment-store.js.map +0 -1
- package/dist/experiment.d.ts +0 -65
- package/dist/experiment.d.ts.map +0 -1
- package/dist/experiment.js +0 -362
- package/dist/experiment.js.map +0 -1
- package/dist/factory-contract.d.ts +0 -79
- package/dist/factory-contract.d.ts.map +0 -1
- package/dist/factory-contract.js +0 -89
- package/dist/factory-contract.js.map +0 -1
- package/dist/factory-migration.d.ts +0 -20
- package/dist/factory-migration.d.ts.map +0 -1
- package/dist/factory-migration.js +0 -55
- package/dist/factory-migration.js.map +0 -1
- package/dist/factory-order.d.ts +0 -848
- package/dist/factory-order.d.ts.map +0 -1
- package/dist/factory-order.js +0 -83
- package/dist/factory-order.js.map +0 -1
- package/dist/factory-registry.d.ts +0 -121
- package/dist/factory-registry.d.ts.map +0 -1
- package/dist/factory-registry.js +0 -133
- package/dist/factory-registry.js.map +0 -1
- package/dist/fanout.d.ts.map +0 -1
- package/dist/fanout.js +0 -93
- package/dist/fanout.js.map +0 -1
- package/dist/file-lock.d.ts.map +0 -1
- package/dist/file-lock.js +0 -201
- package/dist/file-lock.js.map +0 -1
- package/dist/finalization.d.ts.map +0 -1
- package/dist/finalization.js.map +0 -1
- package/dist/git-identity.d.ts +0 -13
- package/dist/git-identity.d.ts.map +0 -1
- package/dist/git-identity.js +0 -47
- package/dist/git-identity.js.map +0 -1
- package/dist/grant-env.d.ts +0 -75
- package/dist/grant-env.d.ts.map +0 -1
- package/dist/grant-env.js +0 -154
- package/dist/grant-env.js.map +0 -1
- package/dist/grant-store.d.ts +0 -96
- package/dist/grant-store.d.ts.map +0 -1
- package/dist/grant-store.js +0 -188
- package/dist/grant-store.js.map +0 -1
- package/dist/herdr-cli.d.ts +0 -78
- package/dist/herdr-cli.d.ts.map +0 -1
- package/dist/herdr-cli.js +0 -113
- package/dist/herdr-cli.js.map +0 -1
- package/dist/herdr-name.d.ts.map +0 -1
- package/dist/herdr-name.js.map +0 -1
- package/dist/herdr-pi-lifecycle.d.ts.map +0 -1
- package/dist/herdr-pi-lifecycle.js +0 -22
- package/dist/herdr-pi-lifecycle.js.map +0 -1
- package/dist/herdr-poll.d.ts +0 -133
- package/dist/herdr-poll.d.ts.map +0 -1
- package/dist/herdr-poll.js +0 -222
- package/dist/herdr-poll.js.map +0 -1
- package/dist/herdr-stage.d.ts +0 -40
- package/dist/herdr-stage.d.ts.map +0 -1
- package/dist/herdr-stage.js +0 -54
- package/dist/herdr-stage.js.map +0 -1
- package/dist/herdr-start.d.ts.map +0 -1
- package/dist/herdr-start.js.map +0 -1
- package/dist/init.d.ts +0 -117
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -323
- package/dist/init.js.map +0 -1
- package/dist/intent-application.d.ts +0 -17
- package/dist/intent-application.d.ts.map +0 -1
- package/dist/intent-application.js +0 -114
- package/dist/intent-application.js.map +0 -1
- package/dist/intent-control.d.ts +0 -201
- package/dist/intent-control.d.ts.map +0 -1
- package/dist/intent-control.js +0 -110
- package/dist/intent-control.js.map +0 -1
- package/dist/intent-scheduling.d.ts +0 -9
- package/dist/intent-scheduling.d.ts.map +0 -1
- package/dist/intent-scheduling.js +0 -15
- package/dist/intent-scheduling.js.map +0 -1
- package/dist/learning-connection.d.ts +0 -127
- package/dist/learning-connection.d.ts.map +0 -1
- package/dist/learning-connection.js +0 -54
- package/dist/learning-connection.js.map +0 -1
- package/dist/lease-helper.d.ts.map +0 -1
- package/dist/lease-helper.js +0 -94
- package/dist/lease-helper.js.map +0 -1
- package/dist/lease-record.d.ts +0 -90
- package/dist/lease-record.d.ts.map +0 -1
- package/dist/lease-record.js.map +0 -1
- package/dist/ledger-append.d.ts +0 -15
- package/dist/ledger-append.d.ts.map +0 -1
- package/dist/ledger-append.js +0 -94
- package/dist/ledger-append.js.map +0 -1
- package/dist/ledger-events.d.ts +0 -131
- package/dist/ledger-events.d.ts.map +0 -1
- package/dist/ledger-events.js +0 -107
- package/dist/ledger-events.js.map +0 -1
- package/dist/ledger-identifiers.d.ts.map +0 -1
- package/dist/ledger-identifiers.js.map +0 -1
- package/dist/ledger-report.d.ts +0 -134
- package/dist/ledger-report.d.ts.map +0 -1
- package/dist/ledger-report.js +0 -271
- package/dist/ledger-report.js.map +0 -1
- package/dist/ledger-v3-validation.d.ts +0 -11
- package/dist/ledger-v3-validation.d.ts.map +0 -1
- package/dist/ledger-v3-validation.js +0 -265
- package/dist/ledger-v3-validation.js.map +0 -1
- package/dist/ledger.d.ts +0 -242
- package/dist/ledger.d.ts.map +0 -1
- package/dist/ledger.js +0 -142
- package/dist/ledger.js.map +0 -1
- package/dist/measured-order.d.ts +0 -249
- package/dist/measured-order.d.ts.map +0 -1
- package/dist/measured-order.js +0 -309
- package/dist/measured-order.js.map +0 -1
- package/dist/measured-session.d.ts +0 -97
- package/dist/measured-session.d.ts.map +0 -1
- package/dist/measured-session.js +0 -134
- package/dist/measured-session.js.map +0 -1
- package/dist/model-preflight.d.ts +0 -13
- package/dist/model-preflight.d.ts.map +0 -1
- package/dist/model-preflight.js +0 -29
- package/dist/model-preflight.js.map +0 -1
- package/dist/native-session-target.d.ts +0 -9
- package/dist/native-session-target.d.ts.map +0 -1
- package/dist/native-session-target.js +0 -29
- package/dist/native-session-target.js.map +0 -1
- package/dist/native-session.d.ts +0 -59
- package/dist/native-session.d.ts.map +0 -1
- package/dist/native-session.js +0 -154
- package/dist/native-session.js.map +0 -1
- package/dist/order-schedule.d.ts +0 -37
- package/dist/order-schedule.d.ts.map +0 -1
- package/dist/order-schedule.js +0 -81
- package/dist/order-schedule.js.map +0 -1
- package/dist/ordinary-children.d.ts +0 -52
- package/dist/ordinary-children.d.ts.map +0 -1
- package/dist/ordinary-children.js +0 -93
- package/dist/ordinary-children.js.map +0 -1
- package/dist/pane-reaper.d.ts +0 -111
- package/dist/pane-reaper.d.ts.map +0 -1
- package/dist/pane-reaper.js +0 -242
- package/dist/pane-reaper.js.map +0 -1
- package/dist/pi-tools.d.ts.map +0 -1
- package/dist/pi-tools.js +0 -21
- package/dist/pi-tools.js.map +0 -1
- package/dist/producer-ipc-contract.d.ts +0 -29
- package/dist/producer-ipc-contract.d.ts.map +0 -1
- package/dist/producer-ipc-contract.js +0 -29
- package/dist/producer-ipc-contract.js.map +0 -1
- package/dist/producer-ipc.d.ts +0 -55
- package/dist/producer-ipc.d.ts.map +0 -1
- package/dist/producer-ipc.js +0 -143
- package/dist/producer-ipc.js.map +0 -1
- package/dist/product-files.d.ts +0 -6
- package/dist/product-files.d.ts.map +0 -1
- package/dist/product-files.js +0 -55
- package/dist/product-files.js.map +0 -1
- package/dist/progress.d.ts.map +0 -1
- package/dist/progress.js.map +0 -1
- package/dist/propagation.d.ts +0 -203
- package/dist/propagation.d.ts.map +0 -1
- package/dist/propagation.js +0 -279
- package/dist/propagation.js.map +0 -1
- package/dist/refusals.d.ts +0 -16
- package/dist/refusals.d.ts.map +0 -1
- package/dist/refusals.js +0 -55
- package/dist/refusals.js.map +0 -1
- package/dist/resolve.d.ts +0 -120
- package/dist/resolve.d.ts.map +0 -1
- package/dist/resolve.js +0 -211
- package/dist/resolve.js.map +0 -1
- package/dist/resource-budget.d.ts +0 -334
- package/dist/resource-budget.d.ts.map +0 -1
- package/dist/resource-budget.js +0 -415
- package/dist/resource-budget.js.map +0 -1
- package/dist/retention-contract.d.ts.map +0 -1
- package/dist/retention-contract.js +0 -104
- package/dist/retention-contract.js.map +0 -1
- package/dist/retention-json.d.ts.map +0 -1
- package/dist/retention-json.js.map +0 -1
- package/dist/routing-authority.d.ts +0 -71
- package/dist/routing-authority.d.ts.map +0 -1
- package/dist/routing-authority.js +0 -100
- package/dist/routing-authority.js.map +0 -1
- package/dist/run-child.d.ts +0 -87
- package/dist/run-child.d.ts.map +0 -1
- package/dist/run-child.js +0 -248
- package/dist/run-child.js.map +0 -1
- package/dist/run-herdr.d.ts +0 -119
- package/dist/run-herdr.d.ts.map +0 -1
- package/dist/run-herdr.js +0 -335
- package/dist/run-herdr.js.map +0 -1
- package/dist/skill-packages.d.ts +0 -116
- package/dist/skill-packages.d.ts.map +0 -1
- package/dist/skill-packages.js +0 -295
- package/dist/skill-packages.js.map +0 -1
- package/dist/skill-resources.d.ts.map +0 -1
- package/dist/skill-resources.js +0 -52
- package/dist/skill-resources.js.map +0 -1
- package/dist/spawn.d.ts +0 -60
- package/dist/spawn.d.ts.map +0 -1
- package/dist/spawn.js +0 -116
- package/dist/spawn.js.map +0 -1
- package/dist/vendor/adoption.d.ts +0 -129
- package/dist/vendor/adoption.d.ts.map +0 -1
- package/dist/vendor/adoption.js +0 -102
- package/dist/vendor/adoption.js.map +0 -1
- package/dist/vendor/herdr-pi-lifecycle.d.ts.map +0 -1
- package/dist/vendor/herdr-pi-lifecycle.js.map +0 -1
- package/dist/work-command.d.ts +0 -32
- package/dist/work-command.d.ts.map +0 -1
- package/dist/work-command.js +0 -179
- package/dist/work-command.js.map +0 -1
- package/dist/work-ledger-destination.d.ts +0 -20
- package/dist/work-ledger-destination.d.ts.map +0 -1
- package/dist/work-ledger-destination.js +0 -131
- package/dist/work-ledger-destination.js.map +0 -1
- package/dist/work-ledger-json.d.ts +0 -25
- package/dist/work-ledger-json.d.ts.map +0 -1
- package/dist/work-ledger-json.js +0 -267
- package/dist/work-ledger-json.js.map +0 -1
- package/dist/work-ledger-occurrences.d.ts +0 -227
- package/dist/work-ledger-occurrences.d.ts.map +0 -1
- package/dist/work-ledger-occurrences.js +0 -115
- package/dist/work-ledger-occurrences.js.map +0 -1
- package/dist/work-ledger-projection.d.ts +0 -295
- package/dist/work-ledger-projection.d.ts.map +0 -1
- package/dist/work-ledger-projection.js +0 -237
- package/dist/work-ledger-projection.js.map +0 -1
- package/dist/work-ledger-snapshot.d.ts +0 -29
- package/dist/work-ledger-snapshot.d.ts.map +0 -1
- package/dist/work-ledger-snapshot.js +0 -267
- package/dist/work-ledger-snapshot.js.map +0 -1
- package/dist/work-ledger-types.d.ts +0 -261
- package/dist/work-ledger-types.d.ts.map +0 -1
- package/dist/work-ledger-types.js +0 -13
- package/dist/work-ledger-types.js.map +0 -1
- package/dist/work-ledger-validation.d.ts +0 -14
- package/dist/work-ledger-validation.d.ts.map +0 -1
- package/dist/work-ledger-validation.js +0 -226
- package/dist/work-ledger-validation.js.map +0 -1
- package/dist/work-ledger.d.ts +0 -43
- package/dist/work-ledger.d.ts.map +0 -1
- package/dist/work-ledger.js +0 -225
- package/dist/work-ledger.js.map +0 -1
- package/dist/work-policy-registry.d.ts +0 -133
- package/dist/work-policy-registry.d.ts.map +0 -1
- package/dist/work-policy-registry.js +0 -128
- package/dist/work-policy-registry.js.map +0 -1
- package/dist/work-run.d.ts +0 -56
- package/dist/work-run.d.ts.map +0 -1
- package/dist/work-run.js +0 -102
- package/dist/work-run.js.map +0 -1
- package/dist/work-setup.d.ts +0 -40
- package/dist/work-setup.d.ts.map +0 -1
- package/dist/work-setup.js +0 -174
- package/dist/work-setup.js.map +0 -1
- package/dist/workflow-fact-id.d.ts +0 -4
- package/dist/workflow-fact-id.d.ts.map +0 -1
- package/dist/workflow-fact-id.js +0 -14
- package/dist/workflow-fact-id.js.map +0 -1
- package/dist/workflow-facts.d.ts +0 -34
- package/dist/workflow-facts.d.ts.map +0 -1
- package/dist/workflow-facts.js +0 -43
- package/dist/workflow-facts.js.map +0 -1
- package/dist/workspace-lease.d.ts +0 -40
- package/dist/workspace-lease.d.ts.map +0 -1
- package/dist/workspace-lease.js +0 -333
- package/dist/workspace-lease.js.map +0 -1
- package/dist/workspace.d.ts +0 -57
- package/dist/workspace.d.ts.map +0 -1
- package/dist/workspace.js +0 -216
- package/dist/workspace.js.map +0 -1
- package/extensions/daily-dashboard-session.ts +0 -48
- package/extensions/daily-work-session.ts +0 -20
- package/extensions/learning-outcome-session.ts +0 -38
- package/extensions/learning-session.ts +0 -59
- package/extensions/ordinary-runtime.ts +0 -14
- package/extensions/primary-shadow.ts +0 -11
- package/extensions/work-policy-session.ts +0 -139
- package/extensions/work-run-session.ts +0 -75
- package/extensions/work-runtime.ts +0 -44
- package/extensions/work-session.ts +0 -132
- package/src/activity-timeline.ts +0 -133
- package/src/approval-prompt.ts +0 -225
- package/src/approval-store.ts +0 -386
- package/src/approval.ts +0 -399
- package/src/capabilities.ts +0 -220
- package/src/catalog.ts +0 -306
- package/src/check-runner.ts +0 -387
- package/src/control-journal.ts +0 -26
- package/src/correlation.ts +0 -320
- package/src/daily-dashboard-host.ts +0 -105
- package/src/daily-panel.ts +0 -80
- package/src/daily-view-input.ts +0 -59
- package/src/daily-view-render.ts +0 -45
- package/src/daily-view.ts +0 -160
- package/src/dashboard-cli.ts +0 -340
- package/src/dashboard-display-controls.ts +0 -21
- package/src/dashboard-handshake.ts +0 -199
- package/src/dashboard-harness.ts +0 -37
- package/src/dashboard-herdr.ts +0 -363
- package/src/dashboard-host-contract.ts +0 -50
- package/src/dashboard-host-transport.ts +0 -43
- package/src/dashboard-host.ts +0 -244
- package/src/dashboard-menu.ts +0 -28
- package/src/dashboard-observation.ts +0 -46
- package/src/dashboard-projection.ts +0 -390
- package/src/dashboard-render.ts +0 -259
- package/src/debrief-contract.ts +0 -127
- package/src/debrief-fixture.ts +0 -29
- package/src/debrief-host.ts +0 -53
- package/src/debrief-render.ts +0 -49
- package/src/debrief.ts +0 -198
- package/src/definitions.ts +0 -211
- package/src/delegate-types.ts +0 -154
- package/src/delegate.ts +0 -348
- package/src/delegation-approval.ts +0 -126
- package/src/dispatch-control.ts +0 -81
- package/src/effect-profile-runtime.ts +0 -46
- package/src/effect-profile.ts +0 -129
- package/src/execution-retention.ts +0 -230
- package/src/executor.ts +0 -123
- package/src/experiment-contract.ts +0 -66
- package/src/experiment-state.ts +0 -44
- package/src/experiment-store.ts +0 -98
- package/src/experiment.ts +0 -236
- package/src/factory-contract.ts +0 -47
- package/src/factory-migration.ts +0 -29
- package/src/factory-order.ts +0 -56
- package/src/factory-registry.ts +0 -60
- package/src/fanout.ts +0 -106
- package/src/file-lock.ts +0 -178
- package/src/finalization.ts +0 -79
- package/src/git-identity.ts +0 -56
- package/src/grant-env.ts +0 -221
- package/src/grant-store.ts +0 -235
- package/src/herdr-cli.ts +0 -125
- package/src/herdr-pi-lifecycle.ts +0 -21
- package/src/herdr-poll.ts +0 -253
- package/src/herdr-stage.ts +0 -55
- package/src/init.ts +0 -389
- package/src/intent-application.ts +0 -91
- package/src/intent-control.ts +0 -107
- package/src/intent-scheduling.ts +0 -14
- package/src/learning-connection.ts +0 -70
- package/src/lease-helper.ts +0 -97
- package/src/lease-record.ts +0 -131
- package/src/ledger-append.ts +0 -72
- package/src/ledger-events.ts +0 -226
- package/src/ledger-report.ts +0 -357
- package/src/ledger-v3-validation.ts +0 -266
- package/src/ledger.ts +0 -369
- package/src/measured-order.ts +0 -72
- package/src/measured-session.ts +0 -70
- package/src/model-preflight.ts +0 -41
- package/src/native-session-target.ts +0 -23
- package/src/native-session.ts +0 -139
- package/src/order-schedule.ts +0 -42
- package/src/ordinary-children.ts +0 -59
- package/src/pane-reaper.ts +0 -270
- package/src/pi-tools.ts +0 -25
- package/src/producer-ipc-contract.ts +0 -26
- package/src/producer-ipc.ts +0 -107
- package/src/product-files.ts +0 -34
- package/src/propagation.ts +0 -333
- package/src/refusals.ts +0 -70
- package/src/resolve.ts +0 -267
- package/src/resource-budget.ts +0 -349
- package/src/retention-contract.ts +0 -84
- package/src/retention-json.ts +0 -20
- package/src/routing-authority.ts +0 -121
- package/src/run-child.ts +0 -303
- package/src/run-herdr.ts +0 -386
- package/src/skill-packages.ts +0 -314
- package/src/skill-resources.ts +0 -48
- package/src/spawn.ts +0 -156
- package/src/vendor/adoption.ts +0 -109
- package/src/work-command.ts +0 -197
- package/src/work-ledger-destination.ts +0 -113
- package/src/work-ledger-json.ts +0 -228
- package/src/work-ledger-occurrences.ts +0 -99
- package/src/work-ledger-projection.ts +0 -262
- package/src/work-ledger-snapshot.ts +0 -246
- package/src/work-ledger-types.ts +0 -229
- package/src/work-ledger-validation.ts +0 -174
- package/src/work-ledger.ts +0 -186
- package/src/work-policy-registry.ts +0 -81
- package/src/work-run.ts +0 -79
- package/src/work-setup.ts +0 -141
- package/src/workflow-fact-id.ts +0 -16
- package/src/workflow-facts.ts +0 -65
- package/src/workspace-lease.ts +0 -363
- package/src/workspace.ts +0 -308
- /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/capability-decision.json +0 -0
- /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/workspace-lease.json +0 -0
- /package/dist/{herdr-name.d.ts → executors/herdr-name.d.ts} +0 -0
- /package/dist/{herdr-name.js → executors/herdr-name.js} +0 -0
- /package/dist/{herdr-pi-lifecycle.d.ts → executors/herdr-pi-lifecycle.d.ts} +0 -0
- /package/dist/{herdr-start.d.ts → executors/herdr-start.d.ts} +0 -0
- /package/dist/{herdr-start.js → executors/herdr-start.js} +0 -0
- /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.d.ts +0 -0
- /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.js +0 -0
- /package/dist/{file-lock.d.ts → governance/file-lock.d.ts} +0 -0
- /package/dist/{finalization.d.ts → governance/finalization.d.ts} +0 -0
- /package/dist/{finalization.js → governance/finalization.js} +0 -0
- /package/dist/{lease-helper.d.ts → governance/lease-helper.d.ts} +0 -0
- /package/dist/{lease-record.js → governance/lease-record.js} +0 -0
- /package/dist/{retention-contract.d.ts → governance/retention-contract.d.ts} +0 -0
- /package/dist/{retention-json.d.ts → governance/retention-json.d.ts} +0 -0
- /package/dist/{retention-json.js → governance/retention-json.js} +0 -0
- /package/dist/{chain.d.ts → kernel/chain.d.ts} +0 -0
- /package/dist/{chain.js → kernel/chain.js} +0 -0
- /package/dist/{correlation.d.ts → kernel/correlation.d.ts} +0 -0
- /package/dist/{definitions.d.ts → kernel/definitions.d.ts} +0 -0
- /package/dist/{delegate.d.ts → kernel/delegate.d.ts} +0 -0
- /package/dist/{delegation-approval.d.ts → kernel/delegation-approval.d.ts} +0 -0
- /package/dist/{execution-id.d.ts → kernel/execution-id.d.ts} +0 -0
- /package/dist/{execution-id.js → kernel/execution-id.js} +0 -0
- /package/dist/{fanout.d.ts → kernel/fanout.d.ts} +0 -0
- /package/dist/{ledger-identifiers.d.ts → kernel/ledger-identifiers.d.ts} +0 -0
- /package/dist/{ledger-identifiers.js → kernel/ledger-identifiers.js} +0 -0
- /package/dist/{pi-tools.d.ts → kernel/pi-tools.d.ts} +0 -0
- /package/dist/{progress.d.ts → kernel/progress.d.ts} +0 -0
- /package/dist/{progress.js → kernel/progress.js} +0 -0
- /package/dist/{skill-resources.d.ts → kernel/skill-resources.d.ts} +0 -0
- /package/dist/{dashboard-render.d.ts → products/dashboard-render.d.ts} +0 -0
- /package/src/{herdr-name.ts → executors/herdr-name.ts} +0 -0
- /package/src/{herdr-start.ts → executors/herdr-start.ts} +0 -0
- /package/src/{vendor → executors/vendor}/herdr-pi-lifecycle.ts +0 -0
- /package/src/{chain.ts → kernel/chain.ts} +0 -0
- /package/src/{execution-id.ts → kernel/execution-id.ts} +0 -0
- /package/src/{ledger-identifiers.ts → kernel/ledger-identifiers.ts} +0 -0
- /package/src/{progress.ts → kernel/progress.ts} +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grant resolution — the entire security surface of capability governance, as a pure function.
|
|
3
|
+
*
|
|
4
|
+
* The invariant (ADR-0008): a capability set may only ever SHRINK as it passes down a delegation
|
|
5
|
+
* tree. Escalation is impossible by construction rather than by policy, because a parent can never
|
|
6
|
+
* confer what it does not itself hold.
|
|
7
|
+
*
|
|
8
|
+
* effective = ( requested ∩ parentGrant ∩ ceiling ) \ (gated \ approved)
|
|
9
|
+
*
|
|
10
|
+
* Being pure — no I/O, no model, no network — this is exhaustively testable, which matters because it
|
|
11
|
+
* is the only place an escalation could be introduced.
|
|
12
|
+
*/
|
|
13
|
+
/** `tool:read` · `ext:pi-web-access/web_search` · `skill:review` · `agent:researcher` */
|
|
14
|
+
export type Capability = string;
|
|
15
|
+
/**
|
|
16
|
+
* Capabilities that transitively confer everything else. Granting one is equivalent to granting the
|
|
17
|
+
* whole catalog, so they can never be a *narrowing* grant.
|
|
18
|
+
*
|
|
19
|
+
* `ext:pi-fabric/fabric_exec` is here on measured evidence, not suspicion: a child granted
|
|
20
|
+
* `tools: []` (nothing at all) plus `recursive: true` still reached `pi.write` and `pi.bash` and
|
|
21
|
+
* spawned a grandchild that wrote to disk. See probe `pi-fabric-eval` (probes 2, 4, 7, 8).
|
|
22
|
+
*/
|
|
23
|
+
export declare const UNIVERSAL_CAPABILITIES: readonly Capability[];
|
|
24
|
+
/**
|
|
25
|
+
* Capabilities that functionally contain others.
|
|
26
|
+
*
|
|
27
|
+
* `bash` can run `grep`, `find`, `ls`, `cat`, and `sed` — so a session holding it can already do
|
|
28
|
+
* everything the file and search tools do, whatever the tool list says. Modelling this explicitly serves
|
|
29
|
+
* two purposes:
|
|
30
|
+
*
|
|
31
|
+
* 1. It removes false escalation reports. pi's *default* surface is only `read`, `bash`, `edit`, `write`
|
|
32
|
+
* (measured, not assumed), so an agent type declaring `tools: read, grep, find, ls` would otherwise
|
|
33
|
+
* look like an escalation from any normal parent — despite being strictly weaker.
|
|
34
|
+
* 2. It makes the uncomfortable truth visible rather than implied: **a grant containing `bash` is not a
|
|
35
|
+
* narrow grant.** `subsumedBy` in the result says so, so a reviewer can see what the grant really means.
|
|
36
|
+
*/
|
|
37
|
+
export declare const SUBSUMPTION: Readonly<Record<Capability, readonly Capability[]>>;
|
|
38
|
+
/** Expand a grant to everything it functionally confers. */
|
|
39
|
+
export declare function expandSubsumed(grant: Capability[]): Capability[];
|
|
40
|
+
/**
|
|
41
|
+
* "Any definition" — ADR-0023, and one of two wildcards this module understands.
|
|
42
|
+
*
|
|
43
|
+
* Declared here rather than beside `WILDCARD` because `pi-tools.ts` imports `Capability` from this module.
|
|
44
|
+
* That import is `import type`, so it is erased and the runtime dependency runs one way only — which is
|
|
45
|
+
* what makes importing `WILDCARD` back safe.
|
|
46
|
+
*
|
|
47
|
+
* Deliberately weaker than `tool:*`: it confers **no tool authority**, so `agent:*,tool:read` may spawn
|
|
48
|
+
* every definition on disk and hand each of them nothing but `read`. It exists because the alternative was
|
|
49
|
+
* `tool:*` — authority to grant every tool — which made the safe configuration the laborious one.
|
|
50
|
+
*/
|
|
51
|
+
export declare const AGENT_WILDCARD: Capability;
|
|
52
|
+
/**
|
|
53
|
+
* `workspace:*` covers any `workspace:<id>` — ADR-0035, and the second namespace wildcard.
|
|
54
|
+
*
|
|
55
|
+
* Added as a deliberate edit, which is what the comment in `resolve()` below asks for: there is no
|
|
56
|
+
* generalised `<ns>:*` rule, so a namespace does not acquire a wildcard by existing. Unlike `agent:*` this
|
|
57
|
+
* one is **not inheritable** (`childEnv` strips it) — R-26's rule, because a root that handed
|
|
58
|
+
* `workspace:*` down would make routing attenuation meaningless below the root, which is the exact defect
|
|
59
|
+
* R-131 records.
|
|
60
|
+
*/
|
|
61
|
+
export declare const WORKSPACE_WILDCARD: Capability;
|
|
62
|
+
export interface ResolveInput {
|
|
63
|
+
/** What the delegating agent asked to give the child. */
|
|
64
|
+
requested: Capability[];
|
|
65
|
+
/** What the delegating agent itself holds. The root's grant is configured, never defaulted to all. */
|
|
66
|
+
parentGrant: Capability[];
|
|
67
|
+
/** Declarative maximum for the child's agent type (its frontmatter). Omit for no ceiling. */
|
|
68
|
+
ceiling?: Capability[];
|
|
69
|
+
/** Destructive capabilities that may never enter a grant without explicit human approval. */
|
|
70
|
+
gated?: Capability[];
|
|
71
|
+
/** Gated capabilities a human has approved for this specific spawn. */
|
|
72
|
+
approved?: Capability[];
|
|
73
|
+
/**
|
|
74
|
+
* Honour functional subsumption when deciding what the parent covers (default true).
|
|
75
|
+
* Set false for a strict name-equality check.
|
|
76
|
+
*/
|
|
77
|
+
subsumption?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface ResolveResult {
|
|
80
|
+
/** The capability set the child may hold. */
|
|
81
|
+
effective: Capability[];
|
|
82
|
+
/** Requested but NOT held by the parent — the escalation-attempt signal. Log every one. */
|
|
83
|
+
denied: Capability[];
|
|
84
|
+
/** Held by the parent but outside the child type's declared ceiling. */
|
|
85
|
+
clipped: Capability[];
|
|
86
|
+
/** Allowed by the tree but gated and unapproved. */
|
|
87
|
+
gatedBlocked: Capability[];
|
|
88
|
+
/** Universal capabilities that survived resolution — see `assertNarrowing`. */
|
|
89
|
+
universal: Capability[];
|
|
90
|
+
/**
|
|
91
|
+
* Capabilities the parent covers only through subsumption, not by holding them directly — e.g. `grep`
|
|
92
|
+
* covered because the parent holds `bash`. Non-empty means the grant is broader than its list suggests.
|
|
93
|
+
*/
|
|
94
|
+
subsumedBy: Capability[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Resolve a child's grant. Total and side-effect free; every rejected capability is reported rather
|
|
98
|
+
* than silently dropped, because a grant nobody can audit proves nothing.
|
|
99
|
+
*/
|
|
100
|
+
export declare function resolve(input: ResolveInput): ResolveResult;
|
|
101
|
+
/**
|
|
102
|
+
* Fail closed on a grant that cannot actually narrow anything.
|
|
103
|
+
*
|
|
104
|
+
* A universal capability in an "attenuated" grant is not a narrow grant with one extra item — it is
|
|
105
|
+
* full authority wearing a narrow grant's clothing. Callers must opt in explicitly rather than
|
|
106
|
+
* discover this at runtime.
|
|
107
|
+
*/
|
|
108
|
+
export declare function assertNarrowing(result: ResolveResult, allowUniversal?: boolean): void;
|
|
109
|
+
/**
|
|
110
|
+
* Project an effective grant onto pi's `--tools` allowlist.
|
|
111
|
+
*
|
|
112
|
+
* pi core is the enforcement point — verified: `--tools` and `--no-tools` both hard-block extension
|
|
113
|
+
* tools, and an explicitly `-e`-loaded extension cannot re-add its tool past them
|
|
114
|
+
* (probe `pi-fabric-eval` probes 9–11). That is why enforcement needs no in-descendant runtime.
|
|
115
|
+
*
|
|
116
|
+
* Returns `null` when the grant contains no callable tools, meaning the caller should pass
|
|
117
|
+
* `--no-tools` rather than an empty `--tools` (an empty list is not a valid allowlist).
|
|
118
|
+
*/
|
|
119
|
+
export declare function toPiToolsAllowlist(effective: Capability[]): string[] | null;
|
|
120
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/kernel/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,yFAAyF;AACzF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,UAAU,EAAsD,CAAC;AAE/G;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC,CAE3E,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAMhE;AAKD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,UAAsB,CAAC;AACpD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAA0B,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,sGAAsG;IACtG,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,6FAA6F;IAC7F,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,2FAA2F;IAC3F,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,oDAAoD;IACpD,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,+EAA+E;IAC/E,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B;AAID;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAoG1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,UAAQ,GAAG,IAAI,CAQnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAQ3E"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grant resolution — the entire security surface of capability governance, as a pure function.
|
|
3
|
+
*
|
|
4
|
+
* The invariant (ADR-0008): a capability set may only ever SHRINK as it passes down a delegation
|
|
5
|
+
* tree. Escalation is impossible by construction rather than by policy, because a parent can never
|
|
6
|
+
* confer what it does not itself hold.
|
|
7
|
+
*
|
|
8
|
+
* effective = ( requested ∩ parentGrant ∩ ceiling ) \ (gated \ approved)
|
|
9
|
+
*
|
|
10
|
+
* Being pure — no I/O, no model, no network — this is exhaustively testable, which matters because it
|
|
11
|
+
* is the only place an escalation could be introduced.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Capabilities that transitively confer everything else. Granting one is equivalent to granting the
|
|
15
|
+
* whole catalog, so they can never be a *narrowing* grant.
|
|
16
|
+
*
|
|
17
|
+
* `ext:pi-fabric/fabric_exec` is here on measured evidence, not suspicion: a child granted
|
|
18
|
+
* `tools: []` (nothing at all) plus `recursive: true` still reached `pi.write` and `pi.bash` and
|
|
19
|
+
* spawned a grandchild that wrote to disk. See probe `pi-fabric-eval` (probes 2, 4, 7, 8).
|
|
20
|
+
*/
|
|
21
|
+
export const UNIVERSAL_CAPABILITIES = ["ext:pi-fabric/fabric_exec", "tool:fabric_exec"];
|
|
22
|
+
/**
|
|
23
|
+
* Capabilities that functionally contain others.
|
|
24
|
+
*
|
|
25
|
+
* `bash` can run `grep`, `find`, `ls`, `cat`, and `sed` — so a session holding it can already do
|
|
26
|
+
* everything the file and search tools do, whatever the tool list says. Modelling this explicitly serves
|
|
27
|
+
* two purposes:
|
|
28
|
+
*
|
|
29
|
+
* 1. It removes false escalation reports. pi's *default* surface is only `read`, `bash`, `edit`, `write`
|
|
30
|
+
* (measured, not assumed), so an agent type declaring `tools: read, grep, find, ls` would otherwise
|
|
31
|
+
* look like an escalation from any normal parent — despite being strictly weaker.
|
|
32
|
+
* 2. It makes the uncomfortable truth visible rather than implied: **a grant containing `bash` is not a
|
|
33
|
+
* narrow grant.** `subsumedBy` in the result says so, so a reviewer can see what the grant really means.
|
|
34
|
+
*/
|
|
35
|
+
export const SUBSUMPTION = {
|
|
36
|
+
"tool:bash": ["tool:grep", "tool:find", "tool:ls", "tool:read", "tool:write", "tool:edit", "tool:edit-diff"],
|
|
37
|
+
};
|
|
38
|
+
/** Expand a grant to everything it functionally confers. */
|
|
39
|
+
export function expandSubsumed(grant) {
|
|
40
|
+
const expanded = new Set(grant);
|
|
41
|
+
for (const held of grant) {
|
|
42
|
+
for (const implied of SUBSUMPTION[held] ?? [])
|
|
43
|
+
expanded.add(implied);
|
|
44
|
+
}
|
|
45
|
+
return [...expanded].sort();
|
|
46
|
+
}
|
|
47
|
+
import { WILDCARD } from "./pi-tools.js";
|
|
48
|
+
import { isWellFormedCapability } from "./capabilities.js";
|
|
49
|
+
/**
|
|
50
|
+
* "Any definition" — ADR-0023, and one of two wildcards this module understands.
|
|
51
|
+
*
|
|
52
|
+
* Declared here rather than beside `WILDCARD` because `pi-tools.ts` imports `Capability` from this module.
|
|
53
|
+
* That import is `import type`, so it is erased and the runtime dependency runs one way only — which is
|
|
54
|
+
* what makes importing `WILDCARD` back safe.
|
|
55
|
+
*
|
|
56
|
+
* Deliberately weaker than `tool:*`: it confers **no tool authority**, so `agent:*,tool:read` may spawn
|
|
57
|
+
* every definition on disk and hand each of them nothing but `read`. It exists because the alternative was
|
|
58
|
+
* `tool:*` — authority to grant every tool — which made the safe configuration the laborious one.
|
|
59
|
+
*/
|
|
60
|
+
export const AGENT_WILDCARD = "agent:*";
|
|
61
|
+
/**
|
|
62
|
+
* `workspace:*` covers any `workspace:<id>` — ADR-0035, and the second namespace wildcard.
|
|
63
|
+
*
|
|
64
|
+
* Added as a deliberate edit, which is what the comment in `resolve()` below asks for: there is no
|
|
65
|
+
* generalised `<ns>:*` rule, so a namespace does not acquire a wildcard by existing. Unlike `agent:*` this
|
|
66
|
+
* one is **not inheritable** (`childEnv` strips it) — R-26's rule, because a root that handed
|
|
67
|
+
* `workspace:*` down would make routing attenuation meaningless below the root, which is the exact defect
|
|
68
|
+
* R-131 records.
|
|
69
|
+
*/
|
|
70
|
+
export const WORKSPACE_WILDCARD = "workspace:*";
|
|
71
|
+
const unique = (xs) => [...new Set(xs)].sort();
|
|
72
|
+
/**
|
|
73
|
+
* Resolve a child's grant. Total and side-effect free; every rejected capability is reported rather
|
|
74
|
+
* than silently dropped, because a grant nobody can audit proves nothing.
|
|
75
|
+
*/
|
|
76
|
+
export function resolve(input) {
|
|
77
|
+
const requested = unique(input.requested);
|
|
78
|
+
const held = new Set(input.parentGrant);
|
|
79
|
+
const parent = input.subsumption === false ? held : new Set(expandSubsumed(input.parentGrant));
|
|
80
|
+
/**
|
|
81
|
+
* `agent:*` covers any `agent:<name>` — ADR-0023. It was the only wildcard rule in this function when
|
|
82
|
+
* that was written; ADR-0035 added a third, so `covered()` now has `tool:*`, `agent:*` and `workspace:*`.
|
|
83
|
+
* There is still no GENERALISED `<ns>:*` rule: each is a deliberate edit, which is the property worth
|
|
84
|
+
* keeping. Corrected because the sentence sat eighty lines above "all THREE wildcards are excluded".
|
|
85
|
+
*
|
|
86
|
+
* `resolve` is otherwise exact-match plus subsumption, deliberately: `tool:*` works not because anything
|
|
87
|
+
* here understands it, but because `deriveOwnGrant` *enumerates* a session's observed tool names beside
|
|
88
|
+
* it. Definitions are not tools, so nothing enumerates them — which is why `maySpawnDefinition` had to
|
|
89
|
+
* special-case the wildcard, and why this needs stating rather than falling out.
|
|
90
|
+
*
|
|
91
|
+
* Scoped to one namespace on purpose. There is no generalised `<ns>:*` rule, so a namespace added later
|
|
92
|
+
* does not silently acquire a wildcard; adding one is a deliberate edit and another decision.
|
|
93
|
+
*/
|
|
94
|
+
const anyDefinition = held.has(AGENT_WILDCARD);
|
|
95
|
+
/**
|
|
96
|
+
* `tool:*` satisfies **any** capability, including `skill:` and `agent:` ids.
|
|
97
|
+
*
|
|
98
|
+
* Missing until 0.11.2, and the omission broke the one rule this package must never break by accident:
|
|
99
|
+
* *governance is opt-in*. An ungoverned session holds `[tool:*, …observed tools]` and nothing else, so
|
|
100
|
+
* spawning a definition whose `allowed-tools` names `agent:worker` or `skill:review` — the composition
|
|
101
|
+
* ADR-0017 created and ADR-0023's own example uses — was refused with **"capability escalation
|
|
102
|
+
* blocked"**, and recorded as an escalation attempt, in a session that had opted out.
|
|
103
|
+
*
|
|
104
|
+
* `maySpawnDefinition` had always honoured `tool:*` for definition ids and the README had always
|
|
105
|
+
* claimed it "satisfies any capability". This function disagreed with both, which is R-28's shape: two
|
|
106
|
+
* spellings of one rule, and the enforcing one was wrong.
|
|
107
|
+
*/
|
|
108
|
+
const anyCapability = held.has(WILDCARD);
|
|
109
|
+
const anyWorkspace = held.has(WORKSPACE_WILDCARD);
|
|
110
|
+
// A malformed id is never covered — not by an exact hold, and above all not by a wildcard's PREFIX rule,
|
|
111
|
+
// which is how `agent:x,tool:bash` got admitted and then split into two capabilities in the child.
|
|
112
|
+
// Landing in `denied` is the right outcome rather than a throw: it fails closed AND records an
|
|
113
|
+
// escalation attempt, so the ledger shows the attempt instead of a clean line.
|
|
114
|
+
const covered = (c) => isWellFormedCapability(c) &&
|
|
115
|
+
(parent.has(c) ||
|
|
116
|
+
anyCapability ||
|
|
117
|
+
(anyDefinition && c.startsWith("agent:")) ||
|
|
118
|
+
(anyWorkspace && c.startsWith("workspace:")));
|
|
119
|
+
const ceiling = input.ceiling === undefined ? null : new Set(input.ceiling);
|
|
120
|
+
const gated = new Set(input.gated ?? []);
|
|
121
|
+
const approved = new Set(input.approved ?? []);
|
|
122
|
+
// Order is irrelevant to the outcome (set intersection is commutative), so each rejection reason is
|
|
123
|
+
// reported independently rather than being masked by whichever filter happened to run first.
|
|
124
|
+
const denied = requested.filter((c) => !covered(c));
|
|
125
|
+
const clipped = requested.filter((c) => covered(c) && ceiling !== null && !ceiling.has(c));
|
|
126
|
+
/**
|
|
127
|
+
* Is this capability gated, directly or by subsuming something gated?
|
|
128
|
+
*
|
|
129
|
+
* ADR-0012. Exact-name gating was defeatable by handing down a broader capability: the package's own
|
|
130
|
+
* `SUBSUMPTION` table says `bash` confers `write`, so gating `write` produced **no prompt** when `bash`
|
|
131
|
+
* was granted instead. The gate read as satisfied because the string never appeared.
|
|
132
|
+
*
|
|
133
|
+
* The direction is load-bearing and easy to invert. A capability is gated when it **subsumes**
|
|
134
|
+
* something gated — never when it **is subsumed by** something gated. Gating `bash` must not quietly
|
|
135
|
+
* gate a plain `write` grant, which would make gating a broad capability restrict the narrow ones and
|
|
136
|
+
* invert least privilege.
|
|
137
|
+
*/
|
|
138
|
+
const isGated = (c) => {
|
|
139
|
+
if (gated.has(c))
|
|
140
|
+
return true;
|
|
141
|
+
if (input.subsumption === false)
|
|
142
|
+
return false;
|
|
143
|
+
return (SUBSUMPTION[c] ?? []).some((implied) => gated.has(implied));
|
|
144
|
+
};
|
|
145
|
+
const gatedBlocked = requested.filter((c) => covered(c) && (ceiling === null || ceiling.has(c)) && isGated(c) && !approved.has(c));
|
|
146
|
+
const rejected = new Set([...denied, ...clipped, ...gatedBlocked]);
|
|
147
|
+
const effective = requested.filter((c) => !rejected.has(c));
|
|
148
|
+
return {
|
|
149
|
+
effective,
|
|
150
|
+
denied,
|
|
151
|
+
clipped,
|
|
152
|
+
gatedBlocked,
|
|
153
|
+
universal: effective.filter((c) => UNIVERSAL_CAPABILITIES.includes(c)),
|
|
154
|
+
// F9: capabilities covered by a WILDCARD are not "subsumed" — this field means "the grant is broader
|
|
155
|
+
// than its list suggests", which is the `bash`-covers-`grep` warning. A wildcard holder already knows
|
|
156
|
+
// its grant is broad; listing every id under it would bury the signal the field exists to carry.
|
|
157
|
+
//
|
|
158
|
+
// All THREE wildcards are excluded. `anyWorkspace` was missing, so a caller holding `workspace:*` saw
|
|
159
|
+
// its own `workspace:prod` reported as subsumed while the `agent:*` holder correctly saw nothing — the
|
|
160
|
+
// field contradicting its own rule, and a false "broader than it looks" flag in the ledger and in
|
|
161
|
+
// `/grants`. Every wildcard added to `covered()` above needs a line here; that is now three for three.
|
|
162
|
+
subsumedBy: effective.filter((c) => !held.has(c) &&
|
|
163
|
+
!anyCapability &&
|
|
164
|
+
!(anyDefinition && c.startsWith("agent:")) &&
|
|
165
|
+
!(anyWorkspace && c.startsWith("workspace:"))),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Fail closed on a grant that cannot actually narrow anything.
|
|
170
|
+
*
|
|
171
|
+
* A universal capability in an "attenuated" grant is not a narrow grant with one extra item — it is
|
|
172
|
+
* full authority wearing a narrow grant's clothing. Callers must opt in explicitly rather than
|
|
173
|
+
* discover this at runtime.
|
|
174
|
+
*/
|
|
175
|
+
export function assertNarrowing(result, allowUniversal = false) {
|
|
176
|
+
if (!allowUniversal && result.universal.length > 0) {
|
|
177
|
+
throw new Error(`refusing to issue a grant containing universal capabilities: ${result.universal.join(", ")}. ` +
|
|
178
|
+
`These transitively confer the whole catalog, so the grant would not narrow anything. ` +
|
|
179
|
+
`Pass allowUniversal to override deliberately.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Project an effective grant onto pi's `--tools` allowlist.
|
|
184
|
+
*
|
|
185
|
+
* pi core is the enforcement point — verified: `--tools` and `--no-tools` both hard-block extension
|
|
186
|
+
* tools, and an explicitly `-e`-loaded extension cannot re-add its tool past them
|
|
187
|
+
* (probe `pi-fabric-eval` probes 9–11). That is why enforcement needs no in-descendant runtime.
|
|
188
|
+
*
|
|
189
|
+
* Returns `null` when the grant contains no callable tools, meaning the caller should pass
|
|
190
|
+
* `--no-tools` rather than an empty `--tools` (an empty list is not a valid allowlist).
|
|
191
|
+
*/
|
|
192
|
+
export function toPiToolsAllowlist(effective) {
|
|
193
|
+
const names = effective
|
|
194
|
+
.filter((c) => c.startsWith("tool:") || c.startsWith("ext:"))
|
|
195
|
+
// `tool:read` -> `read`; `ext:pkg/web_search` -> `web_search` (pi matches on bare tool name)
|
|
196
|
+
.map((c) => (c.startsWith("tool:") ? c.slice(5) : c.slice(c.lastIndexOf("/") + 1)))
|
|
197
|
+
.filter((n) => n.length > 0);
|
|
198
|
+
const deduped = [...new Set(names)].sort();
|
|
199
|
+
return deduped.length > 0 ? deduped : null;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/kernel/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-0035's three routing guards, and why each one is shaped the way it is.
|
|
3
|
+
*
|
|
4
|
+
* Lifted out of `delegate.ts` when it crossed the 400-line ceiling `test/file-size.test.ts` enforces — the
|
|
5
|
+
* same move `grants.ts` made at 398 and `delegate.ts` itself made at 413. It is a real seam rather than a
|
|
6
|
+
* line-count dodge: all three answer one question, *may this caller route this child to this workspace, and
|
|
7
|
+
* is the id even usable as a capability?*, and none of them looks at anything else in a delegation. The
|
|
8
|
+
* alternative was trimming the rationale below to fit, which is how a codebase loses the reasons for its
|
|
9
|
+
* guards.
|
|
10
|
+
*
|
|
11
|
+
* Each returns a refusal DESCRIPTOR rather than a `Delegation`, so the planner keeps sole ownership of
|
|
12
|
+
* assembling records. `denied` is present exactly when the attempt should count as an escalation.
|
|
13
|
+
*/
|
|
14
|
+
import { type Capability } from "./resolve.ts";
|
|
15
|
+
import type { RefusalCode } from "./refusals.ts";
|
|
16
|
+
export interface RoutingRefusal {
|
|
17
|
+
code: RefusalCode;
|
|
18
|
+
reason: string;
|
|
19
|
+
/**
|
|
20
|
+
* The capability to record in `denied`, when this refusal IS an escalation attempt.
|
|
21
|
+
*
|
|
22
|
+
* Absent for a malformed id, which is a bad request rather than a bid for authority — and seeding `denied`
|
|
23
|
+
* with an id that re-splits into several capabilities would make the one signal `isEscalationAttempt` reads
|
|
24
|
+
* unparseable. Present for an unauthorised route, which is exactly a bid for authority.
|
|
25
|
+
*/
|
|
26
|
+
denied?: Capability[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* May this caller route a child to `boundWorkspaceId`, and is that id usable as a capability id at all?
|
|
30
|
+
*
|
|
31
|
+
* Checked before anything is said about the target, for the reason `maySpawnDefinition` is: it is a
|
|
32
|
+
* governance question about the SESSION. Before ADR-0035 nothing checked it — the registry inherited into
|
|
33
|
+
* every governed child and a child routed to `staging` could route its grandchild to `prod` (R-131, measured
|
|
34
|
+
* in probe `g36-workspace-attenuation`).
|
|
35
|
+
*
|
|
36
|
+
* **Well-formedness first, because `workspace_id` is a model-facing tool parameter** and the next step turns
|
|
37
|
+
* it into a capability id. `workspace_id: "prod,tool:bash"` produced a `WORKSPACE_NOT_AUTHORIZED` whose
|
|
38
|
+
* `denied` array held `workspace:prod,tool:bash`: no authority minted, since the refusal is terminal, but
|
|
39
|
+
* `denied` is the channel `isEscalationAttempt` and `/grants ledger` count and an id that re-splits makes it
|
|
40
|
+
* unreadable. 0.18.1 is what happens when a comma goes unremarked.
|
|
41
|
+
*
|
|
42
|
+
* **`!== undefined`, not truthiness.** `workspace_id: ""` is falsy, so it skipped BOTH checks and failed
|
|
43
|
+
* closed much later at `resolveWorkspace` with `denied: []` — an unauthorised routing attempt invisible to
|
|
44
|
+
* every audit query. An empty id is a malformed id, not an absent one.
|
|
45
|
+
*/
|
|
46
|
+
export declare function checkRoutingAuthority(boundWorkspaceId: string | undefined, ownGrant: readonly Capability[]): RoutingRefusal | null;
|
|
47
|
+
/**
|
|
48
|
+
* May `workspace:*` be handed to a child? No — and only its HOLDER gets told so in those words.
|
|
49
|
+
*
|
|
50
|
+
* `workspace:*` is held and never inherited, so a child that "was granted" it would receive an env without
|
|
51
|
+
* it, and the ledger would record an authority the child does not have — the mirror image of R-131 and just
|
|
52
|
+
* as unreadable. `childEnv` strips it from a session's OWN grant because a root legitimately holds it; asking
|
|
53
|
+
* to hand it to a child is a different act and the honest answer is no. `NARROWING_VIOLATED` is the existing
|
|
54
|
+
* code for "this grant would not actually narrow", which is precisely what routing authority over every
|
|
55
|
+
* registered root does.
|
|
56
|
+
*
|
|
57
|
+
* **`tool:*` does NOT reach the same outcome, and an earlier comment claimed it did.** It said
|
|
58
|
+
* `assertNarrowing` produces the equivalent refusal; it does not. `UNIVERSAL_CAPABILITIES` is
|
|
59
|
+
* `["ext:pi-fabric/fabric_exec", "tool:fabric_exec"]`, so `result.universal` is empty for `tool:*` and
|
|
60
|
+
* nothing throws: requesting it for a child is allowed, recorded as granted, and silently stripped from the
|
|
61
|
+
* child env by `inheritableGrant` (R-135). The asymmetry is deliberate — an ungoverned session's own grant IS
|
|
62
|
+
* `tool:*`, so refusing to spawn from one would break governance-is-opt-in, while `workspace:*` only ever
|
|
63
|
+
* appears in `requested` because somebody asked — but it is an asymmetry, not one rule twice.
|
|
64
|
+
*
|
|
65
|
+
* **Only for a holder.** A caller without it is attempting an escalation, and this refusal would tell it the
|
|
66
|
+
* wildcard "is held, never inherited" — false about a session holding nothing of the sort — while leaving
|
|
67
|
+
* `denied` empty, so nothing counted a model probing `tools: ["workspace:*"]`. Returning `null` lets
|
|
68
|
+
* `resolve()` deny it as uncovered, which is what `agent:*` and `tool:*` already do.
|
|
69
|
+
*/
|
|
70
|
+
export declare function checkWorkspaceWildcardRequest(requested: readonly Capability[], ownGrant: readonly Capability[]): RoutingRefusal | null;
|
|
71
|
+
//# sourceMappingURL=routing-authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-authority.d.ts","sourceRoot":"","sources":["../../src/kernel/routing-authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAC9B,cAAc,GAAG,IAAI,CA6BvB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,UAAU,EAAE,EAChC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAC9B,cAAc,GAAG,IAAI,CAUvB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-0035's three routing guards, and why each one is shaped the way it is.
|
|
3
|
+
*
|
|
4
|
+
* Lifted out of `delegate.ts` when it crossed the 400-line ceiling `test/file-size.test.ts` enforces — the
|
|
5
|
+
* same move `grants.ts` made at 398 and `delegate.ts` itself made at 413. It is a real seam rather than a
|
|
6
|
+
* line-count dodge: all three answer one question, *may this caller route this child to this workspace, and
|
|
7
|
+
* is the id even usable as a capability?*, and none of them looks at anything else in a delegation. The
|
|
8
|
+
* alternative was trimming the rationale below to fit, which is how a codebase loses the reasons for its
|
|
9
|
+
* guards.
|
|
10
|
+
*
|
|
11
|
+
* Each returns a refusal DESCRIPTOR rather than a `Delegation`, so the planner keeps sole ownership of
|
|
12
|
+
* assembling records. `denied` is present exactly when the attempt should count as an escalation.
|
|
13
|
+
*/
|
|
14
|
+
import { mayRouteToWorkspace, isSafeWorkspaceId, workspaceCapability } from "./capabilities.js";
|
|
15
|
+
import { WORKSPACE_WILDCARD } from "./resolve.js";
|
|
16
|
+
import { WILDCARD } from "./pi-tools.js";
|
|
17
|
+
/**
|
|
18
|
+
* May this caller route a child to `boundWorkspaceId`, and is that id usable as a capability id at all?
|
|
19
|
+
*
|
|
20
|
+
* Checked before anything is said about the target, for the reason `maySpawnDefinition` is: it is a
|
|
21
|
+
* governance question about the SESSION. Before ADR-0035 nothing checked it — the registry inherited into
|
|
22
|
+
* every governed child and a child routed to `staging` could route its grandchild to `prod` (R-131, measured
|
|
23
|
+
* in probe `g36-workspace-attenuation`).
|
|
24
|
+
*
|
|
25
|
+
* **Well-formedness first, because `workspace_id` is a model-facing tool parameter** and the next step turns
|
|
26
|
+
* it into a capability id. `workspace_id: "prod,tool:bash"` produced a `WORKSPACE_NOT_AUTHORIZED` whose
|
|
27
|
+
* `denied` array held `workspace:prod,tool:bash`: no authority minted, since the refusal is terminal, but
|
|
28
|
+
* `denied` is the channel `isEscalationAttempt` and `/grants ledger` count and an id that re-splits makes it
|
|
29
|
+
* unreadable. 0.18.1 is what happens when a comma goes unremarked.
|
|
30
|
+
*
|
|
31
|
+
* **`!== undefined`, not truthiness.** `workspace_id: ""` is falsy, so it skipped BOTH checks and failed
|
|
32
|
+
* closed much later at `resolveWorkspace` with `denied: []` — an unauthorised routing attempt invisible to
|
|
33
|
+
* every audit query. An empty id is a malformed id, not an absent one.
|
|
34
|
+
*/
|
|
35
|
+
export function checkRoutingAuthority(boundWorkspaceId, ownGrant) {
|
|
36
|
+
if (boundWorkspaceId === undefined)
|
|
37
|
+
return null;
|
|
38
|
+
const authorising = workspaceCapability(boundWorkspaceId);
|
|
39
|
+
if (!isSafeWorkspaceId(boundWorkspaceId)) {
|
|
40
|
+
return {
|
|
41
|
+
code: "GRANT_ID_MALFORMED",
|
|
42
|
+
reason: `workspace id ${JSON.stringify(boundWorkspaceId)} is not usable as a capability id — it would ` +
|
|
43
|
+
`become ${JSON.stringify(authorising)}, and an id must match [A-Za-z0-9][A-Za-z0-9._/-]*. Slashes ` +
|
|
44
|
+
`and dots are fine; spaces, quotes, commas, wildcards, shell metacharacters and non-ASCII are not.`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (mayRouteToWorkspace(ownGrant, boundWorkspaceId))
|
|
48
|
+
return null;
|
|
49
|
+
// Filtered by the grammar too: an id that cannot pass `isSafeWorkspaceId` is refused on every
|
|
50
|
+
// attempt, so listing it here points the model at a destination it can never reach.
|
|
51
|
+
const held = ownGrant
|
|
52
|
+
.filter((c) => c.startsWith("workspace:") && isSafeWorkspaceId(c.slice("workspace:".length)))
|
|
53
|
+
.sort();
|
|
54
|
+
return {
|
|
55
|
+
code: "WORKSPACE_NOT_AUTHORIZED",
|
|
56
|
+
// Recorded as a denial rather than a bare refusal, exactly as DEFINITION_NOT_AUTHORIZED is: asking to
|
|
57
|
+
// route somewhere this session was not granted IS an attempt to exceed the grant.
|
|
58
|
+
denied: [authorising],
|
|
59
|
+
reason: `cannot route a child to workspace "${boundWorkspaceId}" — this session does not hold ${authorising}. ` +
|
|
60
|
+
(held.length > 0
|
|
61
|
+
? `It may route to: ${held.join(", ")}.`
|
|
62
|
+
: `It may route to no workspace at all; add ${authorising} to its grant to allow this one.`),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* May `workspace:*` be handed to a child? No — and only its HOLDER gets told so in those words.
|
|
67
|
+
*
|
|
68
|
+
* `workspace:*` is held and never inherited, so a child that "was granted" it would receive an env without
|
|
69
|
+
* it, and the ledger would record an authority the child does not have — the mirror image of R-131 and just
|
|
70
|
+
* as unreadable. `childEnv` strips it from a session's OWN grant because a root legitimately holds it; asking
|
|
71
|
+
* to hand it to a child is a different act and the honest answer is no. `NARROWING_VIOLATED` is the existing
|
|
72
|
+
* code for "this grant would not actually narrow", which is precisely what routing authority over every
|
|
73
|
+
* registered root does.
|
|
74
|
+
*
|
|
75
|
+
* **`tool:*` does NOT reach the same outcome, and an earlier comment claimed it did.** It said
|
|
76
|
+
* `assertNarrowing` produces the equivalent refusal; it does not. `UNIVERSAL_CAPABILITIES` is
|
|
77
|
+
* `["ext:pi-fabric/fabric_exec", "tool:fabric_exec"]`, so `result.universal` is empty for `tool:*` and
|
|
78
|
+
* nothing throws: requesting it for a child is allowed, recorded as granted, and silently stripped from the
|
|
79
|
+
* child env by `inheritableGrant` (R-135). The asymmetry is deliberate — an ungoverned session's own grant IS
|
|
80
|
+
* `tool:*`, so refusing to spawn from one would break governance-is-opt-in, while `workspace:*` only ever
|
|
81
|
+
* appears in `requested` because somebody asked — but it is an asymmetry, not one rule twice.
|
|
82
|
+
*
|
|
83
|
+
* **Only for a holder.** A caller without it is attempting an escalation, and this refusal would tell it the
|
|
84
|
+
* wildcard "is held, never inherited" — false about a session holding nothing of the sort — while leaving
|
|
85
|
+
* `denied` empty, so nothing counted a model probing `tools: ["workspace:*"]`. Returning `null` lets
|
|
86
|
+
* `resolve()` deny it as uncovered, which is what `agent:*` and `tool:*` already do.
|
|
87
|
+
*/
|
|
88
|
+
export function checkWorkspaceWildcardRequest(requested, ownGrant) {
|
|
89
|
+
if (!requested.includes(WORKSPACE_WILDCARD))
|
|
90
|
+
return null;
|
|
91
|
+
if (!ownGrant.includes(WORKSPACE_WILDCARD) && !ownGrant.includes(WILDCARD))
|
|
92
|
+
return null;
|
|
93
|
+
return {
|
|
94
|
+
code: "NARROWING_VIOLATED",
|
|
95
|
+
reason: `cannot grant ${WORKSPACE_WILDCARD} to a child — it is held, never inherited, because a descendant ` +
|
|
96
|
+
`holding it could route anywhere the registry lists and routing would stop attenuating below here. ` +
|
|
97
|
+
`Name the workspaces this child may route to instead (workspace:<id>, one per id).`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=routing-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-authority.js","sourceRoot":"","sources":["../../src/kernel/routing-authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAmB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgBzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CACnC,gBAAoC,EACpC,QAA+B;IAE/B,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EACJ,gBAAgB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,+CAA+C;gBAC/F,UAAU,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,8DAA8D;gBACnG,mGAAmG;SACtG,CAAC;IACJ,CAAC;IACD,IAAI,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,8FAA8F;IAC9F,oFAAoF;IACpF,MAAM,IAAI,GAAG,QAAQ;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SAC5F,IAAI,EAAE,CAAC;IACV,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,sGAAsG;QACtG,kFAAkF;QAClF,MAAM,EAAE,CAAC,WAAW,CAAC;QACrB,MAAM,EACJ,sCAAsC,gBAAgB,kCAAkC,WAAW,IAAI;YACvG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACd,CAAC,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACxC,CAAC,CAAC,4CAA4C,WAAW,kCAAkC,CAAC;KACjG,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,SAAgC,EAChC,QAA+B;IAE/B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EACJ,gBAAgB,kBAAkB,kEAAkE;YACpG,oGAAoG;YACpG,mFAAmF;KACtF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run a governed child process under hard limits.
|
|
3
|
+
*
|
|
4
|
+
* G8 (review findings A-R1/B-I5, A-R3). `delegate` used to spawn `pi` with no output cap, no timeout,
|
|
5
|
+
* an abort listener attached too late to observe an already-aborted signal, and a non-zero exit reported
|
|
6
|
+
* to the model as an ordinary result. Each of those is a way for a child to outlive or overwhelm the
|
|
7
|
+
* orchestrator that is supposed to be governing it — which is the whole premise of this package.
|
|
8
|
+
*
|
|
9
|
+
* It lives here, out of `extensions/grants.ts`, so it can be tested against real processes without pi.
|
|
10
|
+
*/
|
|
11
|
+
export { ENV_CHILD_IDLE_TIMEOUT, ENV_CHILD_TIMEOUT } from "./env-names.ts";
|
|
12
|
+
/**
|
|
13
|
+
* The longest prefix of `text` that fits in `budget` BYTES, never splitting a character.
|
|
14
|
+
*
|
|
15
|
+
* Both halves matter. Truncating by `String.prototype.slice` counts UTF-16 code units against a byte budget,
|
|
16
|
+
* which overruns by the encoding width of whatever the child printed. Truncating the *buffer* instead would
|
|
17
|
+
* respect the budget and split a multi-byte character or a surrogate pair, putting a lone `\ud83d` in the
|
|
18
|
+
* result. So the walk is by code POINT (`for…of` iterates code points, keeping surrogate pairs whole) and the
|
|
19
|
+
* budget is checked in bytes before each one is admitted.
|
|
20
|
+
*
|
|
21
|
+
* Exported for the test that feeds it CJK and emoji: an ASCII-only test cannot fail on any of this, which is
|
|
22
|
+
* exactly why the original defect survived a test named for it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function takeBytes(text: string, budget: number): string;
|
|
25
|
+
/**
|
|
26
|
+
* Operator override for the child wall-clock limit, in seconds.
|
|
27
|
+
*
|
|
28
|
+
* Deliberately NOT in `GRANT_ENV_KEYS`: those are stripped from a child's environment and re-supplied
|
|
29
|
+
* only by the spawn plan, which is right for capability state and wrong for an operator preference. This
|
|
30
|
+
* one should simply inherit, so a bound set at the root applies all the way down.
|
|
31
|
+
*/
|
|
32
|
+
/** Read the override, falling back to the default on absent *or* malformed input (G7's rule). */
|
|
33
|
+
export declare function timeoutFromEnv(raw: string | undefined): number;
|
|
34
|
+
/** The inactivity bound, same rule: absent, malformed and zero all select the default rather than disabling it. */
|
|
35
|
+
export declare function idleTimeoutFromEnv(raw: string | undefined): number;
|
|
36
|
+
export interface ChildRunRequest {
|
|
37
|
+
command: string;
|
|
38
|
+
args: string[];
|
|
39
|
+
env: NodeJS.ProcessEnv;
|
|
40
|
+
cwd: string;
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
/** Hard cap on captured output. Beyond it the child is killed and the result flagged. */
|
|
43
|
+
maxOutputBytes?: number;
|
|
44
|
+
/** Wall-clock ceiling. On expiry: SIGTERM, then SIGKILL after `killGraceMs`. A runaway bound, not the working bound. */
|
|
45
|
+
timeoutMs?: number;
|
|
46
|
+
killGraceMs?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Inactivity bound (ADR-0038 note, PR 3e): the child is stopped when this long passes with no activity. Activity
|
|
49
|
+
* is any stdout/stderr byte, or a change in what `activityProbe` returns. Undefined means no inactivity bound.
|
|
50
|
+
*/
|
|
51
|
+
idleTimeoutMs?: number;
|
|
52
|
+
/**
|
|
53
|
+
* A cheap marker of the child's progress that is not on its stdout, polled every `activityProbeIntervalMs`: the
|
|
54
|
+
* size and mtime of its pi session file, which pi appends to on every message and tool result. A change resets
|
|
55
|
+
* the inactivity clock; `undefined` (file not there yet) counts as no change. Never awaited on the control path.
|
|
56
|
+
*/
|
|
57
|
+
activityProbe?: () => Promise<string | number | undefined> | string | number | undefined;
|
|
58
|
+
activityProbeIntervalMs?: number;
|
|
59
|
+
/** Absolute epoch-millisecond hard cap: SIGKILL fires here even when the SIGTERM grace has not elapsed. */
|
|
60
|
+
hardDeadlineAt?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Called with each chunk as it arrives, for the parent's progress display (ADR-0032).
|
|
63
|
+
*
|
|
64
|
+
* **Display only, and the distinction is load-bearing.** The child's answer is still `text`, assembled here
|
|
65
|
+
* and returned; a caller must never treat what it saw streamed as the result. A partial stream that could be
|
|
66
|
+
* mistaken for a complete answer is R-03's defect — a missing result indistinguishable from an empty one —
|
|
67
|
+
* with a new cause.
|
|
68
|
+
*
|
|
69
|
+
* Bounded by the same `maxOutputBytes` as `text`, so the cap governs the transcript and not merely memory.
|
|
70
|
+
*
|
|
71
|
+
* Exceptions are swallowed: a renderer is not a governance control, and one that throws must not kill a
|
|
72
|
+
* governed child mid-task.
|
|
73
|
+
*/
|
|
74
|
+
onOutput?: (chunk: string) => void;
|
|
75
|
+
/** Optional raw observation; isolated from control, never awaited, separate from display text. */
|
|
76
|
+
onObservation?: (stream: "stdout" | "stderr", bytes: Uint8Array) => void;
|
|
77
|
+
/** Passive EOF observation. Never a replacement child/settlement handle. Exceptions are isolated. */
|
|
78
|
+
onStreamEnd?: (stream: "stdout" | "stderr") => void;
|
|
79
|
+
/** Security hook called immediately after spawn, before output handling (for lease attachment). */
|
|
80
|
+
onSpawn?: (pid: number) => void;
|
|
81
|
+
}
|
|
82
|
+
export interface ChildRunResult {
|
|
83
|
+
/** Exit code, or `null` when nothing was spawned or the child was killed by a signal. */
|
|
84
|
+
code: number | null;
|
|
85
|
+
text: string;
|
|
86
|
+
truncated: boolean;
|
|
87
|
+
timedOut: boolean;
|
|
88
|
+
/** Set with `timedOut` when it was the inactivity bound, not the wall-clock ceiling, that stopped the child. */
|
|
89
|
+
idle?: true;
|
|
90
|
+
aborted: boolean;
|
|
91
|
+
/** Signal that ended the process, separate from the nullable numeric exit code. */
|
|
92
|
+
signal?: NodeJS.Signals | null;
|
|
93
|
+
/** Set when the process could not be started at all. */
|
|
94
|
+
spawnError?: string;
|
|
95
|
+
}
|
|
96
|
+
/** 1 MiB. A delegation returns a summary; anything larger is a runaway, not an answer. */
|
|
97
|
+
export declare const DEFAULT_MAX_OUTPUT_BYTES: number;
|
|
98
|
+
/**
|
|
99
|
+
* Six hours (PR 3e, 2026-09-22). No longer the working bound: `DEFAULT_IDLE_TIMEOUT_MS` is what stops a hung child.
|
|
100
|
+
* This is the runaway ceiling for a child that keeps producing events forever, and it exists so that no typo in the
|
|
101
|
+
* inactivity variable can make a child unbounded. The history: ten minutes, twenty (ADR-0038), sixty (its note), each
|
|
102
|
+
* time because a working child was cut off by a wall clock that cannot tell working from hung.
|
|
103
|
+
*/
|
|
104
|
+
export declare const DEFAULT_TIMEOUT_MS: number;
|
|
105
|
+
/** Fifteen minutes with no stdout byte and no session-file change. A hung child is a silent one; a build is not. */
|
|
106
|
+
export declare const DEFAULT_IDLE_TIMEOUT_MS: number;
|
|
107
|
+
export declare const DEFAULT_ACTIVITY_PROBE_INTERVAL_MS = 2000;
|
|
108
|
+
/** Grace between SIGTERM and SIGKILL. A child that ignores SIGTERM must not make the timeout advisory. */
|
|
109
|
+
export declare const DEFAULT_KILL_GRACE_MS = 5000;
|
|
110
|
+
export declare function runChild(request: ChildRunRequest): Promise<ChildRunResult>;
|
|
111
|
+
//# sourceMappingURL=run-child.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-child.d.ts","sourceRoot":"","sources":["../../src/kernel/run-child.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAa3E;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED;;;;;;GAMG;AAEH,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK9D;AAED,mHAAmH;AACnH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGlE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wHAAwH;IACxH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2GAA2G;IAC3G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kGAAkG;IAClG,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzE,qGAAqG;IACrG,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IACpD,mGAAmG;IACnG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,gHAAgH;IAChH,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,QAAc,CAAC;AACpD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AACrD,oHAAoH;AACpH,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AACvD,0GAA0G;AAC1G,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwQ1E"}
|