@caupulican/pi-adaptative 0.81.40 → 0.81.42
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 +41 -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 +1 -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 +1 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/text.py +5 -1
- package/dist/bundled-resources/runtimes/pi-shell-engine/context.py +3 -3
- package/dist/bundled-resources/runtimes/pi-shell-engine/errors.py +8 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/exec.py +26 -3
- package/dist/bundled-resources/runtimes/pi-shell-engine/expand.py +3 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/main.py +4 -1
- package/dist/bundled-resources/runtimes/pi-shell-engine/state.py +2 -1
- package/dist/bundled-resources/runtimes/pi-shell-engine/tokens.py +2 -0
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +22 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-paths.d.ts +38 -0
- package/dist/core/agent-paths.d.ts.map +1 -1
- package/dist/core/agent-paths.js +77 -0
- package/dist/core/agent-paths.js.map +1 -1
- package/dist/core/agent-session-contracts.d.ts +311 -0
- package/dist/core/agent-session-contracts.d.ts.map +1 -0
- package/dist/core/agent-session-contracts.js +26 -0
- package/dist/core/agent-session-contracts.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +3 -0
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session.d.ts +26 -405
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +90 -316
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +3 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/autonomy/contracts.d.ts +2 -0
- package/dist/core/autonomy/contracts.d.ts.map +1 -1
- package/dist/core/autonomy/contracts.js.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.js +4 -9
- package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.d.ts +3 -1
- package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.js +19 -5
- package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
- package/dist/core/autonomy/path-scope.d.ts +14 -0
- package/dist/core/autonomy/path-scope.d.ts.map +1 -1
- package/dist/core/autonomy/path-scope.js +37 -6
- package/dist/core/autonomy/path-scope.js.map +1 -1
- package/dist/core/background-lane-controller.d.ts +30 -2
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +33 -1
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/bedrock-sso-login.d.ts +16 -0
- package/dist/core/bedrock-sso-login.d.ts.map +1 -0
- package/dist/core/bedrock-sso-login.js +98 -0
- package/dist/core/bedrock-sso-login.js.map +1 -0
- package/dist/core/compaction-controller.d.ts.map +1 -1
- package/dist/core/compaction-controller.js +1 -1
- package/dist/core/compaction-controller.js.map +1 -1
- package/dist/core/compaction-support.d.ts +3 -8
- package/dist/core/compaction-support.d.ts.map +1 -1
- package/dist/core/compaction-support.js +3 -3
- package/dist/core/compaction-support.js.map +1 -1
- package/dist/core/context-pipeline.d.ts +1 -1
- package/dist/core/context-pipeline.d.ts.map +1 -1
- package/dist/core/context-pipeline.js +7 -33
- package/dist/core/context-pipeline.js.map +1 -1
- package/dist/core/cost/cost-summary.d.ts.map +1 -1
- package/dist/core/cost/cost-summary.js +5 -3
- package/dist/core/cost/cost-summary.js.map +1 -1
- package/dist/core/cost/daily-usage.d.ts.map +1 -1
- package/dist/core/cost/daily-usage.js +4 -5
- package/dist/core/cost/daily-usage.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 +11 -1
- package/dist/core/delegation/managed-lane-controller.d.ts.map +1 -1
- package/dist/core/delegation/managed-lane-controller.js +84 -41
- package/dist/core/delegation/managed-lane-controller.js.map +1 -1
- package/dist/core/delegation/session-worker-claim.d.ts.map +1 -1
- package/dist/core/delegation/session-worker-claim.js +4 -3
- package/dist/core/delegation/session-worker-claim.js.map +1 -1
- package/dist/core/delegation/worker-action-journal.d.ts +73 -0
- package/dist/core/delegation/worker-action-journal.d.ts.map +1 -0
- package/dist/core/delegation/worker-action-journal.js +297 -0
- package/dist/core/delegation/worker-action-journal.js.map +1 -0
- package/dist/core/delegation/worker-actions.d.ts +36 -1
- package/dist/core/delegation/worker-actions.d.ts.map +1 -1
- package/dist/core/delegation/worker-actions.js +171 -46
- package/dist/core/delegation/worker-actions.js.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts +75 -0
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -0
- package/dist/core/delegation/worker-agent-control-coordinator.js +218 -0
- package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -0
- package/dist/core/delegation/worker-agent-control.d.ts +66 -0
- package/dist/core/delegation/worker-agent-control.d.ts.map +1 -0
- package/dist/core/delegation/worker-agent-control.js +163 -0
- package/dist/core/delegation/worker-agent-control.js.map +1 -0
- package/dist/core/delegation/worker-attempt-executor.d.ts +80 -0
- package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -0
- package/dist/core/delegation/worker-attempt-executor.js +343 -0
- package/dist/core/delegation/worker-attempt-executor.js.map +1 -0
- package/dist/core/delegation/worker-claim.d.ts +30 -0
- package/dist/core/delegation/worker-claim.d.ts.map +1 -1
- package/dist/core/delegation/worker-claim.js +205 -53
- package/dist/core/delegation/worker-claim.js.map +1 -1
- package/dist/core/delegation/worker-conversation-store.d.ts +116 -0
- package/dist/core/delegation/worker-conversation-store.d.ts.map +1 -0
- package/dist/core/delegation/worker-conversation-store.js +442 -0
- package/dist/core/delegation/worker-conversation-store.js.map +1 -0
- package/dist/core/delegation/worker-delegation-controller.d.ts +21 -5
- package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.js +386 -251
- package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
- package/dist/core/delegation/worker-delegation-request.d.ts +14 -0
- package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-request.js.map +1 -1
- package/dist/core/delegation/worker-dispatch-scheduler.d.ts +4 -2
- package/dist/core/delegation/worker-dispatch-scheduler.d.ts.map +1 -1
- package/dist/core/delegation/worker-dispatch-scheduler.js +16 -6
- package/dist/core/delegation/worker-dispatch-scheduler.js.map +1 -1
- package/dist/core/delegation/worker-execution-policy.d.ts +2 -1
- package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
- package/dist/core/delegation/worker-execution-policy.js +5 -7
- package/dist/core/delegation/worker-execution-policy.js.map +1 -1
- package/dist/core/delegation/worker-lifecycle.d.ts +44 -1
- package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
- package/dist/core/delegation/worker-lifecycle.js +120 -0
- package/dist/core/delegation/worker-lifecycle.js.map +1 -1
- package/dist/core/delegation/worker-process-owner.d.ts +18 -0
- package/dist/core/delegation/worker-process-owner.d.ts.map +1 -0
- package/dist/core/delegation/worker-process-owner.js +54 -0
- package/dist/core/delegation/worker-process-owner.js.map +1 -0
- package/dist/core/delegation/worker-profile-resolver.d.ts +5 -1
- package/dist/core/delegation/worker-profile-resolver.d.ts.map +1 -1
- package/dist/core/delegation/worker-profile-resolver.js +8 -0
- package/dist/core/delegation/worker-profile-resolver.js.map +1 -1
- package/dist/core/delegation/worker-recovery-coordinator.d.ts +54 -0
- package/dist/core/delegation/worker-recovery-coordinator.d.ts.map +1 -0
- package/dist/core/delegation/worker-recovery-coordinator.js +181 -0
- package/dist/core/delegation/worker-recovery-coordinator.js.map +1 -0
- package/dist/core/delegation/worker-resource-catalog.d.ts +32 -0
- package/dist/core/delegation/worker-resource-catalog.d.ts.map +1 -0
- package/dist/core/delegation/worker-resource-catalog.js +116 -0
- package/dist/core/delegation/worker-resource-catalog.js.map +1 -0
- package/dist/core/delegation/worker-resource-materializer.d.ts +47 -0
- package/dist/core/delegation/worker-resource-materializer.d.ts.map +1 -0
- package/dist/core/delegation/worker-resource-materializer.js +137 -0
- package/dist/core/delegation/worker-resource-materializer.js.map +1 -0
- package/dist/core/delegation/worker-runner.d.ts +3 -1
- package/dist/core/delegation/worker-runner.d.ts.map +1 -1
- package/dist/core/delegation/worker-runner.js +189 -54
- package/dist/core/delegation/worker-runner.js.map +1 -1
- package/dist/core/delegation/worker-terminal-finalizer.d.ts +23 -0
- package/dist/core/delegation/worker-terminal-finalizer.d.ts.map +1 -0
- package/dist/core/delegation/worker-terminal-finalizer.js +12 -0
- package/dist/core/delegation/worker-terminal-finalizer.js.map +1 -0
- package/dist/core/delegation/worker-write-reservation-coordinator.d.ts +38 -0
- package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -0
- package/dist/core/delegation/worker-write-reservation-coordinator.js +107 -0
- package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -0
- package/dist/core/delegation/worker-write-reservation.d.ts +90 -0
- package/dist/core/delegation/worker-write-reservation.d.ts.map +1 -0
- package/dist/core/delegation/worker-write-reservation.js +348 -0
- package/dist/core/delegation/worker-write-reservation.js.map +1 -0
- package/dist/core/extension-import-authority.d.ts +6 -0
- package/dist/core/extension-import-authority.d.ts.map +1 -0
- package/dist/core/extension-import-authority.js +10 -0
- package/dist/core/extension-import-authority.js.map +1 -0
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +2 -3
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +14 -5
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/stale-context.d.ts +2 -0
- package/dist/core/extensions/stale-context.d.ts.map +1 -0
- package/dist/core/extensions/stale-context.js +2 -0
- package/dist/core/extensions/stale-context.js.map +1 -0
- package/dist/core/extensions/types.d.ts +8 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/foreground-recovery-controller.d.ts +1 -0
- package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
- package/dist/core/foreground-recovery-controller.js +13 -13
- package/dist/core/foreground-recovery-controller.js.map +1 -1
- package/dist/core/goal-loop-controller.d.ts +14 -9
- package/dist/core/goal-loop-controller.d.ts.map +1 -1
- package/dist/core/goal-loop-controller.js +47 -75
- package/dist/core/goal-loop-controller.js.map +1 -1
- package/dist/core/goals/compact-goal-context.d.ts +11 -0
- package/dist/core/goals/compact-goal-context.d.ts.map +1 -0
- package/dist/core/goals/compact-goal-context.js +59 -0
- package/dist/core/goals/compact-goal-context.js.map +1 -0
- package/dist/core/goals/goal-acceptance.d.ts.map +1 -1
- package/dist/core/goals/goal-acceptance.js +2 -0
- package/dist/core/goals/goal-acceptance.js.map +1 -1
- package/dist/core/goals/goal-auto-continue-controller.d.ts +2 -1
- package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-auto-continue-controller.js +5 -8
- package/dist/core/goals/goal-auto-continue-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-controller.d.ts +2 -2
- package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-controller.js +42 -11
- package/dist/core/goals/goal-continuation-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-defaults.d.ts +4 -29
- package/dist/core/goals/goal-continuation-defaults.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-defaults.js +4 -32
- package/dist/core/goals/goal-continuation-defaults.js.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts +8 -18
- package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.js +9 -179
- package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
- package/dist/core/goals/goal-lifecycle.d.ts +35 -12
- package/dist/core/goals/goal-lifecycle.d.ts.map +1 -1
- package/dist/core/goals/goal-lifecycle.js +98 -13
- package/dist/core/goals/goal-lifecycle.js.map +1 -1
- package/dist/core/goals/goal-record.d.ts +17 -0
- package/dist/core/goals/goal-record.d.ts.map +1 -0
- package/dist/core/goals/goal-record.js +31 -0
- package/dist/core/goals/goal-record.js.map +1 -0
- package/dist/core/goals/goal-session-controller.d.ts +42 -0
- package/dist/core/goals/goal-session-controller.d.ts.map +1 -0
- package/dist/core/goals/goal-session-controller.js +128 -0
- package/dist/core/goals/goal-session-controller.js.map +1 -0
- package/dist/core/goals/goal-state.d.ts +45 -25
- package/dist/core/goals/goal-state.d.ts.map +1 -1
- package/dist/core/goals/goal-state.js +85 -15
- package/dist/core/goals/goal-state.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts +1 -4
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js +49 -34
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/goals/session-goal-state.d.ts +18 -8
- package/dist/core/goals/session-goal-state.d.ts.map +1 -1
- package/dist/core/goals/session-goal-state.js +134 -11
- package/dist/core/goals/session-goal-state.js.map +1 -1
- package/dist/core/human-input-controller.d.ts +47 -0
- package/dist/core/human-input-controller.d.ts.map +1 -0
- package/dist/core/human-input-controller.js +181 -0
- package/dist/core/human-input-controller.js.map +1 -0
- package/dist/core/local-runtime-controller.d.ts +1 -1
- package/dist/core/local-runtime-controller.d.ts.map +1 -1
- package/dist/core/local-runtime-controller.js.map +1 -1
- package/dist/core/model-capability.d.ts +0 -19
- package/dist/core/model-capability.d.ts.map +1 -1
- package/dist/core/model-capability.js +0 -19
- package/dist/core/model-capability.js.map +1 -1
- package/dist/core/model-registry.d.ts +6 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +13 -5
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +16 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +32 -16
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-router-controller.d.ts +1 -1
- package/dist/core/model-router-controller.d.ts.map +1 -1
- package/dist/core/model-router-controller.js.map +1 -1
- package/dist/core/model-selection-controller.d.ts +1 -1
- package/dist/core/model-selection-controller.d.ts.map +1 -1
- package/dist/core/model-selection-controller.js.map +1 -1
- package/dist/core/models/model-endpoint.d.ts +3 -0
- package/dist/core/models/model-endpoint.d.ts.map +1 -0
- package/dist/core/models/model-endpoint.js +11 -0
- package/dist/core/models/model-endpoint.js.map +1 -0
- package/dist/core/orchestration/agent-resume.d.ts +2 -0
- package/dist/core/orchestration/agent-resume.d.ts.map +1 -1
- package/dist/core/orchestration/agent-resume.js +7 -0
- package/dist/core/orchestration/agent-resume.js.map +1 -1
- package/dist/core/orchestration/attempt-usage.d.ts +28 -0
- package/dist/core/orchestration/attempt-usage.d.ts.map +1 -0
- package/dist/core/orchestration/attempt-usage.js +168 -0
- package/dist/core/orchestration/attempt-usage.js.map +1 -0
- package/dist/core/orchestration/capability-gateway.d.ts +19 -1
- package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
- package/dist/core/orchestration/capability-gateway.js +128 -28
- package/dist/core/orchestration/capability-gateway.js.map +1 -1
- package/dist/core/orchestration/contracts.d.ts +35 -0
- package/dist/core/orchestration/contracts.d.ts.map +1 -1
- package/dist/core/orchestration/contracts.js +17 -0
- package/dist/core/orchestration/contracts.js.map +1 -1
- package/dist/core/orchestration/delegation-ledger.d.ts +17 -2
- package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -1
- package/dist/core/orchestration/delegation-ledger.js +81 -3
- package/dist/core/orchestration/delegation-ledger.js.map +1 -1
- package/dist/core/orchestration/event-store.d.ts +1 -0
- package/dist/core/orchestration/event-store.d.ts.map +1 -1
- package/dist/core/orchestration/event-store.js +78 -38
- package/dist/core/orchestration/event-store.js.map +1 -1
- package/dist/core/orchestration/profile-registry.d.ts.map +1 -1
- package/dist/core/orchestration/profile-registry.js +81 -41
- package/dist/core/orchestration/profile-registry.js.map +1 -1
- package/dist/core/orchestration/profile-store.d.ts.map +1 -1
- package/dist/core/orchestration/profile-store.js +18 -4
- package/dist/core/orchestration/profile-store.js.map +1 -1
- package/dist/core/orchestration/risk-budget.d.ts +2 -0
- package/dist/core/orchestration/risk-budget.d.ts.map +1 -1
- package/dist/core/orchestration/risk-budget.js +26 -0
- package/dist/core/orchestration/risk-budget.js.map +1 -1
- package/dist/core/orchestration/task-runtime.d.ts +13 -1
- package/dist/core/orchestration/task-runtime.d.ts.map +1 -1
- package/dist/core/orchestration/task-runtime.js +127 -16
- package/dist/core/orchestration/task-runtime.js.map +1 -1
- package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
- package/dist/core/orchestration/work-state-projection.js +1 -1
- package/dist/core/orchestration/work-state-projection.js.map +1 -1
- package/dist/core/orchestration/worker-execution-contract.d.ts +3 -1
- package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -1
- package/dist/core/orchestration/worker-execution-contract.js +75 -23
- package/dist/core/orchestration/worker-execution-contract.js.map +1 -1
- package/dist/core/orchestration/worker-result-adapter.d.ts +9 -3
- package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -1
- package/dist/core/orchestration/worker-result-adapter.js +167 -14
- package/dist/core/orchestration/worker-result-adapter.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +20 -3
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/profile-filter-controller.d.ts +8 -1
- package/dist/core/profile-filter-controller.d.ts.map +1 -1
- package/dist/core/profile-filter-controller.js +23 -5
- package/dist/core/profile-filter-controller.js.map +1 -1
- package/dist/core/prompt-templates.d.ts +1 -0
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +18 -29
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/reflection-controller.d.ts +2 -2
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +92 -54
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/request-auth.d.ts +7 -0
- package/dist/core/request-auth.d.ts.map +1 -0
- package/dist/core/request-auth.js +8 -0
- package/dist/core/request-auth.js.map +1 -0
- package/dist/core/research/evidence-bundle.d.ts +20 -0
- package/dist/core/research/evidence-bundle.d.ts.map +1 -1
- package/dist/core/research/evidence-bundle.js +173 -69
- package/dist/core/research/evidence-bundle.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +16 -6
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/risk-classifier.d.ts.map +1 -1
- package/dist/core/risk-classifier.js +8 -0
- package/dist/core/risk-classifier.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +22 -3
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +147 -80
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +7 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/secrets/credential-exposure-guard.d.ts +9 -0
- package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -0
- package/dist/core/secrets/credential-exposure-guard.js +241 -0
- package/dist/core/secrets/credential-exposure-guard.js.map +1 -0
- package/dist/core/secrets/secret-dotenv.d.ts +27 -0
- package/dist/core/secrets/secret-dotenv.d.ts.map +1 -0
- package/dist/core/secrets/secret-dotenv.js +183 -0
- package/dist/core/secrets/secret-dotenv.js.map +1 -0
- package/dist/core/secrets/secret-vault-format.d.ts +112 -0
- package/dist/core/secrets/secret-vault-format.d.ts.map +1 -0
- package/dist/core/secrets/secret-vault-format.js +397 -0
- package/dist/core/secrets/secret-vault-format.js.map +1 -0
- package/dist/core/secrets/secret-vault.d.ts +72 -0
- package/dist/core/secrets/secret-vault.d.ts.map +1 -0
- package/dist/core/secrets/secret-vault.js +671 -0
- package/dist/core/secrets/secret-vault.js.map +1 -0
- package/dist/core/session-analytics.d.ts +4 -23
- package/dist/core/session-analytics.d.ts.map +1 -1
- package/dist/core/session-analytics.js +39 -69
- package/dist/core/session-analytics.js.map +1 -1
- package/dist/core/session-artifact-bundle.d.ts +35 -0
- package/dist/core/session-artifact-bundle.d.ts.map +1 -0
- package/dist/core/session-artifact-bundle.js +61 -0
- package/dist/core/session-artifact-bundle.js.map +1 -0
- package/dist/core/session-role.d.ts +5 -0
- package/dist/core/session-role.d.ts.map +1 -1
- package/dist/core/session-role.js +14 -1
- package/dist/core/session-role.js.map +1 -1
- package/dist/core/session-tree-navigator.d.ts +4 -6
- package/dist/core/session-tree-navigator.d.ts.map +1 -1
- package/dist/core/session-tree-navigator.js +4 -1
- package/dist/core/session-tree-navigator.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +2 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tool-capability-policy.d.ts.map +1 -1
- package/dist/core/tool-capability-policy.js +1 -0
- package/dist/core/tool-capability-policy.js.map +1 -1
- package/dist/core/tool-gate-controller.d.ts.map +1 -1
- package/dist/core/tool-gate-controller.js +8 -2
- package/dist/core/tool-gate-controller.js.map +1 -1
- package/dist/core/tool-protocol-controller.d.ts +2 -4
- package/dist/core/tool-protocol-controller.d.ts.map +1 -1
- package/dist/core/tool-protocol-controller.js.map +1 -1
- package/dist/core/tool-recovery-stats.d.ts +21 -1
- package/dist/core/tool-recovery-stats.d.ts.map +1 -1
- package/dist/core/tool-recovery-stats.js.map +1 -1
- package/dist/core/tools/bash.d.ts +5 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +59 -5
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/delegate-status.d.ts +6 -1
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +106 -25
- package/dist/core/tools/delegate-status.js.map +1 -1
- package/dist/core/tools/delegate.d.ts +9 -1
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +329 -69
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/git-filter.d.ts +1 -8
- package/dist/core/tools/git-filter.d.ts.map +1 -1
- package/dist/core/tools/git-filter.js +2 -63
- package/dist/core/tools/git-filter.js.map +1 -1
- package/dist/core/tools/goal.d.ts +5 -3
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +97 -19
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -0
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +1 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/orchestration-panel.d.ts +1 -4
- package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
- package/dist/core/tools/orchestration-panel.js +0 -44
- package/dist/core/tools/orchestration-panel.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +11 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +36 -3
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/python.d.ts +2 -0
- package/dist/core/tools/python.d.ts.map +1 -1
- package/dist/core/tools/python.js +3 -1
- package/dist/core/tools/python.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/run-process.d.ts +1 -1
- package/dist/core/tools/run-process.d.ts.map +1 -1
- package/dist/core/tools/run-process.js +69 -9
- package/dist/core/tools/run-process.js.map +1 -1
- package/dist/core/tools/search-command-guard.d.ts +14 -0
- package/dist/core/tools/search-command-guard.d.ts.map +1 -0
- package/dist/core/tools/search-command-guard.js +333 -0
- package/dist/core/tools/search-command-guard.js.map +1 -0
- package/dist/core/tools/secret-store.d.ts +38 -0
- package/dist/core/tools/secret-store.d.ts.map +1 -0
- package/dist/core/tools/secret-store.js +412 -0
- package/dist/core/tools/secret-store.js.map +1 -0
- package/dist/core/tools/shell-command-parser.d.ts +16 -0
- package/dist/core/tools/shell-command-parser.d.ts.map +1 -0
- package/dist/core/tools/shell-command-parser.js +113 -0
- package/dist/core/tools/shell-command-parser.js.map +1 -0
- package/dist/core/tools/shell-contract-router.d.ts.map +1 -1
- package/dist/core/tools/shell-contract-router.js +12 -5
- package/dist/core/tools/shell-contract-router.js.map +1 -1
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +4 -7
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/util/atomic-file.d.ts +6 -2
- package/dist/core/util/atomic-file.d.ts.map +1 -1
- package/dist/core/util/atomic-file.js +4 -4
- package/dist/core/util/atomic-file.js.map +1 -1
- package/dist/core/util/bounded-file.d.ts +15 -0
- package/dist/core/util/bounded-file.d.ts.map +1 -0
- package/dist/core/util/bounded-file.js +120 -0
- package/dist/core/util/bounded-file.js.map +1 -0
- package/dist/core/util/bounded-jsonl.d.ts.map +1 -1
- package/dist/core/util/bounded-jsonl.js +119 -9
- package/dist/core/util/bounded-jsonl.js.map +1 -1
- package/dist/core/util/bounded-value.d.ts +3 -0
- package/dist/core/util/bounded-value.d.ts.map +1 -0
- package/dist/core/util/bounded-value.js +12 -0
- package/dist/core/util/bounded-value.js.map +1 -0
- package/dist/core/util/value-guards.d.ts +2 -0
- package/dist/core/util/value-guards.d.ts.map +1 -1
- package/dist/core/util/value-guards.js +5 -0
- package/dist/core/util/value-guards.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +25 -11
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/auth-dialogs-controller.d.ts +4 -0
- package/dist/modes/interactive/auth-dialogs-controller.d.ts.map +1 -1
- package/dist/modes/interactive/auth-dialogs-controller.js +60 -1
- package/dist/modes/interactive/auth-dialogs-controller.js.map +1 -1
- package/dist/modes/interactive/components/activity-lane.d.ts +55 -0
- package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -0
- package/dist/modes/interactive/components/activity-lane.js +304 -0
- package/dist/modes/interactive/components/activity-lane.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +19 -10
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/expandable-text.d.ts +12 -0
- package/dist/modes/interactive/components/expandable-text.d.ts.map +1 -0
- package/dist/modes/interactive/components/expandable-text.js +17 -0
- package/dist/modes/interactive/components/expandable-text.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +15 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +30 -21
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +6 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +23 -14
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +27 -44
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +4 -4
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +19 -11
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +53 -20
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-group.js +3 -0
- package/dist/modes/interactive/components/tool-group.js.map +1 -1
- package/dist/modes/interactive/components/usage-action-selector.d.ts +16 -0
- package/dist/modes/interactive/components/usage-action-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/usage-action-selector.js +46 -0
- package/dist/modes/interactive/components/usage-action-selector.js.map +1 -0
- package/dist/modes/interactive/extension-ui-host.d.ts.map +1 -1
- package/dist/modes/interactive/extension-ui-host.js +1 -0
- package/dist/modes/interactive/extension-ui-host.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts +15 -0
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +27 -19
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/history-reload-math.d.ts +6 -2
- package/dist/modes/interactive/history-reload-math.d.ts.map +1 -1
- package/dist/modes/interactive/history-reload-math.js +10 -5
- package/dist/modes/interactive/history-reload-math.js.map +1 -1
- package/dist/modes/interactive/interactive-event-controller.d.ts +74 -0
- package/dist/modes/interactive/interactive-event-controller.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-event-controller.js +328 -0
- package/dist/modes/interactive/interactive-event-controller.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +20 -25
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +196 -608
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/loaded-resources-view.d.ts +20 -0
- package/dist/modes/interactive/loaded-resources-view.d.ts.map +1 -0
- package/dist/modes/interactive/loaded-resources-view.js +147 -0
- package/dist/modes/interactive/loaded-resources-view.js.map +1 -0
- package/dist/modes/interactive/resource-display.d.ts.map +1 -1
- package/dist/modes/interactive/resource-display.js +8 -2
- package/dist/modes/interactive/resource-display.js.map +1 -1
- package/dist/modes/interactive/resource-shell-commands.d.ts +1 -5
- package/dist/modes/interactive/resource-shell-commands.d.ts.map +1 -1
- package/dist/modes/interactive/resource-shell-commands.js +0 -5
- package/dist/modes/interactive/resource-shell-commands.js.map +1 -1
- package/dist/modes/interactive/session-flow-commands.d.ts +10 -6
- package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
- package/dist/modes/interactive/session-flow-commands.js +123 -70
- package/dist/modes/interactive/session-flow-commands.js.map +1 -1
- package/dist/modes/interactive/usage-commands.d.ts +34 -0
- package/dist/modes/interactive/usage-commands.d.ts.map +1 -0
- package/dist/modes/interactive/usage-commands.js +225 -0
- package/dist/modes/interactive/usage-commands.js.map +1 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +5 -3
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +3 -1
- package/dist/utils/version-check.js.map +1 -1
- package/docs/UI_POLISH_ORCHESTRATION.md +25 -31
- package/docs/UI_QUALITY_ORCHESTRATION.md +22 -24
- package/docs/providers.md +9 -1
- package/docs/tool-repair.md +3 -0
- package/docs/ui-reference/README.md +6 -6
- package/docs/ui-reference/orchestration-after.txt +14 -7
- package/docs/ui-reference/orchestration-before.txt +12 -6
- package/docs/ui-reference/orchestration-reference.txt +15 -5
- package/docs/usage.md +9 -1
- package/docs/windows.md +4 -2
- 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/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 +13 -13
- package/package.json +4 -4
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
* `handleSessionCommand`) take their own minimal host shapes so their behaviour
|
|
11
11
|
* tests keep exercising them through interactive-mode's thin wrappers unchanged.
|
|
12
12
|
*/
|
|
13
|
+
import { randomUUID } from "node:crypto";
|
|
13
14
|
import { Loader, Spacer, Text } from "@caupulican/pi-tui";
|
|
14
|
-
import {
|
|
15
|
+
import { cancelPersistedGoal, clearPersistedGoal, editPersistedGoal, getGoalStateRevision, pausePersistedGoal, replaceGoal, resumeGoal, resumePersistedGoal, } from "../../core/goals/goal-lifecycle.js";
|
|
15
16
|
import { applyGoalAction, completeGoalManually } from "../../core/goals/goal-tool-core.js";
|
|
16
|
-
import { findExactModelReferenceMatch, resolveModelScope } from "../../core/model-resolver.js";
|
|
17
|
+
import { findExactModelReferenceMatch, resolveModelScope, resolveModelScopeWithDiagnostics, } from "../../core/model-resolver.js";
|
|
17
18
|
import { MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
18
19
|
import { listAllSessions, listSessions, openSession } from "../../core/session-manager-factory.js";
|
|
19
20
|
import { parseTaskCommand } from "../../core/tasks/task-command.js";
|
|
@@ -67,12 +68,17 @@ export async function showModelsSelector(host) {
|
|
|
67
68
|
// Get all available models
|
|
68
69
|
host.session.modelRegistry.refresh();
|
|
69
70
|
const allModels = host.session.modelRegistry.getAvailable();
|
|
70
|
-
|
|
71
|
+
const allModelIds = new Set(allModels.map((model) => `${model.provider}/${model.id}`));
|
|
72
|
+
const configuredPatterns = host.settingsManager.getEnabledModels();
|
|
73
|
+
const sessionScopedModels = host.session.scopedModels;
|
|
74
|
+
if (allModels.length === 0 && !configuredPatterns?.length && sessionScopedModels.length === 0) {
|
|
71
75
|
host.showStatus("No models available");
|
|
72
76
|
return;
|
|
73
77
|
}
|
|
78
|
+
const configuredScope = configuredPatterns?.length
|
|
79
|
+
? await resolveModelScopeWithDiagnostics(configuredPatterns, host.session.modelRegistry)
|
|
80
|
+
: undefined;
|
|
74
81
|
// Check if session has scoped models (from previous session-only changes or CLI --models)
|
|
75
|
-
const sessionScopedModels = host.session.scopedModels;
|
|
76
82
|
const hasSessionScope = sessionScopedModels.length > 0;
|
|
77
83
|
// Build enabled model IDs from session state or settings
|
|
78
84
|
let currentEnabledIds = null;
|
|
@@ -80,18 +86,22 @@ export async function showModelsSelector(host) {
|
|
|
80
86
|
// Use current session's scoped models
|
|
81
87
|
currentEnabledIds = sessionScopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
82
88
|
}
|
|
83
|
-
else {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
else if (configuredScope) {
|
|
90
|
+
currentEnabledIds = configuredScope.scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
91
|
+
}
|
|
92
|
+
for (const diagnostic of configuredScope?.diagnostics ?? []) {
|
|
93
|
+
if (diagnostic.code !== "no-match")
|
|
94
|
+
continue;
|
|
95
|
+
currentEnabledIds ??= [];
|
|
96
|
+
if (!currentEnabledIds.includes(diagnostic.pattern))
|
|
97
|
+
currentEnabledIds.push(diagnostic.pattern);
|
|
90
98
|
}
|
|
91
99
|
// Helper to update session's scoped models (session-only, no persist)
|
|
92
100
|
const updateSessionModels = async (enabledIds) => {
|
|
93
101
|
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
94
|
-
|
|
102
|
+
const hasEnabledAvailableModel = enabledIds?.some((id) => allModelIds.has(id)) ?? false;
|
|
103
|
+
const allAvailableModelsEnabled = enabledIds !== null && [...allModelIds].every((id) => enabledIds.includes(id));
|
|
104
|
+
if (enabledIds && hasEnabledAvailableModel && !allAvailableModelsEnabled) {
|
|
95
105
|
const newScopedModels = await resolveModelScope(enabledIds, host.session.modelRegistry);
|
|
96
106
|
host.session.setScopedModels(newScopedModels.map((sm) => ({
|
|
97
107
|
model: sm.model,
|
|
@@ -115,9 +125,10 @@ export async function showModelsSelector(host) {
|
|
|
115
125
|
},
|
|
116
126
|
onPersist: (enabledIds) => {
|
|
117
127
|
// Persist to settings
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
128
|
+
const allEnabled = enabledIds !== null &&
|
|
129
|
+
enabledIds.length === allModels.length &&
|
|
130
|
+
enabledIds.every((id) => allModelIds.has(id));
|
|
131
|
+
const newPatterns = enabledIds === null || allEnabled ? undefined : enabledIds;
|
|
121
132
|
host.settingsManager.setEnabledModels(newPatterns ? [...newPatterns] : undefined);
|
|
122
133
|
host.showStatus("Model selection saved to settings");
|
|
123
134
|
},
|
|
@@ -313,19 +324,30 @@ export function showSessionSelector(host) {
|
|
|
313
324
|
return { component: selector, focus: selector };
|
|
314
325
|
});
|
|
315
326
|
}
|
|
316
|
-
async function
|
|
317
|
-
|
|
318
|
-
const result = await host.runtimeHost.switchSession(sessionPath, {
|
|
327
|
+
async function switchSession(host, sessionPath, options, cwdOverride) {
|
|
328
|
+
return host.runtimeHost.switchSession(sessionPath, {
|
|
319
329
|
cwdOverride,
|
|
320
|
-
beforeSessionResourcesStart: (session) => {
|
|
321
|
-
const resumed = resumeBlockedGoalAfterSessionSwitch(session, () => host.refreshAutonomyFooterStatus());
|
|
322
|
-
if (!resumed.ok)
|
|
323
|
-
throw new Error(`Goal resume failed: ${resumed.error}`);
|
|
324
|
-
goalResume = resumed;
|
|
325
|
-
},
|
|
326
330
|
withSession: options?.withSession,
|
|
327
331
|
});
|
|
328
|
-
|
|
332
|
+
}
|
|
333
|
+
async function offerRestoredGoalResume(host) {
|
|
334
|
+
const state = host.session.getGoalStateSnapshot();
|
|
335
|
+
if (!state || (state.status !== "paused" && state.status !== "blocked" && state.status !== "usage_limited")) {
|
|
336
|
+
host.session.restoreGoalRuntimeAfterResume();
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
const choice = await host.extensionUiHost?.showExtensionSelector("Resume stopped goal?", [
|
|
340
|
+
"Resume goal",
|
|
341
|
+
"Leave stopped",
|
|
342
|
+
]);
|
|
343
|
+
if (choice !== "Resume goal")
|
|
344
|
+
return false;
|
|
345
|
+
const resumed = resumePersistedGoal(host.session);
|
|
346
|
+
if (!resumed.ok)
|
|
347
|
+
throw new Error(`Goal resume failed: ${resumed.error}`);
|
|
348
|
+
host.session.restoreGoalRuntimeAfterResume();
|
|
349
|
+
host.refreshAutonomyFooterStatus();
|
|
350
|
+
return true;
|
|
329
351
|
}
|
|
330
352
|
export async function handleResumeSession(host, sessionPath, options) {
|
|
331
353
|
if (host.loadingAnimation) {
|
|
@@ -334,12 +356,13 @@ export async function handleResumeSession(host, sessionPath, options) {
|
|
|
334
356
|
}
|
|
335
357
|
host.statusContainer.clear();
|
|
336
358
|
try {
|
|
337
|
-
const result = await
|
|
359
|
+
const result = await switchSession(host, sessionPath, options);
|
|
338
360
|
if (result.cancelled) {
|
|
339
361
|
return result;
|
|
340
362
|
}
|
|
341
363
|
host.renderCurrentSessionState();
|
|
342
|
-
|
|
364
|
+
const goalResumed = await offerRestoredGoalResume(host);
|
|
365
|
+
host.showStatus(goalResumed ? "Resumed session and goal" : "Resumed session; goal state preserved");
|
|
343
366
|
return result;
|
|
344
367
|
}
|
|
345
368
|
catch (error) {
|
|
@@ -353,12 +376,15 @@ export async function handleResumeSession(host, sessionPath, options) {
|
|
|
353
376
|
return { cancelled: true };
|
|
354
377
|
}
|
|
355
378
|
try {
|
|
356
|
-
const result = await
|
|
379
|
+
const result = await switchSession(host, sessionPath, options, selectedCwd);
|
|
357
380
|
if (result.cancelled) {
|
|
358
381
|
return result;
|
|
359
382
|
}
|
|
360
383
|
host.renderCurrentSessionState();
|
|
361
|
-
|
|
384
|
+
const goalResumed = await offerRestoredGoalResume(host);
|
|
385
|
+
host.showStatus(goalResumed
|
|
386
|
+
? "Resumed session and goal in current cwd"
|
|
387
|
+
: "Resumed session in current cwd; goal state preserved");
|
|
362
388
|
return result;
|
|
363
389
|
}
|
|
364
390
|
catch (retryError) {
|
|
@@ -425,15 +451,10 @@ export function resumeCurrentGoal(host, now = new Date().toISOString()) {
|
|
|
425
451
|
const resumed = resumePersistedGoal(host.session, now);
|
|
426
452
|
if (!resumed.ok)
|
|
427
453
|
return resumed;
|
|
454
|
+
host.session.restoreGoalRuntimeAfterResume();
|
|
428
455
|
host.refreshAutonomyFooterStatus();
|
|
429
456
|
return { ok: true, resumed: true, state: resumed.state };
|
|
430
457
|
}
|
|
431
|
-
function resumeBlockedGoalAfterSessionSwitch(session, refreshAutonomyFooterStatus) {
|
|
432
|
-
const resumed = resumeBlockedPersistedGoal(session);
|
|
433
|
-
if (resumed.ok && resumed.resumed)
|
|
434
|
-
refreshAutonomyFooterStatus();
|
|
435
|
-
return resumed;
|
|
436
|
-
}
|
|
437
458
|
function formatGoalStatus(snapshot) {
|
|
438
459
|
const state = snapshot.goalState;
|
|
439
460
|
if (!state)
|
|
@@ -444,12 +465,17 @@ function formatGoalStatus(snapshot) {
|
|
|
444
465
|
});
|
|
445
466
|
const blockedReason = state.blockedReason ? `\nBlocked reason: ${state.blockedReason}` : "";
|
|
446
467
|
const requirementDetails = requirements.length > 0 ? `\n${requirements.join("\n")}` : "";
|
|
447
|
-
|
|
468
|
+
const tokenUsage = state.tokenBudget !== undefined
|
|
469
|
+
? `\nTokens: ${state.tokensUsed ?? 0}/${state.tokenBudget}`
|
|
470
|
+
: (state.tokensUsed ?? 0) > 0
|
|
471
|
+
? `\nTokens: ${state.tokensUsed ?? 0}`
|
|
472
|
+
: "";
|
|
473
|
+
return `Goal: ${state.userGoal}\nStatus: ${state.status}${blockedReason}${tokenUsage}\nRequirements: open ${snapshot.continuation.openRequirementIds.length}, blocked ${snapshot.continuation.blockedRequirementIds.length}, satisfied ${snapshot.continuation.satisfiedRequirementIds.length}${requirementDetails}\nContinuation: ${snapshot.continuation.action}/${snapshot.continuation.reasonCode}\nControls: /goal edit | /goal pause | /goal resume | /goal reopen <requirement-id> | /goal complete | /goal clear | /goal override <text>`;
|
|
448
474
|
}
|
|
449
475
|
export async function handleGoalCommand(host, text) {
|
|
450
476
|
const input = text.replace(/^\/goal\s*/, "").trim();
|
|
451
477
|
if (!input || input === "status") {
|
|
452
|
-
host.showStatus(formatGoalStatus(host.session.getGoalRuntimeSnapshot({ maxStallTurns: 20 })));
|
|
478
|
+
host.showStatus(formatGoalStatus(host.session.getGoalRuntimeSnapshot({ maxStallTurns: host.getMaxStallTurns?.() ?? 20 })));
|
|
453
479
|
return;
|
|
454
480
|
}
|
|
455
481
|
const now = new Date().toISOString();
|
|
@@ -463,24 +489,61 @@ export async function handleGoalCommand(host, text) {
|
|
|
463
489
|
host.showStatus("Goal resumed.");
|
|
464
490
|
return;
|
|
465
491
|
}
|
|
492
|
+
if (input === "pause") {
|
|
493
|
+
const paused = pausePersistedGoal(host.session, now);
|
|
494
|
+
if (!paused.ok) {
|
|
495
|
+
host.showError(paused.error);
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
host.showStatus("Goal paused.");
|
|
499
|
+
host.refreshAutonomyFooterStatus();
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
if (input === "edit" || input.startsWith("edit ")) {
|
|
503
|
+
const inlineObjective = input.slice("edit".length).trim();
|
|
504
|
+
const objective = inlineObjective || (current ? await host.promptForGoalEdit?.(current.userGoal) : undefined);
|
|
505
|
+
if (!objective) {
|
|
506
|
+
host.showError(current ? "Usage: /goal edit <objective>" : "No goal exists to edit.");
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
const edited = editPersistedGoal(host.session, { userGoal: objective }, now);
|
|
510
|
+
if (!edited.ok) {
|
|
511
|
+
host.showError(edited.error);
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
if (edited.state.status === "active")
|
|
515
|
+
host.session.restoreGoalRuntimeAfterResume();
|
|
516
|
+
host.showStatus("Goal updated.");
|
|
517
|
+
host.refreshAutonomyFooterStatus();
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
466
520
|
if (input === "complete") {
|
|
467
521
|
const completed = completeGoalManually(current, now);
|
|
468
522
|
if (!completed.ok) {
|
|
469
523
|
host.showError(completed.error);
|
|
470
524
|
return;
|
|
471
525
|
}
|
|
472
|
-
host.session.saveGoalStateSnapshot(completed.state);
|
|
526
|
+
host.session.saveGoalStateSnapshot(completed.state, current ? getGoalStateRevision(current) : undefined);
|
|
473
527
|
host.showStatus("Goal completed manually.");
|
|
474
528
|
host.refreshAutonomyFooterStatus();
|
|
475
529
|
return;
|
|
476
530
|
}
|
|
531
|
+
if (input === "clear") {
|
|
532
|
+
const cleared = clearPersistedGoal(host.session, now);
|
|
533
|
+
if (!cleared.ok) {
|
|
534
|
+
host.showError(cleared.error);
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
host.showStatus(cleared.cleared ? "Goal cleared." : "No goal exists to clear.");
|
|
538
|
+
host.refreshAutonomyFooterStatus();
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
477
541
|
if (input === "close" || input === "cancel") {
|
|
478
|
-
const cancelled =
|
|
542
|
+
const cancelled = cancelPersistedGoal(host.session, now);
|
|
479
543
|
if (!cancelled.ok) {
|
|
480
544
|
host.showError(cancelled.error);
|
|
481
545
|
return;
|
|
482
546
|
}
|
|
483
|
-
host.session.saveGoalStateSnapshot(cancelled.state);
|
|
484
547
|
host.showStatus("Goal closed.");
|
|
485
548
|
host.refreshAutonomyFooterStatus();
|
|
486
549
|
return;
|
|
@@ -504,7 +567,7 @@ export async function handleGoalCommand(host, text) {
|
|
|
504
567
|
}
|
|
505
568
|
let active = current;
|
|
506
569
|
if (active.status === "blocked") {
|
|
507
|
-
const resumed =
|
|
570
|
+
const resumed = resumeGoal(active, now);
|
|
508
571
|
if (!resumed.ok) {
|
|
509
572
|
host.showError(resumed.error);
|
|
510
573
|
return;
|
|
@@ -516,7 +579,9 @@ export async function handleGoalCommand(host, text) {
|
|
|
516
579
|
host.showError(reopened.error);
|
|
517
580
|
return;
|
|
518
581
|
}
|
|
519
|
-
host.session.saveGoalStateSnapshot(reopened.state);
|
|
582
|
+
host.session.saveGoalStateSnapshot(reopened.state, getGoalStateRevision(current));
|
|
583
|
+
if (reopened.state.status === "active")
|
|
584
|
+
host.session.restoreGoalRuntimeAfterResume();
|
|
520
585
|
host.showStatus(`Requirement '${requirementId}' reopened${current.status === "blocked" ? " and goal resumed" : ""}.`);
|
|
521
586
|
host.refreshAutonomyFooterStatus();
|
|
522
587
|
return;
|
|
@@ -527,40 +592,26 @@ export async function handleGoalCommand(host, text) {
|
|
|
527
592
|
host.showError("Usage: /goal override <text>");
|
|
528
593
|
return;
|
|
529
594
|
}
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
host.showError(cancelled.error);
|
|
535
|
-
return;
|
|
536
|
-
}
|
|
537
|
-
startFrom = cancelled.state;
|
|
538
|
-
host.session.saveGoalStateSnapshot(startFrom);
|
|
539
|
-
}
|
|
540
|
-
const goalId = `goal-${Date.now().toString(36)}`;
|
|
541
|
-
const started = applyGoalAction(startFrom, { action: "start", goalId, userGoal: goalText }, now);
|
|
595
|
+
const goalId = `goal-${randomUUID()}`;
|
|
596
|
+
const started = overriding
|
|
597
|
+
? replaceGoal({ goalId, userGoal: goalText }, now)
|
|
598
|
+
: applyGoalAction(current, { action: "start", goalId, userGoal: goalText }, now);
|
|
542
599
|
if (!started.ok) {
|
|
543
600
|
host.showError(`${started.error} Use /goal override <text> to replace it explicitly.`);
|
|
544
601
|
return;
|
|
545
602
|
}
|
|
546
|
-
host.session.saveGoalStateSnapshot(started.state);
|
|
547
|
-
// Deterministic producer completion: a goal with zero open requirements evaluates to
|
|
548
|
-
// finalize/no_open_requirements, so the loop would be undrivable whenever the model skips
|
|
549
|
-
// decomposition (observed in the field). Seed one requirement from the goal text itself —
|
|
550
|
-
// the model's decomposition below refines alongside it.
|
|
551
|
-
const seeded = applyGoalAction(started.state, { action: "add_requirement", requirementId: `${goalId}-r1`, text: goalText }, now);
|
|
552
|
-
if (seeded.ok) {
|
|
553
|
-
host.session.saveGoalStateSnapshot(seeded.state);
|
|
554
|
-
}
|
|
555
|
-
await host.session.sendUserMessage(`Start goal: ${goalText}\n\nUse the goal tool this turn to decompose this goal into concrete open requirements with add_requirement actions, and satisfy_requirement ${goalId}-r1 once the decomposed requirements cover it.`);
|
|
603
|
+
host.session.saveGoalStateSnapshot(started.state, current ? getGoalStateRevision(current) : undefined);
|
|
556
604
|
const verb = overriding ? "overridden" : "started";
|
|
557
605
|
try {
|
|
558
|
-
|
|
606
|
+
// Submit one bootstrap pass, then yield to the event-driven idle scheduler. This is a scheduling
|
|
607
|
+
// quantum, not a goal ceiling: an active goal is immediately rearmed and the configured goal turn
|
|
608
|
+
// limit (unbounded by default) governs subsequent continuation.
|
|
609
|
+
const result = await host.session.continueGoalLoop({
|
|
610
|
+
maxTurns: 1,
|
|
611
|
+
maxStallTurns: host.getMaxStallTurns?.() ?? 20,
|
|
612
|
+
maxWallClockMinutes: 0,
|
|
613
|
+
});
|
|
559
614
|
if (result.stopReason === "already_continuing") {
|
|
560
|
-
// The idle autosteer timer armed by `sendUserMessage` above already won the single-flight
|
|
561
|
-
// guard (`BackgroundLaneController.continueGoalLoopExclusive`) — this request never ran a
|
|
562
|
-
// pass, so reporting `finalSnapshot.continuation` here would misleadingly imply a fresh
|
|
563
|
-
// decision was made.
|
|
564
615
|
host.showStatus(`Goal ${verb}: the autonomy loop is already continuing this goal.`);
|
|
565
616
|
}
|
|
566
617
|
else if (result.stopReason === "session_disposed") {
|
|
@@ -569,6 +620,8 @@ export async function handleGoalCommand(host, text) {
|
|
|
569
620
|
else {
|
|
570
621
|
const continuation = result.finalSnapshot.continuation;
|
|
571
622
|
host.showStatus(`Goal ${verb}: ${continuation.action}/${continuation.reasonCode}.`);
|
|
623
|
+
if (continuation.action === "continue")
|
|
624
|
+
host.session.restoreGoalRuntimeAfterResume();
|
|
572
625
|
}
|
|
573
626
|
}
|
|
574
627
|
catch (error) {
|
|
@@ -625,7 +678,7 @@ export async function handleGoalContinueCommand(host, text) {
|
|
|
625
678
|
host.showError(parsed.error);
|
|
626
679
|
return;
|
|
627
680
|
}
|
|
628
|
-
host.showStatus(`Goal continuation started: up to ${parsed.maxTurns} turn(s), stall limit ${parsed.maxStallTurns}, wall-clock limit ${parsed.maxWallClockMinutes || "disabled"} minute(s).`);
|
|
681
|
+
host.showStatus(`Goal continuation started: ${parsed.maxTurns === 0 ? "unbounded turns" : `up to ${parsed.maxTurns} turn(s)`}, stall limit ${parsed.maxStallTurns}, wall-clock limit ${parsed.maxWallClockMinutes || "disabled"} minute(s).`);
|
|
629
682
|
try {
|
|
630
683
|
const result = await host.session.continueGoalLoop({
|
|
631
684
|
maxTurns: parsed.maxTurns,
|