@caupulican/pi-adaptative 0.90.11 → 0.91.2
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 +46 -0
- package/README.md +8 -10
- package/dist/bundled-resources/skills/icm-architect/LICENSE +21 -0
- package/dist/bundled-resources/skills/icm-architect/SKILL.md +112 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/CLAUDE.md +27 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/CONTEXT.md +14 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/node.md +29 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/object.md +43 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/process.md +38 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/questionnaire.md +9 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/schema.md +24 -0
- package/dist/bundled-resources/skills/icm-architect/assets/templates/stage-CONTEXT.md +21 -0
- package/dist/bundled-resources/skills/icm-architect/references/core.md +92 -0
- package/dist/bundled-resources/skills/icm-architect/references/forms.md +182 -0
- package/dist/bundled-resources/skills/icm-architect/references/system-map.md +122 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-paths.d.ts +2 -2
- package/dist/core/agent-paths.d.ts.map +1 -1
- package/dist/core/agent-paths.js +1 -0
- package/dist/core/agent-paths.js.map +1 -1
- package/dist/core/agent-session.d.ts +12 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +44 -11
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.js +2 -0
- package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
- package/dist/core/background-tool-task-controller.d.ts +9 -0
- package/dist/core/background-tool-task-controller.d.ts.map +1 -1
- package/dist/core/background-tool-task-controller.js +23 -0
- package/dist/core/background-tool-task-controller.js.map +1 -1
- package/dist/core/bash-executor.js +3 -3
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/context/local-graph-memory-provider.d.ts +9 -0
- package/dist/core/context/local-graph-memory-provider.d.ts.map +1 -0
- package/dist/core/context/local-graph-memory-provider.js +122 -0
- package/dist/core/context/local-graph-memory-provider.js.map +1 -0
- package/dist/core/context/tool-output-packer.d.ts +2 -2
- package/dist/core/context/tool-output-packer.d.ts.map +1 -1
- package/dist/core/context/tool-output-packer.js +3 -3
- package/dist/core/context/tool-output-packer.js.map +1 -1
- package/dist/core/context-gc.d.ts.map +1 -1
- package/dist/core/context-gc.js +2 -0
- package/dist/core/context-gc.js.map +1 -1
- package/dist/core/default-tool-surface.d.ts.map +1 -1
- package/dist/core/default-tool-surface.js +5 -0
- package/dist/core/default-tool-surface.js.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts +1 -0
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.js +16 -8
- package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-agent-control.d.ts +2 -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-context-inheritance-policy.d.ts +3 -3
- package/dist/core/delegation/worker-context-inheritance-policy.js +4 -4
- package/dist/core/delegation/worker-context-inheritance-policy.js.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.d.ts +1 -5
- package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.js +19 -9
- package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
- package/dist/core/delegation/worker-tree-budget-coordinator.d.ts +2 -0
- package/dist/core/delegation/worker-tree-budget-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-tree-budget-coordinator.js +6 -0
- package/dist/core/delegation/worker-tree-budget-coordinator.js.map +1 -1
- package/dist/core/extensions/extension-session-scope.d.ts +17 -0
- package/dist/core/extensions/extension-session-scope.d.ts.map +1 -0
- package/dist/core/extensions/extension-session-scope.js +135 -0
- package/dist/core/extensions/extension-session-scope.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -0
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -0
- package/dist/core/extensions/index.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/wrapper.d.ts +2 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +10 -4
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/foreground-terminal-handoff-controller.d.ts +0 -1
- package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
- package/dist/core/foreground-terminal-handoff-controller.js +1 -2
- package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-controller.d.ts +7 -1
- package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-controller.js +16 -0
- package/dist/core/goals/goal-continuation-controller.js.map +1 -1
- package/dist/core/goals/goal-runtime-snapshot.d.ts +3 -0
- package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
- package/dist/core/goals/goal-runtime-snapshot.js +8 -1
- package/dist/core/goals/goal-runtime-snapshot.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 +1 -0
- package/dist/core/goals/goal-session-controller.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts +18 -0
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js +62 -0
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/goals/natural-language-goal.d.ts.map +1 -1
- package/dist/core/goals/natural-language-goal.js +4 -2
- package/dist/core/goals/natural-language-goal.js.map +1 -1
- package/dist/core/human-input-controller.d.ts +3 -34
- package/dist/core/human-input-controller.d.ts.map +1 -1
- package/dist/core/human-input-controller.js +3 -161
- package/dist/core/human-input-controller.js.map +1 -1
- package/dist/core/keybindings.d.ts +5 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +2 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/learning/reflection-turn-analysis.d.ts.map +1 -1
- package/dist/core/learning/reflection-turn-analysis.js +10 -1
- package/dist/core/learning/reflection-turn-analysis.js.map +1 -1
- package/dist/core/memory/providers/file-store.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.js +4 -0
- package/dist/core/memory/providers/file-store.js.map +1 -1
- package/dist/core/memory-controller.d.ts +3 -0
- package/dist/core/memory-controller.d.ts.map +1 -1
- package/dist/core/memory-controller.js +18 -0
- package/dist/core/memory-controller.js.map +1 -1
- package/dist/core/model-capability.d.ts.map +1 -1
- package/dist/core/model-capability.js +1 -0
- package/dist/core/model-capability.js.map +1 -1
- package/dist/core/orchestration/work-state-projection.d.ts +4 -0
- package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
- package/dist/core/orchestration/work-state-projection.js +11 -0
- package/dist/core/orchestration/work-state-projection.js.map +1 -1
- package/dist/core/pipelines/context.d.ts +6 -0
- package/dist/core/pipelines/context.d.ts.map +1 -0
- package/dist/core/pipelines/context.js +102 -0
- package/dist/core/pipelines/context.js.map +1 -0
- package/dist/core/pipelines/discover.d.ts +11 -0
- package/dist/core/pipelines/discover.d.ts.map +1 -0
- package/dist/core/pipelines/discover.js +147 -0
- package/dist/core/pipelines/discover.js.map +1 -0
- package/dist/core/pipelines/increment.d.ts +24 -0
- package/dist/core/pipelines/increment.d.ts.map +1 -0
- package/dist/core/pipelines/increment.js +121 -0
- package/dist/core/pipelines/increment.js.map +1 -0
- package/dist/core/pipelines/index.d.ts +8 -0
- package/dist/core/pipelines/index.d.ts.map +1 -0
- package/dist/core/pipelines/index.js +8 -0
- package/dist/core/pipelines/index.js.map +1 -0
- package/dist/core/pipelines/parse-contract.d.ts +10 -0
- package/dist/core/pipelines/parse-contract.d.ts.map +1 -0
- package/dist/core/pipelines/parse-contract.js +105 -0
- package/dist/core/pipelines/parse-contract.js.map +1 -0
- package/dist/core/pipelines/run-state.d.ts +26 -0
- package/dist/core/pipelines/run-state.d.ts.map +1 -0
- package/dist/core/pipelines/run-state.js +135 -0
- package/dist/core/pipelines/run-state.js.map +1 -0
- package/dist/core/pipelines/session-pipeline-run.d.ts +6 -0
- package/dist/core/pipelines/session-pipeline-run.d.ts.map +1 -0
- package/dist/core/pipelines/session-pipeline-run.js +18 -0
- package/dist/core/pipelines/session-pipeline-run.js.map +1 -0
- package/dist/core/pipelines/types.d.ts +91 -0
- package/dist/core/pipelines/types.d.ts.map +1 -0
- package/dist/core/pipelines/types.js +44 -0
- package/dist/core/pipelines/types.js.map +1 -0
- package/dist/core/reflection-controller.d.ts +2 -0
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +53 -30
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/resource-loader.d.ts +21 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +45 -18
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +3 -0
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +49 -1
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +3 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-role.d.ts.map +1 -1
- package/dist/core/session-role.js +2 -0
- package/dist/core/session-role.js.map +1 -1
- package/dist/core/settings-manager.d.ts +12 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +43 -9
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt-builder.js +1 -1
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +30 -22
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tasks/task-projection.d.ts +2 -0
- package/dist/core/tasks/task-projection.d.ts.map +1 -1
- package/dist/core/tasks/task-projection.js +1 -0
- package/dist/core/tasks/task-projection.js.map +1 -1
- package/dist/core/tasks/task-state.d.ts +1 -1
- package/dist/core/tasks/task-state.d.ts.map +1 -1
- package/dist/core/tasks/task-state.js +10 -3
- package/dist/core/tasks/task-state.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +11 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +9 -3
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +47 -5
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/goal.d.ts +16 -1
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +14 -2
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +5 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +33 -2
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/pipeline.d.ts +35 -0
- package/dist/core/tools/pipeline.d.ts.map +1 -0
- package/dist/core/tools/pipeline.js +203 -0
- package/dist/core/tools/pipeline.js.map +1 -0
- package/dist/core/tools/skill-audit.d.ts.map +1 -1
- package/dist/core/tools/skill-audit.js +2 -1
- package/dist/core/tools/skill-audit.js.map +1 -1
- package/dist/core/tools/skill.d.ts.map +1 -1
- package/dist/core/tools/skill.js +2 -1
- 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 +3 -1
- package/dist/core/tools/skillify.js.map +1 -1
- package/dist/core/tools/task-steps.d.ts +1 -1
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +9 -0
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/tools/tool-task.d.ts.map +1 -1
- package/dist/core/tools/tool-task.js +5 -1
- package/dist/core/tools/tool-task.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +1 -0
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +66 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +6 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +20 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts +4 -0
- package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-group.js +96 -7
- package/dist/modes/interactive/components/tool-group.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +8 -10
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/key-handlers.d.ts +1 -0
- package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
- package/dist/modes/interactive/key-handlers.js +2 -1
- package/dist/modes/interactive/key-handlers.js.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.js +12 -0
- package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
- package/docs/extensions.md +8 -5
- package/docs/harness-architecture.md +3 -4
- package/docs/keybindings.md +3 -2
- package/docs/quickstart.md +4 -4
- package/docs/sdk.md +3 -1
- package/docs/settings.md +16 -2
- package/docs/task-steps.md +1 -0
- package/docs/usage.md +6 -7
- package/docs/worker-profiles.md +1 -1
- package/docs/worktree-sync.md +1 -1
- 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/minimal-mode.ts +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/examples/sdk/07-context-files.ts +5 -2
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -34,6 +34,7 @@ export interface KeyHandlersHost {
|
|
|
34
34
|
handleDebugCommand(): void;
|
|
35
35
|
showModelSelector(initialSearchInput?: string): Promise<void>;
|
|
36
36
|
loadTuiHistoryOnDemand(): void;
|
|
37
|
+
toggleToolOutputExpansion(): void;
|
|
37
38
|
showTranscriptPager(): void;
|
|
38
39
|
toggleAgentsOverlay(): void;
|
|
39
40
|
toggleThinkingBlockVisibility(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-handlers.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/key-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,4BAA4B,CAAC,CAAC;IACnH,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAC3F,uBAAuB,IAAI,IAAI,CAAC;IAChC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,WAAW,IAAI,IAAI,CAAC;IACpB,WAAW,IAAI,IAAI,CAAC;IACpB,WAAW,IAAI,IAAI,CAAC;IACpB,kBAAkB,IAAI,IAAI,CAAC;IAC3B,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,kBAAkB,IAAI,IAAI,CAAC;IAC3B,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,sBAAsB,IAAI,IAAI,CAAC;IAC/B,mBAAmB,IAAI,IAAI,CAAC;IAC5B,mBAAmB,IAAI,IAAI,CAAC;IAC5B,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,aAAa,IAAI,IAAI,CAAC;IACtB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,mBAAmB,IAAI,IAAI,CAAC;IAC5B,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"key-handlers.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/key-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,4BAA4B,CAAC,CAAC;IACnH,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAC3F,uBAAuB,IAAI,IAAI,CAAC;IAChC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,WAAW,IAAI,IAAI,CAAC;IACpB,WAAW,IAAI,IAAI,CAAC;IACpB,WAAW,IAAI,IAAI,CAAC;IACpB,kBAAkB,IAAI,IAAI,CAAC;IAC3B,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,kBAAkB,IAAI,IAAI,CAAC;IAC3B,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,sBAAsB,IAAI,IAAI,CAAC;IAC/B,yBAAyB,IAAI,IAAI,CAAC;IAClC,mBAAmB,IAAI,IAAI,CAAC;IAC5B,mBAAmB,IAAI,IAAI,CAAC;IAC5B,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,aAAa,IAAI,IAAI,CAAC;IACtB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,mBAAmB,IAAI,IAAI,CAAC;IAC5B,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAwE5D"}
|
|
@@ -52,7 +52,8 @@ export function setupKeyHandlers(host) {
|
|
|
52
52
|
// Global debug handler on TUI (works regardless of focus)
|
|
53
53
|
host.ui.onDebug = () => host.handleDebugCommand();
|
|
54
54
|
host.defaultEditor.onAction("app.model.select", () => void host.showModelSelector());
|
|
55
|
-
host.defaultEditor.onAction("app.tools.expand", () => host.
|
|
55
|
+
host.defaultEditor.onAction("app.tools.expand", () => host.toggleToolOutputExpansion());
|
|
56
|
+
host.defaultEditor.onAction("app.history.load", () => host.loadTuiHistoryOnDemand());
|
|
56
57
|
host.defaultEditor.onBackgroundTool = () => host.session.backgroundRunningToolCalls() > 0;
|
|
57
58
|
host.defaultEditor.onAction("app.transcript.open", () => host.showTranscriptPager());
|
|
58
59
|
host.defaultEditor.onAction("app.agents.open", () => host.toggleAgentsOverlay());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-handlers.js","sourceRoot":"","sources":["../../../src/modes/interactive/key-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"key-handlers.js","sourceRoot":"","sources":["../../../src/modes/interactive/key-handlers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Editor/global key-handler wiring extracted from interactive-mode.\n *\n * `setupKeyHandlers` installs the escape/action/ctrl-D/change/paste/recall\n * callbacks on the default editor (and the global debug handler on the TUI),\n * each delegating to a host method or toggling the bash-mode/last-escape state.\n * It runs once at init through a wide `KeyHandlersHost` seam; interactive-mode\n * keeps a thin wrapper.\n */\n\nimport type { EditorComponent, TUI } from \"@caupulican/pi-tui\";\nimport type { AgentSession } from \"../../core/agent-session.ts\";\nimport type { SettingsManager } from \"../../core/settings-manager.ts\";\nimport type { CustomEditor } from \"./components/custom-editor.ts\";\n\nexport interface KeyHandlersHost {\n\treadonly defaultEditor: CustomEditor;\n\treadonly editor: EditorComponent;\n\treadonly ui: TUI;\n\treadonly session: Pick<AgentSession, \"isStreaming\" | \"isBashRunning\" | \"abortBash\" | \"backgroundRunningToolCalls\">;\n\treadonly settingsManager: Pick<SettingsManager, \"getDoubleEscapeAction\">;\n\tisBashMode: boolean;\n\tlastEscapeTime: number;\n\trestoreQueuedMessagesToEditor(options?: { abort?: boolean; currentText?: string }): number;\n\tupdateEditorBorderColor(): void;\n\tshowTreeSelector(initialSelectedId?: string): void;\n\tshowUserMessageSelector(newSessionName?: string): void;\n\thandleCtrlC(): void;\n\thandleCtrlD(): void;\n\thandleCtrlZ(): void;\n\tcycleThinkingLevel(): void;\n\tcycleModel(direction: \"forward\" | \"backward\"): Promise<void>;\n\thandleDebugCommand(): void;\n\tshowModelSelector(initialSearchInput?: string): Promise<void>;\n\tloadTuiHistoryOnDemand(): void;\n\ttoggleToolOutputExpansion(): void;\n\tshowTranscriptPager(): void;\n\ttoggleAgentsOverlay(): void;\n\ttoggleThinkingBlockVisibility(): Promise<void>;\n\topenExternalEditor(): Promise<void>;\n\thandleFollowUp(): Promise<void>;\n\thandleDequeue(): void;\n\thandleClearCommand(newSessionName?: string): Promise<void>;\n\tshowSessionSelector(): void;\n\thandleClipboardImagePaste(): Promise<void>;\n}\n\nexport function setupKeyHandlers(host: KeyHandlersHost): void {\n\t// Set up handlers on defaultEditor - they use host.editor for text access\n\t// so they work correctly regardless of which editor is active\n\thost.defaultEditor.onEscape = () => {\n\t\tif (host.session.isStreaming) {\n\t\t\thost.restoreQueuedMessagesToEditor({ abort: true });\n\t\t} else if (host.session.isBashRunning) {\n\t\t\thost.session.abortBash();\n\t\t} else if (host.isBashMode) {\n\t\t\thost.editor.setText(\"\");\n\t\t\thost.isBashMode = false;\n\t\t\thost.updateEditorBorderColor();\n\t\t} else if (!host.editor.getText().trim()) {\n\t\t\t// Double-escape with empty editor triggers /tree, /fork, or nothing based on setting\n\t\t\tconst action = host.settingsManager.getDoubleEscapeAction();\n\t\t\tif (action !== \"none\") {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tif (now - host.lastEscapeTime < 500) {\n\t\t\t\t\tif (action === \"tree\") {\n\t\t\t\t\t\thost.showTreeSelector();\n\t\t\t\t\t} else {\n\t\t\t\t\t\thost.showUserMessageSelector();\n\t\t\t\t\t}\n\t\t\t\t\thost.lastEscapeTime = 0;\n\t\t\t\t} else {\n\t\t\t\t\thost.lastEscapeTime = now;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Register app action handlers\n\thost.defaultEditor.onAction(\"app.clear\", () => host.handleCtrlC());\n\thost.defaultEditor.onCtrlD = () => host.handleCtrlD();\n\thost.defaultEditor.onAction(\"app.suspend\", () => host.handleCtrlZ());\n\thost.defaultEditor.onAction(\"app.thinking.cycle\", () => host.cycleThinkingLevel());\n\thost.defaultEditor.onAction(\"app.model.cycleForward\", () => host.cycleModel(\"forward\"));\n\thost.defaultEditor.onAction(\"app.model.cycleBackward\", () => host.cycleModel(\"backward\"));\n\n\t// Global debug handler on TUI (works regardless of focus)\n\thost.ui.onDebug = () => host.handleDebugCommand();\n\thost.defaultEditor.onAction(\"app.model.select\", () => void host.showModelSelector());\n\thost.defaultEditor.onAction(\"app.tools.expand\", () => host.toggleToolOutputExpansion());\n\thost.defaultEditor.onAction(\"app.history.load\", () => host.loadTuiHistoryOnDemand());\n\thost.defaultEditor.onBackgroundTool = () => host.session.backgroundRunningToolCalls() > 0;\n\thost.defaultEditor.onAction(\"app.transcript.open\", () => host.showTranscriptPager());\n\thost.defaultEditor.onAction(\"app.agents.open\", () => host.toggleAgentsOverlay());\n\thost.defaultEditor.onAction(\"app.thinking.toggle\", () => void host.toggleThinkingBlockVisibility());\n\thost.defaultEditor.onAction(\"app.editor.external\", () => host.openExternalEditor());\n\thost.defaultEditor.onAction(\"app.message.followUp\", () => host.handleFollowUp());\n\thost.defaultEditor.onAction(\"app.message.dequeue\", () => host.handleDequeue());\n\t// Plain Up arrow on an empty editor recalls queued messages for editing\n\t// before history navigation. Many terminals (e.g. Windows Terminal) swallow\n\t// the alt-chord bindings, so the queue must be reachable without them.\n\thost.defaultEditor.onRecallQueued = () => host.restoreQueuedMessagesToEditor() > 0;\n\thost.defaultEditor.onAction(\"app.session.new\", () => host.handleClearCommand());\n\thost.defaultEditor.onAction(\"app.session.tree\", () => host.showTreeSelector());\n\thost.defaultEditor.onAction(\"app.session.fork\", () => host.showUserMessageSelector());\n\thost.defaultEditor.onAction(\"app.session.resume\", () => host.showSessionSelector());\n\n\thost.defaultEditor.onChangeSummary = ({ firstNonWhitespace }) => {\n\t\tconst wasBashMode = host.isBashMode;\n\t\thost.isBashMode = firstNonWhitespace === \"!\";\n\t\tif (wasBashMode !== host.isBashMode) {\n\t\t\thost.updateEditorBorderColor();\n\t\t}\n\t};\n\n\t// Handle the configurable platform paste chord (Ctrl+V on Unix, Alt+V on Windows).\n\thost.defaultEditor.onPasteImage = () => {\n\t\thost.handleClipboardImagePaste();\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-selector-flow.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/settings-selector-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EACX,YAAY,EACZ,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7F,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,IAAI,UAAU,EAAE,CAAC;IACzC,yBAAyB,IAAI,IAAI,CAAC;IAClC,uBAAuB,IAAI,IAAI,CAAC;IAChC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,GAAG,SAAS,CAAC;IACvF,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnE,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3E,qBAAqB,IAAI,IAAI,CAAC;IAC9B,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"settings-selector-flow.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/settings-selector-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EACX,YAAY,EACZ,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7F,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,IAAI,UAAU,EAAE,CAAC;IACzC,yBAAyB,IAAI,IAAI,CAAC;IAClC,uBAAuB,IAAI,IAAI,CAAC;IAChC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,GAAG,SAAS,CAAC;IACvF,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnE,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3E,qBAAqB,IAAI,IAAI,CAAC;IAC9B,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CA2SrE"}
|
|
@@ -52,6 +52,8 @@ export function showSettingsSelector(host) {
|
|
|
52
52
|
// even if the profile would block re-selecting it.
|
|
53
53
|
availableThemes: getAvailableThemes().filter((name) => host.settingsManager.isResourceAllowedByProfile("themes", name)),
|
|
54
54
|
hideThinkingBlock: host.hideThinkingBlock,
|
|
55
|
+
projectContextFiles: host.settingsManager.getProjectContextFiles(),
|
|
56
|
+
projectContextFilesScope: host.settingsManager.getProjectContextFilesScope(),
|
|
55
57
|
collapseChangelog: host.settingsManager.getCollapseChangelog(),
|
|
56
58
|
enableInstallTelemetry: host.settingsManager.getEnableInstallTelemetry(),
|
|
57
59
|
doubleEscapeAction: host.settingsManager.getDoubleEscapeAction(),
|
|
@@ -167,6 +169,16 @@ export function showSettingsSelector(host) {
|
|
|
167
169
|
host.ui.requestRender();
|
|
168
170
|
}
|
|
169
171
|
},
|
|
172
|
+
onProjectContextFilesChange: (mode, scope) => {
|
|
173
|
+
host.settingsManager.setProjectContextFiles(mode, scope);
|
|
174
|
+
const where = scope === "directoryProfile"
|
|
175
|
+
? "this directory"
|
|
176
|
+
: scope === "project"
|
|
177
|
+
? "this project"
|
|
178
|
+
: "all projects";
|
|
179
|
+
const load = mode === "on-demand" ? "lists this project's AGENTS.md" : "global AGENTS.md only";
|
|
180
|
+
host.showStatus(`Project context files: ${load} (${where}). Run /reload to apply.`);
|
|
181
|
+
},
|
|
170
182
|
onHideThinkingBlockChange: (hidden) => {
|
|
171
183
|
host.hideThinkingBlock = hidden;
|
|
172
184
|
host.settingsManager.setHideThinkingBlock(hidden);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-selector-flow.js","sourceRoot":"","sources":["../../../src/modes/interactive/settings-selector-flow.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `/settings` selector flow extracted from interactive-mode.\n *\n * Builds the SettingsSelectorComponent model from the current settings/session\n * state and wires its change callbacks back through a `SettingsSelectorHost`\n * seam. Self-mod/auto-learn validation, autonomy-preset application, autocomplete\n * rebuild, and the resources-hub hand-off stay host-side (shared with other\n * flows); interactive-mode keeps a thin wrapper building the host once.\n */\n\nimport { getSupportedThinkingLevels } from \"@caupulican/pi-ai\";\nimport type { Component, Container, EditorComponent, SelectItem, TUI } from \"@caupulican/pi-tui\";\nimport type { AgentSession } from \"../../core/agent-session.ts\";\nimport { configureHttpDispatcher, formatHttpIdleTimeoutMs } from \"../../core/http-dispatcher.ts\";\nimport { resolveCliModel } from \"../../core/model-resolver.ts\";\nimport type {\n\tAutonomyMode,\n\tSelfModificationSettings,\n\tSettingsManager,\n\tSettingsScope,\n} from \"../../core/settings-manager.ts\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.ts\";\nimport type { CustomEditor } from \"./components/custom-editor.ts\";\nimport type { FooterComponent } from \"./components/footer.ts\";\nimport { SettingsSelectorComponent } from \"./components/settings-selector.ts\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.ts\";\nimport { ToolGroupComponent } from \"./components/tool-group.ts\";\nimport { getAvailableThemes, setTheme } from \"./theme/theme.ts\";\n\nexport interface SettingsSelectorHost {\n\treadonly session: AgentSession;\n\treadonly settingsManager: SettingsManager;\n\treadonly footer: FooterComponent;\n\treadonly chatContainer: Container;\n\treadonly ui: TUI;\n\treadonly defaultEditor: CustomEditor;\n\treadonly editor: EditorComponent;\n\thideThinkingBlock: boolean;\n\tshowSelector(create: (done: () => void) => { component: Component; focus: Component }): void;\n\tshowStatus(message: string): void;\n\tshowWarning(message: string): void;\n\tshowError(message: string): void;\n\tgetAutoLearnModelOptions(): SelectItem[];\n\tsetupAutocompleteProvider(): void;\n\tupdateEditorBorderColor(): void;\n\trebuildChatFromMessages(): Promise<void>;\n\tvalidateSelfModificationSource(settings: SelfModificationSettings): string | undefined;\n\tapplyAutonomyMode(mode: AutonomyMode, scope?: SettingsScope): void;\n\tvalidateAutoLearnModelValue(value: string | undefined): string | undefined;\n\tupdateAutoLearnFooter(): void;\n\thandleResourcesHubAction(action: string): Promise<void>;\n}\n\nexport function showSettingsSelector(host: SettingsSelectorHost): void {\n\thost.showSelector((done) => {\n\t\tconst projectSettings = host.settingsManager.getProjectSettings();\n\t\tconst profileOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"(none)\",\n\t\t\t\tlabel: \"(none)\",\n\t\t\t\tdescription: \"Use configured profile selection (session default)\",\n\t\t\t},\n\t\t\t...host.settingsManager\n\t\t\t\t.getProfileRegistry()\n\t\t\t\t.listProfiles()\n\t\t\t\t.map((profile) => ({\n\t\t\t\t\tvalue: profile.name,\n\t\t\t\t\tlabel: profile.name,\n\t\t\t\t\tdescription: profile.description ?? profile.source,\n\t\t\t\t})),\n\t\t];\n\t\tconst selector = new SettingsSelectorComponent(\n\t\t\t{\n\t\t\t\tautoCompact: host.session.autoCompactionEnabled,\n\t\t\t\tshowImages: host.settingsManager.getShowImages(),\n\t\t\t\timageWidthCells: host.settingsManager.getImageWidthCells(),\n\t\t\t\tautoResizeImages: host.settingsManager.getImageAutoResize(),\n\t\t\t\tblockImages: host.settingsManager.getBlockImages(),\n\t\t\t\tenableSkillCommands: host.settingsManager.getEnableSkillCommands(),\n\t\t\t\tsteeringMode: host.session.steeringMode,\n\t\t\t\tfollowUpMode: host.session.followUpMode,\n\t\t\t\ttransport: host.settingsManager.getTransport(),\n\t\t\t\thttpIdleTimeoutMs: host.settingsManager.getHttpIdleTimeoutMs(),\n\t\t\t\tthinkingLevel: host.session.thinkingLevel,\n\t\t\t\tavailableThinkingLevels: host.session.getAvailableThinkingLevels(),\n\t\t\t\tcurrentTheme: host.settingsManager.getTheme() || \"dark\",\n\t\t\t\t// The picker offers only themes the active profile permits (no-bypass). The theme\n\t\t\t\t// registry/renderer keeps the full set, so an already-applied theme still renders\n\t\t\t\t// even if the profile would block re-selecting it.\n\t\t\t\tavailableThemes: getAvailableThemes().filter((name) =>\n\t\t\t\t\thost.settingsManager.isResourceAllowedByProfile(\"themes\", name),\n\t\t\t\t),\n\t\t\t\thideThinkingBlock: host.hideThinkingBlock,\n\t\t\t\tcollapseChangelog: host.settingsManager.getCollapseChangelog(),\n\t\t\t\tenableInstallTelemetry: host.settingsManager.getEnableInstallTelemetry(),\n\t\t\t\tdoubleEscapeAction: host.settingsManager.getDoubleEscapeAction(),\n\t\t\t\ttreeFilterMode: host.settingsManager.getTreeFilterMode(),\n\t\t\t\tshowHardwareCursor: host.settingsManager.getShowHardwareCursor(),\n\t\t\t\teditorPaddingX: host.settingsManager.getEditorPaddingX(),\n\t\t\t\tautocompleteMaxVisible: host.settingsManager.getAutocompleteMaxVisible(),\n\t\t\t\tquietStartup: host.settingsManager.getQuietStartup(),\n\t\t\t\tclearOnShrink: host.settingsManager.getClearOnShrink(),\n\t\t\t\tshowTerminalProgress: host.settingsManager.getShowTerminalProgress(),\n\t\t\t\twarnings: host.settingsManager.getWarnings(),\n\t\t\t\tselfModification: host.settingsManager.getSelfModificationSettings(),\n\t\t\t\tselfModificationScope: projectSettings.selfModification ? \"project\" : \"global\",\n\t\t\t\tautonomy: host.settingsManager.getAutonomySettings(),\n\t\t\t\tautonomyScope: projectSettings.autonomy ? \"project\" : \"global\",\n\t\t\t\tresearchLane: host.settingsManager.getResearchLaneSettings(),\n\t\t\t\tresearchLaneScope: projectSettings.researchLane ? \"project\" : \"global\",\n\t\t\t\tworkerDelegation: host.settingsManager.getWorkerDelegationSettings(),\n\t\t\t\tworkerDelegationScope: projectSettings.workerDelegation ? \"project\" : \"global\",\n\t\t\t\tcontextCuration: host.settingsManager.getContextCurationSettings(),\n\t\t\t\tcontextCurationScope: projectSettings.contextPolicy?.curation ? \"project\" : \"global\",\n\t\t\t\tlearningPolicy: host.settingsManager.getLearningPolicySettings(),\n\t\t\t\tlearningPolicyScope: projectSettings.learningPolicy ? \"project\" : \"global\",\n\t\t\t\tmodelCapability: host.settingsManager.getModelCapabilitySettings(),\n\t\t\t\tmodelCapabilityScope: projectSettings.modelCapability ? \"project\" : \"global\",\n\t\t\t\tmodelRouter: host.settingsManager.getModelRouterSettings(),\n\t\t\t\tmodelRouterScope: projectSettings.modelRouter ? \"project\" : \"global\",\n\t\t\t\tautoLearn: host.settingsManager.getAutoLearnSettings(),\n\t\t\t\tautoLearnScope: projectSettings.autoLearn ? \"project\" : \"global\",\n\t\t\t\tautoLearnModelOptions: host.getAutoLearnModelOptions(),\n\t\t\t\tresolveModelThinkingLevels: (modelPattern) => {\n\t\t\t\t\tif (!modelPattern) return host.session.getAvailableThinkingLevels();\n\t\t\t\t\tconst resolved = resolveCliModel({ cliModel: modelPattern, modelRegistry: host.session.modelRegistry });\n\t\t\t\t\treturn resolved.model ? getSupportedThinkingLevels(resolved.model) : undefined;\n\t\t\t\t},\n\t\t\t\tcontextPolicyEnforcement: host.settingsManager.getContextPromptEnforcementSettings(),\n\t\t\t\tcontextPolicyEnforcementScope: projectSettings.contextPolicy?.enforcement ? \"project\" : \"global\",\n\t\t\t\tcontextMemoryRetrieval: host.settingsManager.getMemoryRetrievalSettings(),\n\t\t\t\tcontextMemoryRetrievalScope: projectSettings.contextPolicy?.memory ? \"project\" : \"global\",\n\t\t\t\tcurrentModelPattern: host.session.model\n\t\t\t\t\t? `${host.session.model.provider}/${host.session.model.id}`\n\t\t\t\t\t: undefined,\n\t\t\t\tactiveProfileName: host.settingsManager.getActiveResourceProfileNames()[0],\n\t\t\t\tprofileOptions,\n\t\t\t\texternalResourceRoots: host.settingsManager.getExternalResourceRoots(),\n\t\t\t\ttrustedResourceRoots: host.settingsManager.getTrustedResourceRoots(),\n\t\t\t},\n\t\t\t{\n\t\t\t\tonAutoCompactChange: (enabled) => {\n\t\t\t\t\thost.session.setAutoCompactionEnabled(enabled);\n\t\t\t\t\thost.footer.setAutoCompactEnabled(enabled);\n\t\t\t\t},\n\t\t\t\tonShowImagesChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setShowImages(enabled);\n\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\tif (child instanceof ToolExecutionComponent || child instanceof ToolGroupComponent) {\n\t\t\t\t\t\t\tchild.setShowImages(enabled);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t\tonImageWidthCellsChange: (width) => {\n\t\t\t\t\thost.settingsManager.setImageWidthCells(width);\n\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\tif (child instanceof ToolExecutionComponent || child instanceof ToolGroupComponent) {\n\t\t\t\t\t\t\tchild.setImageWidthCells(width);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t\tonAutoResizeImagesChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setImageAutoResize(enabled);\n\t\t\t\t},\n\t\t\t\tonBlockImagesChange: (blocked) => {\n\t\t\t\t\thost.settingsManager.setBlockImages(blocked);\n\t\t\t\t},\n\t\t\t\tonEnableSkillCommandsChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setEnableSkillCommands(enabled);\n\t\t\t\t\thost.setupAutocompleteProvider();\n\t\t\t\t},\n\t\t\t\tonSteeringModeChange: (mode) => {\n\t\t\t\t\thost.session.setSteeringMode(mode);\n\t\t\t\t},\n\t\t\t\tonFollowUpModeChange: (mode) => {\n\t\t\t\t\thost.session.setFollowUpMode(mode);\n\t\t\t\t},\n\t\t\t\tonTransportChange: (transport) => {\n\t\t\t\t\thost.settingsManager.setTransport(transport);\n\t\t\t\t\thost.session.agent.transport = transport;\n\t\t\t\t},\n\t\t\t\tonHttpIdleTimeoutMsChange: (timeoutMs) => {\n\t\t\t\t\thost.settingsManager.setHttpIdleTimeoutMs(timeoutMs);\n\t\t\t\t\tconfigureHttpDispatcher(timeoutMs);\n\t\t\t\t\thost.showStatus(`HTTP idle timeout: ${formatHttpIdleTimeoutMs(timeoutMs)}`);\n\t\t\t\t},\n\t\t\t\tonThinkingLevelChange: (level) => {\n\t\t\t\t\thost.session.setThinkingLevel(level);\n\t\t\t\t\thost.footer.invalidate();\n\t\t\t\t\thost.updateEditorBorderColor();\n\t\t\t\t},\n\t\t\t\tonThemeChange: (themeName) => {\n\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\thost.settingsManager.setTheme(themeName);\n\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\thost.showError(`Failed to load theme \"${themeName}\": ${result.error}\\nFell back to dark theme.`);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonThemePreview: (themeName) => {\n\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonHideThinkingBlockChange: (hidden) => {\n\t\t\t\t\thost.hideThinkingBlock = hidden;\n\t\t\t\t\thost.settingsManager.setHideThinkingBlock(hidden);\n\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\tif (child instanceof AssistantMessageComponent) {\n\t\t\t\t\t\t\tchild.setHideThinkingBlock(hidden);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvoid host.rebuildChatFromMessages();\n\t\t\t\t},\n\t\t\t\tonCollapseChangelogChange: (collapsed) => {\n\t\t\t\t\thost.settingsManager.setCollapseChangelog(collapsed);\n\t\t\t\t},\n\t\t\t\tonEnableInstallTelemetryChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setEnableInstallTelemetry(enabled);\n\t\t\t\t},\n\t\t\t\tonQuietStartupChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setQuietStartup(enabled);\n\t\t\t\t},\n\t\t\t\tonDoubleEscapeActionChange: (action) => {\n\t\t\t\t\thost.settingsManager.setDoubleEscapeAction(action);\n\t\t\t\t},\n\t\t\t\tonTreeFilterModeChange: (mode) => {\n\t\t\t\t\thost.settingsManager.setTreeFilterMode(mode);\n\t\t\t\t},\n\t\t\t\tonShowHardwareCursorChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setShowHardwareCursor(enabled);\n\t\t\t\t\thost.ui.setShowHardwareCursor(enabled);\n\t\t\t\t},\n\t\t\t\tonEditorPaddingXChange: (padding) => {\n\t\t\t\t\thost.settingsManager.setEditorPaddingX(padding);\n\t\t\t\t\thost.defaultEditor.setPaddingX(padding);\n\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setPaddingX !== undefined) {\n\t\t\t\t\t\thost.editor.setPaddingX(padding);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonAutocompleteMaxVisibleChange: (maxVisible) => {\n\t\t\t\t\thost.settingsManager.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\thost.defaultEditor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setAutocompleteMaxVisible !== undefined) {\n\t\t\t\t\t\thost.editor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonClearOnShrinkChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setClearOnShrink(enabled);\n\t\t\t\t\thost.ui.setClearOnShrink(enabled);\n\t\t\t\t},\n\t\t\t\tonShowTerminalProgressChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setShowTerminalProgress(enabled);\n\t\t\t\t},\n\t\t\t\tonWarningsChange: (warnings) => {\n\t\t\t\t\thost.settingsManager.setWarnings(warnings);\n\t\t\t\t},\n\t\t\t\tonSelfModificationChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setSelfModificationSettings(settings, scope);\n\t\t\t\t\tconst validationMessage = host.validateSelfModificationSource(settings);\n\t\t\t\t\tif (validationMessage) {\n\t\t\t\t\t\thost.showWarning(validationMessage);\n\t\t\t\t\t}\n\t\t\t\t\thost.showStatus(\n\t\t\t\t\t\t`Self modification settings saved to ${scope}. Start a new session or /reload for system-prompt guardrails to fully refresh.`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonAutonomyChange: (settings, scope) => {\n\t\t\t\t\thost.applyAutonomyMode(settings.mode ?? \"off\", scope);\n\t\t\t\t\thost.showStatus(`Autonomy mode ${settings.mode ?? \"off\"} saved to ${scope}. Use /autonomy status.`);\n\t\t\t\t},\n\t\t\t\tonResearchLaneChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setResearchLaneSettings(settings, scope);\n\t\t\t\t\thost.showStatus(\n\t\t\t\t\t\t`Research lane settings saved to ${scope}. Use /autonomy research or /autonomy diagnostics.`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonWorkerDelegationChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setWorkerDelegationSettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Worker delegation settings saved to ${scope}. The delegate tool uses them.`);\n\t\t\t\t},\n\t\t\t\tonLearningPolicyChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setLearningPolicySettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Learning policy saved to ${scope}.`);\n\t\t\t\t},\n\t\t\t\tonModelCapabilityChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setModelCapabilitySettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Model capability mode saved to ${scope}. Applies on the next model switch or /reload.`);\n\t\t\t\t},\n\t\t\t\tonContextCurationChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setContextCurationSettings(settings, scope);\n\t\t\t\t\thost.showStatus(\n\t\t\t\t\t\t`Context curation settings saved to ${scope}. Run /fitness <model> first if the model is unprobed.`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonModelRouterChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setModelRouterSettings(settings, scope);\n\t\t\t\t\tfor (const value of [settings.cheapModel, settings.expensiveModel, settings.learningModel]) {\n\t\t\t\t\t\tconst validationMessage = host.validateAutoLearnModelValue(value);\n\t\t\t\t\t\tif (validationMessage) {\n\t\t\t\t\t\t\thost.showWarning(validationMessage.replace(\"Auto Learn model\", \"Model router model\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\thost.updateAutoLearnFooter();\n\t\t\t\t\thost.showStatus(`Model Router settings saved to ${scope}. Use /session or /usage to inspect routing.`);\n\t\t\t\t},\n\t\t\t\tonAutoLearnChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setAutoLearnSettings(settings, scope);\n\t\t\t\t\tconst validationMessage = host.validateAutoLearnModelValue(settings.model);\n\t\t\t\t\tif (validationMessage) {\n\t\t\t\t\t\thost.showWarning(validationMessage);\n\t\t\t\t\t}\n\t\t\t\t\thost.updateAutoLearnFooter();\n\t\t\t\t\thost.showStatus(`Auto Learn settings saved to ${scope}. Use /auto-learn status or /auto-learn run.`);\n\t\t\t\t},\n\t\t\t\tonContextPolicyEnforcementChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setContextPromptEnforcementSettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Context/prompt-policy settings saved to ${scope}.`);\n\t\t\t\t},\n\t\t\t\tonContextMemoryRetrievalChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setMemoryRetrievalSettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Context/memory-retrieval settings saved to ${scope}.`);\n\t\t\t\t},\n\t\t\t\tonResourcesHubAction: (action) => {\n\t\t\t\t\tdone();\n\t\t\t\t\tvoid host.handleResourcesHubAction(action);\n\t\t\t\t},\n\t\t\t\tonCancel: () => {\n\t\t\t\t\tdone();\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn { component: selector, focus: selector.getSettingsList() };\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"settings-selector-flow.js","sourceRoot":"","sources":["../../../src/modes/interactive/settings-selector-flow.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `/settings` selector flow extracted from interactive-mode.\n *\n * Builds the SettingsSelectorComponent model from the current settings/session\n * state and wires its change callbacks back through a `SettingsSelectorHost`\n * seam. Self-mod/auto-learn validation, autonomy-preset application, autocomplete\n * rebuild, and the resources-hub hand-off stay host-side (shared with other\n * flows); interactive-mode keeps a thin wrapper building the host once.\n */\n\nimport { getSupportedThinkingLevels } from \"@caupulican/pi-ai\";\nimport type { Component, Container, EditorComponent, SelectItem, TUI } from \"@caupulican/pi-tui\";\nimport type { AgentSession } from \"../../core/agent-session.ts\";\nimport { configureHttpDispatcher, formatHttpIdleTimeoutMs } from \"../../core/http-dispatcher.ts\";\nimport { resolveCliModel } from \"../../core/model-resolver.ts\";\nimport type {\n\tAutonomyMode,\n\tSelfModificationSettings,\n\tSettingsManager,\n\tSettingsScope,\n} from \"../../core/settings-manager.ts\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.ts\";\nimport type { CustomEditor } from \"./components/custom-editor.ts\";\nimport type { FooterComponent } from \"./components/footer.ts\";\nimport { SettingsSelectorComponent } from \"./components/settings-selector.ts\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.ts\";\nimport { ToolGroupComponent } from \"./components/tool-group.ts\";\nimport { getAvailableThemes, setTheme } from \"./theme/theme.ts\";\n\nexport interface SettingsSelectorHost {\n\treadonly session: AgentSession;\n\treadonly settingsManager: SettingsManager;\n\treadonly footer: FooterComponent;\n\treadonly chatContainer: Container;\n\treadonly ui: TUI;\n\treadonly defaultEditor: CustomEditor;\n\treadonly editor: EditorComponent;\n\thideThinkingBlock: boolean;\n\tshowSelector(create: (done: () => void) => { component: Component; focus: Component }): void;\n\tshowStatus(message: string): void;\n\tshowWarning(message: string): void;\n\tshowError(message: string): void;\n\tgetAutoLearnModelOptions(): SelectItem[];\n\tsetupAutocompleteProvider(): void;\n\tupdateEditorBorderColor(): void;\n\trebuildChatFromMessages(): Promise<void>;\n\tvalidateSelfModificationSource(settings: SelfModificationSettings): string | undefined;\n\tapplyAutonomyMode(mode: AutonomyMode, scope?: SettingsScope): void;\n\tvalidateAutoLearnModelValue(value: string | undefined): string | undefined;\n\tupdateAutoLearnFooter(): void;\n\thandleResourcesHubAction(action: string): Promise<void>;\n}\n\nexport function showSettingsSelector(host: SettingsSelectorHost): void {\n\thost.showSelector((done) => {\n\t\tconst projectSettings = host.settingsManager.getProjectSettings();\n\t\tconst profileOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"(none)\",\n\t\t\t\tlabel: \"(none)\",\n\t\t\t\tdescription: \"Use configured profile selection (session default)\",\n\t\t\t},\n\t\t\t...host.settingsManager\n\t\t\t\t.getProfileRegistry()\n\t\t\t\t.listProfiles()\n\t\t\t\t.map((profile) => ({\n\t\t\t\t\tvalue: profile.name,\n\t\t\t\t\tlabel: profile.name,\n\t\t\t\t\tdescription: profile.description ?? profile.source,\n\t\t\t\t})),\n\t\t];\n\t\tconst selector = new SettingsSelectorComponent(\n\t\t\t{\n\t\t\t\tautoCompact: host.session.autoCompactionEnabled,\n\t\t\t\tshowImages: host.settingsManager.getShowImages(),\n\t\t\t\timageWidthCells: host.settingsManager.getImageWidthCells(),\n\t\t\t\tautoResizeImages: host.settingsManager.getImageAutoResize(),\n\t\t\t\tblockImages: host.settingsManager.getBlockImages(),\n\t\t\t\tenableSkillCommands: host.settingsManager.getEnableSkillCommands(),\n\t\t\t\tsteeringMode: host.session.steeringMode,\n\t\t\t\tfollowUpMode: host.session.followUpMode,\n\t\t\t\ttransport: host.settingsManager.getTransport(),\n\t\t\t\thttpIdleTimeoutMs: host.settingsManager.getHttpIdleTimeoutMs(),\n\t\t\t\tthinkingLevel: host.session.thinkingLevel,\n\t\t\t\tavailableThinkingLevels: host.session.getAvailableThinkingLevels(),\n\t\t\t\tcurrentTheme: host.settingsManager.getTheme() || \"dark\",\n\t\t\t\t// The picker offers only themes the active profile permits (no-bypass). The theme\n\t\t\t\t// registry/renderer keeps the full set, so an already-applied theme still renders\n\t\t\t\t// even if the profile would block re-selecting it.\n\t\t\t\tavailableThemes: getAvailableThemes().filter((name) =>\n\t\t\t\t\thost.settingsManager.isResourceAllowedByProfile(\"themes\", name),\n\t\t\t\t),\n\t\t\t\thideThinkingBlock: host.hideThinkingBlock,\n\t\t\t\tprojectContextFiles: host.settingsManager.getProjectContextFiles(),\n\t\t\t\tprojectContextFilesScope: host.settingsManager.getProjectContextFilesScope(),\n\t\t\t\tcollapseChangelog: host.settingsManager.getCollapseChangelog(),\n\t\t\t\tenableInstallTelemetry: host.settingsManager.getEnableInstallTelemetry(),\n\t\t\t\tdoubleEscapeAction: host.settingsManager.getDoubleEscapeAction(),\n\t\t\t\ttreeFilterMode: host.settingsManager.getTreeFilterMode(),\n\t\t\t\tshowHardwareCursor: host.settingsManager.getShowHardwareCursor(),\n\t\t\t\teditorPaddingX: host.settingsManager.getEditorPaddingX(),\n\t\t\t\tautocompleteMaxVisible: host.settingsManager.getAutocompleteMaxVisible(),\n\t\t\t\tquietStartup: host.settingsManager.getQuietStartup(),\n\t\t\t\tclearOnShrink: host.settingsManager.getClearOnShrink(),\n\t\t\t\tshowTerminalProgress: host.settingsManager.getShowTerminalProgress(),\n\t\t\t\twarnings: host.settingsManager.getWarnings(),\n\t\t\t\tselfModification: host.settingsManager.getSelfModificationSettings(),\n\t\t\t\tselfModificationScope: projectSettings.selfModification ? \"project\" : \"global\",\n\t\t\t\tautonomy: host.settingsManager.getAutonomySettings(),\n\t\t\t\tautonomyScope: projectSettings.autonomy ? \"project\" : \"global\",\n\t\t\t\tresearchLane: host.settingsManager.getResearchLaneSettings(),\n\t\t\t\tresearchLaneScope: projectSettings.researchLane ? \"project\" : \"global\",\n\t\t\t\tworkerDelegation: host.settingsManager.getWorkerDelegationSettings(),\n\t\t\t\tworkerDelegationScope: projectSettings.workerDelegation ? \"project\" : \"global\",\n\t\t\t\tcontextCuration: host.settingsManager.getContextCurationSettings(),\n\t\t\t\tcontextCurationScope: projectSettings.contextPolicy?.curation ? \"project\" : \"global\",\n\t\t\t\tlearningPolicy: host.settingsManager.getLearningPolicySettings(),\n\t\t\t\tlearningPolicyScope: projectSettings.learningPolicy ? \"project\" : \"global\",\n\t\t\t\tmodelCapability: host.settingsManager.getModelCapabilitySettings(),\n\t\t\t\tmodelCapabilityScope: projectSettings.modelCapability ? \"project\" : \"global\",\n\t\t\t\tmodelRouter: host.settingsManager.getModelRouterSettings(),\n\t\t\t\tmodelRouterScope: projectSettings.modelRouter ? \"project\" : \"global\",\n\t\t\t\tautoLearn: host.settingsManager.getAutoLearnSettings(),\n\t\t\t\tautoLearnScope: projectSettings.autoLearn ? \"project\" : \"global\",\n\t\t\t\tautoLearnModelOptions: host.getAutoLearnModelOptions(),\n\t\t\t\tresolveModelThinkingLevels: (modelPattern) => {\n\t\t\t\t\tif (!modelPattern) return host.session.getAvailableThinkingLevels();\n\t\t\t\t\tconst resolved = resolveCliModel({ cliModel: modelPattern, modelRegistry: host.session.modelRegistry });\n\t\t\t\t\treturn resolved.model ? getSupportedThinkingLevels(resolved.model) : undefined;\n\t\t\t\t},\n\t\t\t\tcontextPolicyEnforcement: host.settingsManager.getContextPromptEnforcementSettings(),\n\t\t\t\tcontextPolicyEnforcementScope: projectSettings.contextPolicy?.enforcement ? \"project\" : \"global\",\n\t\t\t\tcontextMemoryRetrieval: host.settingsManager.getMemoryRetrievalSettings(),\n\t\t\t\tcontextMemoryRetrievalScope: projectSettings.contextPolicy?.memory ? \"project\" : \"global\",\n\t\t\t\tcurrentModelPattern: host.session.model\n\t\t\t\t\t? `${host.session.model.provider}/${host.session.model.id}`\n\t\t\t\t\t: undefined,\n\t\t\t\tactiveProfileName: host.settingsManager.getActiveResourceProfileNames()[0],\n\t\t\t\tprofileOptions,\n\t\t\t\texternalResourceRoots: host.settingsManager.getExternalResourceRoots(),\n\t\t\t\ttrustedResourceRoots: host.settingsManager.getTrustedResourceRoots(),\n\t\t\t},\n\t\t\t{\n\t\t\t\tonAutoCompactChange: (enabled) => {\n\t\t\t\t\thost.session.setAutoCompactionEnabled(enabled);\n\t\t\t\t\thost.footer.setAutoCompactEnabled(enabled);\n\t\t\t\t},\n\t\t\t\tonShowImagesChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setShowImages(enabled);\n\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\tif (child instanceof ToolExecutionComponent || child instanceof ToolGroupComponent) {\n\t\t\t\t\t\t\tchild.setShowImages(enabled);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t\tonImageWidthCellsChange: (width) => {\n\t\t\t\t\thost.settingsManager.setImageWidthCells(width);\n\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\tif (child instanceof ToolExecutionComponent || child instanceof ToolGroupComponent) {\n\t\t\t\t\t\t\tchild.setImageWidthCells(width);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t\tonAutoResizeImagesChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setImageAutoResize(enabled);\n\t\t\t\t},\n\t\t\t\tonBlockImagesChange: (blocked) => {\n\t\t\t\t\thost.settingsManager.setBlockImages(blocked);\n\t\t\t\t},\n\t\t\t\tonEnableSkillCommandsChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setEnableSkillCommands(enabled);\n\t\t\t\t\thost.setupAutocompleteProvider();\n\t\t\t\t},\n\t\t\t\tonSteeringModeChange: (mode) => {\n\t\t\t\t\thost.session.setSteeringMode(mode);\n\t\t\t\t},\n\t\t\t\tonFollowUpModeChange: (mode) => {\n\t\t\t\t\thost.session.setFollowUpMode(mode);\n\t\t\t\t},\n\t\t\t\tonTransportChange: (transport) => {\n\t\t\t\t\thost.settingsManager.setTransport(transport);\n\t\t\t\t\thost.session.agent.transport = transport;\n\t\t\t\t},\n\t\t\t\tonHttpIdleTimeoutMsChange: (timeoutMs) => {\n\t\t\t\t\thost.settingsManager.setHttpIdleTimeoutMs(timeoutMs);\n\t\t\t\t\tconfigureHttpDispatcher(timeoutMs);\n\t\t\t\t\thost.showStatus(`HTTP idle timeout: ${formatHttpIdleTimeoutMs(timeoutMs)}`);\n\t\t\t\t},\n\t\t\t\tonThinkingLevelChange: (level) => {\n\t\t\t\t\thost.session.setThinkingLevel(level);\n\t\t\t\t\thost.footer.invalidate();\n\t\t\t\t\thost.updateEditorBorderColor();\n\t\t\t\t},\n\t\t\t\tonThemeChange: (themeName) => {\n\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\thost.settingsManager.setTheme(themeName);\n\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\thost.showError(`Failed to load theme \"${themeName}\": ${result.error}\\nFell back to dark theme.`);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonThemePreview: (themeName) => {\n\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonProjectContextFilesChange: (mode, scope) => {\n\t\t\t\t\thost.settingsManager.setProjectContextFiles(mode, scope);\n\t\t\t\t\tconst where =\n\t\t\t\t\t\tscope === \"directoryProfile\"\n\t\t\t\t\t\t\t? \"this directory\"\n\t\t\t\t\t\t\t: scope === \"project\"\n\t\t\t\t\t\t\t\t? \"this project\"\n\t\t\t\t\t\t\t\t: \"all projects\";\n\t\t\t\t\tconst load = mode === \"on-demand\" ? \"lists this project's AGENTS.md\" : \"global AGENTS.md only\";\n\t\t\t\t\thost.showStatus(`Project context files: ${load} (${where}). Run /reload to apply.`);\n\t\t\t\t},\n\t\t\t\tonHideThinkingBlockChange: (hidden) => {\n\t\t\t\t\thost.hideThinkingBlock = hidden;\n\t\t\t\t\thost.settingsManager.setHideThinkingBlock(hidden);\n\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\tif (child instanceof AssistantMessageComponent) {\n\t\t\t\t\t\t\tchild.setHideThinkingBlock(hidden);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvoid host.rebuildChatFromMessages();\n\t\t\t\t},\n\t\t\t\tonCollapseChangelogChange: (collapsed) => {\n\t\t\t\t\thost.settingsManager.setCollapseChangelog(collapsed);\n\t\t\t\t},\n\t\t\t\tonEnableInstallTelemetryChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setEnableInstallTelemetry(enabled);\n\t\t\t\t},\n\t\t\t\tonQuietStartupChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setQuietStartup(enabled);\n\t\t\t\t},\n\t\t\t\tonDoubleEscapeActionChange: (action) => {\n\t\t\t\t\thost.settingsManager.setDoubleEscapeAction(action);\n\t\t\t\t},\n\t\t\t\tonTreeFilterModeChange: (mode) => {\n\t\t\t\t\thost.settingsManager.setTreeFilterMode(mode);\n\t\t\t\t},\n\t\t\t\tonShowHardwareCursorChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setShowHardwareCursor(enabled);\n\t\t\t\t\thost.ui.setShowHardwareCursor(enabled);\n\t\t\t\t},\n\t\t\t\tonEditorPaddingXChange: (padding) => {\n\t\t\t\t\thost.settingsManager.setEditorPaddingX(padding);\n\t\t\t\t\thost.defaultEditor.setPaddingX(padding);\n\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setPaddingX !== undefined) {\n\t\t\t\t\t\thost.editor.setPaddingX(padding);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonAutocompleteMaxVisibleChange: (maxVisible) => {\n\t\t\t\t\thost.settingsManager.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\thost.defaultEditor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setAutocompleteMaxVisible !== undefined) {\n\t\t\t\t\t\thost.editor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonClearOnShrinkChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setClearOnShrink(enabled);\n\t\t\t\t\thost.ui.setClearOnShrink(enabled);\n\t\t\t\t},\n\t\t\t\tonShowTerminalProgressChange: (enabled) => {\n\t\t\t\t\thost.settingsManager.setShowTerminalProgress(enabled);\n\t\t\t\t},\n\t\t\t\tonWarningsChange: (warnings) => {\n\t\t\t\t\thost.settingsManager.setWarnings(warnings);\n\t\t\t\t},\n\t\t\t\tonSelfModificationChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setSelfModificationSettings(settings, scope);\n\t\t\t\t\tconst validationMessage = host.validateSelfModificationSource(settings);\n\t\t\t\t\tif (validationMessage) {\n\t\t\t\t\t\thost.showWarning(validationMessage);\n\t\t\t\t\t}\n\t\t\t\t\thost.showStatus(\n\t\t\t\t\t\t`Self modification settings saved to ${scope}. Start a new session or /reload for system-prompt guardrails to fully refresh.`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonAutonomyChange: (settings, scope) => {\n\t\t\t\t\thost.applyAutonomyMode(settings.mode ?? \"off\", scope);\n\t\t\t\t\thost.showStatus(`Autonomy mode ${settings.mode ?? \"off\"} saved to ${scope}. Use /autonomy status.`);\n\t\t\t\t},\n\t\t\t\tonResearchLaneChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setResearchLaneSettings(settings, scope);\n\t\t\t\t\thost.showStatus(\n\t\t\t\t\t\t`Research lane settings saved to ${scope}. Use /autonomy research or /autonomy diagnostics.`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonWorkerDelegationChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setWorkerDelegationSettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Worker delegation settings saved to ${scope}. The delegate tool uses them.`);\n\t\t\t\t},\n\t\t\t\tonLearningPolicyChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setLearningPolicySettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Learning policy saved to ${scope}.`);\n\t\t\t\t},\n\t\t\t\tonModelCapabilityChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setModelCapabilitySettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Model capability mode saved to ${scope}. Applies on the next model switch or /reload.`);\n\t\t\t\t},\n\t\t\t\tonContextCurationChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setContextCurationSettings(settings, scope);\n\t\t\t\t\thost.showStatus(\n\t\t\t\t\t\t`Context curation settings saved to ${scope}. Run /fitness <model> first if the model is unprobed.`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonModelRouterChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setModelRouterSettings(settings, scope);\n\t\t\t\t\tfor (const value of [settings.cheapModel, settings.expensiveModel, settings.learningModel]) {\n\t\t\t\t\t\tconst validationMessage = host.validateAutoLearnModelValue(value);\n\t\t\t\t\t\tif (validationMessage) {\n\t\t\t\t\t\t\thost.showWarning(validationMessage.replace(\"Auto Learn model\", \"Model router model\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\thost.updateAutoLearnFooter();\n\t\t\t\t\thost.showStatus(`Model Router settings saved to ${scope}. Use /session or /usage to inspect routing.`);\n\t\t\t\t},\n\t\t\t\tonAutoLearnChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setAutoLearnSettings(settings, scope);\n\t\t\t\t\tconst validationMessage = host.validateAutoLearnModelValue(settings.model);\n\t\t\t\t\tif (validationMessage) {\n\t\t\t\t\t\thost.showWarning(validationMessage);\n\t\t\t\t\t}\n\t\t\t\t\thost.updateAutoLearnFooter();\n\t\t\t\t\thost.showStatus(`Auto Learn settings saved to ${scope}. Use /auto-learn status or /auto-learn run.`);\n\t\t\t\t},\n\t\t\t\tonContextPolicyEnforcementChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setContextPromptEnforcementSettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Context/prompt-policy settings saved to ${scope}.`);\n\t\t\t\t},\n\t\t\t\tonContextMemoryRetrievalChange: (settings, scope) => {\n\t\t\t\t\thost.settingsManager.setMemoryRetrievalSettings(settings, scope);\n\t\t\t\t\thost.showStatus(`Context/memory-retrieval settings saved to ${scope}.`);\n\t\t\t\t},\n\t\t\t\tonResourcesHubAction: (action) => {\n\t\t\t\t\tdone();\n\t\t\t\t\tvoid host.handleResourcesHubAction(action);\n\t\t\t\t},\n\t\t\t\tonCancel: () => {\n\t\t\t\t\tdone();\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn { component: selector, focus: selector.getSettingsList() };\n\t});\n}\n"]}
|
package/docs/extensions.md
CHANGED
|
@@ -530,7 +530,7 @@ pi.on("before_agent_start", async (event, ctx) => {
|
|
|
530
530
|
// .promptGuidelines - custom guideline bullets
|
|
531
531
|
// .appendSystemPrompt - text from --append-system-prompt flags
|
|
532
532
|
// .cwd - working directory
|
|
533
|
-
// .contextFiles -
|
|
533
|
+
// .contextFiles - global AGENTS.md/CLAUDE.md/GEMINI.md contents plus on-demand project paths
|
|
534
534
|
// .skills - discovered frontmatter metadata, host-side; not rendered into the startup prompt
|
|
535
535
|
|
|
536
536
|
return {
|
|
@@ -2073,8 +2073,9 @@ The built-in limit is **50KB** (~10k tokens) and **2000 lines**, whichever is hi
|
|
|
2073
2073
|
|
|
2074
2074
|
```typescript
|
|
2075
2075
|
import {
|
|
2076
|
-
truncateHead, // Keep first N lines/bytes (good for file reads
|
|
2077
|
-
truncateTail, // Keep last N lines/bytes (good for
|
|
2076
|
+
truncateHead, // Keep first N lines/bytes (good for file reads)
|
|
2077
|
+
truncateTail, // Keep last N lines/bytes (good for live log tails)
|
|
2078
|
+
truncateMiddle, // Keep a head and a tail (good for packed search/command output)
|
|
2078
2079
|
truncateLine, // Truncate a single line to maxBytes with ellipsis
|
|
2079
2080
|
formatSize, // Human-readable size (e.g., "50KB", "1.5MB")
|
|
2080
2081
|
DEFAULT_MAX_BYTES, // 50KB
|
|
@@ -2114,8 +2115,9 @@ async execute(toolCallId, params, signal, onUpdate, ctx) {
|
|
|
2114
2115
|
```
|
|
2115
2116
|
|
|
2116
2117
|
**Key points:**
|
|
2117
|
-
- Use `truncateHead` for content where the beginning matters (
|
|
2118
|
-
- Use `truncateTail` for
|
|
2118
|
+
- Use `truncateHead` for content where only the beginning matters (file reads)
|
|
2119
|
+
- Use `truncateTail` for live log tails
|
|
2120
|
+
- Use `truncateMiddle` when first hits and terminal errors both matter (search results, finished command output)
|
|
2119
2121
|
- Always inform the LLM when output is truncated and where to find the full version
|
|
2120
2122
|
- Document the truncation limits in your tool's description
|
|
2121
2123
|
|
|
@@ -2672,6 +2674,7 @@ const highlighted = highlightCode(code, lang, theme);
|
|
|
2672
2674
|
- Extension errors are logged, agent continues
|
|
2673
2675
|
- `tool_call` errors block the tool (fail-safe)
|
|
2674
2676
|
- Tool `execute` errors must be signaled by throwing; the thrown error is caught, reported to the LLM with `isError: true`, and execution continues
|
|
2677
|
+
- After a successful extension tool result, the harness retains identity fields that also exist on that extension's tool schema (`*Id`, `card`, `project`, `board`, including nested `board.id` → `boardId`). The next call from the same extension that omits those fields is filled before validation. Unresolved statuses (`needs_*`, `ambiguous*`) and builtin tools are not retained. An extension `prepareArguments` still runs first and can override this.
|
|
2675
2678
|
|
|
2676
2679
|
## Mode Behavior
|
|
2677
2680
|
|
|
@@ -128,10 +128,9 @@ process-tree termination contract. The platform shell is real host process autho
|
|
|
128
128
|
isolation or a path-scoped substitute for `write`/`edit`.
|
|
129
129
|
|
|
130
130
|
Birth context is selected once, before a new logical agent is admitted, with `forkTurns: "none"`,
|
|
131
|
-
`"all"`, or a positive turn count such as `"3"`. Omitted
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
ownership; explicit nested inheritance remains available inside the exact provider/model boundary.
|
|
131
|
+
`"all"`, or a positive turn count such as `"3"`. Omitted starts mean `none`, so a self-contained
|
|
132
|
+
child task cannot inherit and mistake parent-level orchestration intent for child ownership.
|
|
133
|
+
Explicit inheritance remains available inside the exact provider/model boundary.
|
|
135
134
|
Crossing either provider or model defaults to `none`, and an explicit non-`none` cross-boundary
|
|
136
135
|
request is rejected. The content-addressed snapshot contains bounded whole
|
|
137
136
|
user turns and complete text-only assistant answers. It excludes system/developer/custom messages,
|
package/docs/keybindings.md
CHANGED
|
@@ -122,13 +122,14 @@ These actions apply while the built-in `ask_question` interaction has focus. The
|
|
|
122
122
|
| `app.model.cycleForward` | `ctrl+p` | Cycle to next model |
|
|
123
123
|
| `app.model.cycleBackward` | `shift+ctrl+p` | Cycle to previous model |
|
|
124
124
|
| `app.thinking.cycle` | `shift+tab` | Cycle thinking level |
|
|
125
|
-
| `app.thinking.toggle` | `ctrl+t` |
|
|
125
|
+
| `app.thinking.toggle` | `ctrl+t` | Show or hide thinking blocks (hidden by default) |
|
|
126
126
|
|
|
127
127
|
### Display and Message Queue
|
|
128
128
|
|
|
129
129
|
| Keybinding id | Default | Description |
|
|
130
130
|
|--------|---------|-------------|
|
|
131
|
-
| `app.tools.expand` | `ctrl+o` |
|
|
131
|
+
| `app.tools.expand` | `ctrl+o` | Expand or collapse tool output (file groups stay as a count + short list until then) |
|
|
132
|
+
| `app.history.load` | `ctrl+shift+h` | Load deferred session history into the chat |
|
|
132
133
|
| `app.message.followUp` | `alt+enter` | Queue follow-up message |
|
|
133
134
|
| `app.message.dequeue` | `alt+up` | Restore queued messages to editor |
|
|
134
135
|
|
package/docs/quickstart.md
CHANGED
|
@@ -85,7 +85,7 @@ Additional built-in read-only tools (`grep`, `find`, `ls`) are available through
|
|
|
85
85
|
|
|
86
86
|
## Give pi project instructions
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
Global instructions live in `~/.pi/agent/AGENTS.md` and are always injected. Add a repo `AGENTS.md` for project conventions; Pi lists that path and the agent reads it on demand:
|
|
89
89
|
|
|
90
90
|
```markdown
|
|
91
91
|
# Project Instructions
|
|
@@ -97,10 +97,10 @@ Pi discovers and injects context file contents at startup. Add an `AGENTS.md` fi
|
|
|
97
97
|
|
|
98
98
|
Pi discovers:
|
|
99
99
|
|
|
100
|
-
- `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` in `~/.pi/agent/` for global instructions
|
|
101
|
-
- `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` from parent directories and the current directory
|
|
100
|
+
- `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` in `~/.pi/agent/` for global instructions (always injected)
|
|
101
|
+
- `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` from parent directories and the current directory (paths only; read on demand)
|
|
102
102
|
|
|
103
|
-
Restart pi, or run `/reload`, after changing
|
|
103
|
+
Repo `AGENTS.md` is off until you opt in: `/settings` → **Project AGENTS.md**. Set Load to **global-only** to keep only `~/.pi/agent`. Restart pi, or run `/reload`, after changing the setting or global context file contents.
|
|
104
104
|
|
|
105
105
|
## Common things to try
|
|
106
106
|
|
package/docs/sdk.md
CHANGED
|
@@ -348,7 +348,7 @@ const { session } = await createAgentSession({
|
|
|
348
348
|
- `.pi/skills/`
|
|
349
349
|
- `.agents/skills/` in `cwd` and ancestor directories (up to git repo root, or filesystem root when not in a repo)
|
|
350
350
|
- Project prompts (`.pi/prompts/`)
|
|
351
|
-
- Context files (`AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` walking up from cwd)
|
|
351
|
+
- Context files (`AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` walking up from cwd after opt-in; path-only unless you override)
|
|
352
352
|
- Session directory naming
|
|
353
353
|
|
|
354
354
|
`agentDir` is used by `DefaultResourceLoader` for:
|
|
@@ -626,6 +626,8 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
626
626
|
|
|
627
627
|
### Context Files
|
|
628
628
|
|
|
629
|
+
Global `~/.pi/agent` files are always loaded. Repository `AGENTS.md`/`CLAUDE.md`/`GEMINI.md` stay off until `projectContextFiles` is `"on-demand"` (per directory overlay, project `.pi/settings.json`, or global settings).
|
|
630
|
+
|
|
629
631
|
```typescript
|
|
630
632
|
import { createAgentSession, DefaultResourceLoader } from "@caupulican/pi-adaptative";
|
|
631
633
|
|
package/docs/settings.md
CHANGED
|
@@ -20,7 +20,7 @@ Edit directly or use `/settings` for common options.
|
|
|
20
20
|
| `defaultProvider` | string | - | Default provider (e.g., `"anthropic"`, `"openai"`) |
|
|
21
21
|
| `defaultModel` | string | - | Default model ID |
|
|
22
22
|
| `defaultThinkingLevel` | string | model default | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"`, or `"ultra"` |
|
|
23
|
-
| `hideThinkingBlock` | boolean | `
|
|
23
|
+
| `hideThinkingBlock` | boolean | `true` | Hide thinking blocks in output. Press the thinking toggle (default Ctrl+T) to show them. |
|
|
24
24
|
| `thinkingBudgets` | object | - | Custom token budgets per thinking level |
|
|
25
25
|
|
|
26
26
|
#### thinkingBudgets
|
|
@@ -50,6 +50,20 @@ Edit directly or use `/settings` for common options.
|
|
|
50
50
|
| `autocompleteMaxVisible` | number | `5` | Max visible items in autocomplete dropdown (3-20) |
|
|
51
51
|
| `showHardwareCursor` | boolean | `false` | Show the terminal cursor while TUI positions it for IME support |
|
|
52
52
|
|
|
53
|
+
### Context Files
|
|
54
|
+
|
|
55
|
+
| Setting | Type | Default | Description |
|
|
56
|
+
|---------|------|---------|-------------|
|
|
57
|
+
| `projectContextFiles` | string | `"off"` | Opt-in for repository `AGENTS.md`/`CLAUDE.md`/`GEMINI.md`. `"off"` (default) loads only `~/.pi/agent` files. `"on-demand"` lists this project's files for the agent to read. Save per directory, per project, or globally. |
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"projectContextFiles": "on-demand"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Enable from `/settings` → **Project AGENTS.md**. Choose save scope (this directory, this project, or all projects) and Load (`global-only` or `on-demand`). `--no-context-files` (`-nc`) also skips project files for that session. Neither disables the global file. Restart or `/reload` after changing the setting.
|
|
66
|
+
|
|
53
67
|
### Telemetry and update checks
|
|
54
68
|
|
|
55
69
|
`enableInstallTelemetry` only controls the anonymous install/update ping to `https://pi.dev/api/report-install`. Opting out of telemetry does not disable update checks; Pi can still fetch `https://registry.npmjs.org/@caupulican%2fpi-adaptative/latest` to look for the latest Pi Adaptative version.
|
|
@@ -184,7 +198,7 @@ A `roles`-only configuration (no `default` in any scope) leaves every role not l
|
|
|
184
198
|
}
|
|
185
199
|
```
|
|
186
200
|
|
|
187
|
-
For a new logical agent, `forkTurns` chooses immutable sanitized birth context: `"none"`, `"all"`, or a positive user-turn count encoded as a string, such as `"3"`. When omitted,
|
|
201
|
+
For a new logical agent, `forkTurns` chooses immutable sanitized birth context: `"none"`, `"all"`, or a positive user-turn count encoded as a string, such as `"3"`. When omitted, the worker receives no parent transcript, so a self-contained task cannot inherit and mistake parent-level orchestration intent for child ownership. A worker that changes provider or model also defaults to `"none"`, and explicitly requesting inherited turns across that boundary is rejected. Explicit `"all"` or count inheritance remains available inside the exact provider/model boundary. The bounded snapshot keeps whole text-only user/complete-assistant turns and a valid compaction checkpoint when needed. It excludes system/developer/custom context, reasoning/commentary, tool protocol and results, mailbox controls, attachments, and incomplete assistant output. A reused `agentId` continues its existing transcript and cannot replace its birth context.
|
|
188
202
|
|
|
189
203
|
```json
|
|
190
204
|
{
|
package/docs/task-steps.md
CHANGED
|
@@ -31,6 +31,7 @@ The native tool supports:
|
|
|
31
31
|
- `list`: show open work; set `showCompleted` to include terminal steps.
|
|
32
32
|
- `compact`: archive completed and cancelled counts while retaining open work.
|
|
33
33
|
- `clear`: remove all tracked and archived steps.
|
|
34
|
+
- `advance`: complete the current step and start the next pending step.
|
|
34
35
|
|
|
35
36
|
An update selector can be `current`/`active`, an exact step ID, a unique ID prefix, or unique step content. IDs are shown in tool and command output for unambiguous updates.
|
|
36
37
|
|
package/docs/usage.md
CHANGED
|
@@ -64,7 +64,7 @@ Type `/` in the editor to open command completion. Extensions can register custo
|
|
|
64
64
|
| `/login`, `/logout` | Manage OAuth or API-key credentials |
|
|
65
65
|
| `/model` | Switch models |
|
|
66
66
|
| `/scoped-models` | Enable/disable models for Ctrl+P cycling |
|
|
67
|
-
| `/settings` | Thinking level, theme, message delivery, transport |
|
|
67
|
+
| `/settings` | Thinking level, theme, Project AGENTS.md, message delivery, transport |
|
|
68
68
|
| `/secrets` | Connect Bitwarden; add, bind, activate, or remove project credential profiles |
|
|
69
69
|
| `/resume` | Pick from previous sessions |
|
|
70
70
|
| `/new` | Start a new session |
|
|
@@ -128,13 +128,12 @@ See [Sessions](sessions.md) and [Compaction](compaction.md) for details.
|
|
|
128
128
|
|
|
129
129
|
## Context Files
|
|
130
130
|
|
|
131
|
-
Pi discovers `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` context files
|
|
131
|
+
Pi discovers `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` context files from:
|
|
132
132
|
|
|
133
|
-
- `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` in `~/.pi/agent/` for global instructions
|
|
134
|
-
- parent directories
|
|
135
|
-
- the current directory
|
|
133
|
+
- `AGENTS.md`, `CLAUDE.md`, or `GEMINI.md` in `~/.pi/agent/` for global instructions (always injected)
|
|
134
|
+
- parent directories and the current directory, only after that directory/project opts in
|
|
136
135
|
|
|
137
|
-
|
|
136
|
+
Global files are scanned for prompt-injection/exfiltration phrases and injected into the system prompt. Repository files are off until you opt in (`/settings` → Project AGENTS.md). Opt-in lists their paths so the agent can read them; they are not injected at startup. Set Load to **global-only**, or pass `--no-context-files` (`-nc`), to keep only the global file.
|
|
138
137
|
|
|
139
138
|
### System Prompt Files
|
|
140
139
|
|
|
@@ -239,7 +238,7 @@ Built-in tools include `read`, `edit`, `write`, `grep`, `find`, `ls`, `ask_quest
|
|
|
239
238
|
| `--no-prompt-templates` | Disable prompt template discovery |
|
|
240
239
|
| `--theme <path>` | Load a theme; repeatable |
|
|
241
240
|
| `--no-themes` | Disable theme discovery |
|
|
242
|
-
| `--no-context-files`, `-nc` |
|
|
241
|
+
| `--no-context-files`, `-nc` | Skip project `AGENTS.md`/`CLAUDE.md`/`GEMINI.md`; global `~/.pi/agent` files still load |
|
|
243
242
|
|
|
244
243
|
Combine `--no-*` with explicit flags to load exactly what you need, ignoring settings. Example:
|
|
245
244
|
|
package/docs/worker-profiles.md
CHANGED
|
@@ -15,7 +15,7 @@ Use `delegate { action: "profile_inspect" }` when the reusable bases or model co
|
|
|
15
15
|
|
|
16
16
|
Worker agents do not receive the root-only profile/status actions. They receive `delegate` only when their admitted tool set and capability ceiling both retain delegation; a caller can create a non-delegating leaf by narrowing either field. Delegating workers may recursively create descendants within the fixed depth, direct-child, session-agent, and queue bounds. They can discover safe session-peer metadata, exchange non-waking threaded messages and bounded broadcasts, and use event-driven `wait`/`wait_many`, but bounded transcript reads and waking controls remain limited to the caller's own control subtree. Transcript cursors address raw session entries, so a continuation page may be empty after non-message entries; an individually oversized message is omitted with a count instead of being truncated. A descendant may vary model or role through another preset, but it cannot acquire new resources: pointers must fully match the ancestor's admitted pointer metadata, soul text must match exactly, and verifier resources and authority stay within the ancestral verifier or worker boundary.
|
|
17
17
|
|
|
18
|
-
New agents may receive immutable sanitized birth context with `forkTurns: "none"`, `"all"`, or a positive user-turn count such as `"3"`. Omitted
|
|
18
|
+
New agents may receive immutable sanitized birth context with `forkTurns: "none"`, `"all"`, or a positive user-turn count such as `"3"`. Omitted starts receive no parent transcript, so a self-contained task cannot inherit and mistake parent-level orchestration intent for child ownership. Explicit inheritance remains available inside the exact provider/model boundary. Crossing either provider or model defaults to no inherited turns, and an explicit non-`none` cross-boundary fork is rejected. Tool calls/results, reasoning/commentary, system/developer/custom messages, mailbox controls, non-text content, and incomplete assistant output never enter the snapshot. Dispatching another task with an existing `agentId` reuses that agent's durable transcript and cannot replace its birth context.
|
|
19
19
|
|
|
20
20
|
`delegate tasks` is the bounded view of the same durable task/DAG runtime used for dispatch and recovery. A new task may name existing same-objective task IDs with `dependsOn`; it remains pending until those dependencies complete, while invalid or cyclic edges fail closed. Evidence-classified transient failures retain their attempt/retry count and exact `notBefore` deadline across restart. Agent, task, and attempt projections are independently capped at 256 entries.
|
|
21
21
|
|
package/docs/worktree-sync.md
CHANGED
|
@@ -164,7 +164,7 @@ environment value a lane-bound process can set to shed the worker ceiling below.
|
|
|
164
164
|
|
|
165
165
|
### Forbidden-tool ceiling
|
|
166
166
|
|
|
167
|
-
A worker session can never activate: `goal`, `delegate`, `improvement_loop`,
|
|
167
|
+
A worker session can never activate: `goal`, `pipeline`, `delegate`, `improvement_loop`,
|
|
168
168
|
`extensionify`, `skillify`, `run_toolkit_script`, `model_fitness`, `tmux_agent_manager`,
|
|
169
169
|
`context_scout`, `python`. This is enforced as the FIRST line of the tool registry's allow
|
|
170
170
|
predicate (`RuntimeBuilder.refreshToolRegistry`'s `isAllowedTool`) -- it wins over an allow-list,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-custom-provider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-custom-provider",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.91.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
@@ -121,7 +121,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
121
121
|
name: "bash",
|
|
122
122
|
label: "bash",
|
|
123
123
|
description:
|
|
124
|
-
"Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to
|
|
124
|
+
"Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to a head+tail preview within 2000 lines or 50KB (whichever is hit first).",
|
|
125
125
|
parameters: getBuiltInTools(process.cwd()).bash.parameters,
|
|
126
126
|
|
|
127
127
|
async execute(toolCallId, params, signal, onUpdate, ctx) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-sandbox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-sandbox",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.91.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sandbox-runtime": "^0.0.26"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-with-deps",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-with-deps",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.91.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "^2.1.3"
|
|
12
12
|
},
|