@caupulican/pi-adaptative 0.81.38 → 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 +131 -0
- package/README.md +2 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/README.md +18 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts +133 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +1 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js +198 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +1 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.ts +311 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts +31 -2
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +823 -79
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +1043 -86
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/__init__.py +43 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/fs.py +270 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/search.py +252 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/strings.py +399 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/text.py +575 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/context.py +52 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/errors.py +49 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/exec.py +734 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/expand.py +238 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/main.py +132 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/nodes.py +116 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/parser.py +287 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/proc.py +137 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/state.py +100 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/tokens.py +579 -0
- package/dist/bundled-resources/skills/tool-call-repair/SKILL.md +19 -9
- package/dist/bundled-resources/skills/tool-call-repair/references/failure-grammar.md +22 -5
- package/dist/bundled-resources/skills/tool-call-repair/references/repair-catalogue.md +7 -7
- package/dist/bundled-resources/skills/tool-call-repair/references/text-protocol-grammar.md +28 -7
- package/dist/cli/args.d.ts +5 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +24 -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 +66 -0
- package/dist/core/agent-paths.d.ts.map +1 -0
- package/dist/core/agent-paths.js +170 -0
- package/dist/core/agent-paths.js.map +1 -0
- 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 +4 -3
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +255 -103
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +754 -1173
- 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 +26 -9
- 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 +24 -1
- package/dist/core/autonomy/lane-tracker.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tracker.js +43 -1
- 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 +90 -156
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +192 -968
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/bash-execution-controller.d.ts +4 -0
- package/dist/core/bash-execution-controller.d.ts.map +1 -1
- package/dist/core/bash-execution-controller.js +7 -1
- package/dist/core/bash-execution-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 +24 -13
- package/dist/core/compaction-support.d.ts.map +1 -1
- package/dist/core/compaction-support.js +43 -7
- 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-audit.d.ts +33 -1
- package/dist/core/context/context-audit.d.ts.map +1 -1
- package/dist/core/context/context-audit.js +31 -5
- package/dist/core/context/context-audit.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 +26 -6
- package/dist/core/context-gc.js.map +1 -1
- package/dist/core/context-pipeline.d.ts +26 -4
- package/dist/core/context-pipeline.d.ts.map +1 -1
- package/dist/core/context-pipeline.js +146 -18
- package/dist/core/context-pipeline.js.map +1 -1
- package/dist/core/cost-guard.d.ts +19 -3
- package/dist/core/cost-guard.d.ts.map +1 -1
- package/dist/core/cost-guard.js +18 -3
- package/dist/core/cost-guard.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-claim.d.ts +56 -0
- package/dist/core/delegation/worker-claim.d.ts.map +1 -0
- package/dist/core/delegation/worker-claim.js +239 -0
- 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 +68 -13
- 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 +7 -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 +101 -1
- 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/goal-loop-controller.d.ts +17 -1
- package/dist/core/goal-loop-controller.d.ts.map +1 -1
- package/dist/core/goal-loop-controller.js +79 -11
- package/dist/core/goal-loop-controller.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 +48 -2
- package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-controller.js +87 -0
- package/dist/core/goals/goal-continuation-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-defaults.d.ts +39 -0
- package/dist/core/goals/goal-continuation-defaults.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-defaults.js +42 -0
- package/dist/core/goals/goal-continuation-defaults.js.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts +5 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.js +56 -15
- 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 +105 -4
- package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
- package/dist/core/goals/goal-runtime-snapshot.js +91 -6
- package/dist/core/goals/goal-runtime-snapshot.js.map +1 -1
- package/dist/core/goals/goal-state.d.ts +90 -1
- package/dist/core/goals/goal-state.d.ts.map +1 -1
- package/dist/core/goals/goal-state.js +78 -15
- package/dist/core/goals/goal-state.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts +58 -2
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js +82 -6
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/goals/session-goal-state.d.ts +13 -6
- package/dist/core/goals/session-goal-state.d.ts.map +1 -1
- package/dist/core/goals/session-goal-state.js +20 -28
- 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 +27 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +34 -8
- 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/observation-store.d.ts +12 -3
- package/dist/core/learning/observation-store.d.ts.map +1 -1
- package/dist/core/learning/observation-store.js +30 -15
- package/dist/core/learning/observation-store.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/learning/skill-curator.d.ts +5 -1
- package/dist/core/learning/skill-curator.d.ts.map +1 -1
- package/dist/core/learning/skill-curator.js +21 -19
- package/dist/core/learning/skill-curator.js.map +1 -1
- package/dist/core/local-runtime-controller.d.ts +65 -3
- package/dist/core/local-runtime-controller.d.ts.map +1 -1
- package/dist/core/local-runtime-controller.js +186 -26
- package/dist/core/local-runtime-controller.js.map +1 -1
- package/dist/core/memory/providers/file-store.d.ts +1 -1
- package/dist/core/memory/providers/file-store.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.js +6 -6
- package/dist/core/memory/providers/file-store.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 +34 -0
- package/dist/core/model-capability.d.ts.map +1 -1
- package/dist/core/model-capability.js +43 -1
- 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/tool-escalation.d.ts +15 -0
- package/dist/core/model-router/tool-escalation.d.ts.map +1 -1
- package/dist/core/model-router/tool-escalation.js +23 -1
- package/dist/core/model-router/tool-escalation.js.map +1 -1
- package/dist/core/model-router-controller.d.ts +34 -7
- package/dist/core/model-router-controller.d.ts.map +1 -1
- package/dist/core/model-router-controller.js +95 -16
- 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 +10 -5
- package/dist/core/models/adaptation-store.d.ts.map +1 -1
- package/dist/core/models/adaptation-store.js +129 -81
- package/dist/core/models/adaptation-store.js.map +1 -1
- package/dist/core/models/default-model-suggestions.d.ts.map +1 -1
- package/dist/core/models/default-model-suggestions.js +17 -0
- package/dist/core/models/default-model-suggestions.js.map +1 -1
- package/dist/core/models/fitness-store.d.ts +4 -11
- package/dist/core/models/fitness-store.d.ts.map +1 -1
- package/dist/core/models/fitness-store.js +87 -51
- 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/models/llamacpp-runtime.d.ts +180 -0
- package/dist/core/models/llamacpp-runtime.d.ts.map +1 -0
- package/dist/core/models/llamacpp-runtime.js +475 -0
- package/dist/core/models/llamacpp-runtime.js.map +1 -0
- package/dist/core/models/local-registration.d.ts +40 -0
- package/dist/core/models/local-registration.d.ts.map +1 -1
- package/dist/core/models/local-registration.js +94 -5
- package/dist/core/models/local-registration.js.map +1 -1
- package/dist/core/models/local-runtime.d.ts.map +1 -1
- package/dist/core/models/local-runtime.js +6 -5
- package/dist/core/models/local-runtime.js.map +1 -1
- package/dist/core/models/model-ref.d.ts +7 -0
- package/dist/core/models/model-ref.d.ts.map +1 -1
- package/dist/core/models/model-ref.js +26 -0
- package/dist/core/models/model-ref.js.map +1 -1
- package/dist/core/models/needle-runtime.d.ts +257 -0
- package/dist/core/models/needle-runtime.d.ts.map +1 -0
- package/dist/core/models/needle-runtime.js +519 -0
- package/dist/core/models/needle-runtime.js.map +1 -0
- package/dist/core/models/prism-llamacpp-lifecycle.d.ts +89 -0
- package/dist/core/models/prism-llamacpp-lifecycle.d.ts.map +1 -0
- package/dist/core/models/prism-llamacpp-lifecycle.js +121 -0
- package/dist/core/models/prism-llamacpp-lifecycle.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/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +11 -10
- package/dist/core/package-manager.js.map +1 -1
- 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 +83 -0
- package/dist/core/process-matrix/codes.d.ts.map +1 -0
- package/dist/core/process-matrix/codes.js +15 -0
- package/dist/core/process-matrix/codes.js.map +1 -0
- 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 +78 -0
- package/dist/core/process-matrix/runtime.d.ts.map +1 -0
- package/dist/core/process-matrix/runtime.js +633 -0
- package/dist/core/process-matrix/runtime.js.map +1 -0
- package/dist/core/process-matrix/store.d.ts +25 -0
- package/dist/core/process-matrix/store.d.ts.map +1 -0
- package/dist/core/process-matrix/store.js +189 -0
- package/dist/core/process-matrix/store.js.map +1 -0
- package/dist/core/process-matrix/supervisor.d.ts +75 -0
- package/dist/core/process-matrix/supervisor.d.ts.map +1 -0
- package/dist/core/process-matrix/supervisor.js +161 -0
- package/dist/core/process-matrix/supervisor.js.map +1 -0
- package/dist/core/profile-registry.d.ts +7 -0
- package/dist/core/profile-registry.d.ts.map +1 -1
- package/dist/core/profile-registry.js +25 -7
- package/dist/core/profile-registry.js.map +1 -1
- package/dist/core/python-runtime.d.ts.map +1 -1
- package/dist/core/python-runtime.js +3 -3
- package/dist/core/python-runtime.js.map +1 -1
- package/dist/core/reflection-controller.d.ts +33 -9
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +217 -127
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/reload-blockers.d.ts +36 -0
- package/dist/core/reload-blockers.d.ts.map +1 -1
- package/dist/core/reload-blockers.js +50 -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 +15 -9
- 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 +76 -17
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +367 -124
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/scout-controller.d.ts +6 -0
- package/dist/core/scout-controller.d.ts.map +1 -1
- package/dist/core/scout-controller.js +66 -52
- package/dist/core/scout-controller.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 +64 -27
- 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 +33 -0
- package/dist/core/session-role.d.ts.map +1 -0
- package/dist/core/session-role.js +58 -0
- package/dist/core/session-role.js.map +1 -0
- 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 +51 -7
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +168 -82
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt-builder.d.ts +12 -0
- package/dist/core/system-prompt-builder.d.ts.map +1 -1
- package/dist/core/system-prompt-builder.js +6 -0
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/system-prompt.d.ts +14 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +20 -3
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tasks/session-task-state.d.ts +13 -6
- package/dist/core/tasks/session-task-state.d.ts.map +1 -1
- package/dist/core/tasks/session-task-state.js +20 -22
- package/dist/core/tasks/session-task-state.js.map +1 -1
- package/dist/core/tasks/task-contract-monitor.d.ts +45 -0
- package/dist/core/tasks/task-contract-monitor.d.ts.map +1 -0
- package/dist/core/tasks/task-contract-monitor.js +56 -0
- package/dist/core/tasks/task-contract-monitor.js.map +1 -0
- 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 +12 -0
- package/dist/core/tasks/task-state.d.ts.map +1 -1
- package/dist/core/tasks/task-state.js +56 -12
- 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-gate-controller.d.ts.map +1 -1
- package/dist/core/tool-gate-controller.js +5 -0
- package/dist/core/tool-gate-controller.js.map +1 -1
- 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 +6 -0
- package/dist/core/tool-recovery-log-records.d.ts.map +1 -1
- package/dist/core/tool-recovery-log-records.js +13 -31
- package/dist/core/tool-recovery-log-records.js.map +1 -1
- package/dist/core/tool-selection/promotion.d.ts +54 -0
- package/dist/core/tool-selection/promotion.d.ts.map +1 -0
- package/dist/core/tool-selection/promotion.js +81 -0
- package/dist/core/tool-selection/promotion.js.map +1 -0
- package/dist/core/tool-selection/tool-performance-store.d.ts +39 -6
- package/dist/core/tool-selection/tool-performance-store.d.ts.map +1 -1
- package/dist/core/tool-selection/tool-performance-store.js +153 -110
- package/dist/core/tool-selection/tool-performance-store.js.map +1 -1
- package/dist/core/tool-selection/tool-selection-controller.d.ts +45 -0
- package/dist/core/tool-selection/tool-selection-controller.d.ts.map +1 -1
- package/dist/core/tool-selection/tool-selection-controller.js +96 -0
- package/dist/core/tool-selection/tool-selection-controller.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/bash.d.ts +18 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +95 -16
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/delegate-status.d.ts +44 -2
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +214 -19
- 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 +124 -22
- 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 +94 -3
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +165 -15
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/model-fitness.d.ts +7 -0
- package/dist/core/tools/model-fitness.d.ts.map +1 -1
- package/dist/core/tools/model-fitness.js +4 -4
- 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/shell-contract-router.d.ts +6 -1
- package/dist/core/tools/shell-contract-router.d.ts.map +1 -1
- package/dist/core/tools/shell-contract-router.js +23 -2
- package/dist/core/tools/shell-contract-router.js.map +1 -1
- package/dist/core/tools/shell-session.d.ts +89 -0
- package/dist/core/tools/shell-session.d.ts.map +1 -0
- package/dist/core/tools/shell-session.js +432 -0
- package/dist/core/tools/shell-session.js.map +1 -0
- package/dist/core/tools/task-steps.d.ts +6 -0
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +165 -8
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/tools/tmux-dispatch.d.ts +84 -0
- package/dist/core/tools/tmux-dispatch.d.ts.map +1 -0
- package/dist/core/tools/tmux-dispatch.js +91 -0
- package/dist/core/tools/tmux-dispatch.js.map +1 -0
- package/dist/core/tools/windows-shell-engine.d.ts +42 -0
- package/dist/core/tools/windows-shell-engine.d.ts.map +1 -0
- package/dist/core/tools/windows-shell-engine.js +151 -0
- package/dist/core/tools/windows-shell-engine.js.map +1 -0
- package/dist/core/tools/windows-shell-state.d.ts +40 -0
- package/dist/core/tools/windows-shell-state.d.ts.map +1 -0
- package/dist/core/tools/windows-shell-state.js +59 -0
- package/dist/core/tools/windows-shell-state.js.map +1 -0
- package/dist/core/tools/worktree-sync.d.ts +24 -0
- package/dist/core/tools/worktree-sync.d.ts.map +1 -0
- package/dist/core/tools/worktree-sync.js +338 -0
- package/dist/core/tools/worktree-sync.js.map +1 -0
- package/dist/core/trust-manager.d.ts +4 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +20 -2
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/util/atomic-file.d.ts +55 -0
- package/dist/core/util/atomic-file.d.ts.map +1 -0
- package/dist/core/util/atomic-file.js +255 -0
- package/dist/core/util/atomic-file.js.map +1 -0
- 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/minimatch-cache.d.ts +33 -0
- package/dist/core/util/minimatch-cache.d.ts.map +1 -0
- package/dist/core/util/minimatch-cache.js +0 -0
- package/dist/core/util/minimatch-cache.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/codes.d.ts +227 -0
- package/dist/core/worktree-sync/codes.d.ts.map +1 -0
- package/dist/core/worktree-sync/codes.js +14 -0
- package/dist/core/worktree-sync/codes.js.map +1 -0
- package/dist/core/worktree-sync/git-engine.d.ts +156 -0
- package/dist/core/worktree-sync/git-engine.d.ts.map +1 -0
- package/dist/core/worktree-sync/git-engine.js +1191 -0
- package/dist/core/worktree-sync/git-engine.js.map +1 -0
- package/dist/core/worktree-sync/lane-gate.d.ts +75 -0
- package/dist/core/worktree-sync/lane-gate.d.ts.map +1 -0
- package/dist/core/worktree-sync/lane-gate.js +360 -0
- package/dist/core/worktree-sync/lane-gate.js.map +1 -0
- package/dist/core/worktree-sync/runtime.d.ts +47 -0
- package/dist/core/worktree-sync/runtime.d.ts.map +1 -0
- package/dist/core/worktree-sync/runtime.js +96 -0
- package/dist/core/worktree-sync/runtime.js.map +1 -0
- package/dist/core/worktree-sync/store.d.ts +69 -0
- package/dist/core/worktree-sync/store.d.ts.map +1 -0
- package/dist/core/worktree-sync/store.js +252 -0
- package/dist/core/worktree-sync/store.js.map +1 -0
- package/dist/core/worktree-sync/watcher.d.ts +29 -0
- package/dist/core/worktree-sync/watcher.d.ts.map +1 -0
- package/dist/core/worktree-sync/watcher.js +93 -0
- package/dist/core/worktree-sync/watcher.js.map +1 -0
- 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 +179 -1
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +7 -0
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +197 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/auto-learn-controller.d.ts +16 -1
- package/dist/modes/interactive/auto-learn-controller.d.ts.map +1 -1
- package/dist/modes/interactive/auto-learn-controller.js +50 -8
- package/dist/modes/interactive/auto-learn-controller.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/profile-resource-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/profile-resource-editor.js +23 -1
- package/dist/modes/interactive/components/profile-resource-editor.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 +4 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +67 -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/local-model-commands.d.ts +43 -0
- package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
- package/dist/modes/interactive/local-model-commands.js +290 -3
- package/dist/modes/interactive/local-model-commands.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 +74 -21
- 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/fs-watch.d.ts +11 -0
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js +20 -2
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/highlight-js-languages.d.ts +4 -0
- package/dist/utils/highlight-js-languages.d.ts.map +1 -0
- package/dist/utils/highlight-js-languages.js +573 -0
- package/dist/utils/highlight-js-languages.js.map +1 -0
- 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/shell.d.ts +7 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +21 -6
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +53 -5
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +112 -1
- package/dist/utils/tools-manager.js.map +1 -1
- 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 +153 -0
- package/docs/rpc.md +45 -2
- package/docs/sessions.md +15 -0
- package/docs/settings.md +128 -11
- package/docs/task-steps.md +8 -0
- package/docs/telemetry.md +19 -0
- package/docs/tmux-agent-manager.md +92 -2
- 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/windows.md +52 -3
- package/docs/work-directory.md +42 -2
- package/docs/worktree-sync.md +250 -0
- 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 +10 -4
- package/dist/core/delegation/session-worker-result.d.ts +0 -16
- package/dist/core/delegation/session-worker-result.d.ts.map +0 -1
- package/dist/core/delegation/session-worker-result.js +0 -53
- package/dist/core/delegation/session-worker-result.js.map +0 -1
- package/dist/core/delegation/worker-result.d.ts +0 -15
- package/dist/core/delegation/worker-result.d.ts.map +0 -1
- package/dist/core/delegation/worker-result.js +0 -161
- 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
- package/docs/integration-sweep-builder-blueprint-2026-07-09.md +0 -365
- package/docs/integration-sweep-resume-2026-07-09.md +0 -407
|
@@ -32,9 +32,11 @@
|
|
|
32
32
|
* load / unload / reconcile API and for `getAllTools` / `getToolDefinition`, and a private
|
|
33
33
|
* `_refreshToolRegistry` delegation for its internal callers.
|
|
34
34
|
*/
|
|
35
|
+
import { createHash } from "node:crypto";
|
|
35
36
|
import { existsSync, readFileSync } from "node:fs";
|
|
36
37
|
import { isAbsolute, join } from "node:path";
|
|
37
38
|
import { DEFAULT_ACTIVE_TOOL_NAMES, mapToolNamesForPlatform } from "./default-tool-surface.js";
|
|
39
|
+
import { acknowledgeWorkerClaimReview } from "./delegation/session-worker-claim.js";
|
|
38
40
|
import { createCoreDiagnosticsToolDefinitions } from "./extensions/builtin.js";
|
|
39
41
|
import { ExtensionRunner, wrapRegisteredTools, } from "./extensions/index.js";
|
|
40
42
|
import { disposeExtensionEventSubscriptions } from "./extensions/loader.js";
|
|
@@ -42,23 +44,68 @@ import { emitSessionShutdownEvent } from "./extensions/runner.js";
|
|
|
42
44
|
import { resolveCliModel } from "./model-resolver.js";
|
|
43
45
|
import { evaluateSurfaceFitness } from "./model-router/fitness-gate.js";
|
|
44
46
|
import { FitnessStore } from "./models/fitness-store.js";
|
|
47
|
+
import { describeInFlightWorkUnit, getInFlightWorkUnits } from "./reload-blockers.js";
|
|
45
48
|
import { ScoutController } from "./scout-controller.js";
|
|
49
|
+
import { getSessionRole, isWorkerSession, WORKER_FORBIDDEN_TOOLS } from "./session-role.js";
|
|
46
50
|
import { matchesResourceProfilePattern, } from "./settings-manager.js";
|
|
47
51
|
import { createSyntheticSourceInfo } from "./source-info.js";
|
|
52
|
+
import { projectOpenTaskSteps } from "./tasks/task-projection.js";
|
|
48
53
|
import { buildReflexUserPrompt, parseReflexPlan, REFLEX_INTERPRETER_SYSTEM_PROMPT, } from "./toolkit/reflex-interpreter.js";
|
|
49
54
|
import { executeToolkitScript } from "./toolkit/script-runner.js";
|
|
55
|
+
import { createAskQuestionToolDefinition } from "./tools/ask-question.js";
|
|
50
56
|
import { createContextScoutToolDefinition } from "./tools/context-scout.js";
|
|
51
57
|
import { createDelegateToolDefinition } from "./tools/delegate.js";
|
|
52
58
|
import { createDelegateStatusToolDefinition } from "./tools/delegate-status.js";
|
|
53
59
|
import { createFindTool } from "./tools/find.js";
|
|
54
60
|
import { createGoalToolDefinition } from "./tools/goal.js";
|
|
55
61
|
import { createGrepTool } from "./tools/grep.js";
|
|
56
|
-
import {
|
|
62
|
+
import { allToolNames, createToolDefinition } from "./tools/index.js";
|
|
57
63
|
import { createModelFitnessToolDefinition } from "./tools/model-fitness.js";
|
|
64
|
+
import { resolveToCwd } from "./tools/path-utils.js";
|
|
58
65
|
import { createReadTool } from "./tools/read.js";
|
|
66
|
+
import { createRunProcessToolDefinition } from "./tools/run-process.js";
|
|
59
67
|
import { createRunToolkitScriptToolDefinition } from "./tools/run-toolkit-script.js";
|
|
60
68
|
import { createTaskStepsToolDefinition } from "./tools/task-steps.js";
|
|
69
|
+
import { dispatchTmuxWorker } from "./tools/tmux-dispatch.js";
|
|
61
70
|
import { createToolDefinitionFromAgentTool } from "./tools/tool-definition-wrapper.js";
|
|
71
|
+
import { createWorktreeSyncToolDefinition } from "./tools/worktree-sync.js";
|
|
72
|
+
import { createLane } from "./worktree-sync/git-engine.js";
|
|
73
|
+
import { WorktreeLaneGate } from "./worktree-sync/lane-gate.js";
|
|
74
|
+
import { buildWorktreeSyncEngineDeps, getBoundWorktreeLaneKey } from "./worktree-sync/runtime.js";
|
|
75
|
+
/**
|
|
76
|
+
* Deterministic `addSpawnedUsage` reportId: `kind` + session id + a content hash of `identity`
|
|
77
|
+
* (never `Date.now`/random). Same identity on a retry of the same logical work unit yields the same
|
|
78
|
+
* id, so the ledger's `seenSubagentReportIds` dedupe catches a duplicate report instead of
|
|
79
|
+
* double-counting spend.
|
|
80
|
+
*/
|
|
81
|
+
function deriveSpawnedUsageReportId(kind, sessionId, identity) {
|
|
82
|
+
const digest = createHash("sha256").update(identity).digest("hex").slice(0, 16);
|
|
83
|
+
return `${kind}:${sessionId}:${digest}`;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Is `toolCallId` a real, answered tool call on `sessionManager`'s active branch? A
|
|
87
|
+
* toolCallId is "real" iff a toolResult message on that branch responded to it -- the same
|
|
88
|
+
* toolResult/toolCallId match `context-pipeline.ts`'s `_buildSessionEntryIdLookup` uses, and
|
|
89
|
+
* branch-scoped (via `getBranch()`) so a sibling branch's tool calls never count. Exported (pure,
|
|
90
|
+
* no `this`) so the goal tool's `hasToolCallId` wiring below is directly testable against a real
|
|
91
|
+
* `SessionManager` without constructing the whole `RuntimeBuilder`.
|
|
92
|
+
*/
|
|
93
|
+
export function hasAnsweredToolCallOnBranch(sessionManager, toolCallId) {
|
|
94
|
+
return sessionManager
|
|
95
|
+
.getBranch()
|
|
96
|
+
.some((entry) => entry.type === "message" && entry.message.role === "toolResult" && entry.message.toolCallId === toolCallId);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
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
|
+
*/
|
|
102
|
+
export function deriveOpenTaskStepRefs(taskStepsState) {
|
|
103
|
+
return projectOpenTaskSteps(taskStepsState).map((step) => ({
|
|
104
|
+
id: step.id,
|
|
105
|
+
content: step.content,
|
|
106
|
+
...(step.requirementIds?.length ? { requirementIds: step.requirementIds } : {}),
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
62
109
|
/**
|
|
63
110
|
* Owns the tool-registry build and the self-modification-safe extension reload extracted from
|
|
64
111
|
* {@link AgentSession}. See the module header for the snapshot-ownership and host-binding boundaries.
|
|
@@ -76,6 +123,50 @@ export class RuntimeBuilder {
|
|
|
76
123
|
constructor(deps) {
|
|
77
124
|
this.deps = deps;
|
|
78
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
|
+
}
|
|
79
170
|
async _runContextScout(query, maxTurns, artifactStore) {
|
|
80
171
|
const cwd = this.deps.getCwd();
|
|
81
172
|
const controller = new ScoutController({
|
|
@@ -89,6 +180,9 @@ export class RuntimeBuilder {
|
|
|
89
180
|
streamFn: this.deps.getAgent().streamFn,
|
|
90
181
|
fileExists: (path) => existsSync(resolveCwdPath(cwd, path)),
|
|
91
182
|
countLines: (path) => countFileLines(resolveCwdPath(cwd, path)),
|
|
183
|
+
// Lets the scout register itself in the reload-gate quiesce registry (see
|
|
184
|
+
// reload-blockers.ts) for its own agentDir — the same key `_assertReloadQuiescent` reads.
|
|
185
|
+
getAgentDir: () => this.deps.getAgentDir(),
|
|
92
186
|
});
|
|
93
187
|
return controller.run(query, maxTurns);
|
|
94
188
|
}
|
|
@@ -129,35 +223,9 @@ export class RuntimeBuilder {
|
|
|
129
223
|
// capability/profile-filtered, so feeding it back through setActiveToolsByName would
|
|
130
224
|
// permanently shrink what a later switch to a larger model (or permissive profile) restores.
|
|
131
225
|
const previousActiveToolNames = mapToolNamesForPlatform(this.deps.getRequestedActiveToolNames() ?? this.deps.getActiveToolNames());
|
|
132
|
-
const
|
|
133
|
-
const allowedToolNames =
|
|
134
|
-
|
|
135
|
-
: undefined;
|
|
136
|
-
const configuredExcludedToolNames = this.deps.getExcludedToolNames();
|
|
137
|
-
const excludedToolNames = configuredExcludedToolNames
|
|
138
|
-
? new Set(mapToolNamesForPlatform([...configuredExcludedToolNames]))
|
|
139
|
-
: undefined;
|
|
140
|
-
const configuredToolProfileFilter = this.deps.getToolProfileFilter();
|
|
141
|
-
const toolProfileFilter = configuredToolProfileFilter
|
|
142
|
-
? {
|
|
143
|
-
allow: mapToolNamesForPlatform(configuredToolProfileFilter.allow),
|
|
144
|
-
block: mapToolNamesForPlatform(configuredToolProfileFilter.block),
|
|
145
|
-
}
|
|
146
|
-
: undefined;
|
|
147
|
-
const isAllowedTool = (name) => {
|
|
148
|
-
if (allowedToolNames && !allowedToolNames.has(name))
|
|
149
|
-
return false;
|
|
150
|
-
if (excludedToolNames?.has(name))
|
|
151
|
-
return false;
|
|
152
|
-
if (!toolProfileFilter)
|
|
153
|
-
return true;
|
|
154
|
-
if (toolProfileFilter.allow.length > 0 && !matchesResourceProfilePattern(name, toolProfileFilter.allow)) {
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
if (matchesResourceProfilePattern(name, toolProfileFilter.block))
|
|
158
|
-
return false;
|
|
159
|
-
return true;
|
|
160
|
-
};
|
|
226
|
+
const toolAccess = this._createToolAccessPolicy();
|
|
227
|
+
const { allowedToolNames, toolProfileFilter } = toolAccess;
|
|
228
|
+
const isAllowedTool = toolAccess.allows;
|
|
161
229
|
const registeredTools = this.deps.getExtensionRunner().getAllRegisteredTools();
|
|
162
230
|
const allCustomTools = [
|
|
163
231
|
...registeredTools,
|
|
@@ -262,7 +330,7 @@ export class RuntimeBuilder {
|
|
|
262
330
|
nextActiveToolNames.push(toolName);
|
|
263
331
|
}
|
|
264
332
|
}
|
|
265
|
-
//
|
|
333
|
+
// An explicit grant that binds to NO registered tool is a silent no-op — typo'd
|
|
266
334
|
// name, or the owning extension is not granted/loaded. Surface it.
|
|
267
335
|
this.deps.setUnboundToolGrantWarnings(explicitAllowPatterns
|
|
268
336
|
.filter((pattern) => !boundPatterns.has(pattern))
|
|
@@ -371,95 +439,252 @@ export class RuntimeBuilder {
|
|
|
371
439
|
const shellCommandPrefix = settingsManager.getShellCommandPrefix();
|
|
372
440
|
const shellPath = settingsManager.getShellPath();
|
|
373
441
|
const baseToolsOverride = this.deps.getBaseToolsOverride();
|
|
442
|
+
const toolAccess = this._createToolAccessPolicy();
|
|
374
443
|
// Artifact-producing tools must not emit a "Full output: artifact tool-output:<id>" handle
|
|
375
444
|
// that nothing can resolve. If artifact_retrieve is explicitly excluded/blocked/outside
|
|
376
445
|
// an active allowlist, don't hand grep/find/run_toolkit_script an artifact store at all:
|
|
377
446
|
// they fall back to their bounded preview/truncation behavior, with no payload/meta files
|
|
378
447
|
// ever written and no retrieval promise made.
|
|
379
|
-
const toolArtifactStore =
|
|
380
|
-
|
|
381
|
-
:
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
}
|
|
391
|
-
|
|
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)]));
|
|
392
468
|
if (!baseToolsOverride) {
|
|
393
|
-
|
|
394
|
-
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
|
+
}
|
|
395
477
|
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
});
|
|
414
|
-
const delegateStatusToolDefinition = createDelegateStatusToolDefinition({
|
|
415
|
-
getLaneRecords: () => this.deps.getWorkerLaneRecords(),
|
|
416
|
-
getWorkerResultSnapshots: () => this.deps.getWorkerResultSnapshots(),
|
|
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
|
+
}
|
|
482
|
+
}
|
|
483
|
+
// Hoisted above the goal-tool registration (rather than declared only inside the
|
|
484
|
+
// worktreeSync-enabled block further below) so the SAME settings/deps factory backs both
|
|
485
|
+
// the goal->tmux lane-first dispatch dep (`createLaneWorktree`, immediately below) and the
|
|
486
|
+
// `worktree_sync` tool registration later in this method -- one source of truth, no drift.
|
|
487
|
+
const worktreeSyncSettings = toolAccess.allows("goal") || toolAccess.allows("worktree_sync")
|
|
488
|
+
? settingsManager.getWorktreeSyncSettings()
|
|
489
|
+
: undefined;
|
|
490
|
+
const worktreeSyncEngineDeps = () => buildWorktreeSyncEngineDeps({
|
|
491
|
+
cwd: this.deps.getCwd(),
|
|
492
|
+
agentDir: this.deps.getAgentDir(),
|
|
493
|
+
settingsManager: this.deps.getSettingsManager(),
|
|
494
|
+
sessionId: this.deps.getSessionManager().getSessionId(),
|
|
417
495
|
});
|
|
418
|
-
|
|
419
|
-
|
|
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
|
+
}
|
|
420
586
|
// Registered but not default-active: probes spend tokens on the probed model, so
|
|
421
587
|
// activation is an explicit choice (settings/profile/setActiveTools or /autonomy fitness).
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
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) {
|
|
427
595
|
const contextScoutToolDefinition = createContextScoutToolDefinition({
|
|
428
596
|
runScout: (input) => this._runContextScout(input.query, input.maxTurns, toolArtifactStore),
|
|
429
597
|
});
|
|
430
598
|
this._baseToolDefinitions.set(contextScoutToolDefinition.name, contextScoutToolDefinition);
|
|
431
599
|
}
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
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
|
+
}
|
|
640
|
+
// Worktree-sync (opt-in): the closed-action lane workflow tool, plus -- for a session
|
|
641
|
+
// launched lane-bound (PI_WORKTREE_LANE) -- the G8/G10 lane gate wrapped UNDER the
|
|
642
|
+
// file-mutation tools (edit/write, plus cooperative bash only for interactive lanes), so a sync_required lane fails closed with the
|
|
643
|
+
// exact recovery step rather than relying on prompt compliance. `worktreeSyncSettings` /
|
|
644
|
+
// `worktreeSyncEngineDeps` are hoisted above (declared before the goal-tool registration)
|
|
645
|
+
// so the goal->tmux lane-first dispatch dep and this tool share one settings/deps source.
|
|
646
|
+
if (toolAccess.allows("worktree_sync") && worktreeSyncSettings?.enabled) {
|
|
647
|
+
const worktreeSyncToolDefinition = createWorktreeSyncToolDefinition({
|
|
648
|
+
engineDeps: worktreeSyncEngineDeps,
|
|
649
|
+
settings: () => this.deps.getSettingsManager().getWorktreeSyncSettings(),
|
|
650
|
+
boundLaneKey: () => getBoundWorktreeLaneKey(),
|
|
651
|
+
isWorker: () => isWorkerSession(),
|
|
652
|
+
});
|
|
653
|
+
this._baseToolDefinitions.set(worktreeSyncToolDefinition.name, worktreeSyncToolDefinition);
|
|
654
|
+
const boundLaneKey = getBoundWorktreeLaneKey();
|
|
655
|
+
if (boundLaneKey) {
|
|
656
|
+
const laneGate = new WorktreeLaneGate({
|
|
657
|
+
laneKey: boundLaneKey,
|
|
658
|
+
engineDeps: worktreeSyncEngineDeps,
|
|
659
|
+
policy: () => this.deps.getSettingsManager().getWorktreeSyncSettings().syncPolicy,
|
|
660
|
+
hardShell: isWorkerSession(),
|
|
661
|
+
trustedGateCommand: () => this.deps.getSettingsManager().getWorktreeSyncSettings().gateCommand,
|
|
455
662
|
});
|
|
456
|
-
|
|
457
|
-
this.
|
|
663
|
+
for (const gatedToolName of ["edit", "write", "bash"]) {
|
|
664
|
+
const original = this._baseToolDefinitions.get(gatedToolName);
|
|
665
|
+
if (!original)
|
|
666
|
+
continue;
|
|
667
|
+
this._baseToolDefinitions.set(gatedToolName, {
|
|
668
|
+
...original,
|
|
669
|
+
execute: async (toolCallId, params, signal, onUpdate, ctx) => {
|
|
670
|
+
const bashCommand = gatedToolName === "bash" ? params?.command : undefined;
|
|
671
|
+
const rawPath = gatedToolName === "edit" || gatedToolName === "write"
|
|
672
|
+
? params?.path
|
|
673
|
+
: undefined;
|
|
674
|
+
const targetPath = rawPath !== undefined ? resolveToCwd(rawPath, this.deps.getCwd()) : undefined;
|
|
675
|
+
const check = await laneGate.checkMutation(gatedToolName, bashCommand, targetPath);
|
|
676
|
+
if (!check.allowed) {
|
|
677
|
+
return {
|
|
678
|
+
content: [{ type: "text", text: check.message }],
|
|
679
|
+
details: { code: check.code },
|
|
680
|
+
};
|
|
681
|
+
}
|
|
682
|
+
return original.execute(toolCallId, params, signal, onUpdate, ctx);
|
|
683
|
+
},
|
|
684
|
+
});
|
|
458
685
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
});
|
|
462
|
-
this._baseToolDefinitions.set(runToolkitScriptToolDefinition.name, runToolkitScriptToolDefinition);
|
|
686
|
+
}
|
|
687
|
+
}
|
|
463
688
|
}
|
|
464
689
|
const extensionsResult = this.deps.getResourceLoader().getExtensions();
|
|
465
690
|
if (options.flagValues) {
|
|
@@ -482,10 +707,21 @@ export class RuntimeBuilder {
|
|
|
482
707
|
throw error;
|
|
483
708
|
}
|
|
484
709
|
this.deps.applyExtensionBindings(runner);
|
|
710
|
+
const boundLaneKey = getBoundWorktreeLaneKey();
|
|
711
|
+
const hardLaneWorker = boundLaneKey !== undefined && isWorkerSession();
|
|
712
|
+
const explicitlyRequestedTools = options.activeToolNames ?? (baseToolsOverride ? Object.keys(baseToolsOverride) : undefined);
|
|
713
|
+
if (hardLaneWorker && explicitlyRequestedTools?.includes("bash")) {
|
|
714
|
+
throw new Error("hard lane workers cannot request unrestricted bash; use typed worktree_sync actions");
|
|
715
|
+
}
|
|
485
716
|
const defaultActiveToolNames = mapToolNamesForPlatform(baseToolsOverride
|
|
486
717
|
? Object.keys(baseToolsOverride)
|
|
487
718
|
: [...DEFAULT_ACTIVE_TOOL_NAMES, ...(settingsManager.getScoutSettings().enabled ? ["context_scout"] : [])]);
|
|
488
|
-
const baseActiveToolNames = mapToolNamesForPlatform(options.activeToolNames ?? defaultActiveToolNames);
|
|
719
|
+
const baseActiveToolNames = mapToolNamesForPlatform(options.activeToolNames ?? defaultActiveToolNames).filter((name) => !hardLaneWorker || name !== "bash");
|
|
720
|
+
if (hardLaneWorker &&
|
|
721
|
+
settingsManager.getWorktreeSyncSettings().enabled &&
|
|
722
|
+
!baseActiveToolNames.includes("worktree_sync")) {
|
|
723
|
+
baseActiveToolNames.push("worktree_sync");
|
|
724
|
+
}
|
|
489
725
|
this.refreshToolRegistry({
|
|
490
726
|
activeToolNames: baseActiveToolNames,
|
|
491
727
|
includeAllExtensionTools: options.includeAllExtensionTools,
|
|
@@ -525,13 +761,29 @@ export class RuntimeBuilder {
|
|
|
525
761
|
this._reloadRequested = false;
|
|
526
762
|
}
|
|
527
763
|
}
|
|
528
|
-
|
|
764
|
+
/**
|
|
765
|
+
* Unified reload-gate quiescence check: refuses the caller's action (message-prefixed by
|
|
766
|
+
* `action`) while the agent is streaming, is compacting, or ANY background work unit is still
|
|
767
|
+
* registered in the in-process quiesce registry — background lanes (research/worker/
|
|
768
|
+
* model-fitness), a context-scout run, or an isolated completion (see reload-blockers.ts). Every
|
|
769
|
+
* live-op entry point below calls this so they refuse identically; this is a synchronous refusal
|
|
770
|
+
* (not a wait/poll) — callers retry via the same coalescing `reload()` already provides.
|
|
771
|
+
*/
|
|
772
|
+
_assertReloadQuiescent(action) {
|
|
529
773
|
if (this.deps.isStreaming()) {
|
|
530
|
-
throw new Error(
|
|
774
|
+
throw new Error(`Cannot ${action} while the agent is streaming or a tool call is active`);
|
|
531
775
|
}
|
|
532
776
|
if (this.deps.isCompacting()) {
|
|
533
|
-
throw new Error(
|
|
777
|
+
throw new Error(`Cannot ${action} while context compaction or branch summarization is active`);
|
|
778
|
+
}
|
|
779
|
+
const units = getInFlightWorkUnits(this.deps.getAgentDir());
|
|
780
|
+
if (units.length > 0) {
|
|
781
|
+
const summary = units.map(describeInFlightWorkUnit).join(", ");
|
|
782
|
+
throw new Error(`Cannot ${action} while background work is in flight: ${summary}`);
|
|
534
783
|
}
|
|
784
|
+
}
|
|
785
|
+
async _reloadOnce() {
|
|
786
|
+
this._assertReloadQuiescent("reload");
|
|
535
787
|
const previousRunner = this.deps.getExtensionRunner();
|
|
536
788
|
const snapshot = this._createReloadRuntimeSnapshot();
|
|
537
789
|
// Preserve the pre-filter tool REQUEST across the rebuild, not the capability/profile-filtered
|
|
@@ -600,6 +852,9 @@ export class RuntimeBuilder {
|
|
|
600
852
|
await this.deps.getResourceLoader().commitReload?.();
|
|
601
853
|
// Re-derive the memory subsystem from the reloaded settings/providers.
|
|
602
854
|
await this.deps.initializeMemory();
|
|
855
|
+
// This generation has fully committed (no rollback below this point), so any local
|
|
856
|
+
// runtime the host no longer routes to under the new configuration can be stopped now.
|
|
857
|
+
this.deps.reconcileLocalRuntimes?.();
|
|
603
858
|
}
|
|
604
859
|
catch (error) {
|
|
605
860
|
offReloadErrors?.();
|
|
@@ -618,12 +873,7 @@ export class RuntimeBuilder {
|
|
|
618
873
|
* Falls back to full reload on error.
|
|
619
874
|
*/
|
|
620
875
|
async unloadExtensionLive(extensionPath) {
|
|
621
|
-
|
|
622
|
-
throw new Error("Cannot unload extension while the agent is streaming or a tool call is active");
|
|
623
|
-
}
|
|
624
|
-
if (this.deps.isCompacting()) {
|
|
625
|
-
throw new Error("Cannot unload extension while context compaction or branch summarization is active");
|
|
626
|
-
}
|
|
876
|
+
this._assertReloadQuiescent("unload extension");
|
|
627
877
|
const ext = this.deps.getResourceLoader().getLoadedExtension(extensionPath);
|
|
628
878
|
if (!ext) {
|
|
629
879
|
return; // Nothing to unload
|
|
@@ -682,11 +932,9 @@ export class RuntimeBuilder {
|
|
|
682
932
|
* Falls back to full reload on error.
|
|
683
933
|
*/
|
|
684
934
|
async loadExtensionLive(extensionPath) {
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
if (this.deps.isCompacting()) {
|
|
689
|
-
throw new Error("Cannot load extension while context compaction or branch summarization is active");
|
|
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}`);
|
|
690
938
|
}
|
|
691
939
|
const previousRunner = this.deps.getExtensionRunner();
|
|
692
940
|
try {
|
|
@@ -728,12 +976,7 @@ export class RuntimeBuilder {
|
|
|
728
976
|
* Falls back to full reload if any individual load/unload fails.
|
|
729
977
|
*/
|
|
730
978
|
async reconcileLoadedExtensions() {
|
|
731
|
-
|
|
732
|
-
throw new Error("Cannot reconcile extensions while the agent is streaming or a tool call is active");
|
|
733
|
-
}
|
|
734
|
-
if (this.deps.isCompacting()) {
|
|
735
|
-
throw new Error("Cannot reconcile extensions while context compaction or branch summarization is active");
|
|
736
|
-
}
|
|
979
|
+
this._assertReloadQuiescent("reconcile extensions");
|
|
737
980
|
try {
|
|
738
981
|
// Get all discoverable extension paths
|
|
739
982
|
const allDiscoverablePaths = await this.deps.getResourceLoader().getDiscoverableExtensionPaths();
|