@caupulican/pi-adaptative 0.81.39 → 0.81.40
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 +52 -0
- package/README.md +2 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts +2 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js +2 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.ts +3 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts +9 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +290 -107
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +357 -122
- package/dist/bundled-resources/skills/tool-call-repair/references/repair-catalogue.md +2 -2
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +9 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-directory-layout.d.ts +15 -0
- package/dist/core/agent-directory-layout.d.ts.map +1 -0
- package/dist/core/agent-directory-layout.js +72 -0
- package/dist/core/agent-directory-layout.js.map +1 -0
- package/dist/core/agent-paths.d.ts +19 -2
- package/dist/core/agent-paths.d.ts.map +1 -1
- package/dist/core/agent-paths.js +67 -4
- package/dist/core/agent-paths.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +52 -8
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +397 -79
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +71 -136
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +477 -1318
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/autonomy/approval-gate.d.ts +3 -2
- package/dist/core/autonomy/approval-gate.d.ts.map +1 -1
- package/dist/core/autonomy/approval-gate.js +6 -28
- package/dist/core/autonomy/approval-gate.js.map +1 -1
- package/dist/core/autonomy/bounded-completion.d.ts +1 -1
- package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
- package/dist/core/autonomy/bounded-completion.js +1 -1
- package/dist/core/autonomy/bounded-completion.js.map +1 -1
- package/dist/core/autonomy/contracts.d.ts +20 -12
- package/dist/core/autonomy/contracts.d.ts.map +1 -1
- package/dist/core/autonomy/contracts.js.map +1 -1
- package/dist/core/autonomy/foreground-envelope.d.ts +8 -2
- package/dist/core/autonomy/foreground-envelope.d.ts.map +1 -1
- package/dist/core/autonomy/foreground-envelope.js +8 -25
- package/dist/core/autonomy/foreground-envelope.js.map +1 -1
- package/dist/core/autonomy/gates.d.ts.map +1 -1
- package/dist/core/autonomy/gates.js +8 -10
- package/dist/core/autonomy/gates.js.map +1 -1
- package/dist/core/autonomy/lane-private-paths.d.ts +2 -0
- package/dist/core/autonomy/lane-private-paths.d.ts.map +1 -0
- package/dist/core/autonomy/lane-private-paths.js +16 -0
- package/dist/core/autonomy/lane-private-paths.js.map +1 -0
- package/dist/core/autonomy/lane-tool-surface.d.ts +10 -0
- package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.js +46 -8
- package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
- package/dist/core/autonomy/lane-tracker.d.ts +14 -0
- package/dist/core/autonomy/lane-tracker.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tracker.js +38 -0
- package/dist/core/autonomy/lane-tracker.js.map +1 -1
- package/dist/core/autonomy/risk-assessment.d.ts +1 -2
- package/dist/core/autonomy/risk-assessment.d.ts.map +1 -1
- package/dist/core/autonomy/risk-assessment.js +1 -123
- package/dist/core/autonomy/risk-assessment.js.map +1 -1
- package/dist/core/autonomy/session-lane-record.d.ts +4 -4
- package/dist/core/autonomy/session-lane-record.d.ts.map +1 -1
- package/dist/core/autonomy/session-lane-record.js +16 -29
- package/dist/core/autonomy/session-lane-record.js.map +1 -1
- package/dist/core/autonomy/telemetry-events.d.ts +1 -1
- package/dist/core/autonomy/telemetry-events.d.ts.map +1 -1
- package/dist/core/autonomy/telemetry-events.js +1 -1
- package/dist/core/autonomy/telemetry-events.js.map +1 -1
- package/dist/core/autonomy-telemetry.d.ts +7 -7
- package/dist/core/autonomy-telemetry.d.ts.map +1 -1
- package/dist/core/autonomy-telemetry.js +9 -9
- package/dist/core/autonomy-telemetry.js.map +1 -1
- package/dist/core/background-lane-controller.d.ts +54 -236
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +140 -1273
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/capability-contract.d.ts +4 -0
- package/dist/core/capability-contract.d.ts.map +1 -0
- package/dist/core/capability-contract.js +28 -0
- package/dist/core/capability-contract.js.map +1 -0
- package/dist/core/compaction-controller.d.ts +90 -0
- package/dist/core/compaction-controller.d.ts.map +1 -0
- package/dist/core/compaction-controller.js +452 -0
- package/dist/core/compaction-controller.js.map +1 -0
- package/dist/core/compaction-support.d.ts +12 -11
- package/dist/core/compaction-support.d.ts.map +1 -1
- package/dist/core/compaction-support.js.map +1 -1
- package/dist/core/context/context-artifacts.d.ts +6 -2
- package/dist/core/context/context-artifacts.d.ts.map +1 -1
- package/dist/core/context/context-artifacts.js +34 -2
- package/dist/core/context/context-artifacts.js.map +1 -1
- package/dist/core/context/context-store-retention.d.ts +8 -2
- package/dist/core/context/context-store-retention.d.ts.map +1 -1
- package/dist/core/context/context-store-retention.js +158 -35
- package/dist/core/context/context-store-retention.js.map +1 -1
- package/dist/core/context/okf-memory.d.ts.map +1 -1
- package/dist/core/context/okf-memory.js +9 -11
- package/dist/core/context/okf-memory.js.map +1 -1
- package/dist/core/context/sqlite-runtime-index.d.ts.map +1 -1
- package/dist/core/context/sqlite-runtime-index.js +6 -8
- package/dist/core/context/sqlite-runtime-index.js.map +1 -1
- package/dist/core/context-gc.d.ts +3 -0
- package/dist/core/context-gc.d.ts.map +1 -1
- package/dist/core/context-gc.js +10 -5
- package/dist/core/context-gc.js.map +1 -1
- package/dist/core/context-pipeline.d.ts.map +1 -1
- package/dist/core/context-pipeline.js +9 -4
- package/dist/core/context-pipeline.js.map +1 -1
- package/dist/core/default-tool-surface.d.ts.map +1 -1
- package/dist/core/default-tool-surface.js +1 -0
- package/dist/core/default-tool-surface.js.map +1 -1
- package/dist/core/delegation/managed-lane-controller.d.ts +34 -0
- package/dist/core/delegation/managed-lane-controller.d.ts.map +1 -0
- package/dist/core/delegation/managed-lane-controller.js +217 -0
- package/dist/core/delegation/managed-lane-controller.js.map +1 -0
- package/dist/core/delegation/session-worker-claim.d.ts +44 -0
- package/dist/core/delegation/session-worker-claim.d.ts.map +1 -0
- package/dist/core/delegation/session-worker-claim.js +98 -0
- package/dist/core/delegation/session-worker-claim.js.map +1 -0
- package/dist/core/delegation/worker-actions.d.ts +7 -5
- package/dist/core/delegation/worker-actions.d.ts.map +1 -1
- package/dist/core/delegation/worker-actions.js +20 -4
- package/dist/core/delegation/worker-actions.js.map +1 -1
- package/dist/core/delegation/{worker-result.d.ts → worker-claim.d.ts} +13 -13
- package/dist/core/delegation/worker-claim.d.ts.map +1 -0
- package/dist/core/delegation/{worker-result.js → worker-claim.js} +61 -51
- package/dist/core/delegation/worker-claim.js.map +1 -0
- package/dist/core/delegation/worker-delegation-controller.d.ts +110 -0
- package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -0
- package/dist/core/delegation/worker-delegation-controller.js +861 -0
- package/dist/core/delegation/worker-delegation-controller.js.map +1 -0
- package/dist/core/delegation/worker-delegation-request.d.ts +11 -0
- package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -0
- package/dist/core/delegation/worker-delegation-request.js +2 -0
- package/dist/core/delegation/worker-delegation-request.js.map +1 -0
- package/dist/core/delegation/worker-dispatch-scheduler.d.ts +40 -0
- package/dist/core/delegation/worker-dispatch-scheduler.d.ts.map +1 -0
- package/dist/core/delegation/worker-dispatch-scheduler.js +93 -0
- package/dist/core/delegation/worker-dispatch-scheduler.js.map +1 -0
- package/dist/core/delegation/worker-execution-policy.d.ts +62 -0
- package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -0
- package/dist/core/delegation/worker-execution-policy.js +160 -0
- package/dist/core/delegation/worker-execution-policy.js.map +1 -0
- package/dist/core/delegation/worker-lane-projection.d.ts +14 -0
- package/dist/core/delegation/worker-lane-projection.d.ts.map +1 -0
- package/dist/core/delegation/worker-lane-projection.js +100 -0
- package/dist/core/delegation/worker-lane-projection.js.map +1 -0
- package/dist/core/delegation/worker-lifecycle.d.ts +97 -0
- package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -0
- package/dist/core/delegation/worker-lifecycle.js +339 -0
- package/dist/core/delegation/worker-lifecycle.js.map +1 -0
- package/dist/core/delegation/worker-notification-coordinator.d.ts +36 -0
- package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -0
- package/dist/core/delegation/worker-notification-coordinator.js +90 -0
- package/dist/core/delegation/worker-notification-coordinator.js.map +1 -0
- package/dist/core/delegation/worker-profile-resolver.d.ts +55 -0
- package/dist/core/delegation/worker-profile-resolver.d.ts.map +1 -0
- package/dist/core/delegation/worker-profile-resolver.js +113 -0
- package/dist/core/delegation/worker-profile-resolver.js.map +1 -0
- package/dist/core/delegation/worker-runner.d.ts +25 -14
- package/dist/core/delegation/worker-runner.d.ts.map +1 -1
- package/dist/core/delegation/worker-runner.js +122 -53
- package/dist/core/delegation/worker-runner.js.map +1 -1
- package/dist/core/delegation/worker-task-label.d.ts +3 -0
- package/dist/core/delegation/worker-task-label.d.ts.map +1 -0
- package/dist/core/delegation/worker-task-label.js +11 -0
- package/dist/core/delegation/worker-task-label.js.map +1 -0
- package/dist/core/doctor.d.ts +8 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +32 -1
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +5 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +50 -15
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +6 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/storage.d.ts +8 -0
- package/dist/core/extensions/storage.d.ts.map +1 -0
- package/dist/core/extensions/storage.js +28 -0
- package/dist/core/extensions/storage.js.map +1 -0
- package/dist/core/extensions/types.d.ts +70 -21
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/failure-corpus.d.ts +1 -15
- package/dist/core/failure-corpus.d.ts.map +1 -1
- package/dist/core/failure-corpus.js +9 -37
- package/dist/core/failure-corpus.js.map +1 -1
- package/dist/core/foreground-recovery-controller.d.ts +52 -0
- package/dist/core/foreground-recovery-controller.d.ts.map +1 -0
- package/dist/core/foreground-recovery-controller.js +111 -0
- package/dist/core/foreground-recovery-controller.js.map +1 -0
- package/dist/core/gateways/channel-provider.d.ts +3 -0
- package/dist/core/gateways/channel-provider.d.ts.map +1 -1
- package/dist/core/gateways/channel-provider.js +31 -6
- package/dist/core/gateways/channel-provider.js.map +1 -1
- package/dist/core/goals/goal-acceptance.d.ts +11 -0
- package/dist/core/goals/goal-acceptance.d.ts.map +1 -0
- package/dist/core/goals/goal-acceptance.js +25 -0
- package/dist/core/goals/goal-acceptance.js.map +1 -0
- package/dist/core/goals/goal-auto-continue-controller.d.ts +27 -0
- package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -0
- package/dist/core/goals/goal-auto-continue-controller.js +93 -0
- package/dist/core/goals/goal-auto-continue-controller.js.map +1 -0
- package/dist/core/goals/goal-continuation-controller.d.ts +1 -1
- package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-controller.js +10 -0
- package/dist/core/goals/goal-continuation-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts +1 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.js +6 -6
- package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
- package/dist/core/goals/goal-lifecycle.d.ts +20 -0
- package/dist/core/goals/goal-lifecycle.d.ts.map +1 -0
- package/dist/core/goals/goal-lifecycle.js +17 -0
- package/dist/core/goals/goal-lifecycle.js.map +1 -0
- package/dist/core/goals/goal-runtime-snapshot.d.ts +11 -9
- package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
- package/dist/core/goals/goal-runtime-snapshot.js +10 -8
- package/dist/core/goals/goal-runtime-snapshot.js.map +1 -1
- package/dist/core/goals/goal-state.d.ts +1 -0
- package/dist/core/goals/goal-state.d.ts.map +1 -1
- package/dist/core/goals/goal-state.js +7 -10
- package/dist/core/goals/goal-state.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts +8 -6
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js +11 -41
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/goals/session-goal-state.d.ts +2 -4
- package/dist/core/goals/session-goal-state.d.ts.map +1 -1
- package/dist/core/goals/session-goal-state.js +10 -33
- package/dist/core/goals/session-goal-state.js.map +1 -1
- package/dist/core/human-input.d.ts +100 -0
- package/dist/core/human-input.d.ts.map +1 -0
- package/dist/core/human-input.js +362 -0
- package/dist/core/human-input.js.map +1 -0
- package/dist/core/index.d.ts +9 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +9 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/{telemetry.d.ts → install-telemetry.d.ts} +1 -1
- package/dist/core/install-telemetry.d.ts.map +1 -0
- package/dist/core/{telemetry.js → install-telemetry.js} +1 -1
- package/dist/core/install-telemetry.js.map +1 -0
- package/dist/core/keybindings.d.ts +17 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +24 -6
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/learning/learning-audit.d.ts +2 -4
- package/dist/core/learning/learning-audit.d.ts.map +1 -1
- package/dist/core/learning/learning-audit.js +9 -29
- package/dist/core/learning/learning-audit.js.map +1 -1
- package/dist/core/learning/learning-gate.d.ts.map +1 -1
- package/dist/core/learning/learning-gate.js +1 -6
- package/dist/core/learning/learning-gate.js.map +1 -1
- package/dist/core/learning/session-learning-decision.d.ts +2 -4
- package/dist/core/learning/session-learning-decision.d.ts.map +1 -1
- package/dist/core/learning/session-learning-decision.js +9 -29
- package/dist/core/learning/session-learning-decision.js.map +1 -1
- package/dist/core/memory-controller.d.ts.map +1 -1
- package/dist/core/memory-controller.js +4 -4
- package/dist/core/memory-controller.js.map +1 -1
- package/dist/core/model-capability.d.ts.map +1 -1
- package/dist/core/model-capability.js +1 -0
- package/dist/core/model-capability.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +6 -9
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-router/intent-classifier.d.ts +1 -4
- package/dist/core/model-router/intent-classifier.d.ts.map +1 -1
- package/dist/core/model-router/intent-classifier.js +1 -156
- package/dist/core/model-router/intent-classifier.js.map +1 -1
- package/dist/core/model-router-controller.d.ts.map +1 -1
- package/dist/core/model-router-controller.js +2 -2
- package/dist/core/model-router-controller.js.map +1 -1
- package/dist/core/model-selection-controller.d.ts +4 -4
- package/dist/core/model-selection-controller.d.ts.map +1 -1
- package/dist/core/model-selection-controller.js.map +1 -1
- package/dist/core/model-tool-protocol.d.ts +23 -0
- package/dist/core/model-tool-protocol.d.ts.map +1 -0
- package/dist/core/model-tool-protocol.js +43 -0
- package/dist/core/model-tool-protocol.js.map +1 -0
- package/dist/core/models/adaptation-store.d.ts +4 -6
- package/dist/core/models/adaptation-store.d.ts.map +1 -1
- package/dist/core/models/adaptation-store.js +95 -83
- package/dist/core/models/adaptation-store.js.map +1 -1
- package/dist/core/models/fitness-store.d.ts +2 -12
- package/dist/core/models/fitness-store.d.ts.map +1 -1
- package/dist/core/models/fitness-store.js +84 -57
- package/dist/core/models/fitness-store.js.map +1 -1
- package/dist/core/models/host-state-store.d.ts +34 -0
- package/dist/core/models/host-state-store.d.ts.map +1 -0
- package/dist/core/models/host-state-store.js +86 -0
- package/dist/core/models/host-state-store.js.map +1 -0
- package/dist/core/orchestration/agent-resume.d.ts +24 -0
- package/dist/core/orchestration/agent-resume.d.ts.map +1 -0
- package/dist/core/orchestration/agent-resume.js +90 -0
- package/dist/core/orchestration/agent-resume.js.map +1 -0
- package/dist/core/orchestration/capability-gateway.d.ts +61 -0
- package/dist/core/orchestration/capability-gateway.d.ts.map +1 -0
- package/dist/core/orchestration/capability-gateway.js +152 -0
- package/dist/core/orchestration/capability-gateway.js.map +1 -0
- package/dist/core/orchestration/contracts.d.ts +343 -0
- package/dist/core/orchestration/contracts.d.ts.map +1 -0
- package/dist/core/orchestration/contracts.js +135 -0
- package/dist/core/orchestration/contracts.js.map +1 -0
- package/dist/core/orchestration/delegation-ledger.d.ts +56 -0
- package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -0
- package/dist/core/orchestration/delegation-ledger.js +197 -0
- package/dist/core/orchestration/delegation-ledger.js.map +1 -0
- package/dist/core/orchestration/event-store.d.ts +83 -0
- package/dist/core/orchestration/event-store.d.ts.map +1 -0
- package/dist/core/orchestration/event-store.js +560 -0
- package/dist/core/orchestration/event-store.js.map +1 -0
- package/dist/core/orchestration/lane-tool-manifests.d.ts +9 -0
- package/dist/core/orchestration/lane-tool-manifests.d.ts.map +1 -0
- package/dist/core/orchestration/lane-tool-manifests.js +37 -0
- package/dist/core/orchestration/lane-tool-manifests.js.map +1 -0
- package/dist/core/orchestration/model-binding.d.ts +15 -0
- package/dist/core/orchestration/model-binding.d.ts.map +1 -0
- package/dist/core/orchestration/model-binding.js +29 -0
- package/dist/core/orchestration/model-binding.js.map +1 -0
- package/dist/core/orchestration/policy-compiler.d.ts +49 -0
- package/dist/core/orchestration/policy-compiler.d.ts.map +1 -0
- package/dist/core/orchestration/policy-compiler.js +191 -0
- package/dist/core/orchestration/policy-compiler.js.map +1 -0
- package/dist/core/orchestration/policy-gate.d.ts +18 -0
- package/dist/core/orchestration/policy-gate.d.ts.map +1 -0
- package/dist/core/orchestration/policy-gate.js +24 -0
- package/dist/core/orchestration/policy-gate.js.map +1 -0
- package/dist/core/orchestration/profile-registry.d.ts +51 -0
- package/dist/core/orchestration/profile-registry.d.ts.map +1 -0
- package/dist/core/orchestration/profile-registry.js +393 -0
- package/dist/core/orchestration/profile-registry.js.map +1 -0
- package/dist/core/orchestration/profile-store.d.ts +31 -0
- package/dist/core/orchestration/profile-store.d.ts.map +1 -0
- package/dist/core/orchestration/profile-store.js +136 -0
- package/dist/core/orchestration/profile-store.js.map +1 -0
- package/dist/core/orchestration/risk-budget.d.ts +9 -0
- package/dist/core/orchestration/risk-budget.d.ts.map +1 -0
- package/dist/core/orchestration/risk-budget.js +48 -0
- package/dist/core/orchestration/risk-budget.js.map +1 -0
- package/dist/core/orchestration/task-runtime.d.ts +168 -0
- package/dist/core/orchestration/task-runtime.d.ts.map +1 -0
- package/dist/core/orchestration/task-runtime.js +1600 -0
- package/dist/core/orchestration/task-runtime.js.map +1 -0
- package/dist/core/orchestration/work-state-projection.d.ts +32 -0
- package/dist/core/orchestration/work-state-projection.d.ts.map +1 -0
- package/dist/core/orchestration/work-state-projection.js +116 -0
- package/dist/core/orchestration/work-state-projection.js.map +1 -0
- package/dist/core/orchestration/worker-execution-contract.d.ts +21 -0
- package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -0
- package/dist/core/orchestration/worker-execution-contract.js +179 -0
- package/dist/core/orchestration/worker-execution-contract.js.map +1 -0
- package/dist/core/orchestration/worker-result-adapter.d.ts +21 -0
- package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -0
- package/dist/core/orchestration/worker-result-adapter.js +109 -0
- package/dist/core/orchestration/worker-result-adapter.js.map +1 -0
- package/dist/core/process-identity.d.ts +11 -0
- package/dist/core/process-identity.d.ts.map +1 -0
- package/dist/core/process-identity.js +26 -0
- package/dist/core/process-identity.js.map +1 -0
- package/dist/core/process-matrix/codes.d.ts +14 -3
- package/dist/core/process-matrix/codes.d.ts.map +1 -1
- package/dist/core/process-matrix/codes.js.map +1 -1
- package/dist/core/process-matrix/resume-launcher.d.ts +26 -0
- package/dist/core/process-matrix/resume-launcher.d.ts.map +1 -0
- package/dist/core/process-matrix/resume-launcher.js +62 -0
- package/dist/core/process-matrix/resume-launcher.js.map +1 -0
- package/dist/core/process-matrix/runtime.d.ts +37 -22
- package/dist/core/process-matrix/runtime.d.ts.map +1 -1
- package/dist/core/process-matrix/runtime.js +399 -76
- package/dist/core/process-matrix/runtime.js.map +1 -1
- package/dist/core/process-matrix/store.d.ts +5 -2
- package/dist/core/process-matrix/store.d.ts.map +1 -1
- package/dist/core/process-matrix/store.js +123 -14
- package/dist/core/process-matrix/store.js.map +1 -1
- package/dist/core/process-matrix/supervisor.d.ts +10 -7
- package/dist/core/process-matrix/supervisor.d.ts.map +1 -1
- package/dist/core/process-matrix/supervisor.js +45 -14
- package/dist/core/process-matrix/supervisor.js.map +1 -1
- package/dist/core/profile-registry.d.ts.map +1 -1
- package/dist/core/profile-registry.js +6 -8
- package/dist/core/profile-registry.js.map +1 -1
- package/dist/core/reflection-controller.d.ts +4 -4
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +2 -1
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/reload-blockers.d.ts.map +1 -1
- package/dist/core/reload-blockers.js +6 -8
- package/dist/core/reload-blockers.js.map +1 -1
- package/dist/core/research/evidence-bundle.d.ts.map +1 -1
- package/dist/core/research/evidence-bundle.js +1 -6
- package/dist/core/research/evidence-bundle.js.map +1 -1
- package/dist/core/research/lane-model-resolver.d.ts +33 -0
- package/dist/core/research/lane-model-resolver.d.ts.map +1 -0
- package/dist/core/research/lane-model-resolver.js +65 -0
- package/dist/core/research/lane-model-resolver.js.map +1 -0
- package/dist/core/research/model-fitness-controller.d.ts +38 -0
- package/dist/core/research/model-fitness-controller.d.ts.map +1 -0
- package/dist/core/research/model-fitness-controller.js +106 -0
- package/dist/core/research/model-fitness-controller.js.map +1 -0
- package/dist/core/research/model-fitness.d.ts +1 -1
- package/dist/core/research/model-fitness.d.ts.map +1 -1
- package/dist/core/research/model-fitness.js +4 -4
- package/dist/core/research/model-fitness.js.map +1 -1
- package/dist/core/research/research-gate.d.ts.map +1 -1
- package/dist/core/research/research-gate.js +7 -7
- package/dist/core/research/research-gate.js.map +1 -1
- package/dist/core/research/research-lane-controller.d.ts +62 -0
- package/dist/core/research/research-lane-controller.d.ts.map +1 -0
- package/dist/core/research/research-lane-controller.js +292 -0
- package/dist/core/research/research-lane-controller.js.map +1 -0
- package/dist/core/research/session-evidence-bundle.d.ts +2 -4
- package/dist/core/research/session-evidence-bundle.d.ts.map +1 -1
- package/dist/core/research/session-evidence-bundle.js +10 -46
- package/dist/core/research/session-evidence-bundle.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +7 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/risk-classifier.d.ts +6 -0
- package/dist/core/risk-classifier.d.ts.map +1 -0
- package/dist/core/risk-classifier.js +225 -0
- package/dist/core/risk-classifier.js.map +1 -0
- package/dist/core/runtime-builder.d.ts +26 -20
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +237 -178
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/sdk.d.ts +6 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +61 -24
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-analytics.d.ts.map +1 -1
- package/dist/core/session-analytics.js +28 -1
- package/dist/core/session-analytics.js.map +1 -1
- package/dist/core/session-image-store.d.ts +33 -0
- package/dist/core/session-image-store.d.ts.map +1 -0
- package/dist/core/session-image-store.js +283 -0
- package/dist/core/session-image-store.js.map +1 -0
- package/dist/core/session-role.d.ts +6 -4
- package/dist/core/session-role.d.ts.map +1 -1
- package/dist/core/session-role.js +10 -4
- package/dist/core/session-role.js.map +1 -1
- package/dist/core/session-snapshot.d.ts +34 -0
- package/dist/core/session-snapshot.d.ts.map +1 -0
- package/dist/core/session-snapshot.js +68 -0
- package/dist/core/session-snapshot.js.map +1 -0
- package/dist/core/session-supervision-runtime.d.ts +31 -0
- package/dist/core/session-supervision-runtime.d.ts.map +1 -0
- package/dist/core/session-supervision-runtime.js +97 -0
- package/dist/core/session-supervision-runtime.js.map +1 -0
- package/dist/core/settings-manager.d.ts +9 -4
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +80 -28
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tasks/session-task-state.d.ts +2 -4
- package/dist/core/tasks/session-task-state.d.ts.map +1 -1
- package/dist/core/tasks/session-task-state.js +10 -28
- package/dist/core/tasks/session-task-state.js.map +1 -1
- package/dist/core/tasks/task-projection.d.ts +20 -0
- package/dist/core/tasks/task-projection.d.ts.map +1 -0
- package/dist/core/tasks/task-projection.js +47 -0
- package/dist/core/tasks/task-projection.js.map +1 -0
- package/dist/core/tasks/task-state.d.ts +4 -0
- package/dist/core/tasks/task-state.d.ts.map +1 -1
- package/dist/core/tasks/task-state.js +28 -11
- package/dist/core/tasks/task-state.js.map +1 -1
- package/dist/core/tool-capability-policy.d.ts +13 -0
- package/dist/core/tool-capability-policy.d.ts.map +1 -0
- package/dist/core/tool-capability-policy.js +85 -0
- package/dist/core/tool-capability-policy.js.map +1 -0
- package/dist/core/tool-protocol-controller.d.ts +91 -0
- package/dist/core/tool-protocol-controller.d.ts.map +1 -0
- package/dist/core/tool-protocol-controller.js +512 -0
- package/dist/core/tool-protocol-controller.js.map +1 -0
- package/dist/core/tool-recovery-log-records.d.ts +2 -3
- package/dist/core/tool-recovery-log-records.d.ts.map +1 -1
- package/dist/core/tool-recovery-log-records.js +9 -35
- package/dist/core/tool-recovery-log-records.js.map +1 -1
- package/dist/core/tool-selection/tool-performance-store.d.ts +3 -7
- package/dist/core/tool-selection/tool-performance-store.d.ts.map +1 -1
- package/dist/core/tool-selection/tool-performance-store.js +97 -138
- package/dist/core/tool-selection/tool-performance-store.js.map +1 -1
- package/dist/core/tools/ask-question.d.ts +124 -0
- package/dist/core/tools/ask-question.d.ts.map +1 -0
- package/dist/core/tools/ask-question.js +693 -0
- package/dist/core/tools/ask-question.js.map +1 -0
- package/dist/core/tools/delegate-status.d.ts +31 -3
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +149 -29
- package/dist/core/tools/delegate-status.js.map +1 -1
- package/dist/core/tools/delegate.d.ts +15 -13
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +108 -23
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/extensionify.d.ts.map +1 -1
- package/dist/core/tools/extensionify.js +1 -0
- package/dist/core/tools/extensionify.js.map +1 -1
- package/dist/core/tools/goal.d.ts +5 -5
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +10 -10
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/model-fitness.d.ts.map +1 -1
- package/dist/core/tools/model-fitness.js +2 -2
- package/dist/core/tools/model-fitness.js.map +1 -1
- package/dist/core/tools/orchestration-panel.d.ts +43 -0
- package/dist/core/tools/orchestration-panel.d.ts.map +1 -0
- package/dist/core/tools/orchestration-panel.js +168 -0
- package/dist/core/tools/orchestration-panel.js.map +1 -0
- package/dist/core/tools/run-process.d.ts +26 -0
- package/dist/core/tools/run-process.d.ts.map +1 -0
- package/dist/core/tools/run-process.js +138 -0
- package/dist/core/tools/run-process.js.map +1 -0
- package/dist/core/tools/task-steps.d.ts +2 -0
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +102 -0
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/tools/tmux-dispatch.d.ts +3 -5
- package/dist/core/tools/tmux-dispatch.d.ts.map +1 -1
- package/dist/core/tools/tmux-dispatch.js +4 -4
- package/dist/core/tools/tmux-dispatch.js.map +1 -1
- package/dist/core/tools/windows-shell-engine.d.ts.map +1 -1
- package/dist/core/tools/windows-shell-engine.js +4 -6
- package/dist/core/tools/windows-shell-engine.js.map +1 -1
- package/dist/core/util/bounded-jsonl.d.ts +10 -0
- package/dist/core/util/bounded-jsonl.d.ts.map +1 -0
- package/dist/core/util/bounded-jsonl.js +75 -0
- package/dist/core/util/bounded-jsonl.js.map +1 -0
- package/dist/core/util/value-guards.d.ts +5 -0
- package/dist/core/util/value-guards.d.ts.map +1 -0
- package/dist/core/util/value-guards.js +12 -0
- package/dist/core/util/value-guards.js.map +1 -0
- package/dist/core/worktree-sync/store.d.ts +3 -3
- package/dist/core/worktree-sync/store.d.ts.map +1 -1
- package/dist/core/worktree-sync/store.js +10 -5
- package/dist/core/worktree-sync/store.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +128 -44
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +4 -6
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +186 -28
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/clipboard-input.d.ts +7 -1
- package/dist/modes/interactive/clipboard-input.d.ts.map +1 -1
- package/dist/modes/interactive/clipboard-input.js +44 -6
- package/dist/modes/interactive/clipboard-input.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +2 -2
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/config-backup.d.ts.map +1 -1
- package/dist/modes/interactive/config-backup.js +5 -4
- package/dist/modes/interactive/config-backup.js.map +1 -1
- package/dist/modes/interactive/extension-ui-host.d.ts +14 -0
- package/dist/modes/interactive/extension-ui-host.d.ts.map +1 -1
- package/dist/modes/interactive/extension-ui-host.js +76 -15
- package/dist/modes/interactive/extension-ui-host.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +63 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
- package/dist/modes/interactive/key-handlers.js +1 -1
- package/dist/modes/interactive/key-handlers.js.map +1 -1
- package/dist/modes/interactive/profile-menu-controller.d.ts.map +1 -1
- package/dist/modes/interactive/profile-menu-controller.js +7 -7
- package/dist/modes/interactive/profile-menu-controller.js.map +1 -1
- package/dist/modes/interactive/report-commands.d.ts.map +1 -1
- package/dist/modes/interactive/report-commands.js +21 -0
- package/dist/modes/interactive/report-commands.js.map +1 -1
- package/dist/modes/interactive/session-flow-commands.d.ts +17 -2
- package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
- package/dist/modes/interactive/session-flow-commands.js +50 -17
- package/dist/modes/interactive/session-flow-commands.js.map +1 -1
- package/dist/modes/interactive/session-io-commands.d.ts.map +1 -1
- package/dist/modes/interactive/session-io-commands.js +16 -6
- package/dist/modes/interactive/session-io-commands.js.map +1 -1
- package/dist/modes/interactive/session-replacement-errors.d.ts +7 -0
- package/dist/modes/interactive/session-replacement-errors.d.ts.map +1 -0
- package/dist/modes/interactive/session-replacement-errors.js +15 -0
- package/dist/modes/interactive/session-replacement-errors.js.map +1 -0
- package/dist/modes/interactive/startup-checks.d.ts.map +1 -1
- package/dist/modes/interactive/startup-checks.js +1 -1
- package/dist/modes/interactive/startup-checks.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +82 -23
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +15 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js +138 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +2 -13
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts +1 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -1
- package/dist/utils/clipboard-native.js.map +1 -1
- package/dist/utils/clipboard.d.ts +1 -0
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +52 -1
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/platform.d.ts +3 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +8 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/work-directory.d.ts +11 -0
- package/dist/utils/work-directory.d.ts.map +1 -1
- package/dist/utils/work-directory.js +30 -9
- package/dist/utils/work-directory.js.map +1 -1
- package/docs/UI_POLISH_ORCHESTRATION.md +44 -0
- package/docs/UI_QUALITY_ORCHESTRATION.md +30 -0
- package/docs/docs.json +4 -0
- package/docs/extensions.md +62 -2
- package/docs/harness-architecture.md +156 -0
- package/docs/keybindings.md +11 -1
- package/docs/process-matrix.md +59 -26
- package/docs/rpc.md +45 -2
- package/docs/sessions.md +15 -0
- package/docs/settings.md +125 -11
- package/docs/task-steps.md +8 -0
- package/docs/telemetry.md +19 -0
- package/docs/tmux-agent-manager.md +10 -3
- package/docs/ui-reference/README.md +9 -0
- package/docs/ui-reference/orchestration-after.txt +7 -0
- package/docs/ui-reference/orchestration-before.txt +7 -0
- package/docs/ui-reference/orchestration-reference.txt +6 -0
- package/docs/usage.md +14 -2
- package/docs/work-directory.md +19 -8
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/question.ts +34 -245
- package/examples/extensions/questionnaire.ts +41 -407
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
- package/dist/core/delegation/session-worker-result.d.ts +0 -46
- package/dist/core/delegation/session-worker-result.d.ts.map +0 -1
- package/dist/core/delegation/session-worker-result.js +0 -113
- package/dist/core/delegation/session-worker-result.js.map +0 -1
- package/dist/core/delegation/worker-result.d.ts.map +0 -1
- package/dist/core/delegation/worker-result.js.map +0 -1
- package/dist/core/telemetry.d.ts.map +0 -1
- package/dist/core/telemetry.js.map +0 -1
|
@@ -36,7 +36,7 @@ import { createHash } from "node:crypto";
|
|
|
36
36
|
import { existsSync, readFileSync } from "node:fs";
|
|
37
37
|
import { isAbsolute, join } from "node:path";
|
|
38
38
|
import { DEFAULT_ACTIVE_TOOL_NAMES, mapToolNamesForPlatform } from "./default-tool-surface.js";
|
|
39
|
-
import {
|
|
39
|
+
import { acknowledgeWorkerClaimReview } from "./delegation/session-worker-claim.js";
|
|
40
40
|
import { createCoreDiagnosticsToolDefinitions } from "./extensions/builtin.js";
|
|
41
41
|
import { ExtensionRunner, wrapRegisteredTools, } from "./extensions/index.js";
|
|
42
42
|
import { disposeExtensionEventSubscriptions } from "./extensions/loader.js";
|
|
@@ -49,18 +49,21 @@ import { ScoutController } from "./scout-controller.js";
|
|
|
49
49
|
import { getSessionRole, isWorkerSession, WORKER_FORBIDDEN_TOOLS } from "./session-role.js";
|
|
50
50
|
import { matchesResourceProfilePattern, } from "./settings-manager.js";
|
|
51
51
|
import { createSyntheticSourceInfo } from "./source-info.js";
|
|
52
|
+
import { projectOpenTaskSteps } from "./tasks/task-projection.js";
|
|
52
53
|
import { buildReflexUserPrompt, parseReflexPlan, REFLEX_INTERPRETER_SYSTEM_PROMPT, } from "./toolkit/reflex-interpreter.js";
|
|
53
54
|
import { executeToolkitScript } from "./toolkit/script-runner.js";
|
|
55
|
+
import { createAskQuestionToolDefinition } from "./tools/ask-question.js";
|
|
54
56
|
import { createContextScoutToolDefinition } from "./tools/context-scout.js";
|
|
55
57
|
import { createDelegateToolDefinition } from "./tools/delegate.js";
|
|
56
58
|
import { createDelegateStatusToolDefinition } from "./tools/delegate-status.js";
|
|
57
59
|
import { createFindTool } from "./tools/find.js";
|
|
58
60
|
import { createGoalToolDefinition } from "./tools/goal.js";
|
|
59
61
|
import { createGrepTool } from "./tools/grep.js";
|
|
60
|
-
import {
|
|
62
|
+
import { allToolNames, createToolDefinition } from "./tools/index.js";
|
|
61
63
|
import { createModelFitnessToolDefinition } from "./tools/model-fitness.js";
|
|
62
64
|
import { resolveToCwd } from "./tools/path-utils.js";
|
|
63
65
|
import { createReadTool } from "./tools/read.js";
|
|
66
|
+
import { createRunProcessToolDefinition } from "./tools/run-process.js";
|
|
64
67
|
import { createRunToolkitScriptToolDefinition } from "./tools/run-toolkit-script.js";
|
|
65
68
|
import { createTaskStepsToolDefinition } from "./tools/task-steps.js";
|
|
66
69
|
import { dispatchTmuxWorker } from "./tools/tmux-dispatch.js";
|
|
@@ -93,16 +96,15 @@ export function hasAnsweredToolCallOnBranch(sessionManager, toolCallId) {
|
|
|
93
96
|
.some((entry) => entry.type === "message" && entry.message.role === "toolResult" && entry.message.toolCallId === toolCallId);
|
|
94
97
|
}
|
|
95
98
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* (status not "completed"/"cancelled", `activeForm || content`) so the two read the same
|
|
99
|
-
* "open" definition, narrowed to `OpenTaskStepRef`'s id+content shape. Exported (pure, no
|
|
100
|
-
* `this`) so the goal tool's `getOpenTaskSteps` wiring below is directly testable.
|
|
99
|
+
* Goal-tool adapter over the canonical open-task projection. Exported (pure, no `this`) so the
|
|
100
|
+
* production `getOpenTaskSteps` wiring below remains directly testable without another filter.
|
|
101
101
|
*/
|
|
102
102
|
export function deriveOpenTaskStepRefs(taskStepsState) {
|
|
103
|
-
return (taskStepsState
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
return projectOpenTaskSteps(taskStepsState).map((step) => ({
|
|
104
|
+
id: step.id,
|
|
105
|
+
content: step.content,
|
|
106
|
+
...(step.requirementIds?.length ? { requirementIds: step.requirementIds } : {}),
|
|
107
|
+
}));
|
|
106
108
|
}
|
|
107
109
|
/**
|
|
108
110
|
* Owns the tool-registry build and the self-modification-safe extension reload extracted from
|
|
@@ -121,6 +123,50 @@ export class RuntimeBuilder {
|
|
|
121
123
|
constructor(deps) {
|
|
122
124
|
this.deps = deps;
|
|
123
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Resolve the construction and activation policy once for a runtime generation. This is the
|
|
128
|
+
* UAC choke point: callers must consult it before invoking a tool factory, not merely before
|
|
129
|
+
* placing an already-created definition in the live registry.
|
|
130
|
+
*/
|
|
131
|
+
_createToolAccessPolicy() {
|
|
132
|
+
const role = getSessionRole();
|
|
133
|
+
const configuredAllowedToolNames = this.deps.getAllowedToolNames();
|
|
134
|
+
const allowedToolNames = configuredAllowedToolNames
|
|
135
|
+
? new Set(mapToolNamesForPlatform([...configuredAllowedToolNames]))
|
|
136
|
+
: undefined;
|
|
137
|
+
const configuredExcludedToolNames = this.deps.getExcludedToolNames();
|
|
138
|
+
const excludedToolNames = configuredExcludedToolNames
|
|
139
|
+
? new Set(mapToolNamesForPlatform([...configuredExcludedToolNames]))
|
|
140
|
+
: undefined;
|
|
141
|
+
const configuredToolProfileFilter = this.deps.getToolProfileFilter();
|
|
142
|
+
const toolProfileFilter = configuredToolProfileFilter
|
|
143
|
+
? {
|
|
144
|
+
allow: mapToolNamesForPlatform(configuredToolProfileFilter.allow),
|
|
145
|
+
block: mapToolNamesForPlatform(configuredToolProfileFilter.block),
|
|
146
|
+
}
|
|
147
|
+
: undefined;
|
|
148
|
+
return {
|
|
149
|
+
allowedToolNames,
|
|
150
|
+
toolProfileFilter,
|
|
151
|
+
allows: (name) => {
|
|
152
|
+
// Strict worker UAC ceiling wins over every explicit grant.
|
|
153
|
+
if (role === "worker" && WORKER_FORBIDDEN_TOOLS.has(name))
|
|
154
|
+
return false;
|
|
155
|
+
if (allowedToolNames && !allowedToolNames.has(name))
|
|
156
|
+
return false;
|
|
157
|
+
if (excludedToolNames?.has(name))
|
|
158
|
+
return false;
|
|
159
|
+
if (!toolProfileFilter)
|
|
160
|
+
return true;
|
|
161
|
+
if (toolProfileFilter.allow.length > 0 && !matchesResourceProfilePattern(name, toolProfileFilter.allow)) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
if (matchesResourceProfilePattern(name, toolProfileFilter.block))
|
|
165
|
+
return false;
|
|
166
|
+
return true;
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
124
170
|
async _runContextScout(query, maxTurns, artifactStore) {
|
|
125
171
|
const cwd = this.deps.getCwd();
|
|
126
172
|
const controller = new ScoutController({
|
|
@@ -172,46 +218,14 @@ export class RuntimeBuilder {
|
|
|
172
218
|
return this._toolDefinitions.get(name)?.definition;
|
|
173
219
|
}
|
|
174
220
|
refreshToolRegistry(options) {
|
|
175
|
-
const role = getSessionRole();
|
|
176
221
|
const previousRegistryNames = new Set(this._toolRegistry.keys());
|
|
177
222
|
// Re-derive from the pre-filter REQUEST, never from agent.state.tools: the active set is
|
|
178
223
|
// capability/profile-filtered, so feeding it back through setActiveToolsByName would
|
|
179
224
|
// permanently shrink what a later switch to a larger model (or permissive profile) restores.
|
|
180
225
|
const previousActiveToolNames = mapToolNamesForPlatform(this.deps.getRequestedActiveToolNames() ?? this.deps.getActiveToolNames());
|
|
181
|
-
const
|
|
182
|
-
const allowedToolNames =
|
|
183
|
-
|
|
184
|
-
: undefined;
|
|
185
|
-
const configuredExcludedToolNames = this.deps.getExcludedToolNames();
|
|
186
|
-
const excludedToolNames = configuredExcludedToolNames
|
|
187
|
-
? new Set(mapToolNamesForPlatform([...configuredExcludedToolNames]))
|
|
188
|
-
: undefined;
|
|
189
|
-
const configuredToolProfileFilter = this.deps.getToolProfileFilter();
|
|
190
|
-
const toolProfileFilter = configuredToolProfileFilter
|
|
191
|
-
? {
|
|
192
|
-
allow: mapToolNamesForPlatform(configuredToolProfileFilter.allow),
|
|
193
|
-
block: mapToolNamesForPlatform(configuredToolProfileFilter.block),
|
|
194
|
-
}
|
|
195
|
-
: undefined;
|
|
196
|
-
const isAllowedTool = (name) => {
|
|
197
|
-
// Strict worker UAC ceiling: wins over allow-list/exclude/profile -- a worker session
|
|
198
|
-
// (lane-bound or dispatched) can never activate this tool no matter how permissively the
|
|
199
|
-
// active profile or an explicit request names it. See session-role.ts.
|
|
200
|
-
if (role === "worker" && WORKER_FORBIDDEN_TOOLS.has(name))
|
|
201
|
-
return false;
|
|
202
|
-
if (allowedToolNames && !allowedToolNames.has(name))
|
|
203
|
-
return false;
|
|
204
|
-
if (excludedToolNames?.has(name))
|
|
205
|
-
return false;
|
|
206
|
-
if (!toolProfileFilter)
|
|
207
|
-
return true;
|
|
208
|
-
if (toolProfileFilter.allow.length > 0 && !matchesResourceProfilePattern(name, toolProfileFilter.allow)) {
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
if (matchesResourceProfilePattern(name, toolProfileFilter.block))
|
|
212
|
-
return false;
|
|
213
|
-
return true;
|
|
214
|
-
};
|
|
226
|
+
const toolAccess = this._createToolAccessPolicy();
|
|
227
|
+
const { allowedToolNames, toolProfileFilter } = toolAccess;
|
|
228
|
+
const isAllowedTool = toolAccess.allows;
|
|
215
229
|
const registeredTools = this.deps.getExtensionRunner().getAllRegisteredTools();
|
|
216
230
|
const allCustomTools = [
|
|
217
231
|
...registeredTools,
|
|
@@ -425,169 +439,211 @@ export class RuntimeBuilder {
|
|
|
425
439
|
const shellCommandPrefix = settingsManager.getShellCommandPrefix();
|
|
426
440
|
const shellPath = settingsManager.getShellPath();
|
|
427
441
|
const baseToolsOverride = this.deps.getBaseToolsOverride();
|
|
442
|
+
const toolAccess = this._createToolAccessPolicy();
|
|
428
443
|
// Artifact-producing tools must not emit a "Full output: artifact tool-output:<id>" handle
|
|
429
444
|
// that nothing can resolve. If artifact_retrieve is explicitly excluded/blocked/outside
|
|
430
445
|
// an active allowlist, don't hand grep/find/run_toolkit_script an artifact store at all:
|
|
431
446
|
// they fall back to their bounded preview/truncation behavior, with no payload/meta files
|
|
432
447
|
// ever written and no retrieval promise made.
|
|
433
|
-
const toolArtifactStore =
|
|
434
|
-
|
|
435
|
-
:
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
}
|
|
445
|
-
|
|
448
|
+
const toolArtifactStore = !baseToolsOverride && toolAccess.allows("artifact_retrieve") ? this.deps.getToolArtifactStore() : undefined;
|
|
449
|
+
const toolOptions = {
|
|
450
|
+
read: { autoResizeImages },
|
|
451
|
+
bash: {
|
|
452
|
+
commandPrefix: shellCommandPrefix,
|
|
453
|
+
shellPath,
|
|
454
|
+
sessionKey: this.deps.getShellSessionKey(),
|
|
455
|
+
platform: process.platform,
|
|
456
|
+
},
|
|
457
|
+
grep: { artifactStore: toolArtifactStore },
|
|
458
|
+
find: { artifactStore: toolArtifactStore },
|
|
459
|
+
artifact_retrieve: { artifactStore: toolArtifactStore },
|
|
460
|
+
};
|
|
461
|
+
this._baseToolDefinitions = baseToolsOverride
|
|
462
|
+
? new Map(Object.entries(baseToolsOverride)
|
|
463
|
+
.filter(([name]) => toolAccess.allows(name))
|
|
464
|
+
.map(([name, tool]) => [name, createToolDefinitionFromAgentTool(tool)]))
|
|
465
|
+
: new Map([...allToolNames]
|
|
466
|
+
.filter((name) => toolAccess.allows(name))
|
|
467
|
+
.map((name) => [name, createToolDefinition(name, this.deps.getCwd(), toolOptions)]));
|
|
446
468
|
if (!baseToolsOverride) {
|
|
447
|
-
|
|
448
|
-
this.
|
|
469
|
+
if (toolAccess.allows("run_process")) {
|
|
470
|
+
const orchestrationProfile = this.deps.getOrchestrationProfile?.();
|
|
471
|
+
if (orchestrationProfile?.executionPolicy) {
|
|
472
|
+
this._baseToolDefinitions.set("run_process", createRunProcessToolDefinition(this.deps.getCwd(), {
|
|
473
|
+
policy: orchestrationProfile.executionPolicy,
|
|
474
|
+
maxWallClockMs: orchestrationProfile.budget.maxWallClockMs ?? 0,
|
|
475
|
+
}));
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
if (toolAccess.allows("context_audit")) {
|
|
479
|
+
for (const definition of createCoreDiagnosticsToolDefinitions(() => this.deps.getActiveToolNames(), () => this.getAllTools(), (messages) => this.deps.getContextGcReport(messages), () => this.deps.getMemoryAuditDiagnostics())) {
|
|
480
|
+
this._baseToolDefinitions.set(definition.name, definition);
|
|
481
|
+
}
|
|
449
482
|
}
|
|
450
483
|
// Hoisted above the goal-tool registration (rather than declared only inside the
|
|
451
484
|
// worktreeSync-enabled block further below) so the SAME settings/deps factory backs both
|
|
452
485
|
// the goal->tmux lane-first dispatch dep (`createLaneWorktree`, immediately below) and the
|
|
453
486
|
// `worktree_sync` tool registration later in this method -- one source of truth, no drift.
|
|
454
|
-
const worktreeSyncSettings =
|
|
487
|
+
const worktreeSyncSettings = toolAccess.allows("goal") || toolAccess.allows("worktree_sync")
|
|
488
|
+
? settingsManager.getWorktreeSyncSettings()
|
|
489
|
+
: undefined;
|
|
455
490
|
const worktreeSyncEngineDeps = () => buildWorktreeSyncEngineDeps({
|
|
456
491
|
cwd: this.deps.getCwd(),
|
|
457
492
|
agentDir: this.deps.getAgentDir(),
|
|
458
493
|
settingsManager: this.deps.getSettingsManager(),
|
|
459
494
|
sessionId: this.deps.getSessionManager().getSessionId(),
|
|
460
495
|
});
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
|
|
496
|
+
if (toolAccess.allows("goal")) {
|
|
497
|
+
const goalToolDefinition = createGoalToolDefinition({
|
|
498
|
+
getGoalState: () => this.deps.getGoalStateSnapshot(),
|
|
499
|
+
saveGoalState: (state) => {
|
|
500
|
+
this.deps.saveGoalStateSnapshot(state);
|
|
501
|
+
},
|
|
502
|
+
// kind:"tool" evidence refs verify against real session records.
|
|
503
|
+
hasToolCallId: (toolCallId) => hasAnsweredToolCallOnBranch(this.deps.getSessionManager(), toolCallId),
|
|
504
|
+
// kind:"worker" evidence refs verify against the SAME live lane/claim accessors the
|
|
505
|
+
// delegate_status tool already uses below -- live wiring (these were declared optional
|
|
506
|
+
// and read-defensive on the goal-tool deps type).
|
|
507
|
+
getLaneRecords: () => this.deps.getWorkerLaneRecords(),
|
|
508
|
+
getWorkerClaimSnapshots: () => this.deps.getWorkerClaimSnapshots(),
|
|
509
|
+
// dispatch_worker's tool-layer side effect for the default (in_process) route: starts a
|
|
510
|
+
// real in-process worker lane through the SAME starter the delegate tool uses (below),
|
|
511
|
+
// adapted from its `{started:true;record}|{started:false;skipReason}` shape onto this
|
|
512
|
+
// tool's narrower `{laneId}|{skipReason}` shape.
|
|
513
|
+
startWorkerDelegation: (args) => {
|
|
514
|
+
const outcome = this.deps.startWorkerDelegation({ instructions: args.instructions });
|
|
515
|
+
return outcome.started ? { laneId: outcome.record.laneId } : { skipReason: outcome.skipReason };
|
|
516
|
+
},
|
|
517
|
+
// dispatch_worker's tool-layer side effect for `dispatchTarget:"tmux"`: core structurally
|
|
518
|
+
// invokes the SAME tmux_agent_manager fire_task call the model itself would make (no
|
|
519
|
+
// extension change, no faked launch/laneId) -- see tmux-dispatch.ts's doc comment.
|
|
520
|
+
dispatchTmuxWorker: (args) => dispatchTmuxWorker({
|
|
521
|
+
getToolDefinition: (name) => this.getToolDefinition(name),
|
|
522
|
+
createExtensionContext: () => this.deps.getExtensionRunner().createContext(),
|
|
523
|
+
resolveManagedLaneId: (id) => this.deps.resolveManagedLaneId(id),
|
|
524
|
+
getGoalId: () => this.deps.getGoalStateSnapshot()?.goalId,
|
|
525
|
+
evaluateWorkerLaneRefusal: () => this.deps.getLaneWorkerRefusal(),
|
|
526
|
+
// Lane-first dispatch, wired ONLY when worktree-sync is enabled -- absent otherwise,
|
|
527
|
+
// so a disabled/default session gets the existing byte-identical fire_task params.
|
|
528
|
+
createLaneWorktree: worktreeSyncSettings?.enabled
|
|
529
|
+
? async (laneArgs) => {
|
|
530
|
+
const created = await createLane(worktreeSyncEngineDeps(), {
|
|
531
|
+
...(laneArgs.goalId !== undefined ? { goalId: laneArgs.goalId } : {}),
|
|
532
|
+
requirementId: laneArgs.requirementId,
|
|
533
|
+
});
|
|
534
|
+
// Never fake a lane: any non-"ok" engine code (max lanes, invalid key, git
|
|
535
|
+
// error, ...) is refused, mapped by the caller onto the stable
|
|
536
|
+
// "worktree_create_failed" skip reason before any fire_task call runs.
|
|
537
|
+
if (created.code !== "ok")
|
|
538
|
+
return { skipReason: created.code };
|
|
539
|
+
return { laneKey: created.lane.laneKey, worktreePath: created.lane.worktreePath };
|
|
540
|
+
}
|
|
541
|
+
: undefined,
|
|
542
|
+
}, args),
|
|
543
|
+
cwd: () => this.deps.getCwd(),
|
|
544
|
+
// Reuses the already branch-scoped getTaskStepsStateSnapshot dep -- no new
|
|
545
|
+
// SessionManager access needed for the cross-visibility nudge.
|
|
546
|
+
getOpenTaskSteps: () => deriveOpenTaskStepRefs(this.deps.getTaskStepsStateSnapshot()),
|
|
547
|
+
});
|
|
548
|
+
this._baseToolDefinitions.set(goalToolDefinition.name, goalToolDefinition);
|
|
549
|
+
}
|
|
550
|
+
if (toolAccess.allows("task_steps")) {
|
|
551
|
+
const taskStepsToolDefinition = createTaskStepsToolDefinition({
|
|
552
|
+
getTaskStepsState: () => this.deps.getTaskStepsStateSnapshot(),
|
|
553
|
+
saveTaskStepsState: (state) => {
|
|
554
|
+
this.deps.saveTaskStepsStateSnapshot(state);
|
|
555
|
+
},
|
|
556
|
+
});
|
|
557
|
+
this._baseToolDefinitions.set(taskStepsToolDefinition.name, taskStepsToolDefinition);
|
|
558
|
+
}
|
|
559
|
+
if (toolAccess.allows("ask_question")) {
|
|
560
|
+
const askQuestionToolDefinition = createAskQuestionToolDefinition({
|
|
561
|
+
sessionManager: this.deps.getSessionManager(),
|
|
562
|
+
artifactStore: toolArtifactStore,
|
|
563
|
+
getImageStore: () => this.deps.getSessionImageStore(),
|
|
564
|
+
});
|
|
565
|
+
this._baseToolDefinitions.set(askQuestionToolDefinition.name, askQuestionToolDefinition);
|
|
566
|
+
}
|
|
567
|
+
if (toolAccess.allows("delegate")) {
|
|
568
|
+
const delegateToolDefinition = createDelegateToolDefinition({
|
|
569
|
+
startWorkerDelegation: (args) => this.deps.startWorkerDelegation(args),
|
|
570
|
+
runWorkerDelegation: (args) => this.deps.runWorkerDelegationOnce(args),
|
|
571
|
+
orchestrationProfiles: this.deps.getOrchestrationProfileCatalog(),
|
|
572
|
+
});
|
|
573
|
+
this._baseToolDefinitions.set(delegateToolDefinition.name, delegateToolDefinition);
|
|
574
|
+
}
|
|
575
|
+
if (toolAccess.allows("delegate_status")) {
|
|
576
|
+
const delegateStatusToolDefinition = createDelegateStatusToolDefinition({
|
|
577
|
+
getLaneRecords: () => this.deps.getWorkerLaneRecords(),
|
|
578
|
+
getWorkerClaimSnapshots: () => this.deps.getWorkerClaimSnapshots(),
|
|
579
|
+
// Durable ack persists straight through the session log; routed here (rather than
|
|
580
|
+
// a new agent-session dep) because getSessionManager() is already a stable, generic
|
|
581
|
+
// passthrough dep, so no other package needs to change for this to work.
|
|
582
|
+
acknowledgeWorkerReview: (requestId) => acknowledgeWorkerClaimReview(this.deps.getSessionManager(), requestId),
|
|
583
|
+
});
|
|
584
|
+
this._baseToolDefinitions.set(delegateStatusToolDefinition.name, delegateStatusToolDefinition);
|
|
585
|
+
}
|
|
534
586
|
// Registered but not default-active: probes spend tokens on the probed model, so
|
|
535
587
|
// activation is an explicit choice (settings/profile/setActiveTools or /autonomy fitness).
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
588
|
+
if (toolAccess.allows("model_fitness")) {
|
|
589
|
+
const modelFitnessToolDefinition = createModelFitnessToolDefinition({
|
|
590
|
+
runProbe: (args) => this.deps.runModelFitness(args),
|
|
591
|
+
});
|
|
592
|
+
this._baseToolDefinitions.set(modelFitnessToolDefinition.name, modelFitnessToolDefinition);
|
|
593
|
+
}
|
|
594
|
+
if (toolAccess.allows("context_scout") && settingsManager.getScoutSettings().enabled) {
|
|
541
595
|
const contextScoutToolDefinition = createContextScoutToolDefinition({
|
|
542
596
|
runScout: (input) => this._runContextScout(input.query, input.maxTurns, toolArtifactStore),
|
|
543
597
|
});
|
|
544
598
|
this._baseToolDefinitions.set(contextScoutToolDefinition.name, contextScoutToolDefinition);
|
|
545
599
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
600
|
+
if (toolAccess.allows("run_toolkit_script")) {
|
|
601
|
+
const runToolkitScriptToolDefinition = createRunToolkitScriptToolDefinition({
|
|
602
|
+
getScripts: () => this.deps.getSettingsManager().getToolkitScripts(),
|
|
603
|
+
execute: (script, scriptArgs) => executeToolkitScript({ script, scriptArgs, cwd: this.deps.getCwd() }),
|
|
604
|
+
artifactStore: toolArtifactStore,
|
|
605
|
+
// Reflex brain (fitness-gated local model): resolves ambiguous requests into a
|
|
606
|
+
// registry pick. Best-effort — absent/unfit brain keeps the shortlist behavior.
|
|
607
|
+
interpret: async (request, scripts) => {
|
|
608
|
+
const model = this.deps.resolveCurationModelIfFit();
|
|
609
|
+
if (!model)
|
|
610
|
+
return undefined;
|
|
611
|
+
const completion = await this.deps.runIsolatedCompletion({
|
|
612
|
+
systemPrompt: REFLEX_INTERPRETER_SYSTEM_PROMPT,
|
|
613
|
+
messages: [
|
|
614
|
+
{
|
|
615
|
+
role: "user",
|
|
616
|
+
content: [{ type: "text", text: buildReflexUserPrompt(request, scripts) }],
|
|
617
|
+
timestamp: Date.now(),
|
|
618
|
+
},
|
|
619
|
+
],
|
|
620
|
+
model,
|
|
621
|
+
thinkingLevel: "off",
|
|
622
|
+
maxTokens: 256,
|
|
623
|
+
cacheRetention: "short",
|
|
624
|
+
// Stable per-lane synthetic affinity key so repeat ambiguous-request
|
|
625
|
+
// interpretations hit the same cache-warm backend.
|
|
626
|
+
laneKind: "toolkit-brain",
|
|
627
|
+
});
|
|
628
|
+
if (completion.usage.cost.total > 0 || completion.usage.totalTokens > 0) {
|
|
629
|
+
// `reportId` keyed on the ambiguous request text driving THIS interpretation —
|
|
630
|
+
// stable across a retry of the same tool call, distinct across genuinely
|
|
631
|
+
// different requests.
|
|
632
|
+
const reportId = deriveSpawnedUsageReportId("toolkit-brain", this.deps.getSessionManager().getSessionId(), request);
|
|
633
|
+
this.deps.addSpawnedUsage(completion.usage, { label: "toolkit-brain", reportId });
|
|
634
|
+
}
|
|
635
|
+
return parseReflexPlan(completion.text);
|
|
636
|
+
},
|
|
637
|
+
});
|
|
638
|
+
this._baseToolDefinitions.set(runToolkitScriptToolDefinition.name, runToolkitScriptToolDefinition);
|
|
639
|
+
}
|
|
584
640
|
// Worktree-sync (opt-in): the closed-action lane workflow tool, plus -- for a session
|
|
585
641
|
// launched lane-bound (PI_WORKTREE_LANE) -- the G8/G10 lane gate wrapped UNDER the
|
|
586
642
|
// file-mutation tools (edit/write, plus cooperative bash only for interactive lanes), so a sync_required lane fails closed with the
|
|
587
643
|
// exact recovery step rather than relying on prompt compliance. `worktreeSyncSettings` /
|
|
588
644
|
// `worktreeSyncEngineDeps` are hoisted above (declared before the goal-tool registration)
|
|
589
645
|
// so the goal->tmux lane-first dispatch dep and this tool share one settings/deps source.
|
|
590
|
-
if (worktreeSyncSettings
|
|
646
|
+
if (toolAccess.allows("worktree_sync") && worktreeSyncSettings?.enabled) {
|
|
591
647
|
const worktreeSyncToolDefinition = createWorktreeSyncToolDefinition({
|
|
592
648
|
engineDeps: worktreeSyncEngineDeps,
|
|
593
649
|
settings: () => this.deps.getSettingsManager().getWorktreeSyncSettings(),
|
|
@@ -877,6 +933,9 @@ export class RuntimeBuilder {
|
|
|
877
933
|
*/
|
|
878
934
|
async loadExtensionLive(extensionPath) {
|
|
879
935
|
this._assertReloadQuiescent("load extension");
|
|
936
|
+
if (!this.deps.getSettingsManager().isResourceAllowedByProfile("extensions", extensionPath)) {
|
|
937
|
+
throw new Error(`Cannot load extension outside the active resource profile: ${extensionPath}`);
|
|
938
|
+
}
|
|
880
939
|
const previousRunner = this.deps.getExtensionRunner();
|
|
881
940
|
try {
|
|
882
941
|
// Load the extension with fresh import
|