@caupulican/pi-adaptative 0.94.0 → 0.95.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/README.md +32 -13
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts +7 -4
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +173 -293
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +247 -392
- package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.d.ts +52 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.d.ts.map +1 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.js +118 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.js.map +1 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.ts +169 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/templates/builder-validator.json +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/templates/provider-prompt-smoke.json +1 -1
- package/dist/bundled-resources/skills/pi-harness-learning/SKILL.md +13 -7
- package/dist/bundled-resources/skills/worker-profile-writer/SKILL.md +11 -11
- package/dist/core/agent-paths.d.ts +2 -0
- package/dist/core/agent-paths.d.ts.map +1 -1
- package/dist/core/agent-paths.js +7 -0
- package/dist/core/agent-paths.js.map +1 -1
- package/dist/core/agent-session.d.ts +11 -41
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +98 -161
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.d.ts +6 -1
- package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.js +26 -25
- package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
- package/dist/core/autonomy/lane-private-paths.d.ts.map +1 -1
- package/dist/core/autonomy/lane-private-paths.js +2 -1
- package/dist/core/autonomy/lane-private-paths.js.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.d.ts +8 -8
- package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.js +45 -30
- package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
- package/dist/core/autonomy/worker-session-private-scope.d.ts +12 -0
- package/dist/core/autonomy/worker-session-private-scope.d.ts.map +1 -0
- package/dist/core/autonomy/worker-session-private-scope.js +42 -0
- package/dist/core/autonomy/worker-session-private-scope.js.map +1 -0
- package/dist/core/autonomy/worker-tool-adapter-registry.d.ts +65 -0
- package/dist/core/autonomy/worker-tool-adapter-registry.d.ts.map +1 -0
- package/dist/core/autonomy/worker-tool-adapter-registry.js +145 -0
- package/dist/core/autonomy/worker-tool-adapter-registry.js.map +1 -0
- package/dist/core/background-lane-controller.d.ts +9 -1
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +76 -6
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/background-tool-task-controller.d.ts +23 -2
- package/dist/core/background-tool-task-controller.d.ts.map +1 -1
- package/dist/core/background-tool-task-controller.js +132 -17
- package/dist/core/background-tool-task-controller.js.map +1 -1
- package/dist/core/context/long-term-memory-trigger.d.ts +3 -1
- package/dist/core/context/long-term-memory-trigger.d.ts.map +1 -1
- package/dist/core/context/long-term-memory-trigger.js +1 -1
- package/dist/core/context/long-term-memory-trigger.js.map +1 -1
- package/dist/core/context/okf-memory-provider.d.ts +3 -0
- package/dist/core/context/okf-memory-provider.d.ts.map +1 -1
- package/dist/core/context/okf-memory-provider.js +66 -31
- package/dist/core/context/okf-memory-provider.js.map +1 -1
- package/dist/core/context/okf-memory.d.ts +18 -1
- package/dist/core/context/okf-memory.d.ts.map +1 -1
- package/dist/core/context/okf-memory.js +48 -0
- package/dist/core/context/okf-memory.js.map +1 -1
- package/dist/core/cost-guard-controller.d.ts +37 -0
- package/dist/core/cost-guard-controller.d.ts.map +1 -0
- package/dist/core/cost-guard-controller.js +71 -0
- package/dist/core/cost-guard-controller.js.map +1 -0
- package/dist/core/cost-guard.d.ts +9 -4
- package/dist/core/cost-guard.d.ts.map +1 -1
- package/dist/core/cost-guard.js +7 -3
- package/dist/core/cost-guard.js.map +1 -1
- package/dist/core/delegation/worker-agent-control.d.ts +4 -0
- package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
- package/dist/core/delegation/worker-agent-control.js.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.d.ts +1 -1
- package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.js +0 -1
- package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
- package/dist/core/delegation/worker-authority-resolver.d.ts +16 -3
- package/dist/core/delegation/worker-authority-resolver.d.ts.map +1 -1
- package/dist/core/delegation/worker-authority-resolver.js +114 -55
- package/dist/core/delegation/worker-authority-resolver.js.map +1 -1
- package/dist/core/delegation/worker-claim.d.ts +1 -2
- package/dist/core/delegation/worker-claim.d.ts.map +1 -1
- package/dist/core/delegation/worker-claim.js.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.d.ts +19 -6
- package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.js +125 -40
- package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
- package/dist/core/delegation/worker-delegation-request.d.ts +3 -3
- package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-request.js +13 -19
- package/dist/core/delegation/worker-delegation-request.js.map +1 -1
- package/dist/core/delegation/worker-execution-policy.d.ts +3 -2
- package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
- package/dist/core/delegation/worker-execution-policy.js +54 -39
- package/dist/core/delegation/worker-execution-policy.js.map +1 -1
- package/dist/core/delegation/worker-fleet-limits.d.ts +3 -3
- package/dist/core/delegation/worker-fleet-limits.d.ts.map +1 -1
- package/dist/core/delegation/worker-fleet-limits.js +7 -7
- package/dist/core/delegation/worker-fleet-limits.js.map +1 -1
- package/dist/core/delegation/worker-machine-scope.d.ts +12 -0
- package/dist/core/delegation/worker-machine-scope.d.ts.map +1 -0
- package/dist/core/delegation/worker-machine-scope.js +38 -0
- package/dist/core/delegation/worker-machine-scope.js.map +1 -0
- package/dist/core/delegation/worker-notification-coordinator.d.ts +10 -0
- package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-notification-coordinator.js +69 -3
- package/dist/core/delegation/worker-notification-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-recovery-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-recovery-coordinator.js +6 -1
- package/dist/core/delegation/worker-recovery-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-runner.d.ts +5 -7
- package/dist/core/delegation/worker-runner.d.ts.map +1 -1
- package/dist/core/delegation/worker-runner.js +1 -4
- package/dist/core/delegation/worker-runner.js.map +1 -1
- package/dist/core/delegation/worker-write-reservation-coordinator.d.ts +3 -2
- package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-write-reservation-coordinator.js +50 -25
- package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -1
- package/dist/core/durable-custom-message-turn-controller.d.ts +6 -0
- package/dist/core/durable-custom-message-turn-controller.d.ts.map +1 -1
- package/dist/core/durable-custom-message-turn-controller.js +38 -15
- package/dist/core/durable-custom-message-turn-controller.js.map +1 -1
- package/dist/core/extension-binding-controller.d.ts +5 -1
- package/dist/core/extension-binding-controller.d.ts.map +1 -1
- package/dist/core/extension-binding-controller.js +15 -0
- package/dist/core/extension-binding-controller.js.map +1 -1
- package/dist/core/extensions/factory-runtime.d.ts.map +1 -1
- package/dist/core/extensions/factory-runtime.js +5 -0
- package/dist/core/extensions/factory-runtime.js.map +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +1 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +8 -4
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/foreground-terminal-handoff-controller.d.ts +31 -0
- package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
- package/dist/core/foreground-terminal-handoff-controller.js +239 -55
- package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
- package/dist/core/goals/goal-session-controller.d.ts +2 -0
- package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-session-controller.js +8 -0
- package/dist/core/goals/goal-session-controller.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts +5 -4
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js +23 -19
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/learning/auto-learn-settings.d.ts +84 -0
- package/dist/core/learning/auto-learn-settings.d.ts.map +1 -0
- package/dist/core/learning/auto-learn-settings.js +66 -0
- package/dist/core/learning/auto-learn-settings.js.map +1 -0
- package/dist/core/learning/learning-audit.d.ts +5 -1
- package/dist/core/learning/learning-audit.d.ts.map +1 -1
- package/dist/core/learning/learning-audit.js +32 -1
- package/dist/core/learning/learning-audit.js.map +1 -1
- package/dist/core/learning/reflection-engine.d.ts +24 -0
- package/dist/core/learning/reflection-engine.d.ts.map +1 -1
- package/dist/core/learning/reflection-engine.js +104 -8
- package/dist/core/learning/reflection-engine.js.map +1 -1
- package/dist/core/local-prefix-warm-controller.d.ts +24 -0
- package/dist/core/local-prefix-warm-controller.d.ts.map +1 -0
- package/dist/core/local-prefix-warm-controller.js +79 -0
- package/dist/core/local-prefix-warm-controller.js.map +1 -0
- package/dist/core/memory/okf-project-memory-store.d.ts +28 -0
- package/dist/core/memory/okf-project-memory-store.d.ts.map +1 -0
- package/dist/core/memory/okf-project-memory-store.js +111 -0
- package/dist/core/memory/okf-project-memory-store.js.map +1 -0
- package/dist/core/memory/providers/file-store.d.ts +44 -1
- package/dist/core/memory/providers/file-store.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.js +341 -24
- package/dist/core/memory/providers/file-store.js.map +1 -1
- package/dist/core/memory/worker-memory-tools.d.ts +5 -0
- package/dist/core/memory/worker-memory-tools.d.ts.map +1 -0
- package/dist/core/memory/worker-memory-tools.js +5 -0
- package/dist/core/memory/worker-memory-tools.js.map +1 -0
- package/dist/core/memory-controller.d.ts +10 -1
- package/dist/core/memory-controller.d.ts.map +1 -1
- package/dist/core/memory-controller.js +72 -8
- package/dist/core/memory-controller.js.map +1 -1
- package/dist/core/model-capability.d.ts +7 -0
- package/dist/core/model-capability.d.ts.map +1 -1
- package/dist/core/model-capability.js +12 -0
- package/dist/core/model-capability.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +2 -10
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-router-controller.d.ts +3 -2
- package/dist/core/model-router-controller.d.ts.map +1 -1
- package/dist/core/model-router-controller.js +3 -2
- package/dist/core/model-router-controller.js.map +1 -1
- package/dist/core/orchestration/contracts.d.ts +16 -12
- package/dist/core/orchestration/contracts.d.ts.map +1 -1
- package/dist/core/orchestration/contracts.js +2 -2
- package/dist/core/orchestration/contracts.js.map +1 -1
- package/dist/core/orchestration/lane-tool-manifests.d.ts +2 -2
- package/dist/core/orchestration/lane-tool-manifests.d.ts.map +1 -1
- package/dist/core/orchestration/lane-tool-manifests.js +6 -1
- package/dist/core/orchestration/lane-tool-manifests.js.map +1 -1
- package/dist/core/orchestration/profile-registry.d.ts.map +1 -1
- package/dist/core/orchestration/profile-registry.js +14 -0
- package/dist/core/orchestration/profile-registry.js.map +1 -1
- package/dist/core/orchestration/task-profile-writer.d.ts +7 -4
- package/dist/core/orchestration/task-profile-writer.d.ts.map +1 -1
- package/dist/core/orchestration/task-profile-writer.js +71 -59
- package/dist/core/orchestration/task-profile-writer.js.map +1 -1
- package/dist/core/orchestration/thinking-level-schema.d.ts +7 -0
- package/dist/core/orchestration/thinking-level-schema.d.ts.map +1 -0
- package/dist/core/orchestration/thinking-level-schema.js +19 -0
- package/dist/core/orchestration/thinking-level-schema.js.map +1 -0
- package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -1
- package/dist/core/orchestration/worker-execution-contract.js +12 -5
- package/dist/core/orchestration/worker-execution-contract.js.map +1 -1
- package/dist/core/provider-prompt-contracts.d.ts +1 -4
- package/dist/core/provider-prompt-contracts.d.ts.map +1 -1
- package/dist/core/provider-prompt-contracts.js +13 -29
- package/dist/core/provider-prompt-contracts.js.map +1 -1
- package/dist/core/provider-request-context-controller.d.ts +2 -0
- package/dist/core/provider-request-context-controller.d.ts.map +1 -1
- package/dist/core/provider-request-context-controller.js +10 -3
- package/dist/core/provider-request-context-controller.js.map +1 -1
- package/dist/core/reflection-controller.d.ts +63 -27
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +300 -132
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +1 -0
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +25 -14
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -1
- package/dist/core/secrets/credential-exposure-guard.js +55 -10
- package/dist/core/secrets/credential-exposure-guard.js.map +1 -1
- package/dist/core/session-role.d.ts +6 -8
- package/dist/core/session-role.d.ts.map +1 -1
- package/dist/core/session-role.js +8 -18
- package/dist/core/session-role.js.map +1 -1
- package/dist/core/settings-manager.d.ts +13 -16
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +53 -50
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skill-vault.d.ts +15 -0
- package/dist/core/skill-vault.d.ts.map +1 -1
- package/dist/core/skill-vault.js +79 -45
- package/dist/core/skill-vault.js.map +1 -1
- package/dist/core/skills.d.ts +3 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +6 -6
- package/dist/core/skills.js.map +1 -1
- package/dist/core/system-prompt-builder.d.ts +2 -0
- package/dist/core/system-prompt-builder.d.ts.map +1 -1
- package/dist/core/system-prompt-builder.js +52 -12
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/system-prompt.js +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tool-capability-policy.d.ts +3 -0
- package/dist/core/tool-capability-policy.d.ts.map +1 -1
- package/dist/core/tool-capability-policy.js +13 -2
- package/dist/core/tool-capability-policy.js.map +1 -1
- package/dist/core/toolkit/script-runner.d.ts +2 -1
- package/dist/core/toolkit/script-runner.d.ts.map +1 -1
- package/dist/core/toolkit/script-runner.js +10 -2
- package/dist/core/toolkit/script-runner.js.map +1 -1
- package/dist/core/tools/delegate-status.d.ts +3 -1
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +5 -1
- package/dist/core/tools/delegate-status.js.map +1 -1
- package/dist/core/tools/delegate.d.ts +4 -13
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +173 -73
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/goal.d.ts +3 -4
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +24 -7
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/profile-writer.d.ts +2 -8
- package/dist/core/tools/profile-writer.d.ts.map +1 -1
- package/dist/core/tools/profile-writer.js +6 -18
- package/dist/core/tools/profile-writer.js.map +1 -1
- package/dist/core/tools/run-toolkit-script.d.ts +1 -1
- package/dist/core/tools/run-toolkit-script.d.ts.map +1 -1
- package/dist/core/tools/run-toolkit-script.js +2 -2
- package/dist/core/tools/run-toolkit-script.js.map +1 -1
- package/dist/core/tools/skill-audit.d.ts +28 -1
- package/dist/core/tools/skill-audit.d.ts.map +1 -1
- package/dist/core/tools/skill-audit.js +56 -12
- package/dist/core/tools/skill-audit.js.map +1 -1
- package/dist/core/tools/skill.d.ts +12 -1
- package/dist/core/tools/skill.d.ts.map +1 -1
- package/dist/core/tools/skill.js +52 -0
- package/dist/core/tools/skill.js.map +1 -1
- package/dist/core/tools/skillify.d.ts.map +1 -1
- package/dist/core/tools/skillify.js +16 -7
- package/dist/core/tools/skillify.js.map +1 -1
- package/dist/core/tools/task-steps.js +1 -1
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/tools/tmux-dispatch.d.ts +4 -16
- package/dist/core/tools/tmux-dispatch.d.ts.map +1 -1
- package/dist/core/tools/tmux-dispatch.js +5 -20
- package/dist/core/tools/tmux-dispatch.js.map +1 -1
- package/dist/core/tools/tool-task.d.ts +1 -0
- package/dist/core/tools/tool-task.d.ts.map +1 -1
- package/dist/core/tools/tool-task.js +13 -8
- package/dist/core/tools/tool-task.js.map +1 -1
- package/dist/core/util/atomic-file.d.ts +2 -0
- package/dist/core/util/atomic-file.d.ts.map +1 -1
- package/dist/core/util/atomic-file.js +4 -0
- package/dist/core/util/atomic-file.js.map +1 -1
- package/dist/core/worktree-sync/codes.d.ts +1 -2
- package/dist/core/worktree-sync/codes.d.ts.map +1 -1
- package/dist/core/worktree-sync/codes.js +1 -2
- package/dist/core/worktree-sync/codes.js.map +1 -1
- package/dist/core/worktree-sync/lane-gate.d.ts +4 -8
- package/dist/core/worktree-sync/lane-gate.d.ts.map +1 -1
- package/dist/core/worktree-sync/lane-gate.js +5 -51
- package/dist/core/worktree-sync/lane-gate.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/auto-learn-controller.d.ts +6 -7
- package/dist/modes/interactive/auto-learn-controller.d.ts.map +1 -1
- package/dist/modes/interactive/auto-learn-controller.js +32 -207
- package/dist/modes/interactive/auto-learn-controller.js.map +1 -1
- package/dist/modes/interactive/autonomy-commands.js +2 -2
- package/dist/modes/interactive/autonomy-commands.js.map +1 -1
- package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -1
- package/dist/modes/interactive/components/activity-lane.js +12 -23
- package/dist/modes/interactive/components/activity-lane.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +142 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/fitness-role-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/fitness-role-selector.js +2 -2
- package/dist/modes/interactive/components/fitness-role-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +150 -73
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/report-commands.d.ts.map +1 -1
- package/dist/modes/interactive/report-commands.js +8 -4
- package/dist/modes/interactive/report-commands.js.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.js +10 -0
- package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
- package/docs/extensions.md +8 -0
- package/docs/harness-architecture.md +28 -32
- package/docs/index.md +1 -1
- package/docs/process-matrix.md +8 -6
- package/docs/resources.md +1 -1
- package/docs/settings.md +61 -51
- package/docs/tmux-agent-manager.md +47 -40
- package/docs/usage.md +1 -1
- package/docs/worker-profiles.md +8 -6
- package/docs/worktree-sync.md +26 -20
- 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 +12 -12
- package/package.json +4 -4
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts +0 -133
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +0 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js +0 -199
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +0 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.ts +0 -312
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { ThinkingLevel } from "@caupulican/pi-agent-core";
|
|
2
2
|
import type { Transport } from "@caupulican/pi-ai";
|
|
3
3
|
import { Container, type SelectItem, SelectList, SettingsList } from "@caupulican/pi-tui";
|
|
4
|
+
import { type CostGuardSettings } from "../../../core/cost-guard.ts";
|
|
4
5
|
import type { AutoLearnSettings, AutonomySettings, ContextCurationSettings, ContextPromptEnforcementSettings, LearningPolicySettings, MemoryRetrievalSettings, ModelCapabilitySettings, ModelRouterSettings, ResearchLaneSettings, SelfModificationSettings, SettingsScope, WarningSettings, WorkerDelegationSettings } from "../../../core/settings-manager.ts";
|
|
5
6
|
export interface SettingsConfig {
|
|
6
7
|
autoCompact: boolean;
|
|
8
|
+
costGuard: CostGuardSettings;
|
|
9
|
+
costGuardScope?: SettingsScope;
|
|
7
10
|
showImages: boolean;
|
|
8
11
|
imageWidthCells: number;
|
|
9
12
|
autoResizeImages: boolean;
|
|
@@ -68,6 +71,7 @@ export interface SettingsConfig {
|
|
|
68
71
|
}
|
|
69
72
|
export interface SettingsCallbacks {
|
|
70
73
|
onAutoCompactChange: (enabled: boolean) => void;
|
|
74
|
+
onCostGuardChange: (settings: CostGuardSettings, scope: SettingsScope) => void;
|
|
71
75
|
onShowImagesChange: (enabled: boolean) => void;
|
|
72
76
|
onImageWidthCellsChange: (width: number) => void;
|
|
73
77
|
onAutoResizeImagesChange: (enabled: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-selector.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACN,SAAS,EAIT,KAAK,UAAU,EACf,UAAU,EAEV,YAAY,EAGZ,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-selector.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Container, getCapabilities, getKeybindings, Input, SelectList, SettingsList, Spacer, Text, } from "@caupulican/pi-tui";
|
|
2
|
+
import { DEFAULT_ENABLED_COST_GUARD_MAX_TURN_USD } from "../../../core/cost-guard.js";
|
|
2
3
|
import { DEFAULT_WORKER_FLEET_LIMITS } from "../../../core/delegation/worker-fleet-limits.js";
|
|
3
4
|
import { formatHttpIdleTimeoutMs, HTTP_IDLE_TIMEOUT_CHOICES } from "../../../core/http-dispatcher.js";
|
|
4
|
-
import {
|
|
5
|
+
import { DEFAULT_AUTO_LEARN_SETTINGS, resolveAutoLearnSettings } from "../../../core/learning/auto-learn-settings.js";
|
|
6
|
+
import { DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE, DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS, DEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES, DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS, DEFAULT_AUTONOMY_MAX_STALL_TURNS, DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED, DEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS, DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD, DEFAULT_LEARNING_POLICY_ENABLED, DEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS, DEFAULT_RESEARCH_LANE_ENABLED, DEFAULT_RESEARCH_LANE_IDLE_DELAY_MS, DEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION, DEFAULT_RESEARCH_LANE_MAX_USD, DEFAULT_RESEARCH_LANE_MAX_WALL_CLOCK_MS, DEFAULT_WORKER_DELEGATION_ENABLED, DEFAULT_WORKER_DELEGATION_MAX_CONCURRENT, DEFAULT_WORKER_DELEGATION_MAX_USD, DEFAULT_WORKER_DELEGATION_MAX_WALL_CLOCK_MS, DEFAULT_WORKER_DELEGATION_WRITE_ENABLED, MAX_WORKER_DELEGATION_MAX_USD, } from "../../../core/settings-manager.js";
|
|
5
7
|
import { getSelectListTheme, getSettingsListTheme, theme } from "../theme/theme.js";
|
|
6
8
|
import { THINKING_LEVEL_DESCRIPTIONS } from "../thinking-level-descriptions.js";
|
|
7
9
|
import { DynamicBorder } from "./dynamic-border.js";
|
|
@@ -34,18 +36,6 @@ const CONTEXT_MEMORY_RETRIEVAL_DEFAULTS = {
|
|
|
34
36
|
includeInPrompt: true,
|
|
35
37
|
allowExternalEgress: false,
|
|
36
38
|
};
|
|
37
|
-
const AUTO_LEARN_DEFAULTS = {
|
|
38
|
-
model: "active",
|
|
39
|
-
longSessionMessages: 32,
|
|
40
|
-
longSessionContextPercent: 70,
|
|
41
|
-
cooldownMinutes: 120,
|
|
42
|
-
leaseMinutes: 90,
|
|
43
|
-
maxConcurrentLearners: 2,
|
|
44
|
-
applyHighConfidence: false,
|
|
45
|
-
reflectionReview: true,
|
|
46
|
-
reflectionMinToolCalls: 5,
|
|
47
|
-
reflectionCooldownMinutes: 60,
|
|
48
|
-
};
|
|
49
39
|
function booleanSettingValue(value, defaultValue = false) {
|
|
50
40
|
return (value ?? defaultValue) ? "true" : "false";
|
|
51
41
|
}
|
|
@@ -64,7 +54,7 @@ function numberSettingValue(value, defaultValue) {
|
|
|
64
54
|
return String(value ?? defaultValue);
|
|
65
55
|
}
|
|
66
56
|
function autoLearnModelValue(settings) {
|
|
67
|
-
return optionalStringValue(settings.model,
|
|
57
|
+
return optionalStringValue(settings.model, DEFAULT_AUTO_LEARN_SETTINGS.model);
|
|
68
58
|
}
|
|
69
59
|
function selfModificationSummary(settings) {
|
|
70
60
|
if (!(settings.enabled ?? false))
|
|
@@ -73,6 +63,11 @@ function selfModificationSummary(settings) {
|
|
|
73
63
|
(Array.isArray(settings.sourcePaths) && settings.sourcePaths.some((candidate) => Boolean(candidate?.trim())));
|
|
74
64
|
return hasPath ? "enabled" : "enabled (missing path)";
|
|
75
65
|
}
|
|
66
|
+
function costGuardSummary(settings) {
|
|
67
|
+
if (!settings.enabled)
|
|
68
|
+
return "disabled";
|
|
69
|
+
return `${settings.action} at $${settings.maxTurnUsd.toFixed(2)}/turn`;
|
|
70
|
+
}
|
|
76
71
|
function autonomyModeValue(settings) {
|
|
77
72
|
return settings.mode && AUTONOMY_MODES.includes(settings.mode) ? settings.mode : "off";
|
|
78
73
|
}
|
|
@@ -112,9 +107,11 @@ function contextCurationSummary(settings) {
|
|
|
112
107
|
return `on · ${settings.model ?? "no model"} · ${settings.maxJobsPerTurn ?? 4} jobs/turn`;
|
|
113
108
|
}
|
|
114
109
|
function learningPolicySummary(settings) {
|
|
115
|
-
if (!settings.enabled)
|
|
110
|
+
if (!(settings.enabled ?? DEFAULT_LEARNING_POLICY_ENABLED))
|
|
116
111
|
return "disabled (legacy direct-apply)";
|
|
117
|
-
|
|
112
|
+
const autoApply = settings.autoApplyEnabled ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED;
|
|
113
|
+
const confidence = settings.confidenceThreshold ?? DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD;
|
|
114
|
+
return `on · auto-apply ${autoApply ? "on" : "off"} · conf>=${confidence}`;
|
|
118
115
|
}
|
|
119
116
|
function modelCapabilitySummary(settings) {
|
|
120
117
|
const mode = settings.mode ?? "auto";
|
|
@@ -124,10 +121,11 @@ function workerDelegationSummary(settings) {
|
|
|
124
121
|
if (!(settings.enabled ?? DEFAULT_WORKER_DELEGATION_ENABLED))
|
|
125
122
|
return "disabled";
|
|
126
123
|
const maxUsd = settings.maxUsd ?? DEFAULT_WORKER_DELEGATION_MAX_USD;
|
|
127
|
-
return maxUsd > 0 ? `enabled ($${maxUsd}/
|
|
124
|
+
return maxUsd > 0 ? `enabled ($${maxUsd}/worker)` : "enabled (unbounded)";
|
|
128
125
|
}
|
|
129
|
-
function autoLearnSummary(settings) {
|
|
130
|
-
|
|
126
|
+
function autoLearnSummary(settings, autonomyMode) {
|
|
127
|
+
const effective = resolveAutoLearnSettings(autonomyMode, settings);
|
|
128
|
+
return effective.enabled ? `enabled (${effective.model})` : "disabled";
|
|
131
129
|
}
|
|
132
130
|
function contextPolicyEnforcementSummary(settings) {
|
|
133
131
|
if (!(settings.enabled ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.enabled))
|
|
@@ -154,7 +152,7 @@ function buildAutoLearnModelOptions(settings, configuredModelOptions, currentMod
|
|
|
154
152
|
const currentValue = autoLearnModelValue(settings);
|
|
155
153
|
const options = [
|
|
156
154
|
{
|
|
157
|
-
value:
|
|
155
|
+
value: DEFAULT_AUTO_LEARN_SETTINGS.model,
|
|
158
156
|
label: "active",
|
|
159
157
|
description: currentModelPattern
|
|
160
158
|
? `Use the current session model (${currentModelPattern})`
|
|
@@ -168,7 +166,7 @@ function buildAutoLearnModelOptions(settings, configuredModelOptions, currentMod
|
|
|
168
166
|
options.push(option);
|
|
169
167
|
seen.add(option.value);
|
|
170
168
|
}
|
|
171
|
-
if (currentValue !==
|
|
169
|
+
if (currentValue !== DEFAULT_AUTO_LEARN_SETTINGS.model && !seen.has(currentValue)) {
|
|
172
170
|
options.push({
|
|
173
171
|
value: currentValue,
|
|
174
172
|
label: currentValue,
|
|
@@ -188,13 +186,13 @@ function buildModelRouterRoleModelOptions(options) {
|
|
|
188
186
|
const seen = new Set();
|
|
189
187
|
if (options.includeActive) {
|
|
190
188
|
modelOptions.push({
|
|
191
|
-
value:
|
|
189
|
+
value: DEFAULT_AUTO_LEARN_SETTINGS.model,
|
|
192
190
|
label: "active",
|
|
193
191
|
description: options.currentModelPattern
|
|
194
192
|
? `Use the current session model (${options.currentModelPattern})`
|
|
195
193
|
: "Use the current session model",
|
|
196
194
|
});
|
|
197
|
-
seen.add(
|
|
195
|
+
seen.add(DEFAULT_AUTO_LEARN_SETTINGS.model);
|
|
198
196
|
}
|
|
199
197
|
else {
|
|
200
198
|
modelOptions.push({
|
|
@@ -264,7 +262,7 @@ class ModelSelectionSubmenu extends Container {
|
|
|
264
262
|
customTitle: "Custom Auto Learn Model",
|
|
265
263
|
customDescription: 'Enter "active" or a provider/model pattern like "openai/gpt-5.4".',
|
|
266
264
|
customEmptyHint: 'empty uses "active"',
|
|
267
|
-
customEmptyValue:
|
|
265
|
+
customEmptyValue: DEFAULT_AUTO_LEARN_SETTINGS.model,
|
|
268
266
|
}) {
|
|
269
267
|
super();
|
|
270
268
|
this.customInput = null;
|
|
@@ -328,6 +326,73 @@ class SettingsListSubmenu extends Container {
|
|
|
328
326
|
this.settingsList.handleInput(data);
|
|
329
327
|
}
|
|
330
328
|
}
|
|
329
|
+
class CostGuardSettingsSubmenu extends SettingsListSubmenu {
|
|
330
|
+
constructor(settings, onChange, onCancel, scope = "global") {
|
|
331
|
+
super();
|
|
332
|
+
this.state = { ...settings };
|
|
333
|
+
this.scope = scope;
|
|
334
|
+
this.mountSettingsList([
|
|
335
|
+
{
|
|
336
|
+
id: "cost-guard-scope",
|
|
337
|
+
label: "Save scope",
|
|
338
|
+
description: "Save this foreground cost guard globally or in the current project's .pi/settings.json",
|
|
339
|
+
currentValue: this.scope,
|
|
340
|
+
values: ["global", "project"],
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
id: "cost-guard-enabled",
|
|
344
|
+
label: "Enabled",
|
|
345
|
+
description: "Explicit opt-in. A saved threshold alone remains dormant and never limits or labels a turn.",
|
|
346
|
+
currentValue: String(this.state.enabled),
|
|
347
|
+
values: ["false", "true"],
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
id: "cost-guard-max-turn-usd",
|
|
351
|
+
label: "Maximum USD per turn",
|
|
352
|
+
description: "Projected foreground plus current-turn background spend; zero keeps the guard inactive",
|
|
353
|
+
currentValue: String(this.state.maxTurnUsd),
|
|
354
|
+
submenu: (_currentValue, done) => new TextInputSubmenu("Foreground Cost Guard Threshold", "Enter a nonnegative finite USD projection threshold. The Enabled switch is still mandatory.", String(this.state.maxTurnUsd), (value) => {
|
|
355
|
+
const maxTurnUsd = Number(value.trim());
|
|
356
|
+
if (!Number.isFinite(maxTurnUsd) || maxTurnUsd < 0) {
|
|
357
|
+
done();
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
this.state = { ...this.state, maxTurnUsd };
|
|
361
|
+
onChange({ ...this.state }, this.scope);
|
|
362
|
+
done(String(maxTurnUsd));
|
|
363
|
+
}, () => done(), "nonnegative finite number; invalid input keeps the current value"),
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
id: "cost-guard-action",
|
|
367
|
+
label: "Action",
|
|
368
|
+
description: "warn only, or reduce reasoning one supported level for the imminent request",
|
|
369
|
+
currentValue: this.state.action,
|
|
370
|
+
values: ["warn", "downgrade"],
|
|
371
|
+
},
|
|
372
|
+
], (id, newValue) => {
|
|
373
|
+
switch (id) {
|
|
374
|
+
case "cost-guard-scope":
|
|
375
|
+
this.scope = newValue;
|
|
376
|
+
break;
|
|
377
|
+
case "cost-guard-enabled":
|
|
378
|
+
this.state = {
|
|
379
|
+
...this.state,
|
|
380
|
+
enabled: newValue === "true",
|
|
381
|
+
maxTurnUsd: newValue === "true" && this.state.maxTurnUsd <= 0
|
|
382
|
+
? DEFAULT_ENABLED_COST_GUARD_MAX_TURN_USD
|
|
383
|
+
: this.state.maxTurnUsd,
|
|
384
|
+
};
|
|
385
|
+
break;
|
|
386
|
+
case "cost-guard-action":
|
|
387
|
+
this.state = { ...this.state, action: newValue === "downgrade" ? "downgrade" : "warn" };
|
|
388
|
+
break;
|
|
389
|
+
default:
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
onChange({ ...this.state }, this.scope);
|
|
393
|
+
}, onCancel);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
331
396
|
const PROJECT_CONTEXT_SCOPE_VALUES = ["this-directory", "this-project", "all-projects"];
|
|
332
397
|
function projectContextScopeValue(scope) {
|
|
333
398
|
if (scope === "project")
|
|
@@ -453,7 +518,7 @@ class AutonomySettingsSubmenu extends SettingsListSubmenu {
|
|
|
453
518
|
{
|
|
454
519
|
id: "autonomy-mode",
|
|
455
520
|
label: "Mode",
|
|
456
|
-
description: "One preset for
|
|
521
|
+
description: "One preset for learning and root-session reflection cues: off, safe, balanced, or standing autonomy",
|
|
457
522
|
currentValue: autonomyModeValue(this.state),
|
|
458
523
|
values: AUTONOMY_MODES,
|
|
459
524
|
},
|
|
@@ -622,36 +687,36 @@ class LearningPolicySettingsSubmenu extends SettingsListSubmenu {
|
|
|
622
687
|
{
|
|
623
688
|
id: "learning-policy-enabled",
|
|
624
689
|
label: "Enabled",
|
|
625
|
-
description: "Gate reflection writes through the learning policy (proposals, audits, rollback). Disabled keeps legacy direct-apply with audit records.",
|
|
626
|
-
currentValue: String(this.state.enabled ??
|
|
690
|
+
description: "Gate root-session reflection writes through the learning policy (proposals, audits, rollback). Disabled keeps legacy direct-apply with audit records.",
|
|
691
|
+
currentValue: String(this.state.enabled ?? DEFAULT_LEARNING_POLICY_ENABLED),
|
|
627
692
|
values: ["true", "false"],
|
|
628
693
|
},
|
|
629
694
|
{
|
|
630
695
|
id: "learning-policy-auto-apply",
|
|
631
696
|
label: "Auto-apply",
|
|
632
697
|
description: "Allow eligible writes to auto-apply; otherwise everything becomes a proposal",
|
|
633
|
-
currentValue: String(this.state.autoApplyEnabled ??
|
|
698
|
+
currentValue: String(this.state.autoApplyEnabled ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED),
|
|
634
699
|
values: ["true", "false"],
|
|
635
700
|
},
|
|
636
701
|
{
|
|
637
702
|
id: "learning-policy-auto-apply-supersessions",
|
|
638
703
|
label: "Auto-apply supersessions",
|
|
639
704
|
description: "Allow a memory_replace/memory_remove (overwrites or deletes an existing fact) to auto-apply once otherwise eligible; off keeps every supersession a proposal",
|
|
640
|
-
currentValue: String(this.state.autoApplySupersessions ??
|
|
705
|
+
currentValue: String(this.state.autoApplySupersessions ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS),
|
|
641
706
|
values: ["true", "false"],
|
|
642
707
|
},
|
|
643
708
|
{
|
|
644
709
|
id: "learning-policy-confidence",
|
|
645
710
|
label: "Confidence threshold",
|
|
646
711
|
description: "Minimum confidence (0-100) before a write may auto-apply; below it, proposal or no-op",
|
|
647
|
-
currentValue: String(this.state.confidenceThreshold ??
|
|
712
|
+
currentValue: String(this.state.confidenceThreshold ?? DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD),
|
|
648
713
|
values: ["25", "50", "60", "75", "90"],
|
|
649
714
|
},
|
|
650
715
|
{
|
|
651
716
|
id: "learning-policy-min-observations",
|
|
652
717
|
label: "Min observations",
|
|
653
718
|
description: "Observations required before auto-apply (allowedAutoApplyLayers stays JSON-only)",
|
|
654
|
-
currentValue: String(this.state.minObservations ??
|
|
719
|
+
currentValue: String(this.state.minObservations ?? DEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS),
|
|
655
720
|
values: ["1", "2", "3", "5"],
|
|
656
721
|
},
|
|
657
722
|
];
|
|
@@ -801,16 +866,16 @@ class WorkerDelegationSettingsSubmenu extends SettingsListSubmenu {
|
|
|
801
866
|
{
|
|
802
867
|
id: "worker-delegation-enabled",
|
|
803
868
|
label: "Enabled",
|
|
804
|
-
description: "Allow capable models to
|
|
869
|
+
description: "Allow capable models to dispatch autonomous persistent leaf workers; enabled by default, and explicit false is a hard off-switch",
|
|
805
870
|
currentValue: String(this.state.enabled),
|
|
806
871
|
values: ["true", "false"],
|
|
807
872
|
},
|
|
808
873
|
{
|
|
809
874
|
id: "worker-delegation-max-usd",
|
|
810
|
-
label: "Budget per
|
|
811
|
-
description: "Cumulative USD budget
|
|
875
|
+
label: "Budget per worker task",
|
|
876
|
+
description: "Cumulative USD budget for one worker task; 0 disables this ceiling",
|
|
812
877
|
currentValue: String(this.state.maxUsd),
|
|
813
|
-
submenu: (_currentValue, done) => new TextInputSubmenu("
|
|
878
|
+
submenu: (_currentValue, done) => new TextInputSubmenu("Worker Task USD Budget", `Enter a nonnegative finite number no greater than ${MAX_WORKER_DELEGATION_MAX_USD}. Zero disables the settings-level cost ceiling.`, String(this.state.maxUsd), (value) => {
|
|
814
879
|
const maxUsd = Number(value.trim());
|
|
815
880
|
if (Number.isFinite(maxUsd) && maxUsd >= 0 && maxUsd <= MAX_WORKER_DELEGATION_MAX_USD) {
|
|
816
881
|
this.state = { ...this.state, maxUsd };
|
|
@@ -822,10 +887,10 @@ class WorkerDelegationSettingsSubmenu extends SettingsListSubmenu {
|
|
|
822
887
|
},
|
|
823
888
|
{
|
|
824
889
|
id: "worker-delegation-max-wall-clock-ms",
|
|
825
|
-
label: "
|
|
826
|
-
description: "
|
|
890
|
+
label: "Worker task milliseconds",
|
|
891
|
+
description: "Active wall-clock budget for one worker task; 0 disables the time budget",
|
|
827
892
|
currentValue: String(this.state.maxWallClockMs),
|
|
828
|
-
submenu: (_currentValue, done) => new TextInputSubmenu("
|
|
893
|
+
submenu: (_currentValue, done) => new TextInputSubmenu("Worker Task Active Time", "Enter active milliseconds per worker task as a nonnegative safe integer. Zero disables the time ceiling.", String(this.state.maxWallClockMs), (value) => {
|
|
829
894
|
const maxWallClockMs = Number(value.trim());
|
|
830
895
|
if (Number.isSafeInteger(maxWallClockMs) && maxWallClockMs >= 0) {
|
|
831
896
|
this.state = { ...this.state, maxWallClockMs };
|
|
@@ -838,16 +903,16 @@ class WorkerDelegationSettingsSubmenu extends SettingsListSubmenu {
|
|
|
838
903
|
{
|
|
839
904
|
id: "worker-delegation-write-enabled",
|
|
840
905
|
label: "Allow file writes",
|
|
841
|
-
description: "Let
|
|
906
|
+
description: "Let workers change files through direct write/edit tools; default authority is machine-wide and explicit false revokes it",
|
|
842
907
|
currentValue: String(this.state.writeEnabled ?? DEFAULT_WORKER_DELEGATION_WRITE_ENABLED),
|
|
843
908
|
values: ["true", "false"],
|
|
844
909
|
},
|
|
845
910
|
{
|
|
846
911
|
id: "worker-delegation-max-concurrent",
|
|
847
912
|
label: "Max concurrent workers",
|
|
848
|
-
description: `Global scheduler concurrency;
|
|
913
|
+
description: `Global scheduler concurrency for leaf workers; the fleet retains at most ${DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession} logical agents per session`,
|
|
849
914
|
currentValue: String(this.state.maxConcurrent),
|
|
850
|
-
submenu: (_currentValue, done) => new TextInputSubmenu("Global Worker Concurrency", `Enter any positive safe integer. This limits running
|
|
915
|
+
submenu: (_currentValue, done) => new TextInputSubmenu("Global Worker Concurrency", `Enter any positive safe integer. This limits running leaf workers; fixed safety ceilings separately bound ${DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession} session agents and ${DEFAULT_WORKER_FLEET_LIMITS.maxQueuedDispatches} queued dispatches.`, String(this.state.maxConcurrent), (value) => {
|
|
851
916
|
const maxConcurrent = Number(value.trim());
|
|
852
917
|
if (Number.isSafeInteger(maxConcurrent) && maxConcurrent > 0) {
|
|
853
918
|
this.state = { ...this.state, maxConcurrent };
|
|
@@ -886,13 +951,14 @@ class WorkerDelegationSettingsSubmenu extends SettingsListSubmenu {
|
|
|
886
951
|
}
|
|
887
952
|
}
|
|
888
953
|
class AutoLearnSettingsSubmenu extends SettingsListSubmenu {
|
|
889
|
-
constructor(settings, currentModelPattern, modelOptions, onChange, onCancel, scope = "global") {
|
|
954
|
+
constructor(settings, autonomyMode, currentModelPattern, modelOptions, onChange, onCancel, scope = "global") {
|
|
890
955
|
super();
|
|
891
956
|
this.state = { ...settings };
|
|
892
957
|
this.scope = scope;
|
|
958
|
+
const defaults = resolveAutoLearnSettings(autonomyMode, settings);
|
|
893
959
|
const modelDescription = currentModelPattern
|
|
894
|
-
? `Model for background learning. "active" uses ${currentModelPattern}; configured subscription/API models are listed first.`
|
|
895
|
-
: 'Model for background learning. Use "active" for the current session model, or choose a configured subscription/API model.';
|
|
960
|
+
? `Model for explicit/background learning. "active" uses ${currentModelPattern}; configured subscription/API models are listed first. Automatic reflection uses the orchestrator's current session turn.`
|
|
961
|
+
: 'Model for explicit/background learning. Use "active" for the current session model, or choose a configured subscription/API model. Automatic reflection uses the orchestrator\'s current session turn.';
|
|
896
962
|
const selectableModelOptions = buildAutoLearnModelOptions(this.state, modelOptions, currentModelPattern);
|
|
897
963
|
const items = [
|
|
898
964
|
{
|
|
@@ -906,7 +972,7 @@ class AutoLearnSettingsSubmenu extends SettingsListSubmenu {
|
|
|
906
972
|
id: "auto-learn-enabled",
|
|
907
973
|
label: "Enabled",
|
|
908
974
|
description: "Autonomously trigger background history scavenging for long sessions",
|
|
909
|
-
currentValue: booleanSettingValue(this.state.enabled),
|
|
975
|
+
currentValue: booleanSettingValue(this.state.enabled, defaults.enabled),
|
|
910
976
|
values: ["true", "false"],
|
|
911
977
|
},
|
|
912
978
|
{
|
|
@@ -924,64 +990,64 @@ class AutoLearnSettingsSubmenu extends SettingsListSubmenu {
|
|
|
924
990
|
id: "auto-learn-long-session-messages",
|
|
925
991
|
label: "Message trigger",
|
|
926
992
|
description: "Trigger after this many message entries in the active branch",
|
|
927
|
-
currentValue: numberSettingValue(this.state.longSessionMessages,
|
|
993
|
+
currentValue: numberSettingValue(this.state.longSessionMessages, defaults.longSessionMessages),
|
|
928
994
|
values: ["16", "32", "64", "128", "256"],
|
|
929
995
|
},
|
|
930
996
|
{
|
|
931
997
|
id: "auto-learn-context-percent",
|
|
932
998
|
label: "Context trigger %",
|
|
933
999
|
description: "Trigger when current context usage reaches this percentage",
|
|
934
|
-
currentValue: numberSettingValue(this.state.longSessionContextPercent,
|
|
935
|
-
values: ["50", "60", "70", "80", "90"],
|
|
1000
|
+
currentValue: numberSettingValue(this.state.longSessionContextPercent, defaults.longSessionContextPercent),
|
|
1001
|
+
values: ["50", "60", "70", "80", "85", "90"],
|
|
936
1002
|
},
|
|
937
1003
|
{
|
|
938
1004
|
id: "auto-learn-cooldown-minutes",
|
|
939
1005
|
label: "Cooldown minutes",
|
|
940
1006
|
description: "Per-session-tenant cooldown between learner launches",
|
|
941
|
-
currentValue: numberSettingValue(this.state.cooldownMinutes,
|
|
942
|
-
values: ["15", "30", "60", "120", "240"],
|
|
1007
|
+
currentValue: numberSettingValue(this.state.cooldownMinutes, defaults.cooldownMinutes),
|
|
1008
|
+
values: ["15", "30", "60", "120", "240", "1440"],
|
|
943
1009
|
},
|
|
944
1010
|
{
|
|
945
1011
|
id: "auto-learn-lease-minutes",
|
|
946
1012
|
label: "Lease minutes",
|
|
947
1013
|
description: "Shared-state lease duration for a running background learner",
|
|
948
|
-
currentValue: numberSettingValue(this.state.leaseMinutes,
|
|
1014
|
+
currentValue: numberSettingValue(this.state.leaseMinutes, defaults.leaseMinutes),
|
|
949
1015
|
values: ["30", "60", "90", "180"],
|
|
950
1016
|
},
|
|
951
1017
|
{
|
|
952
1018
|
id: "auto-learn-max-concurrent",
|
|
953
1019
|
label: "Max learners",
|
|
954
1020
|
description: "Maximum running Auto Learn background learners per session tenant",
|
|
955
|
-
currentValue: numberSettingValue(this.state.maxConcurrentLearners,
|
|
1021
|
+
currentValue: numberSettingValue(this.state.maxConcurrentLearners, defaults.maxConcurrentLearners),
|
|
956
1022
|
values: ["1", "2", "3", "4"],
|
|
957
1023
|
},
|
|
958
1024
|
{
|
|
959
1025
|
id: "auto-learn-apply-high-confidence",
|
|
960
1026
|
label: "Apply high confidence",
|
|
961
1027
|
description: "Allow high-confidence memory candidates to be applied automatically; broader write authority follows autonomy.mode",
|
|
962
|
-
currentValue: booleanSettingValue(this.state.applyHighConfidence,
|
|
1028
|
+
currentValue: booleanSettingValue(this.state.applyHighConfidence, defaults.applyHighConfidence),
|
|
963
1029
|
values: ["false", "true"],
|
|
964
1030
|
},
|
|
965
1031
|
{
|
|
966
1032
|
id: "auto-learn-reflection-review",
|
|
967
1033
|
label: "Reflection review",
|
|
968
|
-
description: "After corrective or complex turns,
|
|
969
|
-
currentValue: booleanSettingValue(this.state.reflectionReview,
|
|
1034
|
+
description: "After corrective or complex turns, queue a durable root-session reflection cue for the next ordinary turn",
|
|
1035
|
+
currentValue: booleanSettingValue(this.state.reflectionReview, defaults.reflectionReview),
|
|
970
1036
|
values: ["true", "false"],
|
|
971
1037
|
},
|
|
972
1038
|
{
|
|
973
1039
|
id: "auto-learn-reflection-tool-calls",
|
|
974
1040
|
label: "Reflection tool trigger",
|
|
975
|
-
description: "
|
|
976
|
-
currentValue: numberSettingValue(this.state.reflectionMinToolCalls,
|
|
1041
|
+
description: "Queue a root-session reflection cue after this many tool calls in one completed turn",
|
|
1042
|
+
currentValue: numberSettingValue(this.state.reflectionMinToolCalls, defaults.reflectionMinToolCalls),
|
|
977
1043
|
values: ["3", "5", "8", "12"],
|
|
978
1044
|
},
|
|
979
1045
|
{
|
|
980
1046
|
id: "auto-learn-reflection-cooldown",
|
|
981
1047
|
label: "Reflection cooldown",
|
|
982
|
-
description: "Per-session-tenant cooldown between
|
|
983
|
-
currentValue: numberSettingValue(this.state.reflectionCooldownMinutes,
|
|
984
|
-
values: ["15", "30", "60", "120"],
|
|
1048
|
+
description: "Per-session-tenant cooldown between automatic root-session reflection cues",
|
|
1049
|
+
currentValue: numberSettingValue(this.state.reflectionCooldownMinutes, defaults.reflectionCooldownMinutes),
|
|
1050
|
+
values: ["15", "30", "60", "120", "1440"],
|
|
985
1051
|
},
|
|
986
1052
|
];
|
|
987
1053
|
this.mountSettingsList(items, (id, newValue) => {
|
|
@@ -1349,20 +1415,20 @@ class ModelRouterSettingsSubmenu extends SettingsListSubmenu {
|
|
|
1349
1415
|
},
|
|
1350
1416
|
{
|
|
1351
1417
|
id: "model-router-learning",
|
|
1352
|
-
label: "Learning
|
|
1353
|
-
description: "Pick the model for background
|
|
1418
|
+
label: "Learning model",
|
|
1419
|
+
description: "Pick the model for explicit/background learning and skill-creator work; automatic reflection uses the orchestrator's current session turn",
|
|
1354
1420
|
currentValue: optionalStringValue(this.state.learningModel, "active"),
|
|
1355
|
-
submenu: (_currentValue, done) => new ModelSelectionSubmenu(learningModelOptions, this.state.learningModel ??
|
|
1421
|
+
submenu: (_currentValue, done) => new ModelSelectionSubmenu(learningModelOptions, this.state.learningModel ?? DEFAULT_AUTO_LEARN_SETTINGS.model, (value) => {
|
|
1356
1422
|
this.state = { ...this.state, learningModel: value };
|
|
1357
1423
|
onChange({ ...this.state }, this.scope);
|
|
1358
1424
|
done(optionalStringValue(this.state.learningModel, "active"));
|
|
1359
1425
|
}, () => done(), {
|
|
1360
|
-
title: "Learning
|
|
1361
|
-
description: "Choose active or a model from configured subscription/API accounts. Type to filter; manual is fallback.",
|
|
1362
|
-
customTitle: "Custom Learning
|
|
1363
|
-
customDescription: 'Enter "active" or a provider/model pattern from pi --list-models.',
|
|
1426
|
+
title: "Learning Model",
|
|
1427
|
+
description: "Choose active or a model from configured subscription/API accounts for explicit/background learning. Automatic reflection uses the orchestrator's current session turn. Type to filter; manual is fallback.",
|
|
1428
|
+
customTitle: "Custom Learning Model",
|
|
1429
|
+
customDescription: 'Enter "active" or a provider/model pattern for explicit/background learning from pi --list-models.',
|
|
1364
1430
|
customEmptyHint: 'empty uses "active"',
|
|
1365
|
-
customEmptyValue:
|
|
1431
|
+
customEmptyValue: DEFAULT_AUTO_LEARN_SETTINGS.model,
|
|
1366
1432
|
}),
|
|
1367
1433
|
},
|
|
1368
1434
|
{
|
|
@@ -1532,6 +1598,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1532
1598
|
super();
|
|
1533
1599
|
const supportsImages = getCapabilities().images;
|
|
1534
1600
|
const followUpKey = keyDisplayText("app.message.followUp");
|
|
1601
|
+
let currentCostGuard = { ...config.costGuard };
|
|
1535
1602
|
let currentWarnings = { ...config.warnings };
|
|
1536
1603
|
let currentSelfModification = { ...config.selfModification };
|
|
1537
1604
|
let currentAutonomy = { ...config.autonomy };
|
|
@@ -1552,6 +1619,16 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1552
1619
|
currentValue: config.autoCompact ? "true" : "false",
|
|
1553
1620
|
values: ["true", "false"],
|
|
1554
1621
|
},
|
|
1622
|
+
{
|
|
1623
|
+
id: "cost-guard",
|
|
1624
|
+
label: "Foreground cost guard",
|
|
1625
|
+
description: "Optional per-turn USD projection warning or reasoning downgrade; disabled by default",
|
|
1626
|
+
currentValue: costGuardSummary(currentCostGuard),
|
|
1627
|
+
submenu: (_currentValue, done) => new CostGuardSettingsSubmenu(currentCostGuard, (settings, scope) => {
|
|
1628
|
+
currentCostGuard = { ...settings };
|
|
1629
|
+
callbacks.onCostGuardChange(settings, scope);
|
|
1630
|
+
}, () => done(costGuardSummary(currentCostGuard)), config.costGuardScope ?? "global"),
|
|
1631
|
+
},
|
|
1555
1632
|
{
|
|
1556
1633
|
id: "steering-mode",
|
|
1557
1634
|
label: "Steering mode",
|
|
@@ -1666,7 +1743,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1666
1743
|
{
|
|
1667
1744
|
id: "worker-delegation",
|
|
1668
1745
|
label: "Worker Delegation",
|
|
1669
|
-
description: "Default-on provider-neutral
|
|
1746
|
+
description: "Default-on provider-neutral leaf workers with inherited authority and optional owner-authored execution presets",
|
|
1670
1747
|
currentValue: workerDelegationSummary(currentWorkerDelegation),
|
|
1671
1748
|
submenu: (_currentValue, done) => new WorkerDelegationSettingsSubmenu(currentWorkerDelegation, (settings, scope) => {
|
|
1672
1749
|
currentWorkerDelegation = { ...settings };
|
|
@@ -1706,7 +1783,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1706
1783
|
{
|
|
1707
1784
|
id: "model-router",
|
|
1708
1785
|
label: "Model Router",
|
|
1709
|
-
description: "Configure models for cheap research, expensive modify/escalation, and background learning
|
|
1786
|
+
description: "Configure models for cheap research, expensive modify/escalation, and explicit/background learning; automatic reflection uses the orchestrator's current session turn",
|
|
1710
1787
|
currentValue: modelRouterSummary(currentModelRouter),
|
|
1711
1788
|
submenu: (_currentValue, done) => new ModelRouterSettingsSubmenu(currentModelRouter, config.currentModelPattern, config.autoLearnModelOptions, config.resolveModelThinkingLevels, (settings, scope) => {
|
|
1712
1789
|
currentModelRouter = { ...settings };
|
|
@@ -1717,11 +1794,11 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1717
1794
|
id: "auto-learn",
|
|
1718
1795
|
label: "Auto Learn Advanced",
|
|
1719
1796
|
description: "Advanced overrides for autonomous background learning/scavenging",
|
|
1720
|
-
currentValue: autoLearnSummary(currentAutoLearn),
|
|
1721
|
-
submenu: (_currentValue, done) => new AutoLearnSettingsSubmenu(currentAutoLearn, config.currentModelPattern, config.autoLearnModelOptions, (settings, scope) => {
|
|
1797
|
+
currentValue: autoLearnSummary(currentAutoLearn, autonomyModeValue(currentAutonomy)),
|
|
1798
|
+
submenu: (_currentValue, done) => new AutoLearnSettingsSubmenu(currentAutoLearn, autonomyModeValue(currentAutonomy), config.currentModelPattern, config.autoLearnModelOptions, (settings, scope) => {
|
|
1722
1799
|
currentAutoLearn = { ...settings };
|
|
1723
1800
|
callbacks.onAutoLearnChange(settings, scope);
|
|
1724
|
-
}, () => done(autoLearnSummary(currentAutoLearn)), config.autoLearnScope ?? "global"),
|
|
1801
|
+
}, () => done(autoLearnSummary(currentAutoLearn, autonomyModeValue(currentAutonomy))), config.autoLearnScope ?? "global"),
|
|
1725
1802
|
},
|
|
1726
1803
|
{
|
|
1727
1804
|
id: "context-policy-enforcement",
|