@caupulican/pi-adaptative 0.94.1 → 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 +39 -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-session.d.ts +11 -41
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +93 -160
- 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 +1 -1
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +1 -1
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/background-tool-task-controller.d.ts +8 -2
- package/dist/core/background-tool-task-controller.d.ts.map +1 -1
- package/dist/core/background-tool-task-controller.js +10 -2
- package/dist/core/background-tool-task-controller.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-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-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 +14 -0
- package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
- package/dist/core/foreground-terminal-handoff-controller.js +188 -72
- 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/reflection-engine.d.ts +4 -0
- package/dist/core/learning/reflection-engine.d.ts.map +1 -1
- package/dist/core/learning/reflection-engine.js +48 -10
- 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/providers/file-store.d.ts +2 -0
- package/dist/core/memory/providers/file-store.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.js +71 -15
- 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/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 +4 -10
- 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 +56 -27
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +206 -117
- 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 +1 -1
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +1 -1
- package/dist/core/tools/delegate-status.js.map +1 -1
- package/dist/core/tools/delegate.d.ts +4 -15
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +111 -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/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 +30 -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/custom-message.js +17 -0
- 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
|
@@ -15,73 +15,13 @@ import { spawn } from "child_process";
|
|
|
15
15
|
import lockfile from "proper-lockfile";
|
|
16
16
|
import { getAgentDir } from "../../config.js";
|
|
17
17
|
import { readAutoLearnSessionIdFromFile, reportCompletedAutoLearnUsageHelper } from "../../core/cost/session-usage.js";
|
|
18
|
-
import {
|
|
18
|
+
import { getAutoLearnPreset, isCurrentSessionReflectionEnabled, resolveAutoLearnSettings, } from "../../core/learning/auto-learn-settings.js";
|
|
19
19
|
import { isProcessAlive } from "../../core/process-liveness.js";
|
|
20
20
|
import { describeInFlightWorkUnit, getInFlightWorkUnits, getPendingReloadBlockers, } from "../../core/reload-blockers.js";
|
|
21
21
|
import { PI_SESSION_ROLE_ENV } from "../../core/session-role.js";
|
|
22
22
|
import { checkTaskStepsContract, INITIAL_TASK_CONTRACT_STREAK, } from "../../core/tasks/task-contract-monitor.js";
|
|
23
23
|
import { getProcessWorkRun } from "../../utils/work-directory.js";
|
|
24
24
|
import { theme } from "./theme/theme.js";
|
|
25
|
-
const AUTO_LEARN_DEFAULTS = {
|
|
26
|
-
enabled: false,
|
|
27
|
-
model: "active",
|
|
28
|
-
thinkingLevel: "low",
|
|
29
|
-
longSessionMessages: 32,
|
|
30
|
-
longSessionContextPercent: 70,
|
|
31
|
-
cooldownMinutes: 24 * 60,
|
|
32
|
-
leaseMinutes: 90,
|
|
33
|
-
maxConcurrentLearners: 1,
|
|
34
|
-
applyHighConfidence: false,
|
|
35
|
-
reflectionReview: true,
|
|
36
|
-
reflectionMinToolCalls: 12,
|
|
37
|
-
reflectionCooldownMinutes: 24 * 60,
|
|
38
|
-
complexTaskToolCalls: 12,
|
|
39
|
-
};
|
|
40
|
-
const AUTONOMY_AUTO_LEARN_PRESETS = {
|
|
41
|
-
off: { ...AUTO_LEARN_DEFAULTS, enabled: true, reflectionReview: true },
|
|
42
|
-
safe: {
|
|
43
|
-
...AUTO_LEARN_DEFAULTS,
|
|
44
|
-
enabled: true,
|
|
45
|
-
longSessionMessages: 64,
|
|
46
|
-
longSessionContextPercent: 85,
|
|
47
|
-
cooldownMinutes: 24 * 60,
|
|
48
|
-
leaseMinutes: 60,
|
|
49
|
-
maxConcurrentLearners: 1,
|
|
50
|
-
applyHighConfidence: false,
|
|
51
|
-
reflectionReview: true,
|
|
52
|
-
reflectionMinToolCalls: 12,
|
|
53
|
-
reflectionCooldownMinutes: 24 * 60,
|
|
54
|
-
complexTaskToolCalls: 12,
|
|
55
|
-
},
|
|
56
|
-
balanced: {
|
|
57
|
-
...AUTO_LEARN_DEFAULTS,
|
|
58
|
-
enabled: true,
|
|
59
|
-
longSessionMessages: 64,
|
|
60
|
-
longSessionContextPercent: 85,
|
|
61
|
-
cooldownMinutes: 24 * 60,
|
|
62
|
-
leaseMinutes: 90,
|
|
63
|
-
maxConcurrentLearners: 1,
|
|
64
|
-
applyHighConfidence: false,
|
|
65
|
-
reflectionReview: true,
|
|
66
|
-
reflectionMinToolCalls: 12,
|
|
67
|
-
reflectionCooldownMinutes: 24 * 60,
|
|
68
|
-
complexTaskToolCalls: 12,
|
|
69
|
-
},
|
|
70
|
-
full: {
|
|
71
|
-
...AUTO_LEARN_DEFAULTS,
|
|
72
|
-
enabled: true,
|
|
73
|
-
longSessionMessages: 64,
|
|
74
|
-
longSessionContextPercent: 85,
|
|
75
|
-
cooldownMinutes: 24 * 60,
|
|
76
|
-
leaseMinutes: 90,
|
|
77
|
-
maxConcurrentLearners: 1,
|
|
78
|
-
applyHighConfidence: true,
|
|
79
|
-
reflectionReview: true,
|
|
80
|
-
reflectionMinToolCalls: 12,
|
|
81
|
-
reflectionCooldownMinutes: 24 * 60,
|
|
82
|
-
complexTaskToolCalls: 12,
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
25
|
export const AUTONOMY_MODES = ["off", "safe", "balanced", "full"];
|
|
86
26
|
const AUTO_LEARN_RESERVATION_MS = 2 * 60 * 1000;
|
|
87
27
|
export const AUTO_LEARN_HISTORY_RETENTION_MS = 7 * 24 * 60 * 60 * 1000;
|
|
@@ -226,9 +166,8 @@ export class AutoLearnController {
|
|
|
226
166
|
constructor(deps) {
|
|
227
167
|
// Cheap turn-boundary task_steps contract nudge. Tracks the consecutive-violation streak
|
|
228
168
|
// across turns so `checkTaskStepsContractNudge` (invoked from the existing per-turn `agent_end`
|
|
229
|
-
// pass below) can fire exactly one advisory harness note per sustained-violation streak.
|
|
230
|
-
//
|
|
231
|
-
// auto-learn/autonomy-review pair) — see `checkTaskStepsContractNudge` for the rationale.
|
|
169
|
+
// pass below) can fire exactly one advisory harness note per sustained-violation streak. It makes
|
|
170
|
+
// no model call and remains independent of current-session reflection cue planning.
|
|
232
171
|
this._taskContractStreak = INITIAL_TASK_CONTRACT_STREAK;
|
|
233
172
|
this.deps = deps;
|
|
234
173
|
}
|
|
@@ -421,27 +360,11 @@ export class AutoLearnController {
|
|
|
421
360
|
});
|
|
422
361
|
}
|
|
423
362
|
getAutoLearnPresetForAutonomyMode(mode, current = {}) {
|
|
424
|
-
|
|
425
|
-
return { ...preset, model: current.model?.trim() || preset.model };
|
|
363
|
+
return getAutoLearnPreset(mode, current);
|
|
426
364
|
}
|
|
427
365
|
getEffectiveAutoLearnSettings() {
|
|
428
366
|
const settings = this.session.settingsManager.getAutoLearnSettings();
|
|
429
|
-
|
|
430
|
-
return {
|
|
431
|
-
enabled: settings.enabled ?? preset.enabled,
|
|
432
|
-
model: settings.model?.trim() || preset.model,
|
|
433
|
-
longSessionMessages: settings.longSessionMessages ?? preset.longSessionMessages,
|
|
434
|
-
longSessionContextPercent: settings.longSessionContextPercent ?? preset.longSessionContextPercent,
|
|
435
|
-
cooldownMinutes: settings.cooldownMinutes ?? preset.cooldownMinutes,
|
|
436
|
-
leaseMinutes: settings.leaseMinutes ?? preset.leaseMinutes,
|
|
437
|
-
maxConcurrentLearners: settings.maxConcurrentLearners ?? preset.maxConcurrentLearners,
|
|
438
|
-
applyHighConfidence: settings.applyHighConfidence ?? preset.applyHighConfidence,
|
|
439
|
-
reflectionReview: settings.reflectionReview ?? preset.reflectionReview,
|
|
440
|
-
reflectionMinToolCalls: settings.reflectionMinToolCalls ?? preset.reflectionMinToolCalls,
|
|
441
|
-
reflectionCooldownMinutes: settings.reflectionCooldownMinutes ?? preset.reflectionCooldownMinutes,
|
|
442
|
-
complexTaskToolCalls: settings.complexTaskToolCalls ?? preset.complexTaskToolCalls,
|
|
443
|
-
thinkingLevel: settings.thinkingLevel ?? preset.thinkingLevel,
|
|
444
|
-
};
|
|
367
|
+
return resolveAutoLearnSettings(this.session.settingsManager.getAutonomySettings().mode, settings);
|
|
445
368
|
}
|
|
446
369
|
getCurrentAutoLearnSettings() {
|
|
447
370
|
return this.getEffectiveAutoLearnSettings();
|
|
@@ -535,6 +458,14 @@ export class AutoLearnController {
|
|
|
535
458
|
runningCount,
|
|
536
459
|
};
|
|
537
460
|
}
|
|
461
|
+
/** Read-only readiness projection for the manual Auto Learn command and status report. */
|
|
462
|
+
evaluateAutoLearn(force = false) {
|
|
463
|
+
const settings = this.getEffectiveAutoLearnSettings();
|
|
464
|
+
return this.withAutoLearnStateLock((current) => {
|
|
465
|
+
const state = this.pruneAutoLearnHistoryFromState(current);
|
|
466
|
+
return { result: this.buildAutoLearnDecisionFromState(state, settings, force), next: state };
|
|
467
|
+
});
|
|
468
|
+
}
|
|
538
469
|
resolveAutoLearnModelPattern(settings) {
|
|
539
470
|
if (settings.model === "active") {
|
|
540
471
|
return this.session.model ? `${this.session.model.provider}/${this.session.model.id}` : undefined;
|
|
@@ -572,13 +503,6 @@ export class AutoLearnController {
|
|
|
572
503
|
return undefined;
|
|
573
504
|
return `Auto Learn model "${modelValue}" is not in configured subscription/API models; saved as manual/unverified.`;
|
|
574
505
|
}
|
|
575
|
-
evaluateAutoLearn(force = false) {
|
|
576
|
-
const settings = this.getEffectiveAutoLearnSettings();
|
|
577
|
-
return this.withAutoLearnStateLock((current) => {
|
|
578
|
-
const state = this.pruneAutoLearnHistoryFromState(current);
|
|
579
|
-
return { result: this.buildAutoLearnDecisionFromState(state, settings, force), next: state };
|
|
580
|
-
});
|
|
581
|
-
}
|
|
582
506
|
buildAutonomyAuthorityPrompt() {
|
|
583
507
|
const autonomy = this.session.settingsManager.getAutonomySettings();
|
|
584
508
|
const selfModification = this.session.settingsManager.getSelfModificationSettings();
|
|
@@ -736,6 +660,9 @@ export class AutoLearnController {
|
|
|
736
660
|
});
|
|
737
661
|
}
|
|
738
662
|
launchAutoLearn(reason, force = false, options = {}) {
|
|
663
|
+
if (options.promptKind === "reflection" || options.cooldownKind === "reflection") {
|
|
664
|
+
return "Auto Learn not started: automatic reflection runs only in the current root session; background reflection learners are disabled.";
|
|
665
|
+
}
|
|
739
666
|
const settings = this.getEffectiveAutoLearnSettings();
|
|
740
667
|
const modelPattern = this.resolveAutoLearnModelPattern(settings);
|
|
741
668
|
if (!modelPattern) {
|
|
@@ -860,93 +787,12 @@ export class AutoLearnController {
|
|
|
860
787
|
this.updateAutoLearnFooter();
|
|
861
788
|
return `Auto Learn started. Log: ${logPath}`;
|
|
862
789
|
}
|
|
863
|
-
evaluateAutonomyReview(messages) {
|
|
864
|
-
const settings = this.getEffectiveAutoLearnSettings();
|
|
865
|
-
const complexTaskThreshold = Math.max(1, settings.complexTaskToolCalls ?? 12);
|
|
866
|
-
const turn = analyzeReflectionTurn(messages, complexTaskThreshold);
|
|
867
|
-
const digest = turn.recentTurnText || "[No textual turn digest available.]";
|
|
868
|
-
const state = this.withAutoLearnStateLock((current) => {
|
|
869
|
-
const pruned = this.pruneAutoLearnHistoryFromState(current);
|
|
870
|
-
return { result: pruned, next: pruned };
|
|
871
|
-
});
|
|
872
|
-
const now = Date.now();
|
|
873
|
-
const tenant = this.getAutoLearnTenantKey();
|
|
874
|
-
const runningCount = Object.values(state.runs ?? {}).filter((run) => run.tenant === tenant).length;
|
|
875
|
-
const lastReflection = state.lastReflectionByTenant?.[tenant] ?? 0;
|
|
876
|
-
const cooldownMs = settings.reflectionCooldownMinutes * 60 * 1000;
|
|
877
|
-
const cooldownRemainingMs = Math.max(0, lastReflection + cooldownMs - now);
|
|
878
|
-
const messageCount = this.getAutoLearnMessageCount();
|
|
879
|
-
const contextPercent = this.session.getContextUsage()?.percent ?? null;
|
|
880
|
-
const toolCalls = turn.toolCallCount;
|
|
881
|
-
const userText = turn.userText;
|
|
882
|
-
const correctionSignal = turn.hadCorrection;
|
|
883
|
-
const behavioralSelfImprovementSignal = /\b(harness|pi|agent|autonomy|autonomous|self[- ]?improv(?:e|ement|ing)?|steer(?:ing)?|trigger(?:s)?|skill(?:s)?|code[- ]?bak(?:e|ed)|bake(?:d)? into code|not (?:automata|memory)|reference agent|hermes)\b/i.test(userText) &&
|
|
884
|
-
/\b(improve|automatic(?:ally)?|autonomous|trigger|fire|skill|steer|self[- ]?improv(?:e|ement|ing)?|code[- ]?bak(?:e|ed)|bake(?:d)?|too much|less)\b/i.test(userText);
|
|
885
|
-
const complexTaskSignal = toolCalls >= complexTaskThreshold;
|
|
886
|
-
const bypassCooldown = correctionSignal || behavioralSelfImprovementSignal || complexTaskSignal;
|
|
887
|
-
const base = { messageCount, contextPercent, cooldownRemainingMs, runningCount, toolCalls };
|
|
888
|
-
if (!settings.enabled)
|
|
889
|
-
return { ...base, shouldRun: false, reason: "disabled" };
|
|
890
|
-
if (!settings.reflectionReview)
|
|
891
|
-
return { ...base, shouldRun: false, reason: "reflection disabled" };
|
|
892
|
-
if (runningCount >= settings.maxConcurrentLearners) {
|
|
893
|
-
return {
|
|
894
|
-
...base,
|
|
895
|
-
shouldRun: false,
|
|
896
|
-
reason: `max tenant learners running (${runningCount}/${settings.maxConcurrentLearners})`,
|
|
897
|
-
};
|
|
898
|
-
}
|
|
899
|
-
if (cooldownRemainingMs > 0 && !bypassCooldown) {
|
|
900
|
-
return { ...base, shouldRun: false, reason: "reflection cooldown" };
|
|
901
|
-
}
|
|
902
|
-
if (behavioralSelfImprovementSignal) {
|
|
903
|
-
return {
|
|
904
|
-
...base,
|
|
905
|
-
shouldRun: true,
|
|
906
|
-
reason: "reflection behavioral self-improvement signal",
|
|
907
|
-
digest,
|
|
908
|
-
bypassCooldown: true,
|
|
909
|
-
};
|
|
910
|
-
}
|
|
911
|
-
if (correctionSignal) {
|
|
912
|
-
return {
|
|
913
|
-
...base,
|
|
914
|
-
shouldRun: true,
|
|
915
|
-
reason: "reflection correction signal",
|
|
916
|
-
digest,
|
|
917
|
-
bypassCooldown: true,
|
|
918
|
-
};
|
|
919
|
-
}
|
|
920
|
-
if (complexTaskSignal) {
|
|
921
|
-
return {
|
|
922
|
-
...base,
|
|
923
|
-
shouldRun: true,
|
|
924
|
-
reason: `reflection complex task learning signal (${toolCalls}/${complexTaskThreshold} tool calls)`,
|
|
925
|
-
digest,
|
|
926
|
-
bypassCooldown: true,
|
|
927
|
-
};
|
|
928
|
-
}
|
|
929
|
-
// Full autonomy expands allowed action scope for triggered reviews; it does not make every turn a review trigger.
|
|
930
|
-
if (toolCalls >= settings.reflectionMinToolCalls) {
|
|
931
|
-
return {
|
|
932
|
-
...base,
|
|
933
|
-
shouldRun: true,
|
|
934
|
-
reason: `reflection tool trigger (${toolCalls}/${settings.reflectionMinToolCalls})`,
|
|
935
|
-
digest,
|
|
936
|
-
};
|
|
937
|
-
}
|
|
938
|
-
return { ...base, shouldRun: false, reason: "reflection thresholds not met" };
|
|
939
|
-
}
|
|
940
790
|
/**
|
|
941
|
-
*
|
|
942
|
-
*
|
|
791
|
+
* Current-session reflection is available only to the root orchestrator. It never launches a
|
|
792
|
+
* learner process; the session provider planner owns its single-request transient cue.
|
|
943
793
|
*/
|
|
944
794
|
isNativeReflectionEnabled() {
|
|
945
|
-
|
|
946
|
-
return false;
|
|
947
|
-
if (process.env.PI_AUTO_LEARN_CHILD === "1")
|
|
948
|
-
return false;
|
|
949
|
-
return this.getEffectiveAutoLearnSettings().enabled;
|
|
795
|
+
return isCurrentSessionReflectionEnabled(this.getEffectiveAutoLearnSettings());
|
|
950
796
|
}
|
|
951
797
|
/**
|
|
952
798
|
* Cheap turn-boundary task_steps contract check. Reads the current task_steps snapshot,
|
|
@@ -957,9 +803,8 @@ export class AutoLearnController {
|
|
|
957
803
|
* `task_steps_context` pages through). Zero model calls; a delivery failure is swallowed so this
|
|
958
804
|
* best-effort nudge can never disrupt the turn.
|
|
959
805
|
*
|
|
960
|
-
* Called from both
|
|
961
|
-
*
|
|
962
|
-
* native reflection or legacy auto-learn is enabled, without adding a new turn-boundary hook.
|
|
806
|
+
* Called from both interactive turn-boundary compatibility hooks so it runs regardless of the
|
|
807
|
+
* current-session reflection setting without adding another provider turn.
|
|
963
808
|
*/
|
|
964
809
|
checkTaskStepsContractNudge() {
|
|
965
810
|
const state = this.session.getTaskStepsStateSnapshot();
|
|
@@ -981,36 +826,16 @@ export class AutoLearnController {
|
|
|
981
826
|
void messages;
|
|
982
827
|
}
|
|
983
828
|
maybeStartAutoLearn() {
|
|
984
|
-
//
|
|
985
|
-
// unconditionally here so the contract nudge fires every turn regardless of auto-learn settings.
|
|
829
|
+
// Preserve the deterministic task-contract monitor, but never buy an automatic learner turn.
|
|
986
830
|
this.checkTaskStepsContractNudge();
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
const decision = this.evaluateAutoLearn(false);
|
|
990
|
-
if (!decision.shouldRun) {
|
|
991
|
-
this.updateAutoLearnFooter();
|
|
992
|
-
return false;
|
|
993
|
-
}
|
|
994
|
-
const message = this.launchAutoLearn(decision.reason, false);
|
|
995
|
-
if (!message.startsWith("Auto Learn started"))
|
|
996
|
-
this.deps.ui.showStatus(message);
|
|
997
|
-
return message.startsWith("Auto Learn started");
|
|
831
|
+
this.updateAutoLearnFooter();
|
|
832
|
+
return false;
|
|
998
833
|
}
|
|
999
834
|
maybeStartAutonomyReview(messages) {
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
return false;
|
|
1005
|
-
const message = this.launchAutoLearn(decision.reason, true, {
|
|
1006
|
-
cooldownKind: "reflection",
|
|
1007
|
-
promptKind: "reflection",
|
|
1008
|
-
turnDigest: decision.digest,
|
|
1009
|
-
bypassReflectionCooldown: decision.bypassCooldown,
|
|
1010
|
-
});
|
|
1011
|
-
if (!message.startsWith("Auto Learn started"))
|
|
1012
|
-
this.deps.ui.showStatus(message);
|
|
1013
|
-
return message.startsWith("Auto Learn started");
|
|
835
|
+
// Compatibility hook for InteractiveEventHost. Completed-turn reflection is deterministic and
|
|
836
|
+
// session-owned; it never creates a background process or a second provider turn.
|
|
837
|
+
void messages;
|
|
838
|
+
return false;
|
|
1014
839
|
}
|
|
1015
840
|
updateAutoLearnFooter() {
|
|
1016
841
|
const settings = this.getEffectiveAutoLearnSettings();
|
|
@@ -1062,10 +887,8 @@ export class AutoLearnController {
|
|
|
1062
887
|
const inFlightWorkLines = inFlightWork.length
|
|
1063
888
|
? inFlightWork.map((unit) => `- ${describeInFlightWorkUnit(unit)}`).join("\n")
|
|
1064
889
|
: "- none";
|
|
1065
|
-
const
|
|
1066
|
-
|
|
1067
|
-
const reflectionCooldownText = reflectionCooldownRemainingMs > 0 ? `${Math.ceil(reflectionCooldownRemainingMs / 60000)}m remaining` : "ready";
|
|
1068
|
-
return `Auto Learn status\nEnabled: ${settings.enabled}\nModel: ${settings.model}\nNext decision: ${decision.shouldRun ? "ready" : decision.reason}\nMessages: ${decision.messageCount}/${settings.longSessionMessages}\nContext: ${contextText}/${settings.longSessionContextPercent}%\nCooldown: ${cooldownText}\nReflection review: ${settings.reflectionReview ? "enabled" : "disabled"} (tool trigger ${settings.reflectionMinToolCalls}, cooldown ${reflectionCooldownText})\nHistory retention: 7 days for internal Auto Learn prompts/logs/sessions\nRunning tenant leases: ${runs.length}/${settings.maxConcurrentLearners}\nOther tenant leases: ${otherTenantRuns}\nTenant artifact dir: ${this.getAutoLearnTenantDataDir()}\nPi auto-reload blockers: ${reloadBlockers.pending ? reloadBlockers.reason : "none"}\n${reloadBlockerLines}\nIn-process reload-gate work: ${inFlightWork.length ? `${inFlightWork.length} unit(s)` : "none"}\n${inFlightWorkLines}\nRuns:\n${runLines}`;
|
|
890
|
+
const reflectionStatus = this.isNativeReflectionEnabled() ? "enabled" : "disabled";
|
|
891
|
+
return `Auto Learn status\nEnabled: ${settings.enabled}\nModel: ${settings.model}\nNext decision: ${decision.shouldRun ? "ready" : decision.reason}\nMessages: ${decision.messageCount}/${settings.longSessionMessages}\nContext: ${contextText}/${settings.longSessionContextPercent}%\nCooldown: ${cooldownText}\nCurrent-session reflection: ${reflectionStatus} (complex trigger ${settings.complexTaskToolCalls} tool calls; automatic provider requests 0)\nHistory retention: 7 days for internal Auto Learn prompts/logs/sessions\nRunning tenant leases: ${runs.length}/${settings.maxConcurrentLearners}\nOther tenant leases: ${otherTenantRuns}\nTenant artifact dir: ${this.getAutoLearnTenantDataDir()}\nPi auto-reload blockers: ${reloadBlockers.pending ? reloadBlockers.reason : "none"}\n${reloadBlockerLines}\nIn-process reload-gate work: ${inFlightWork.length ? `${inFlightWork.length} unit(s)` : "none"}\n${inFlightWorkLines}\nRuns:\n${runLines}`;
|
|
1069
892
|
}
|
|
1070
893
|
}
|
|
1071
894
|
//# sourceMappingURL=auto-learn-controller.js.map
|