pi-daddy 0.27.4 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +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 +6 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +108 -103
- 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 +98 -0
- package/dist/kernel/catalog.d.ts.map +1 -0
- package/dist/kernel/catalog.js +280 -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 +314 -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.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.map +1 -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.map +1 -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 +196 -0
- 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 +41 -33
- package/extensions/grants-connected-command.ts +29 -15
- package/extensions/grants.ts +78 -77
- 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 +31 -14
- package/extensions/session-report.ts +60 -10
- package/extensions/session.ts +76 -66
- 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 +5 -212
- package/src/cli.ts +136 -89
- 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 +313 -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 +370 -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/run-child.ts +418 -0
- package/src/kernel/skill-packages.ts +329 -0
- package/src/kernel/skill-resources.ts +64 -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 -136
- 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/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 -48
- package/dist/dashboard-cli.d.ts.map +0 -1
- package/dist/dashboard-cli.js +0 -331
- package/dist/dashboard-cli.js.map +0 -1
- package/dist/dashboard-display-controls.d.ts +0 -10
- package/dist/dashboard-display-controls.d.ts.map +0 -1
- package/dist/dashboard-display-controls.js +0 -25
- package/dist/dashboard-display-controls.js.map +0 -1
- package/dist/dashboard-handshake.d.ts +0 -37
- package/dist/dashboard-handshake.d.ts.map +0 -1
- package/dist/dashboard-handshake.js +0 -136
- 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 -146
- 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 -305
- 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.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.map +0 -1
- 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.map +0 -1
- 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/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 -315
- package/src/dashboard-display-controls.ts +0 -18
- package/src/dashboard-handshake.ts +0 -194
- 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 -150
- package/src/delegate.ts +0 -341
- 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/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/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/{resolve.d.ts → kernel/resolve.d.ts} +0 -0
- /package/dist/{routing-authority.d.ts → kernel/routing-authority.d.ts} +0 -0
- /package/dist/{routing-authority.js → kernel/routing-authority.js} +0 -0
- /package/dist/{skill-resources.d.ts → kernel/skill-resources.d.ts} +0 -0
- /package/dist/{spawn.d.ts → kernel/spawn.d.ts} +0 -0
- /package/dist/{spawn.js → kernel/spawn.js} +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
- /package/src/{routing-authority.ts → kernel/routing-authority.ts} +0 -0
- /package/src/{spawn.ts → kernel/spawn.ts} +0 -0
package/dist/definitions.js
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Skills (`SKILL.md`) as this package's definition format — ADR-0016.
|
|
3
|
-
*
|
|
4
|
-
* A subagent is a skill you spawn: the `SKILL.md` body becomes the child's system prompt
|
|
5
|
-
* (`--append-system-prompt`) and `allowed-tools` becomes its capability ceiling, enforced through
|
|
6
|
-
* `--tools`. That collapses a duplication `principal-pi-skills` already strains against, where
|
|
7
|
-
* `plan`/`review`/`debug` exist twice — once as a skill and once as a subagent prompt — and are
|
|
8
|
-
* generated from one contract precisely so the two cannot drift.
|
|
9
|
-
*
|
|
10
|
-
* **The spec's own words about `allowed-tools`:** *"a space-separated string of tools that are
|
|
11
|
-
* pre-approved to run"*, marked **experimental**. Pre-approved, not enforced — the field declares intent
|
|
12
|
-
* and blocks nothing, and implementations differ on whether they honour it at all. Turning that
|
|
13
|
-
* declaration into something structural is this package's entire value here.
|
|
14
|
-
*
|
|
15
|
-
* **One inversion is deliberate and load-bearing.** In pi-subagents' frontmatter an absent `tools:` key
|
|
16
|
-
* means *pi's full default toolset*, so an undeclared definition was the most powerful kind and any
|
|
17
|
-
* parse failure produced a wildcard — the direction that caused R-28 and review finding F18. Here an
|
|
18
|
-
* absent `allowed-tools` means **undeclared, therefore not spawnable**. A typo or an unreadable YAML
|
|
19
|
-
* form now costs a refusal instead of a grant.
|
|
20
|
-
*/
|
|
21
|
-
import { createHash } from "node:crypto";
|
|
22
|
-
import { readFile } from "node:fs/promises";
|
|
23
|
-
import { resolveSkillResources, skillResourceName } from "./skill-resources.js";
|
|
24
|
-
import { CAPABILITY_NAMESPACE_PREFIXES } from "./capabilities.js";
|
|
25
|
-
/**
|
|
26
|
-
* Digest a definition's body.
|
|
27
|
-
*
|
|
28
|
-
* Over the **body alone**, deliberately: that is precisely the text the child receives, so a digest that
|
|
29
|
-
* also covered the frontmatter would change when `description` was reworded and report an instruction
|
|
30
|
-
* change that never happened. `allowed-tools` is already recorded in full on every record.
|
|
31
|
-
*/
|
|
32
|
-
export function digestDefinition(definition) {
|
|
33
|
-
return {
|
|
34
|
-
name: definition.name,
|
|
35
|
-
source: definition.source,
|
|
36
|
-
sha256: createHash("sha256").update(definition.body, "utf8").digest("hex"),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Read a `SKILL.md`.
|
|
41
|
-
*
|
|
42
|
-
* The frontmatter reader handles the subset these files use — `key: value`, block scalars (`>` / `|`),
|
|
43
|
-
* and a one-level `metadata:` map. Anything it cannot read leaves the key **absent**, which for
|
|
44
|
-
* `allowed-tools` means *undeclared* and therefore refused. That is the whole reason this parser can be
|
|
45
|
-
* hand-rolled without the hazard its sibling in `agent-types.ts` carries.
|
|
46
|
-
*/
|
|
47
|
-
export function parseSkillDefinition(source, text) {
|
|
48
|
-
const match = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(text);
|
|
49
|
-
if (!match)
|
|
50
|
-
return null;
|
|
51
|
-
const fields = new Map();
|
|
52
|
-
const metadata = {};
|
|
53
|
-
const lines = match[1].split(/\r?\n/);
|
|
54
|
-
for (let i = 0; i < lines.length; i++) {
|
|
55
|
-
const kv = /^([A-Za-z_][A-Za-z0-9_-]*)\s*:\s*(.*)$/.exec(lines[i]);
|
|
56
|
-
if (!kv)
|
|
57
|
-
continue;
|
|
58
|
-
const [, key, rawValue] = kv;
|
|
59
|
-
const value = rawValue.trim();
|
|
60
|
-
// A folded/literal scalar: fold the indented continuation into one line. `principal-pi-skills`
|
|
61
|
-
// writes every description this way, and the sibling parser SKIPS these — which is safe there only
|
|
62
|
-
// because it never needs the value. Here a skipped `description` would be a missing required field.
|
|
63
|
-
if (value === ">" || value === "|") {
|
|
64
|
-
const parts = [];
|
|
65
|
-
for (let j = i + 1; j < lines.length; j++) {
|
|
66
|
-
if (!/^\s+\S/.test(lines[j]))
|
|
67
|
-
break;
|
|
68
|
-
parts.push(lines[j].trim());
|
|
69
|
-
i = j;
|
|
70
|
-
}
|
|
71
|
-
fields.set(key, parts.join(" "));
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
// `metadata:` introduces a one-level map of string keys to string values (the spec's shape).
|
|
75
|
-
if (key === "metadata" && value === "") {
|
|
76
|
-
for (let j = i + 1; j < lines.length; j++) {
|
|
77
|
-
const item = /^\s+([A-Za-z_][A-Za-z0-9_-]*)\s*:\s*(.*)$/.exec(lines[j]);
|
|
78
|
-
if (!item)
|
|
79
|
-
break;
|
|
80
|
-
metadata[item[1]] = item[2].trim().replace(/^["']|["']$/g, "");
|
|
81
|
-
i = j;
|
|
82
|
-
}
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
// A YAML collection/block we cannot parse is not an explicit empty ceiling.
|
|
86
|
-
if (key === "allowed-tools" && value === "") {
|
|
87
|
-
const nextValue = lines.slice(i + 1).find(line => line.trim() !== "" && !/^\s*#/.test(line));
|
|
88
|
-
if (/^\s+\S/.test(nextValue ?? ""))
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
fields.set(key, value);
|
|
92
|
-
}
|
|
93
|
-
const description = fields.get("description");
|
|
94
|
-
if (description === undefined)
|
|
95
|
-
return null;
|
|
96
|
-
return {
|
|
97
|
-
// Identity comes from the PATH. ADR-0013 learned this the hard way on the other format: pi keys
|
|
98
|
-
// skills by their directory, so trusting a frontmatter `name` lets our view and the loader's
|
|
99
|
-
// disagree about which file a name refers to. The spec requires `name` to match the parent
|
|
100
|
-
// directory anyway, so a mismatch is the file's defect and not something to honour.
|
|
101
|
-
name: skillResourceName(source),
|
|
102
|
-
description,
|
|
103
|
-
allowedTools: fields.get("allowed-tools"),
|
|
104
|
-
metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
|
|
105
|
-
body: text.slice(match[0].length).trim(),
|
|
106
|
-
source,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Turn a definition's `allowed-tools` into a capability ceiling.
|
|
111
|
-
*
|
|
112
|
-
* Name mapping is **lowercasing and nothing else**, deliberately. A translation table from Claude
|
|
113
|
-
* Code's names to pi's would have to decide what `Glob` means, and pi has no glob tool — so the table
|
|
114
|
-
* would either invent a grant or quietly drop one. Lowercasing leaves `Glob` as `tool:glob`, which the
|
|
115
|
-
* catalog then refuses as unknown, naming the actual problem to whoever wrote the file.
|
|
116
|
-
*/
|
|
117
|
-
export function ceilingForDefinition(definition) {
|
|
118
|
-
const raw = definition.allowedTools;
|
|
119
|
-
if (raw === undefined)
|
|
120
|
-
return { capabilities: [], patterns: [], undeclared: true };
|
|
121
|
-
const capabilities = new Set();
|
|
122
|
-
const patterns = [];
|
|
123
|
-
// The spec says space-separated. Commas are tolerated because `Read, Grep` is what people type, and
|
|
124
|
-
// accepting them grants nothing extra — it only avoids a comma becoming part of a capability name.
|
|
125
|
-
for (const entry of raw.split(/[\s,]+/).filter((e) => e.length > 0)) {
|
|
126
|
-
if (entry.includes("(")) {
|
|
127
|
-
patterns.push(entry);
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
// Every namespaced id passes through untouched; only a BARE tool name gets the `tool:` prefix and the
|
|
131
|
-
// lowercasing. `workspace:` was missing here after ADR-0035 taught `normaliseCapability` about it, so a
|
|
132
|
-
// definition declaring `allowed-tools: workspace:prod` produced `tool:workspace:prod` — a capability
|
|
133
|
-
// that names nothing, refused as unknown, and dropped by `init` as "probably a typo or an attack". Two
|
|
134
|
-
// spellings of one grammar with this one wrong is R-28's shape; the list is now shared.
|
|
135
|
-
if (CAPABILITY_NAMESPACE_PREFIXES.some((prefix) => entry.startsWith(prefix))) {
|
|
136
|
-
capabilities.add(entry);
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
capabilities.add(`tool:${entry.toLowerCase()}`);
|
|
140
|
-
}
|
|
141
|
-
return { capabilities: [...capabilities].sort(), patterns, undeclared: false };
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Read definitions from Pi's enabled resources, including installed packages and local overrides.
|
|
145
|
-
* Resolver precedence and filters are shared with the capability catalog; unregistered npm packages
|
|
146
|
-
* are not runtime resources until legacy init explicitly scaffolds them.
|
|
147
|
-
*/
|
|
148
|
-
export async function loadDefinitions(cwd) {
|
|
149
|
-
const definitions = new Map();
|
|
150
|
-
for (const { path } of (await resolveSkillResources(cwd)).skills) {
|
|
151
|
-
let text;
|
|
152
|
-
try {
|
|
153
|
-
text = await readFile(path, "utf8");
|
|
154
|
-
}
|
|
155
|
-
catch {
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
const parsed = parseSkillDefinition(path, text);
|
|
159
|
-
if (parsed && !definitions.has(parsed.name))
|
|
160
|
-
definitions.set(parsed.name, parsed);
|
|
161
|
-
}
|
|
162
|
-
return definitions;
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=definitions.js.map
|
package/dist/definitions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/delegate-types.d.ts
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The shapes `planDelegation` consumes and produces. Split out of `./delegate.ts` only to stay under the
|
|
3
|
-
* 400-line module ceiling this project enforces mechanically; `./delegate.ts` re-exports all three, so
|
|
4
|
-
* "the delegate module" remains one import for every caller.
|
|
5
|
-
*/
|
|
6
|
-
import type { Capability, ResolveResult } from "./resolve.ts";
|
|
7
|
-
import type { DefinitionDigest, SkillDefinition } from "./definitions.ts";
|
|
8
|
-
import type { InheritableApproval } from "./approval.ts";
|
|
9
|
-
import type { Catalog } from "./catalog.ts";
|
|
10
|
-
import type { ApprovalBinding, CorrelationMetadata } from "./correlation.ts";
|
|
11
|
-
import type { StructuredRefusal } from "./refusals.ts";
|
|
12
|
-
export interface DelegationRequest {
|
|
13
|
-
task: string;
|
|
14
|
-
/**
|
|
15
|
-
* Capabilities the delegator wants the child to hold.
|
|
16
|
-
*
|
|
17
|
-
* Optional since ADR-0016: prefer `agent`, which names an operator-authored definition. This form
|
|
18
|
-
* lets the MODEL choose the capability set, which is the weaker arrangement — it is still bounded by
|
|
19
|
-
* the session grant (ADR-0008), so it cannot escalate, but nothing about it was reviewed by a human.
|
|
20
|
-
*/
|
|
21
|
-
tools?: string[];
|
|
22
|
-
/**
|
|
23
|
-
* Name of a `SKILL.md` definition to spawn (ADR-0016).
|
|
24
|
-
*
|
|
25
|
-
* When given, the definition's `allowed-tools` is the ceiling and its body is the child's system
|
|
26
|
-
* prompt. The model chooses only *which* definition and *what* task; the capability set is the
|
|
27
|
-
* operator's, written down in a file.
|
|
28
|
-
*/
|
|
29
|
-
agent?: string;
|
|
30
|
-
model?: string;
|
|
31
|
-
provider?: string;
|
|
32
|
-
thinking?: string;
|
|
33
|
-
/** Optional external join metadata. It never participates in capability authority. */
|
|
34
|
-
correlation?: CorrelationMetadata;
|
|
35
|
-
/**
|
|
36
|
-
* Trusted binding scope, supplied by the caller that actually resolved and leased the
|
|
37
|
-
* workspace. Deliberately separate from `correlation`, whose values are a model-supplied
|
|
38
|
-
* claim: reading the workspace id out of correlation let a bound approval be spent outside
|
|
39
|
-
* the workspace it named (R-110).
|
|
40
|
-
*/
|
|
41
|
-
boundWorkspaceId?: string;
|
|
42
|
-
boundContextId?: string;
|
|
43
|
-
}
|
|
44
|
-
export interface DelegationContext {
|
|
45
|
-
ownGrant: Capability[];
|
|
46
|
-
depth: number;
|
|
47
|
-
maxDepth: number;
|
|
48
|
-
gated: Capability[];
|
|
49
|
-
/**
|
|
50
|
-
* Approvals in force for this delegation, with subject and scope (ADR-0014).
|
|
51
|
-
*
|
|
52
|
-
* One source of truth for two different questions. The **gate check here** honours every entry,
|
|
53
|
-
* including `once` — that approval applies to *this* spawn, which is exactly what the human said yes
|
|
54
|
-
* to. What crosses to the CHILD is `inheritApprovals`, which drops `once` and keeps the subject, so
|
|
55
|
-
* the same list cannot silently authorise a subtree.
|
|
56
|
-
*/
|
|
57
|
-
approved?: InheritableApproval[];
|
|
58
|
-
ledgerPath?: string;
|
|
59
|
-
/** Path to this extension, so a child granted `tool:delegate` can delegate in turn. */
|
|
60
|
-
extensionPath?: string;
|
|
61
|
-
/** Live capability catalog. When supplied, capabilities absent from it are refused as unknown. */
|
|
62
|
-
catalog?: Catalog;
|
|
63
|
-
/**
|
|
64
|
-
* Absolute path per skill NAME, from the catalog's `source` field (R-32).
|
|
65
|
-
*
|
|
66
|
-
* Without it every granted `skill:` capability is unresolvable and the delegation is refused, which
|
|
67
|
-
* is the correct direction: a caller that cannot say where a skill lives cannot honestly grant it.
|
|
68
|
-
*/
|
|
69
|
-
skillPaths?: Record<string, string>;
|
|
70
|
-
/** Let the child load `AGENTS.md` / `CLAUDE.md`. Default false — see `planSpawn`. */
|
|
71
|
-
contextFiles?: boolean;
|
|
72
|
-
/** Known `SKILL.md` definitions by name, for `DelegationRequest.agent` (ADR-0016). */
|
|
73
|
-
definitions?: Map<string, SkillDefinition>;
|
|
74
|
-
/**
|
|
75
|
-
* Build an INTERACTIVE plan — no `--print` — for an executor that drives the child after starting it.
|
|
76
|
-
*
|
|
77
|
-
* `runHerdrPane` requires this: `--print` makes pi process the prompt and exit, so it never reaches the
|
|
78
|
-
* interactive readiness `herdr agent start` waits for and the agent is never detected. Default is the
|
|
79
|
-
* non-interactive plan, because a governed child should not sit waiting for a human by accident.
|
|
80
|
-
*/
|
|
81
|
-
interactive?: boolean;
|
|
82
|
-
/** Explicit host-owned pi persistence target; never model-facing and never enabled by archive observation. */
|
|
83
|
-
sessionFile?: string;
|
|
84
|
-
/**
|
|
85
|
-
* Total descendants this session may still create (`src/fanout.ts`). Split among children by the caller.
|
|
86
|
-
*
|
|
87
|
-
* Omitted means unbounded, which is the pre-fan-out behaviour and correct for a single blocking
|
|
88
|
-
* delegation — the accident that used to bound cardinality to one.
|
|
89
|
-
*/
|
|
90
|
-
fanoutBudget?: number;
|
|
91
|
-
/** This session's ledger id, so a child's `parentId` names its real parent (F8). */
|
|
92
|
-
spawnId?: string;
|
|
93
|
-
/** Ledger id assigned to THIS child, distinguishing logical siblings (F8). */
|
|
94
|
-
childSpawnId?: string;
|
|
95
|
-
/** Unique identity assigned to THIS execution occurrence; never derive joins from childSpawnId. */
|
|
96
|
-
childExecutionId?: string;
|
|
97
|
-
}
|
|
98
|
-
export interface Delegation {
|
|
99
|
-
ok: boolean;
|
|
100
|
-
reason?: string;
|
|
101
|
-
/** Stable machine-readable refusal accompanying the unchanged human diagnostic. */
|
|
102
|
-
refusal?: StructuredRefusal;
|
|
103
|
-
args: string[];
|
|
104
|
-
/** Per-child environment — never merged into the parent's process.env. */
|
|
105
|
-
env: Record<string, string>;
|
|
106
|
-
effective: Capability[];
|
|
107
|
-
/**
|
|
108
|
-
* The result this plan was made from. **Required** (B-I3): while it was optional the extension
|
|
109
|
-
* guarded its ledger write with `if (ledgerPath && plan.result)`, silently dropping every refusal
|
|
110
|
-
* that returned before `resolve()` ran. The type is what keeps a new early exit auditable.
|
|
111
|
-
*/
|
|
112
|
-
result: ResolveResult;
|
|
113
|
-
childDepth: number;
|
|
114
|
-
/**
|
|
115
|
-
* The capabilities this delegation asked for, whatever route named them.
|
|
116
|
-
*
|
|
117
|
-
* Carried on the plan rather than re-derived by the caller (the B-I3 lesson): with `agent`, the
|
|
118
|
-
* request names a DEFINITION and the capabilities come from its `allowed-tools`, so a ledger that
|
|
119
|
-
* read the tool parameters would record an empty request for every definition spawn.
|
|
120
|
-
*/
|
|
121
|
-
requested: Capability[];
|
|
122
|
-
/** Ledger id for this child's readable logical position, if the caller assigned one (F8). */
|
|
123
|
-
childId?: string;
|
|
124
|
-
/** Unique identity for this occurrence, if the caller assigned one. */
|
|
125
|
-
executionId?: string;
|
|
126
|
-
/**
|
|
127
|
-
* Which operator-authored instructions this spawn used (ADR-0018).
|
|
128
|
-
*
|
|
129
|
-
* Absent for a `tools:`-style delegation, which has no definition and therefore no instructions to
|
|
130
|
-
* identify — and absent on an ADR-0017 authorisation refusal, which is decided before the file is read.
|
|
131
|
-
*/
|
|
132
|
-
definitionDigest?: DefinitionDigest;
|
|
133
|
-
/** Trusted SHA-256 of the exact model-authored task. The task text itself is never stored. */
|
|
134
|
-
taskDigest: string;
|
|
135
|
-
/** Non-authoritative external join metadata, snapshotted at planning time. */
|
|
136
|
-
correlation?: CorrelationMetadata;
|
|
137
|
-
/** Exact approval scope, present when correlation/workspace context requested task-bound approval. */
|
|
138
|
-
approvalBinding?: ApprovalBinding;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Plan a governed delegation. Pure: returns argv and env, spawns nothing.
|
|
142
|
-
*
|
|
143
|
-
* Fails closed on depth, on any requested capability the delegator does not hold, on gated capabilities
|
|
144
|
-
* without approval, and on a grant that cannot narrow (a universal capability slipping through).
|
|
145
|
-
*/
|
|
146
|
-
//# sourceMappingURL=delegate-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate-types.d.ts","sourceRoot":"","sources":["../src/delegate-types.ts"],"names":[],"mappings":"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"}
|
package/dist/delegate-types.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
/**
|
|
3
|
-
* Plan a governed delegation. Pure: returns argv and env, spawns nothing.
|
|
4
|
-
*
|
|
5
|
-
* Fails closed on depth, on any requested capability the delegator does not hold, on gated capabilities
|
|
6
|
-
* without approval, and on a grant that cannot narrow (a universal capability slipping through).
|
|
7
|
-
*/
|
|
8
|
-
//# sourceMappingURL=delegate-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate-types.js","sourceRoot":"","sources":["../src/delegate-types.ts"],"names":[],"mappings":";AAgJA;;;;;GAKG"}
|
package/dist/delegate.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../src/delegate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAelH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,GAAG,UAAU,CA8S7F"}
|
package/dist/delegate.js
DELETED
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Governed delegation planning. Owning the spawn makes the grant an argument; each child receives its own
|
|
3
|
-
* environment, and `tool:delegate` determines whether it is a delegator or a leaf.
|
|
4
|
-
*/
|
|
5
|
-
import { planSpawn } from "./spawn.js";
|
|
6
|
-
import { ceilingForDefinition, digestDefinition } from "./definitions.js";
|
|
7
|
-
import { assertNarrowing } from "./resolve.js";
|
|
8
|
-
import { checkRoutingAuthority, checkWorkspaceWildcardRequest } from "./routing-authority.js";
|
|
9
|
-
import { DELEGATE_CAPABILITY, agentCapability, maySpawnDefinition, normaliseCapability, } from "./capabilities.js";
|
|
10
|
-
// Re-exported so the split stays internal: `delegate.ts` has been the import site for these since 0.6.0 and
|
|
11
|
-
// four modules plus the test suite name it. Moving the definitions without moving the door would be churn
|
|
12
|
-
// charged to every caller for a line count they did not cause.
|
|
13
|
-
export { DELEGATE_CAPABILITY, agentCapability, maySpawnDefinition, normaliseCapability } from "./capabilities.js";
|
|
14
|
-
import { ENV_APPROVED, ENV_DEPTH, ENV_EXECUTION_ID, ENV_FANOUT, ENV_GATED, ENV_GRANT, ENV_LEDGER, ENV_MAX_DEPTH, ENV_PARENT_ID, inheritableGrant, } from "./propagation.js";
|
|
15
|
-
import { inheritApprovals } from "./approval.js";
|
|
16
|
-
import { suggestForUnknown, unknownCapabilities } from "./catalog.js";
|
|
17
|
-
import { GovernanceRefusal, refusal } from "./refusals.js";
|
|
18
|
-
import { digestTask, normaliseCorrelation, } from "./correlation.js";
|
|
19
|
-
import { resolveDelegationApproval } from "./delegation-approval.js";
|
|
20
|
-
import { assertCapabilitiesArePropagatable } from "./capabilities.js";
|
|
21
|
-
export function planDelegation(request, ctx) {
|
|
22
|
-
const childDepth = ctx.depth + 1;
|
|
23
|
-
const denied = (plan, code) => plan.reason ? { ...plan, refusal: refusal(code, plan.reason) } : plan;
|
|
24
|
-
// G6 / B-I3: every refusal carries a result, including the four below that return before `resolve()`
|
|
25
|
-
// is ever called. The extension guarded its ledger write with `if (ledgerPath && plan.result)`, so
|
|
26
|
-
// those four governance decisions — disabled, too deep, no task, unknown capability — were never
|
|
27
|
-
// audited at all. An empty result is the honest record: nothing was resolved, and that is the fact.
|
|
28
|
-
// Bounded/whitelisted correlation is a REFUSAL, not an exception escaping the planner. It is reachable
|
|
29
|
-
// from a model-facing tool parameter on all three delegation tools, and throwing from here produced a
|
|
30
|
-
// governed refusal with no code and no ledger line at all — the ledger file was never even created
|
|
31
|
-
// (R-112). Caught here so it becomes an ordinary recorded decision.
|
|
32
|
-
let correlation;
|
|
33
|
-
let correlationRefused;
|
|
34
|
-
try {
|
|
35
|
-
correlation = normaliseCorrelation(request.correlation);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
correlationRefused = error instanceof GovernanceRefusal
|
|
39
|
-
? { code: error.code, message: error.message, ...(error.details ? { details: error.details } : {}) }
|
|
40
|
-
: refusal("CORRELATION_INVALID", String(error instanceof Error ? error.message : error));
|
|
41
|
-
}
|
|
42
|
-
const taskDigest = digestTask(request.task ?? "");
|
|
43
|
-
const empty = {
|
|
44
|
-
ok: false,
|
|
45
|
-
args: [],
|
|
46
|
-
env: {},
|
|
47
|
-
effective: [],
|
|
48
|
-
childDepth,
|
|
49
|
-
requested: [],
|
|
50
|
-
taskDigest,
|
|
51
|
-
...(correlation ? { correlation } : {}),
|
|
52
|
-
result: { effective: [], denied: [], clipped: [], gatedBlocked: [], universal: [], subsumedBy: [] },
|
|
53
|
-
};
|
|
54
|
-
if (correlationRefused) {
|
|
55
|
-
return { ...empty, reason: correlationRefused.message, refusal: correlationRefused };
|
|
56
|
-
}
|
|
57
|
-
if (ctx.maxDepth <= 0) {
|
|
58
|
-
return denied({ ...empty, reason: "delegation is disabled (maxDepth 0)" }, "DEPTH_EXCEEDED");
|
|
59
|
-
}
|
|
60
|
-
if (childDepth > ctx.maxDepth) {
|
|
61
|
-
return denied({ ...empty, reason: `delegation depth limit reached (${ctx.maxDepth})` }, "DEPTH_EXCEEDED");
|
|
62
|
-
}
|
|
63
|
-
if (!request.task?.trim())
|
|
64
|
-
return denied({ ...empty, reason: "a delegation needs a task" }, "TASK_MISSING");
|
|
65
|
-
// ADR-0035's routing guards live in `routing-authority.ts` with their rationale; both are checked here,
|
|
66
|
-
// before anything is said about the target, because they are governance questions about the SESSION.
|
|
67
|
-
const routing = checkRoutingAuthority(request.boundWorkspaceId, ctx.ownGrant);
|
|
68
|
-
if (routing) {
|
|
69
|
-
return denied({
|
|
70
|
-
...empty,
|
|
71
|
-
...(routing.denied ? { requested: routing.denied, result: { ...empty.result, denied: routing.denied } } : {}),
|
|
72
|
-
reason: routing.reason,
|
|
73
|
-
}, routing.code);
|
|
74
|
-
}
|
|
75
|
-
// ADR-0016. A named definition replaces the model's tool list with an operator-authored ceiling.
|
|
76
|
-
let requested;
|
|
77
|
-
let systemPrompt;
|
|
78
|
-
let definitionDigest;
|
|
79
|
-
/** The definition being spawned, hoisted so the gate below can name its authorising id (ADR-0024). */
|
|
80
|
-
let spawned;
|
|
81
|
-
if (request.agent) {
|
|
82
|
-
const definition = ctx.definitions?.get(request.agent);
|
|
83
|
-
spawned = definition;
|
|
84
|
-
// No fallback, deliberately. pi-subagents resolves an unknown type to `general-purpose`, whose
|
|
85
|
-
// omitted tool list means EVERY tool — so a typo there granted the full surface. An unknown name
|
|
86
|
-
// here is simply an error.
|
|
87
|
-
if (!definition) {
|
|
88
|
-
const known = [...(ctx.definitions?.keys() ?? [])].sort();
|
|
89
|
-
return denied({
|
|
90
|
-
...empty,
|
|
91
|
-
reason: `unknown agent "${request.agent}"` +
|
|
92
|
-
(known.length > 0 ? ` — known definitions: ${known.join(", ")}` : " — no definitions were found"),
|
|
93
|
-
}, "UNKNOWN_DEFINITION");
|
|
94
|
-
}
|
|
95
|
-
// ADR-0017: authorisation comes BEFORE anything is said about the file. Which definitions this
|
|
96
|
-
// session may spawn is a governance question about the SESSION; whether the file declares its tools
|
|
97
|
-
// properly is a diagnostic about the DEFINITION, and answering the second one first would report a
|
|
98
|
-
// malformed-file error to a caller who was never allowed to spawn it either way.
|
|
99
|
-
//
|
|
100
|
-
// Recorded as a denial rather than a bare refusal, deliberately: `denied` is the escalation signal
|
|
101
|
-
// ADR-0008 designates, and asking to run a definition this session was not granted IS an attempt to
|
|
102
|
-
// exceed the grant. A refusal that left `denied` empty would keep it out of every audit query.
|
|
103
|
-
if (!maySpawnDefinition(ctx.ownGrant, definition.name)) {
|
|
104
|
-
const authorising = agentCapability(definition.name);
|
|
105
|
-
const held = ctx.ownGrant.filter((c) => c.startsWith("agent:")).sort();
|
|
106
|
-
return denied({
|
|
107
|
-
...empty,
|
|
108
|
-
requested: [authorising],
|
|
109
|
-
result: { ...empty.result, denied: [authorising] },
|
|
110
|
-
reason: `cannot spawn "${definition.name}" — this session does not hold ${authorising} ` +
|
|
111
|
-
`(the definition lives at ${definition.source}). ` +
|
|
112
|
-
(held.length > 0
|
|
113
|
-
? `It may spawn: ${held.join(", ")}.`
|
|
114
|
-
: `It may spawn no definitions at all; add ${authorising} to its grant to allow this one.`),
|
|
115
|
-
}, "DEFINITION_NOT_AUTHORIZED");
|
|
116
|
-
}
|
|
117
|
-
// ADR-0018. Recorded from here on — after authorisation, because the digest is a fact about a file
|
|
118
|
-
// this caller was allowed to read, and before every remaining outcome, because a spawn refused for a
|
|
119
|
-
// malformed declaration is still a spawn of THIS version of the definition.
|
|
120
|
-
//
|
|
121
|
-
// Assigned into `empty`, which every subsequent refusal spreads. That is the R-28 discipline applied
|
|
122
|
-
// to a record field rather than an argument: instead of eight `definitionDigest` spellings that a
|
|
123
|
-
// ninth return could forget, there is one, and forgetting it is not expressible. The success return
|
|
124
|
-
// does not spread `empty`, so it names the field explicitly.
|
|
125
|
-
definitionDigest = digestDefinition(definition);
|
|
126
|
-
Object.assign(empty, { definitionDigest });
|
|
127
|
-
const ceiling = ceilingForDefinition(definition);
|
|
128
|
-
if (ceiling.undeclared) {
|
|
129
|
-
return denied({
|
|
130
|
-
...empty,
|
|
131
|
-
reason: `agent "${definition.name}" declares no \`allowed-tools\`, so it cannot be spawned — add one ` +
|
|
132
|
-
`to ${definition.source}. An undeclared capability set is treated as NONE, never as everything.`,
|
|
133
|
-
}, "UNDECLARED_TOOLS");
|
|
134
|
-
}
|
|
135
|
-
if (ceiling.patterns.length > 0) {
|
|
136
|
-
return denied({
|
|
137
|
-
...empty,
|
|
138
|
-
reason: `agent "${definition.name}" restricts a tool with a pattern (${ceiling.patterns.join(", ")}), ` +
|
|
139
|
-
`which pi's --tools cannot express — it matches whole tool names only. Granting the bare tool ` +
|
|
140
|
-
`would widen the declaration and dropping it would silently narrow, so neither is done.`,
|
|
141
|
-
}, "CEILING_PATTERNS_UNRESOLVED");
|
|
142
|
-
}
|
|
143
|
-
requested = ceiling.capabilities;
|
|
144
|
-
systemPrompt = definition.body;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
requested = (request.tools ?? []).map(normaliseCapability);
|
|
148
|
-
}
|
|
149
|
-
// Unknown is reported before denied, and separately: "does not exist here" and "you lack authority"
|
|
150
|
-
// have different causes and different fixes. Collapsing them hides typos and stale grants.
|
|
151
|
-
if (ctx.catalog) {
|
|
152
|
-
const unknown = unknownCapabilities(requested, ctx.catalog);
|
|
153
|
-
if (unknown.length > 0) {
|
|
154
|
-
// Name the likely intent where there is one. `ceilingForDefinition` refuses to TRANSLATE names
|
|
155
|
-
// (lowercasing and no more), so an author who wrote Claude Code's `Glob` gets `tool:glob` and a
|
|
156
|
-
// refusal — correct, and previously unhelpful, because pi's equivalent is `find` and no amount of
|
|
157
|
-
// staring at "not present in this session's catalog" says so. The hint changes nothing about the
|
|
158
|
-
// refusal; it just stops the author having to guess which of nine built-ins was meant.
|
|
159
|
-
const hints = unknown
|
|
160
|
-
.map((c) => {
|
|
161
|
-
const s = suggestForUnknown(c, ctx.catalog);
|
|
162
|
-
return s === null ? null : `${c} → did you mean ${s}?`;
|
|
163
|
-
})
|
|
164
|
-
.filter((h) => h !== null);
|
|
165
|
-
return denied({
|
|
166
|
-
...empty,
|
|
167
|
-
requested,
|
|
168
|
-
reason: `unknown capabilit${unknown.length === 1 ? "y" : "ies"}: ${unknown.join(", ")} — not present in ` +
|
|
169
|
-
`this session's catalog (typo, or an uninstalled package?)` +
|
|
170
|
-
(hints.length > 0 ? ` — ${hints.join("; ")}` : ""),
|
|
171
|
-
}, "UNKNOWN_TOOL");
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// See `checkWorkspaceWildcardRequest`: refused for a HOLDER (the ledger must not record authority the
|
|
175
|
-
// child will not receive), and left to `resolve()` for anyone else, so the probe lands in `denied`.
|
|
176
|
-
const wildcardRequest = checkWorkspaceWildcardRequest(requested, ctx.ownGrant);
|
|
177
|
-
if (wildcardRequest) {
|
|
178
|
-
return denied({ ...empty, requested, reason: wildcardRequest.reason }, wildcardRequest.code);
|
|
179
|
-
}
|
|
180
|
-
const { result, approvalBinding, bindingMismatch } = resolveDelegationApproval({
|
|
181
|
-
task: request.task,
|
|
182
|
-
agent: request.agent,
|
|
183
|
-
boundWorkspaceId: request.boundWorkspaceId,
|
|
184
|
-
boundContextId: request.boundContextId,
|
|
185
|
-
requested,
|
|
186
|
-
parentGrant: ctx.ownGrant,
|
|
187
|
-
gated: ctx.gated,
|
|
188
|
-
approved: ctx.approved,
|
|
189
|
-
spawned,
|
|
190
|
-
definitionDigest,
|
|
191
|
-
correlation,
|
|
192
|
-
parentId: ctx.spawnId ?? `d${ctx.depth}`,
|
|
193
|
-
});
|
|
194
|
-
if (approvalBinding)
|
|
195
|
-
Object.assign(empty, { approvalBinding });
|
|
196
|
-
if (result.denied.length > 0) {
|
|
197
|
-
return denied({
|
|
198
|
-
...empty,
|
|
199
|
-
requested,
|
|
200
|
-
result,
|
|
201
|
-
reason: `cannot grant ${result.denied.join(", ")} — this session does not hold it (capability escalation blocked)`,
|
|
202
|
-
}, "CAPABILITY_ESCALATION");
|
|
203
|
-
}
|
|
204
|
-
// ADR-0011: narrowing is checked BEFORE the gate, and the order is load-bearing rather than
|
|
205
|
-
// stylistic. `assertNarrowing` refuses regardless of approval, so with the old order this returned
|
|
206
|
-
// "requires explicit approval" for a delegation that could never be approved — telling the operator
|
|
207
|
-
// to go and find a human who cannot help. `shouldSeekApproval` now also refuses to prompt in this
|
|
208
|
-
// case; this reordering makes the reported *reason* agree with what actually blocks the spawn.
|
|
209
|
-
try {
|
|
210
|
-
assertNarrowing(result);
|
|
211
|
-
}
|
|
212
|
-
catch (error) {
|
|
213
|
-
// ADR-0011's narrowing invariant is the hardest rule this package enforces, and it was the one
|
|
214
|
-
// refusal an external controller could not identify by code (R-109).
|
|
215
|
-
return denied({ ...empty, requested, result, reason: String(error instanceof Error ? error.message : error) }, "NARROWING_VIOLATED");
|
|
216
|
-
}
|
|
217
|
-
if (result.gatedBlocked.length > 0) {
|
|
218
|
-
const code = bindingMismatch ? "APPROVAL_SCOPE_MISMATCH" : "GATED_UNAPPROVED";
|
|
219
|
-
const suffix = bindingMismatch ? " (an approval exists, but its task/workspace/context scope does not match)" : "";
|
|
220
|
-
return denied({ ...empty, requested, result, reason: `${result.gatedBlocked.join(", ")} requires explicit approval${suffix}` }, code);
|
|
221
|
-
}
|
|
222
|
-
const canSubDelegate = result.effective.includes(DELEGATE_CAPABILITY);
|
|
223
|
-
const plan = planSpawn({
|
|
224
|
-
effective: result.effective,
|
|
225
|
-
prompt: request.task,
|
|
226
|
-
model: request.model,
|
|
227
|
-
provider: request.provider,
|
|
228
|
-
thinking: request.thinking,
|
|
229
|
-
skillPaths: ctx.skillPaths,
|
|
230
|
-
contextFiles: ctx.contextFiles,
|
|
231
|
-
systemPrompt,
|
|
232
|
-
sessionFile: ctx.sessionFile,
|
|
233
|
-
print: ctx.interactive ? false : undefined,
|
|
234
|
-
});
|
|
235
|
-
// R-32. A `skill:` capability the catalog cannot place is refused rather than dropped. Dropping it
|
|
236
|
-
// would hand back a child whose grant claims a skill it does not have — the ledger would record a
|
|
237
|
-
// capability that never reached the process, which is precisely the kind of lie an audit trail must
|
|
238
|
-
// not contain. `unknownCapabilities` above catches names absent from the catalog entirely; this
|
|
239
|
-
// catches one that is known but whose path we could not resolve, which is a different fault.
|
|
240
|
-
if (plan.unresolvedSkills.length > 0) {
|
|
241
|
-
return denied({
|
|
242
|
-
...empty,
|
|
243
|
-
requested,
|
|
244
|
-
result,
|
|
245
|
-
reason: `cannot locate ${plan.unresolvedSkills.join(", ")} on disk — granted but unresolvable, so the ` +
|
|
246
|
-
`child would silently lack it`,
|
|
247
|
-
}, "DEFINITION_UNREADABLE");
|
|
248
|
-
}
|
|
249
|
-
// A child may only delegate further if it was granted the capability AND has the extension to do it.
|
|
250
|
-
const args = [...plan.args];
|
|
251
|
-
if (canSubDelegate && ctx.extensionPath) {
|
|
252
|
-
// `-e` loads even under `--no-extensions`, which planSpawn sets — that is precisely why the
|
|
253
|
-
// extension is added explicitly here and nowhere else.
|
|
254
|
-
args.splice(args.length - 1, 0, "-e", ctx.extensionPath);
|
|
255
|
-
}
|
|
256
|
-
// `inheritableGrant`, not `result.effective` directly: this is the path a DELEGATED child's grant
|
|
257
|
-
// actually travels, and the "held but never inherited" rule for `tool:*` and `workspace:*` was enforced
|
|
258
|
-
// only in `childEnv`. A parent holding `workspace:*` could request it for its child and this line handed
|
|
259
|
-
// it over, so the rule ADR-0035 advertises held by accident — masked downstream rather than enforced
|
|
260
|
-
// here. One spelling of the rule, called from both paths.
|
|
261
|
-
const inheritable = inheritableGrant(result.effective);
|
|
262
|
-
const env = {
|
|
263
|
-
[ENV_GRANT]: (assertCapabilitiesArePropagatable(inheritable), inheritable.join(",")),
|
|
264
|
-
[ENV_DEPTH]: String(childDepth),
|
|
265
|
-
[ENV_MAX_DEPTH]: String(ctx.maxDepth),
|
|
266
|
-
};
|
|
267
|
-
// The child's own share of the subtree budget, and its identity. Both attenuate downward like depth: a
|
|
268
|
-
// child can never be handed more budget than its parent had left, so the total bound holds across
|
|
269
|
-
// process boundaries with no shared state.
|
|
270
|
-
if (ctx.fanoutBudget !== undefined)
|
|
271
|
-
env[ENV_FANOUT] = String(ctx.fanoutBudget);
|
|
272
|
-
if (ctx.childSpawnId)
|
|
273
|
-
env[ENV_PARENT_ID] = ctx.childSpawnId;
|
|
274
|
-
if (ctx.childExecutionId)
|
|
275
|
-
env[ENV_EXECUTION_ID] = ctx.childExecutionId;
|
|
276
|
-
if (ctx.gated.length > 0)
|
|
277
|
-
env[ENV_GATED] = ctx.gated.join(",");
|
|
278
|
-
// Approvals ride down with the grant, but only ever for what this child actually received — so
|
|
279
|
-
// `approved ⊆ grant` holds at every level (ADR-0010). Written even when empty, so this object states
|
|
280
|
-
// the child's approval set outright rather than leaving it to whatever the caller merges over; see
|
|
281
|
-
// `mergeChildEnv`, which is what actually stops the parent's value leaking through.
|
|
282
|
-
// Clamped to what the child actually INHERITS, not to what it was granted. The two differ only for a
|
|
283
|
-
// non-inheritable wildcard, and passing down an approval for a capability the child does not hold would
|
|
284
|
-
// leave banked authority with nothing to spend it on — `childEnv` clamps to `inheritable` for the same
|
|
285
|
-
// reason on the other path.
|
|
286
|
-
env[ENV_APPROVED] = inheritApprovals(ctx.approved ?? [], inheritable).join(",");
|
|
287
|
-
if (ctx.ledgerPath)
|
|
288
|
-
env[ENV_LEDGER] = ctx.ledgerPath;
|
|
289
|
-
return {
|
|
290
|
-
ok: true,
|
|
291
|
-
args,
|
|
292
|
-
env,
|
|
293
|
-
effective: result.effective,
|
|
294
|
-
result,
|
|
295
|
-
childDepth,
|
|
296
|
-
requested,
|
|
297
|
-
childId: ctx.childSpawnId,
|
|
298
|
-
executionId: ctx.childExecutionId,
|
|
299
|
-
taskDigest,
|
|
300
|
-
...(correlation ? { correlation } : {}),
|
|
301
|
-
...(approvalBinding ? { approvalBinding } : {}),
|
|
302
|
-
...(definitionDigest ? { definitionDigest } : {}),
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
|
-
//# sourceMappingURL=delegate.js.map
|