@aragon-agent/cli 0.6.46 → 0.6.48
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 +28 -0
- package/README.md +80 -12
- package/dist/agent/coalesce.d.ts +5 -1
- package/dist/agent/coalesce.js +13 -0
- package/dist/agent/controller.d.ts +41 -20
- package/dist/agent/controller.js +68 -15
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/user-attention.d.ts +17 -0
- package/dist/agent/user-attention.js +32 -0
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +113 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +31 -32
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +10 -31
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +8 -5
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +10 -4
- package/dist/proc/wait-plan.d.ts +39 -0
- package/dist/proc/wait-plan.js +77 -0
- package/dist/proc/wait.d.ts +37 -4
- package/dist/proc/wait.js +68 -5
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/checkpoint.js +2 -0
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +20 -3
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +6 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +14 -3
- package/dist/tools/job-tools.js +158 -35
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -837
- package/dist/agent/reducer.js +0 -1617
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1377
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -200
- package/dist/proc/limits.js +0 -207
- package/dist/proc/progress.d.ts +0 -40
- package/dist/proc/progress.js +0 -135
- package/dist/proc/types.d.ts +0 -263
- package/dist/proc/types.js +0 -15
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -48
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -129
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -251
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -160
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -82
- package/dist/ui/interaction-copy.js +0 -38
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -139
- package/dist/ui/layout/status-layout.js +0 -253
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -488
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -61
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -118
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The keyboard drawer (tui-shortcut-drawer-and-task-summary §4.5).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
5
|
-
*
|
|
6
|
-
* IT OWNS NO CHROME AND NO ARITHMETIC. `OverlayFrame` draws the frame, the
|
|
7
|
-
* window and the position indicator; `shortcut-panel-layout.ts` decides the
|
|
8
|
-
* columns, the rows and which window contains the cursor. This component adds two
|
|
9
|
-
* things and nothing else: its own key handling and the text-run colours. v1
|
|
10
|
-
* planned 260 lines that re-implemented the frame's windowing and clamping - a
|
|
11
|
-
* second source of truth for the one thing overlays have already been rewritten
|
|
12
|
-
* once to unify.
|
|
13
|
-
*
|
|
14
|
-
* IT DOES NOT REGISTER `Esc` AND DOES NOT TOUCH ANY `ctrl`/`meta` COMBINATION:
|
|
15
|
-
* `Esc` belongs to `App` (it closes every overlay and cancels the pending
|
|
16
|
-
* question/plan), and `Ctrl+G` is handled there too. Two listeners both acting on
|
|
17
|
-
* one byte is how a panel closes twice.
|
|
18
|
-
*/
|
|
19
|
-
import React from 'react';
|
|
20
|
-
import type { Theme } from '../theme.js';
|
|
21
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
22
|
-
import { type ShortcutTaskSection } from '../layout/shortcut-panel-layout.js';
|
|
23
|
-
export interface ShortcutPanelProps {
|
|
24
|
-
/** The terminal width, which is what `OverlayFrame` needs to pick its form. */
|
|
25
|
-
cols: number;
|
|
26
|
-
maxRows: number;
|
|
27
|
-
theme: Theme;
|
|
28
|
-
caps: TermCapabilities;
|
|
29
|
-
isActive: boolean;
|
|
30
|
-
native: boolean;
|
|
31
|
-
running: boolean;
|
|
32
|
-
/** `/keys <query>` pre-filter. */
|
|
33
|
-
query?: string;
|
|
34
|
-
task: ShortcutTaskSection;
|
|
35
|
-
detailsExpanded: boolean;
|
|
36
|
-
onToggleDetails(): void;
|
|
37
|
-
onRefresh(): void;
|
|
38
|
-
}
|
|
39
|
-
export declare function ShortcutPanel(props: ShortcutPanelProps): React.ReactElement;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* The keyboard drawer (tui-shortcut-drawer-and-task-summary §4.5).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
6
|
-
*
|
|
7
|
-
* IT OWNS NO CHROME AND NO ARITHMETIC. `OverlayFrame` draws the frame, the
|
|
8
|
-
* window and the position indicator; `shortcut-panel-layout.ts` decides the
|
|
9
|
-
* columns, the rows and which window contains the cursor. This component adds two
|
|
10
|
-
* things and nothing else: its own key handling and the text-run colours. v1
|
|
11
|
-
* planned 260 lines that re-implemented the frame's windowing and clamping - a
|
|
12
|
-
* second source of truth for the one thing overlays have already been rewritten
|
|
13
|
-
* once to unify.
|
|
14
|
-
*
|
|
15
|
-
* IT DOES NOT REGISTER `Esc` AND DOES NOT TOUCH ANY `ctrl`/`meta` COMBINATION:
|
|
16
|
-
* `Esc` belongs to `App` (it closes every overlay and cancels the pending
|
|
17
|
-
* question/plan), and `Ctrl+G` is handled there too. Two listeners both acting on
|
|
18
|
-
* one byte is how a panel closes twice.
|
|
19
|
-
*/
|
|
20
|
-
import { useMemo, useState } from 'react';
|
|
21
|
-
import { Text, useInput } from 'ink';
|
|
22
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
23
|
-
import { OverlayFrame, overlayBodyRows, overlayPageSize } from '../layout/OverlayFrame.js';
|
|
24
|
-
import { buildShortcutRows, shortcutPanelWidth, } from '../layout/shortcut-panel-layout.js';
|
|
25
|
-
import { filterShortcuts, isAvailable, SHORTCUTS } from '../shortcuts.js';
|
|
26
|
-
/** Colour per tone. `dim` is `muted` plus the dim attribute, never a second colour. */
|
|
27
|
-
function toneOf(row, theme) {
|
|
28
|
-
if (row.tone === 'accent')
|
|
29
|
-
return { color: theme.accent };
|
|
30
|
-
if (row.tone === 'primary')
|
|
31
|
-
return { color: theme.primary };
|
|
32
|
-
if (row.tone === 'dim')
|
|
33
|
-
return { color: theme.muted, dimColor: true };
|
|
34
|
-
return { color: theme.muted };
|
|
35
|
-
}
|
|
36
|
-
export function ShortcutPanel(props) {
|
|
37
|
-
const { cols, maxRows, theme, caps, isActive, native, running } = props;
|
|
38
|
-
const glyphs = pickGlyphs(caps);
|
|
39
|
-
const [cursor, setCursor] = useState(0);
|
|
40
|
-
const entries = useMemo(() => filterShortcuts(SHORTCUTS, props.query ?? ''), [props.query]);
|
|
41
|
-
const bodyRows = overlayBodyRows(maxRows, cols);
|
|
42
|
-
const page = overlayPageSize(maxRows, cols);
|
|
43
|
-
const result = useMemo(() => buildShortcutRows({
|
|
44
|
-
cols,
|
|
45
|
-
rows: bodyRows,
|
|
46
|
-
cursor,
|
|
47
|
-
entries,
|
|
48
|
-
task: props.task,
|
|
49
|
-
entryAvailable: (entry) => isAvailable(entry, { native, running }),
|
|
50
|
-
unavailableReason: native ? 'this mode leaves it to the terminal' : 'a run is in flight',
|
|
51
|
-
glyphs: {
|
|
52
|
-
ellipsis: glyphs.ellipsis,
|
|
53
|
-
cursor: glyphs.cursor,
|
|
54
|
-
hrule: glyphs.hrule,
|
|
55
|
-
midDot: glyphs.midDot,
|
|
56
|
-
},
|
|
57
|
-
}), [cols, bodyRows, cursor, entries, props.task, native, running,
|
|
58
|
-
glyphs.ellipsis, glyphs.cursor, glyphs.hrule, glyphs.midDot]);
|
|
59
|
-
const last = Math.max(0, entries.length - 1);
|
|
60
|
-
useInput((input, key) => {
|
|
61
|
-
// `ctrl`/`meta` ARE NOT OURS: `Ctrl+G` closes this panel and `Ctrl+C` owns the
|
|
62
|
-
// exit ladder, both in `App`. Consuming them here would double-handle a byte.
|
|
63
|
-
if (key.ctrl || key.meta)
|
|
64
|
-
return;
|
|
65
|
-
if (key.upArrow || input === 'k') {
|
|
66
|
-
setCursor((value) => Math.max(0, value - 1));
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (key.downArrow || input === 'j') {
|
|
70
|
-
setCursor((value) => Math.min(last, value + 1));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// PAGING MOVES THE CURSOR, one page minus one row of overlap - the same rule
|
|
74
|
-
// `overlayPageSize` uses for every other overlay, so a page turn keeps a row of
|
|
75
|
-
// context. An independent offset would let the selected row - and the detail
|
|
76
|
-
// line that explains it - slide off screen (P1-7).
|
|
77
|
-
if (key.pageUp) {
|
|
78
|
-
setCursor((value) => Math.max(0, value - Math.max(1, page - 1)));
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
if (key.pageDown) {
|
|
82
|
-
setCursor((value) => Math.min(last, value + Math.max(1, page - 1)));
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (input === 'd') {
|
|
86
|
-
props.onToggleDetails();
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
if (input === 'r') {
|
|
90
|
-
props.onRefresh();
|
|
91
|
-
}
|
|
92
|
-
}, { isActive });
|
|
93
|
-
const rows = result.rows.map((row, index) => (_jsx(Text, { wrap: "truncate", ...toneOf(row, theme), children: row.text }, `${row.kind}-${row.entryId ?? 'x'}-${index}`)));
|
|
94
|
-
// THE `d` MARKER LIVES ON THE FRAME'S OWN TITLE LINE (D-6), which is chrome that is
|
|
95
|
-
// already paid for. It is spelled `d:on` / `d:off` rather than `details on|off`
|
|
96
|
-
// because the title row also carries the frame's position indicator (`v 1-13/37`,
|
|
97
|
-
// 13 cells) and the drawer's content is only 26 cells wide at 80 columns: the long
|
|
98
|
-
// form is truncated to `details...`, which is a marker that says nothing. The
|
|
99
|
-
// footer's `d details` clause names the key, so the pair reads as one sentence.
|
|
100
|
-
const title = `Keys d:${props.detailsExpanded ? 'on' : 'off'}`;
|
|
101
|
-
return (_jsx(OverlayFrame, { title: title, hint: result.hint, maxRows: maxRows, cols: cols, width: shortcutPanelWidth(cols), align: "right", rows: rows,
|
|
102
|
-
// THE WINDOW IS DERIVED FROM THE CURSOR, so the offset handed to the frame is
|
|
103
|
-
// a conclusion rather than state. `onScrollClamp` is deliberately not passed:
|
|
104
|
-
// there is nothing here that could drift out of step with it.
|
|
105
|
-
scrollOffset: result.window.start, theme: theme, caps: caps }));
|
|
106
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings > Team: four arrows-adjustable rows (subagent-fanout 3.4.3, extended
|
|
3
|
-
* by team-command-forced-dispatch §3.9).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
6
|
-
*
|
|
7
|
-
* THE PAGE OWNS ONE PIECE OF STATE: its cursor. Every value comes from
|
|
8
|
-
* `props.view.rows`, which `SettingsScreen` derives from the reducer state - so
|
|
9
|
-
* this page cannot hold a second copy of the draft and then disagree with the
|
|
10
|
-
* root page about what is about to be saved (the discipline
|
|
11
|
-
* `model-profile-state.ts` records at its own head).
|
|
12
|
-
*
|
|
13
|
-
* FOUR ROWS, NOT THREE: `Team mode` moved here from `/team on|off`, because a
|
|
14
|
-
* command that both configures and executes leaves the user unable to predict
|
|
15
|
-
* what it did. The switch is the FIRST row - the other three describe a capability
|
|
16
|
-
* it turns on.
|
|
17
|
-
*
|
|
18
|
-
* IT DOES NOT LISTEN FOR Ctrl+S, AND THE FOOTER SAYS SO (R-P1-13).
|
|
19
|
-
* `useRootSettingsInput` gates its `useInput` on `state.page === 'root'`, so a
|
|
20
|
-
* subpage has no save listener at all - the kit page included. A footer
|
|
21
|
-
* promising "Ctrl+S saves here" would therefore be a lie the user acts on. The
|
|
22
|
-
* honest instruction is the one already in their fingers: Esc back, Ctrl+S on the
|
|
23
|
-
* main page.
|
|
24
|
-
*/
|
|
25
|
-
import React from 'react';
|
|
26
|
-
import { type ProfileFrameProps } from './ModelProfilePicker.js';
|
|
27
|
-
import type { TeamFanoutField, TeamFanoutView } from './team-fanout-state.js';
|
|
28
|
-
/** What the page may ask the screen to change. */
|
|
29
|
-
export interface TeamFanoutAction {
|
|
30
|
-
type: 'team-fanout';
|
|
31
|
-
field: TeamFanoutField;
|
|
32
|
-
delta: -1 | 1;
|
|
33
|
-
}
|
|
34
|
-
interface TeamFanoutPageProps extends ProfileFrameProps {
|
|
35
|
-
view: TeamFanoutView;
|
|
36
|
-
dispatch: (action: TeamFanoutAction) => void;
|
|
37
|
-
/** Esc: back to the settings root. The draft is NOT discarded here. */
|
|
38
|
-
onBack: () => void;
|
|
39
|
-
/**
|
|
40
|
-
* Whether `task` is in this SESSION's tool list (`--no-team` is the false case).
|
|
41
|
-
*
|
|
42
|
-
* OPTIONAL, like every other pass-through on this screen: fixtures build
|
|
43
|
-
* `ProfileFrameProps` by literal, and "absent" honestly means "not disclosed"
|
|
44
|
-
* rather than "registered". When it is `false` and the draft says `on`, the
|
|
45
|
-
* `Team mode` row reads `on (next launch)` - the tool array is immutable, so
|
|
46
|
-
* that is the truth about what saving will achieve (I-7 / AC-9).
|
|
47
|
-
*/
|
|
48
|
-
teamRegistered?: boolean;
|
|
49
|
-
}
|
|
50
|
-
export declare function TeamFanoutPage(props: TeamFanoutPageProps): React.ReactElement;
|
|
51
|
-
export {};
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Settings > Team: four arrows-adjustable rows (subagent-fanout 3.4.3, extended
|
|
4
|
-
* by team-command-forced-dispatch §3.9).
|
|
5
|
-
*
|
|
6
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
7
|
-
*
|
|
8
|
-
* THE PAGE OWNS ONE PIECE OF STATE: its cursor. Every value comes from
|
|
9
|
-
* `props.view.rows`, which `SettingsScreen` derives from the reducer state - so
|
|
10
|
-
* this page cannot hold a second copy of the draft and then disagree with the
|
|
11
|
-
* root page about what is about to be saved (the discipline
|
|
12
|
-
* `model-profile-state.ts` records at its own head).
|
|
13
|
-
*
|
|
14
|
-
* FOUR ROWS, NOT THREE: `Team mode` moved here from `/team on|off`, because a
|
|
15
|
-
* command that both configures and executes leaves the user unable to predict
|
|
16
|
-
* what it did. The switch is the FIRST row - the other three describe a capability
|
|
17
|
-
* it turns on.
|
|
18
|
-
*
|
|
19
|
-
* IT DOES NOT LISTEN FOR Ctrl+S, AND THE FOOTER SAYS SO (R-P1-13).
|
|
20
|
-
* `useRootSettingsInput` gates its `useInput` on `state.page === 'root'`, so a
|
|
21
|
-
* subpage has no save listener at all - the kit page included. A footer
|
|
22
|
-
* promising "Ctrl+S saves here" would therefore be a lie the user acts on. The
|
|
23
|
-
* honest instruction is the one already in their fingers: Esc back, Ctrl+S on the
|
|
24
|
-
* main page.
|
|
25
|
-
*/
|
|
26
|
-
import { useState } from 'react';
|
|
27
|
-
import { Text, useInput } from 'ink';
|
|
28
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
29
|
-
import { OverlayFrame } from '../layout/OverlayFrame.js';
|
|
30
|
-
import { clipProfileText, useProfileScroll } from './ModelProfilePicker.js';
|
|
31
|
-
/**
|
|
32
|
-
* Label column, matching the root page's `padEnd(18)` rows above and below this
|
|
33
|
-
* one. `Team mode` is 9 characters and `Max subagents` is 13, so 18 keeps the
|
|
34
|
-
* value column aligned with `Subagent model` on the root page - measured, not
|
|
35
|
-
* guessed.
|
|
36
|
-
*/
|
|
37
|
-
const LABEL_PAD = 18;
|
|
38
|
-
/**
|
|
39
|
-
* The two rows `Enter` toggles, and nothing else (R-P1-12).
|
|
40
|
-
*
|
|
41
|
-
* A stray Return that silently changed a NUMBER is indistinguishable from a bug,
|
|
42
|
-
* and the arrow keys are already the obvious control there.
|
|
43
|
-
*/
|
|
44
|
-
const TOGGLE_FIELDS = new Set(['enabled', 'overseer']);
|
|
45
|
-
export function TeamFanoutPage(props) {
|
|
46
|
-
const [index, setIndex] = useState(0);
|
|
47
|
-
const rows = props.view.rows;
|
|
48
|
-
const count = Math.max(1, rows.length);
|
|
49
|
-
const cursor = Math.min(index, count - 1);
|
|
50
|
-
const focused = rows[cursor];
|
|
51
|
-
const offset = useProfileScroll(props, cursor);
|
|
52
|
-
const nudge = (delta) => {
|
|
53
|
-
if (!focused)
|
|
54
|
-
return;
|
|
55
|
-
props.dispatch({ type: 'team-fanout', field: focused.field, delta });
|
|
56
|
-
};
|
|
57
|
-
useInput((_input, key) => {
|
|
58
|
-
if (props.isActive === false)
|
|
59
|
-
return;
|
|
60
|
-
if (key.escape) {
|
|
61
|
-
props.onBack();
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if (key.upArrow || (key.tab && key.shift)) {
|
|
65
|
-
setIndex((cursor - 1 + count) % count);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if (key.downArrow || key.tab) {
|
|
69
|
-
setIndex((cursor + 1) % count);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
if (key.leftArrow || key.rightArrow) {
|
|
73
|
-
nudge(key.leftArrow ? -1 : 1);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
// `Enter` toggles the two boolean rows and does NOTHING on a numeric row.
|
|
77
|
-
if (key.return && focused && TOGGLE_FIELDS.has(focused.field))
|
|
78
|
-
nudge(1);
|
|
79
|
-
});
|
|
80
|
-
const lines = rows.map((row) => `${row.label.padEnd(LABEL_PAD)}${row.value}`);
|
|
81
|
-
const glyphs = pickGlyphs(props.caps);
|
|
82
|
-
const body = lines.map((line, at) => (_jsx(Text, { wrap: "truncate", color: at === cursor ? props.theme.accent : props.theme.muted, children: `${at === cursor ? glyphs.caret : ' '} ${clipProfileText(line, props.cols - 8)}` }, at)));
|
|
83
|
-
// The hint explains the FOCUSED row rather than decorating the frame: numbers
|
|
84
|
-
// whose meaning is not obvious ("per dispatch" versus "at once") are the reason
|
|
85
|
-
// this page exists at all.
|
|
86
|
-
if (focused) {
|
|
87
|
-
body.push(_jsx(Text, { wrap: "truncate", color: props.theme.muted, children: clipProfileText(focused.hint, props.cols - 8) }, "hint"));
|
|
88
|
-
}
|
|
89
|
-
return _jsx(OverlayFrame, { ...props, rows: body, scrollOffset: offset, title: props.view.error ?? 'Team', hint: "Arrows adjust. Esc goes back; Ctrl+S on the main page saves." });
|
|
90
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings > Governance: the pure half of the page (governance-mode 11.1).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
5
|
-
*
|
|
6
|
-
* FIELD DEFINITIONS AND THE ARROW-KEY STEP, NOTHING ELSE. `SettingsScreen.tsx` is far past
|
|
7
|
-
* the size limit, so the page lists its rows from here and adds wiring only, mirroring
|
|
8
|
-
* `team-fanout-state.ts`. Every value a step produces goes back through
|
|
9
|
-
* `clampGovernanceConfig`, so the page, `config set` and a hand-edited `config.json` can
|
|
10
|
-
* never disagree about a range.
|
|
11
|
-
*
|
|
12
|
-
* THE PAGE MAY WRITE THE ELEVEN POLICY KEYS AND NOTHING ELSE. The structural bounds
|
|
13
|
-
* (`GOV_LIMITS`) are not settings: a number a user can tune past what the store and the
|
|
14
|
-
* panel can carry is not a preference, it is a crash.
|
|
15
|
-
*/
|
|
16
|
-
import { type GovernanceConfig } from '../../config/governance-config.js';
|
|
17
|
-
import type { ModelSettingsDraft } from '../../config/model-profile-store.js';
|
|
18
|
-
export type GovernanceSettingKey = keyof GovernanceConfig;
|
|
19
|
-
export type GovernanceSettingKind = 'toggle' | 'number' | 'choice';
|
|
20
|
-
export interface GovernanceSettingDef {
|
|
21
|
-
key: GovernanceSettingKey;
|
|
22
|
-
/** At most 17 columns: the page pads labels to 18, like the Team page. */
|
|
23
|
-
label: string;
|
|
24
|
-
/** One line, at most 60 columns: WHY this setting, not a restatement of the label. */
|
|
25
|
-
description: string;
|
|
26
|
-
kind: GovernanceSettingKind;
|
|
27
|
-
/** Inclusive; numbers only. Read from the clamp, never repeated here. */
|
|
28
|
-
range?: {
|
|
29
|
-
min: number;
|
|
30
|
-
max: number;
|
|
31
|
-
};
|
|
32
|
-
/** Arrow-key increment; numbers only. */
|
|
33
|
-
step?: number;
|
|
34
|
-
/** Cycle order; choices only. */
|
|
35
|
-
choices?: readonly string[];
|
|
36
|
-
}
|
|
37
|
-
/** The rows in cursor order. The switch is first: the rest describe what it turns on. */
|
|
38
|
-
export declare const GOVERNANCE_SETTING_DEFS: readonly GovernanceSettingDef[];
|
|
39
|
-
export interface GovernanceSettingRow {
|
|
40
|
-
key: GovernanceSettingKey;
|
|
41
|
-
label: string;
|
|
42
|
-
/** The value as the page prints it (`'on'` / `'3'` / `'unlimited'`). */
|
|
43
|
-
value: string;
|
|
44
|
-
/** Description plus the range, one line. */
|
|
45
|
-
hint: string;
|
|
46
|
-
}
|
|
47
|
-
/** The page's rows for the CLAMPED section, so the screen shows what would be saved. */
|
|
48
|
-
export declare function governanceSettingRows(values: unknown): GovernanceSettingRow[];
|
|
49
|
-
/**
|
|
50
|
-
* The PATCH FRAGMENT for one arrow press, for a section the screen already shows
|
|
51
|
-
* (`current`). Exactly one key, so a step can never carry a second one into the draft.
|
|
52
|
-
* Toggles flip on either arrow, as on the Team page: a direction means nothing for two
|
|
53
|
-
* states. An unknown key yields an empty patch rather than throwing.
|
|
54
|
-
*/
|
|
55
|
-
export declare function stepGovernanceSetting(current: unknown, key: GovernanceSettingKey, delta: -1 | 1): Partial<GovernanceConfig>;
|
|
56
|
-
/**
|
|
57
|
-
* The governance section this draft would save: the patch over the disk baseline, then the
|
|
58
|
-
* clamp (governance-mode-v1-1 5.2). Same order as `teamFanoutValues`, and the clamp is not
|
|
59
|
-
* cosmetic: it is what makes the number on screen the number `Ctrl+S` writes, whatever a
|
|
60
|
-
* hand-edited `config.json` or an old patch carried.
|
|
61
|
-
*/
|
|
62
|
-
export declare function draftGovernance(draft: ModelSettingsDraft): GovernanceConfig;
|
|
63
|
-
/**
|
|
64
|
-
* The one-line summary the settings root row prints. A DERIVED row, never a control: the
|
|
65
|
-
* values change on the page Enter opens, so the root row cannot be moved by a stray arrow.
|
|
66
|
-
* `off` alone when the switch is off, because the numbers then describe a capability that
|
|
67
|
-
* is not there (the `teamSummary` rule).
|
|
68
|
-
*/
|
|
69
|
-
export declare function governanceSummary(config: GovernanceConfig): string;
|
|
70
|
-
export type GovernanceRestartNote = string | null;
|
|
71
|
-
/**
|
|
72
|
-
* Whether saving the `enabled` switch would not take effect in THIS session. The tool array
|
|
73
|
-
* is immutable after construction (v1 D-22), so a draft that disagrees with what was
|
|
74
|
-
* registered at launch only applies next launch, and the page says so rather than letting a
|
|
75
|
-
* user believe a toggle summoned `gov_run` into the running session. `undefined` means the
|
|
76
|
-
* host did not say, and the page then discloses nothing (every fixture builds props by
|
|
77
|
-
* literal).
|
|
78
|
-
*/
|
|
79
|
-
export declare function governanceRestartNote(enabledInDraft: boolean, registeredAtLaunch: boolean | undefined): GovernanceRestartNote;
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings > Governance: the pure half of the page (governance-mode 11.1).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
5
|
-
*
|
|
6
|
-
* FIELD DEFINITIONS AND THE ARROW-KEY STEP, NOTHING ELSE. `SettingsScreen.tsx` is far past
|
|
7
|
-
* the size limit, so the page lists its rows from here and adds wiring only, mirroring
|
|
8
|
-
* `team-fanout-state.ts`. Every value a step produces goes back through
|
|
9
|
-
* `clampGovernanceConfig`, so the page, `config set` and a hand-edited `config.json` can
|
|
10
|
-
* never disagree about a range.
|
|
11
|
-
*
|
|
12
|
-
* THE PAGE MAY WRITE THE ELEVEN POLICY KEYS AND NOTHING ELSE. The structural bounds
|
|
13
|
-
* (`GOV_LIMITS`) are not settings: a number a user can tune past what the store and the
|
|
14
|
-
* panel can carry is not a preference, it is a crash.
|
|
15
|
-
*/
|
|
16
|
-
import { clampGovernanceConfig, governanceRangeOf, } from '../../config/governance-config.js';
|
|
17
|
-
import { PROFILE_IDS } from '../../governance/types.js';
|
|
18
|
-
function numeric(key, label, description, step = 1) {
|
|
19
|
-
return { key, label, description, kind: 'number', range: governanceRangeOf(key), step };
|
|
20
|
-
}
|
|
21
|
-
/** The rows in cursor order. The switch is first: the rest describe what it turns on. */
|
|
22
|
-
export const GOVERNANCE_SETTING_DEFS = [
|
|
23
|
-
{ key: 'enabled', label: 'Governance', kind: 'toggle',
|
|
24
|
-
description: 'Off removes it entirely. Turning it on needs a restart.' },
|
|
25
|
-
{ key: 'shiftTab', label: 'Shift+Tab cycle', kind: 'toggle',
|
|
26
|
-
description: 'Off keeps Shift+Tab on BUILD/PLAN; /gov still works.' },
|
|
27
|
-
{ key: 'panel', label: 'Legion panel', kind: 'toggle',
|
|
28
|
-
description: 'Off shows the status chip only, no panel.' },
|
|
29
|
-
{ key: 'profile', label: 'Profile', kind: 'choice', choices: PROFILE_IDS,
|
|
30
|
-
description: 'Domain wording for the roles and their checklists.' },
|
|
31
|
-
numeric('maxWorkPackages', 'Work packages', 'Most work packages one run may define.'),
|
|
32
|
-
numeric('maxPhases', 'Phases', 'Most dev/review/test rounds one run may take.'),
|
|
33
|
-
numeric('maxRework', 'Rework rounds', 'Rework rounds per work package before escalation.'),
|
|
34
|
-
numeric('maxFixCycles', 'Fix cycles', 'Fix cycles per phase after integration fails.'),
|
|
35
|
-
numeric('minAskRounds', 'Ask rounds', 'Questions PLAN+GOVERN asks before a plan is allowed.'),
|
|
36
|
-
numeric('budgetTokens', 'Token budget', 'Per-run token ceiling; 0 means unlimited.', 100_000),
|
|
37
|
-
{ key: 'confirmCharter', label: 'Confirm charter', kind: 'toggle',
|
|
38
|
-
description: 'On asks you to approve the run plan before any dispatch.' },
|
|
39
|
-
];
|
|
40
|
-
function formatValue(def, config) {
|
|
41
|
-
const value = config[def.key];
|
|
42
|
-
if (def.kind === 'toggle')
|
|
43
|
-
return value ? 'on' : 'off';
|
|
44
|
-
if (def.key === 'budgetTokens')
|
|
45
|
-
return value === 0 ? 'unlimited' : String(value);
|
|
46
|
-
return String(value);
|
|
47
|
-
}
|
|
48
|
-
function formatHint(def) {
|
|
49
|
-
if (def.range === undefined)
|
|
50
|
-
return def.description;
|
|
51
|
-
return `${def.description} (${def.range.min}-${def.range.max})`;
|
|
52
|
-
}
|
|
53
|
-
/** The page's rows for the CLAMPED section, so the screen shows what would be saved. */
|
|
54
|
-
export function governanceSettingRows(values) {
|
|
55
|
-
const config = clampGovernanceConfig(values);
|
|
56
|
-
return GOVERNANCE_SETTING_DEFS.map((def) => ({
|
|
57
|
-
key: def.key,
|
|
58
|
-
label: def.label,
|
|
59
|
-
value: formatValue(def, config),
|
|
60
|
-
hint: formatHint(def),
|
|
61
|
-
}));
|
|
62
|
-
}
|
|
63
|
-
function stepNumber(config, def, delta) {
|
|
64
|
-
const key = def.key;
|
|
65
|
-
// NO WRAPAROUND: a form control is not a ring, and Left at the floor jumping to the
|
|
66
|
-
// ceiling would be a way to raise a limit while trying to lower it. The clamp does it.
|
|
67
|
-
const next = clampGovernanceConfig({ ...config, [key]: config[key] + delta * (def.step ?? 1) });
|
|
68
|
-
return { [key]: next[key] };
|
|
69
|
-
}
|
|
70
|
-
function stepChoice(config, def, delta) {
|
|
71
|
-
const choices = def.choices ?? [];
|
|
72
|
-
const at = choices.indexOf(String(config[def.key]));
|
|
73
|
-
const next = choices[(at + delta + choices.length) % choices.length];
|
|
74
|
-
// Through the clamp, so a choice list that ever drifts from the clamp's vocabulary cannot
|
|
75
|
-
// write a value the read path would silently repair.
|
|
76
|
-
const stored = clampGovernanceConfig({ ...config, [def.key]: next })[def.key];
|
|
77
|
-
return { [def.key]: stored };
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* The PATCH FRAGMENT for one arrow press, for a section the screen already shows
|
|
81
|
-
* (`current`). Exactly one key, so a step can never carry a second one into the draft.
|
|
82
|
-
* Toggles flip on either arrow, as on the Team page: a direction means nothing for two
|
|
83
|
-
* states. An unknown key yields an empty patch rather than throwing.
|
|
84
|
-
*/
|
|
85
|
-
export function stepGovernanceSetting(current, key, delta) {
|
|
86
|
-
const config = clampGovernanceConfig(current);
|
|
87
|
-
const def = GOVERNANCE_SETTING_DEFS.find((candidate) => candidate.key === key);
|
|
88
|
-
if (def === undefined)
|
|
89
|
-
return {};
|
|
90
|
-
if (def.kind === 'toggle')
|
|
91
|
-
return { [key]: !config[key] };
|
|
92
|
-
return def.kind === 'number' ? stepNumber(config, def, delta) : stepChoice(config, def, delta);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* The governance section this draft would save: the patch over the disk baseline, then the
|
|
96
|
-
* clamp (governance-mode-v1-1 5.2). Same order as `teamFanoutValues`, and the clamp is not
|
|
97
|
-
* cosmetic: it is what makes the number on screen the number `Ctrl+S` writes, whatever a
|
|
98
|
-
* hand-edited `config.json` or an old patch carried.
|
|
99
|
-
*/
|
|
100
|
-
export function draftGovernance(draft) {
|
|
101
|
-
return clampGovernanceConfig({ ...draft.baseline.governance, ...draft.patch.governance });
|
|
102
|
-
}
|
|
103
|
-
/** `0` is unlimited; otherwise a compact figure (`500k`, `1.2M`). */
|
|
104
|
-
function budgetText(tokens) {
|
|
105
|
-
if (tokens <= 0)
|
|
106
|
-
return 'unlimited';
|
|
107
|
-
if (tokens >= 1_000_000)
|
|
108
|
-
return `${Number((tokens / 1_000_000).toFixed(1))}M`;
|
|
109
|
-
return `${Math.round(tokens / 1_000)}k`;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* The one-line summary the settings root row prints. A DERIVED row, never a control: the
|
|
113
|
-
* values change on the page Enter opens, so the root row cannot be moved by a stray arrow.
|
|
114
|
-
* `off` alone when the switch is off, because the numbers then describe a capability that
|
|
115
|
-
* is not there (the `teamSummary` rule).
|
|
116
|
-
*/
|
|
117
|
-
export function governanceSummary(config) {
|
|
118
|
-
if (!config.enabled)
|
|
119
|
-
return 'off';
|
|
120
|
-
return [
|
|
121
|
-
'on',
|
|
122
|
-
`${config.maxWorkPackages} WP`,
|
|
123
|
-
`${config.maxPhases} phases`,
|
|
124
|
-
`rework ${config.maxRework}`,
|
|
125
|
-
`budget ${budgetText(config.budgetTokens)}`,
|
|
126
|
-
].join(' | ');
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Whether saving the `enabled` switch would not take effect in THIS session. The tool array
|
|
130
|
-
* is immutable after construction (v1 D-22), so a draft that disagrees with what was
|
|
131
|
-
* registered at launch only applies next launch, and the page says so rather than letting a
|
|
132
|
-
* user believe a toggle summoned `gov_run` into the running session. `undefined` means the
|
|
133
|
-
* host did not say, and the page then discloses nothing (every fixture builds props by
|
|
134
|
-
* literal).
|
|
135
|
-
*/
|
|
136
|
-
export function governanceRestartNote(enabledInDraft, registeredAtLaunch) {
|
|
137
|
-
if (registeredAtLaunch === undefined || enabledInDraft === registeredAtLaunch)
|
|
138
|
-
return null;
|
|
139
|
-
return 'Governance is registered at launch; this change applies next launch.';
|
|
140
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `ctrl+K` list, as a pure view model (agent-model-kits §4.6 / D-10).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
5
|
-
*
|
|
6
|
-
* WHY THE ROWS ARE COMPUTED HERE AND NOT IN THE COMPONENT: three surfaces print
|
|
7
|
-
* the same three connections (this list, the settings manager, `/kit list`).
|
|
8
|
-
* One function produces them, so the wording of "the fast tier is off" cannot
|
|
9
|
-
* differ between the key the user pressed and the command they typed.
|
|
10
|
-
*/
|
|
11
|
-
import type { CliConfig, TeamConfig } from '../../config/schema.js';
|
|
12
|
-
import type { ModelProfilesConfig } from '../../config/model-profiles.js';
|
|
13
|
-
import { type KitConnection, type KitSlot } from '../../config/model-kits.js';
|
|
14
|
-
import { type ActiveKit } from '../../config/kit-resolution.js';
|
|
15
|
-
export interface KitPickerRow {
|
|
16
|
-
/** `null` = `Current setup` (the release action). */
|
|
17
|
-
id: string | null;
|
|
18
|
-
/** The one-line label, markers included. */
|
|
19
|
-
label: string;
|
|
20
|
-
/** Machine-checkable markers, so tests never grep a rendered string. */
|
|
21
|
-
markers: {
|
|
22
|
-
inUse: boolean;
|
|
23
|
-
isDefault: boolean;
|
|
24
|
-
modified: boolean;
|
|
25
|
-
};
|
|
26
|
-
/** Non-empty when a referenced profile is gone. */
|
|
27
|
-
missing: KitSlot[];
|
|
28
|
-
}
|
|
29
|
-
export interface KitPickerInput {
|
|
30
|
-
library?: ModelProfilesConfig | undefined;
|
|
31
|
-
active: ActiveKit;
|
|
32
|
-
}
|
|
33
|
-
/** `provider:model` plus the endpoint clause shared by every surface. */
|
|
34
|
-
export declare function connectionText(connection: KitConnection): string;
|
|
35
|
-
/**
|
|
36
|
-
* Rows in a FIXED order: `Current setup` first, then the library's own order.
|
|
37
|
-
*
|
|
38
|
-
* The first row never moves (AC-24) - it is the only row that can always be
|
|
39
|
-
* chosen, and a list whose "off" entry wanders with the data is a list a user
|
|
40
|
-
* has to read every single time.
|
|
41
|
-
*/
|
|
42
|
-
export declare function kitRows(input: KitPickerInput): KitPickerRow[];
|
|
43
|
-
/**
|
|
44
|
-
* The three bindings `Current setup` describes.
|
|
45
|
-
*
|
|
46
|
-
* STRUCTURAL, NOT `CliConfig`: the caller hands in the PERSISTED config for this
|
|
47
|
-
* block (§4.6), because the live config no longer holds the file's bindings once
|
|
48
|
-
* a session kit is applied - it mirrors the kit (I-6). Both shapes satisfy this
|
|
49
|
-
* interface, so neither layer has to convert anything.
|
|
50
|
-
*/
|
|
51
|
-
export interface KitConnectionsSource {
|
|
52
|
-
provider: string;
|
|
53
|
-
model: string;
|
|
54
|
-
team?: {
|
|
55
|
-
model: TeamConfig['model'];
|
|
56
|
-
modelProfileId?: string | null;
|
|
57
|
-
} | undefined;
|
|
58
|
-
fast: {
|
|
59
|
-
enabled: boolean;
|
|
60
|
-
provider: string;
|
|
61
|
-
model: string;
|
|
62
|
-
};
|
|
63
|
-
modelProfiles?: ModelProfilesConfig | undefined;
|
|
64
|
-
}
|
|
65
|
-
/** The three lines under the focused row (§4.6). */
|
|
66
|
-
export declare function kitDetail(input: {
|
|
67
|
-
row: KitPickerRow;
|
|
68
|
-
library?: ModelProfilesConfig | undefined;
|
|
69
|
-
config: CliConfig;
|
|
70
|
-
/** The config file's copy of the bindings; see the `Current setup` note below. */
|
|
71
|
-
diskConfig?: KitConnectionsSource | undefined;
|
|
72
|
-
}): string[];
|
|
73
|
-
/**
|
|
74
|
-
* The footer. `busy` is a warning, never a reason to hide the list (§4.7).
|
|
75
|
-
*
|
|
76
|
-
* THE LAST CLAUSE IS D-7, VERBATIM: this overlay is a session-only surface, so it
|
|
77
|
-
* says where the persistence actually lives. Without it the natural reading of
|
|
78
|
-
* `Enter` is "make this my default", and D-7 exists to keep that action one
|
|
79
|
-
* deliberate trip to `/settings` instead of one keystroke next to a browse key.
|
|
80
|
-
* It is LAST so that a 40-column terminal clips the pointer, never the action.
|
|
81
|
-
*/
|
|
82
|
-
export declare function kitPickHint(input: {
|
|
83
|
-
busy: boolean;
|
|
84
|
-
hasKits: boolean;
|
|
85
|
-
}): string;
|
|
86
|
-
/** The one guidance row an empty library renders (AC-26). */
|
|
87
|
-
export declare const NO_KITS_HINT = "No kits yet. Create one in /settings (Settings > Kit pack).";
|