@aragon-agent/cli 0.6.47 → 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 +13 -0
- package/README.md +27 -6
- package/dist/agent/coalesce.d.ts +1 -1
- package/dist/agent/controller.d.ts +21 -21
- package/dist/agent/controller.js +13 -13
- 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/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +79 -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 +29 -29
- 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 +6 -6
- 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 +1 -1
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +3 -3
- package/dist/proc/wait.d.ts +1 -1
- package/dist/proc/wait.js +1 -1
- 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/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +1 -1
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +3 -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 +2 -2
- package/dist/tools/job-tools.js +4 -4
- 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 -857
- package/dist/agent/reducer.js +0 -1646
- 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 -1383
- 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 -214
- package/dist/proc/limits.js +0 -221
- package/dist/proc/progress.d.ts +0 -47
- package/dist/proc/progress.js +0 -163
- package/dist/proc/types.d.ts +0 -269
- package/dist/proc/types.js +0 -15
- package/dist/proc/wait-view.d.ts +0 -65
- package/dist/proc/wait-view.js +0 -66
- 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 -51
- 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 -130
- 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 -258
- 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 -169
- 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/entries/WaitCard.d.ts +0 -37
- package/dist/ui/entries/WaitCard.js +0 -92
- 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 -84
- package/dist/ui/interaction-copy.js +0 -41
- 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 -140
- package/dist/ui/layout/status-layout.js +0 -262
- 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 -494
- package/dist/ui/layout/wait-bar.d.ts +0 -34
- package/dist/ui/layout/wait-bar.js +0 -48
- 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 -63
- 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 -130
- 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,183 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* AgentsBoardOverlay — the read-only detail board behind `Ctrl+B` / `/agents`
|
|
4
|
-
* (tui-subagent-panel §4.4 / §6.3).
|
|
5
|
-
*
|
|
6
|
-
* READ-ONLY IS THE SAFETY BOUNDARY (§2.2). Nothing here nudges, kills or re-dispatches
|
|
7
|
-
* a child, and no new `TeamEvent` member was introduced to feed it: a board that can
|
|
8
|
-
* only read can never kill a healthy child, which is the whole reason this is a
|
|
9
|
-
* second surface rather than a control panel.
|
|
10
|
-
*
|
|
11
|
-
* ONE SCREEN, CONTROLLED MODE. `OverlayFrame`'s controlled form already owns paging,
|
|
12
|
-
* the position indicator and the narrow-terminal degradation, and `helpRows` /
|
|
13
|
-
* `projectQueueRows` are the precedent. A second pane would mean a second horizontal
|
|
14
|
-
* budget inside Ink for a benefit the board's 2-up field rows already deliver.
|
|
15
|
-
*
|
|
16
|
-
* IT DOES NOT GO BLANK WHEN THE DISPATCH ENDS (D-9). `state.team` becomes `null` the
|
|
17
|
-
* frame the dispatch settles, and a reader would lose the child they were reading
|
|
18
|
-
* about at the exact moment they wanted the post-mortem. The last live snapshot is
|
|
19
|
-
* therefore FROZEN (a copy, held in a ref) and keeps rendering with a
|
|
20
|
-
* `dispatch ended` row; a board opened AFTER the dispatch has ended builds from the
|
|
21
|
-
* transcript's settled `team` entry instead (`resolveBoardSource`), which is where the
|
|
22
|
-
* `result` section earns its place - the error is the one fact that is never stripped.
|
|
23
|
-
*
|
|
24
|
-
* NO `ink-spinner` HERE (D-13): `spinner-census.test.ts` pins the exact list of files
|
|
25
|
-
* that mount an animated spinner, and this is a reading surface, not an animation.
|
|
26
|
-
* The panel is where motion belongs.
|
|
27
|
-
*
|
|
28
|
-
* AND NO MOTION PROP (v2 implementation note, appended to the spec's
|
|
29
|
-
* "implementation findings"). Because nothing here animates, a motion flag would be a
|
|
30
|
-
* prop with no consumer - and worse, the same census counts how many times `App.tsx`
|
|
31
|
-
* hands the RAW motion flag to a child and asserts the count is EXACTLY ONE, so passing
|
|
32
|
-
* it from the board's branch would break a shipped guard rail for no gain.
|
|
33
|
-
*
|
|
34
|
-
* ASCII ONLY: every symbol comes through `glyphs`.
|
|
35
|
-
*/
|
|
36
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
37
|
-
import { Text, useInput } from 'ink';
|
|
38
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
39
|
-
import { OverlayFrame } from '../layout/OverlayFrame.js';
|
|
40
|
-
import { buildAgentBoardRows, resolveBoardSource, resolveSelection, } from '../layout/agents-board.js';
|
|
41
|
-
/** `OverlayFrame`'s own breakpoint, mirrored so the chrome estimate cannot drift. */
|
|
42
|
-
const FRAME_BORDERLESS_COLS = 48;
|
|
43
|
-
/**
|
|
44
|
-
* Close a frozen live snapshot: the dispatch it described has ended.
|
|
45
|
-
*
|
|
46
|
-
* `durationMs` is derived from the LAST frame the snapshot was live, so the board's
|
|
47
|
-
* summary shows the dispatch's real total instead of a clock that keeps running against
|
|
48
|
-
* a dispatch nobody can see any more. When the snapshot never had a `startedAt` there is
|
|
49
|
-
* nothing to derive and the field stays absent - the LIVE-ONLY rule turns that into an
|
|
50
|
-
* empty clock cell rather than an invented number (§4.4.2).
|
|
51
|
-
*/
|
|
52
|
-
function settleFrozen(frozen) {
|
|
53
|
-
const { source, at } = frozen;
|
|
54
|
-
const total = source.startedAt === undefined ? undefined : Math.max(0, at - source.startedAt);
|
|
55
|
-
return {
|
|
56
|
-
...source,
|
|
57
|
-
active: false,
|
|
58
|
-
...(total !== undefined ? { durationMs: total } : {}),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/** Palette slot -> theme colour. One place, so a tone can never be spelled twice. */
|
|
62
|
-
function toneColor(tone, theme) {
|
|
63
|
-
switch (tone) {
|
|
64
|
-
case 'accent':
|
|
65
|
-
return theme.accent;
|
|
66
|
-
case 'primary':
|
|
67
|
-
return theme.primary;
|
|
68
|
-
case 'muted':
|
|
69
|
-
return theme.muted;
|
|
70
|
-
case 'warn':
|
|
71
|
-
return theme.noticeWarn;
|
|
72
|
-
case 'error':
|
|
73
|
-
return theme.noticeError;
|
|
74
|
-
case 'done':
|
|
75
|
-
return theme.toolDone;
|
|
76
|
-
case 'hint':
|
|
77
|
-
return theme.hintFg;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
export function AgentsBoardOverlay({ team, entries, cols, maxRows, scrollOffset, onScrollClamp, isActive, native, theme, caps, now, }) {
|
|
81
|
-
const glyphs = pickGlyphs(caps);
|
|
82
|
-
const at = now ?? Date.now();
|
|
83
|
-
const [selectedLabel, setSelectedLabel] = useState(null);
|
|
84
|
-
/**
|
|
85
|
-
* THE FROZEN SNAPSHOT (D-9), plus the clock reading it was frozen at.
|
|
86
|
-
*
|
|
87
|
-
* A ref rather than state on purpose: it is written from an effect that must not
|
|
88
|
-
* trigger a render of its own, and reading it during the render that FIRST sees
|
|
89
|
-
* `team === null` is what keeps the board from blinking empty for one frame. The
|
|
90
|
-
* timestamp is kept WITH the snapshot because a frozen live source still says
|
|
91
|
-
* `active: true` - it was live when it was copied - and a board that kept believing
|
|
92
|
-
* that would never show its `dispatch ended` row nor stop its clock.
|
|
93
|
-
*/
|
|
94
|
-
const frozen = useRef(null);
|
|
95
|
-
const live = team === null ? null : resolveBoardSource({ team, entries });
|
|
96
|
-
useEffect(() => {
|
|
97
|
-
if (live !== null)
|
|
98
|
-
frozen.current = { source: live, at };
|
|
99
|
-
}, [live, at]);
|
|
100
|
-
// PRIORITY: live > frozen > the most recent settled entry (§4.4.5). The frozen copy
|
|
101
|
-
// only ever takes over on the frame the live snapshot disappears, and a NEW dispatch
|
|
102
|
-
// overwrites it on its own first frame, so the two paths cannot both be active.
|
|
103
|
-
//
|
|
104
|
-
// A FROZEN SOURCE IS SETTLED, and it is closed here rather than at the moment of
|
|
105
|
-
// copying: `active: false` is what draws `dispatch ended` (task AC-17), and taking
|
|
106
|
-
// `durationMs` from the freeze instant stops the clock at the dispatch's real end
|
|
107
|
-
// instead of letting it count up forever from a snapshot that no longer exists.
|
|
108
|
-
const frozenSource = frozen.current === null ? null : settleFrozen(frozen.current);
|
|
109
|
-
const source = live ?? frozenSource ?? resolveBoardSource({ team: null, entries });
|
|
110
|
-
const selected = source === null ? null : resolveSelection(source.runs, selectedLabel);
|
|
111
|
-
/**
|
|
112
|
-
* UP/DOWN MOVES THE CHILD CURSOR, and a change of child RESETS the scroll.
|
|
113
|
-
*
|
|
114
|
-
* `agents` deliberately does NOT join `App`'s row-scroll set (`help | plan | queue`):
|
|
115
|
-
* the same trade `settings` makes with its field cursor, where Up/Down is worth more
|
|
116
|
-
* as navigation than as a six-row scroll. `PgUp` / `PgDn` / the wheel still page the
|
|
117
|
-
* board through `App`'s `controlled` set, so no reading gesture is lost.
|
|
118
|
-
*/
|
|
119
|
-
const move = useCallback((delta) => {
|
|
120
|
-
const runs = source?.runs ?? [];
|
|
121
|
-
if (runs.length === 0)
|
|
122
|
-
return;
|
|
123
|
-
const current = resolveSelection(runs, selectedLabel);
|
|
124
|
-
const index = current === null ? -1 : runs.findIndex((run) => run.label === current.label);
|
|
125
|
-
const next = runs[Math.min(runs.length - 1, Math.max(0, index + delta))];
|
|
126
|
-
if (next === undefined || next.label === current?.label)
|
|
127
|
-
return;
|
|
128
|
-
setSelectedLabel(next.label);
|
|
129
|
-
// The documented semantic of this port is "the offset should now be 0" (§6.3).
|
|
130
|
-
onScrollClamp(0);
|
|
131
|
-
}, [onScrollClamp, selectedLabel, source]);
|
|
132
|
-
useInput((_input, key) => {
|
|
133
|
-
if (!isActive)
|
|
134
|
-
return;
|
|
135
|
-
if (key.upArrow)
|
|
136
|
-
move(-1);
|
|
137
|
-
else if (key.downArrow)
|
|
138
|
-
move(1);
|
|
139
|
-
}, { isActive });
|
|
140
|
-
// THE FRAME'S CHROME IS NOT FREE (v2 implementation note). `cols` arrives as the
|
|
141
|
-
// overlay's FRAME width (`App`'s `viewCols`), and `OverlayFrame` spends 4 of those
|
|
142
|
-
// columns on its border plus `paddingX={1}` (2 in the narrow rail form, which drops
|
|
143
|
-
// the right border and the right padding). A board laid out against the frame width
|
|
144
|
-
// therefore has its LAST four columns eaten by Ink's truncation - which lands exactly
|
|
145
|
-
// on the right-anchored figures this board exists to align. `helpRows` gets away with
|
|
146
|
-
// it because its rows are prose; these are a table.
|
|
147
|
-
const contentCols = Math.max(1, cols - (cols >= FRAME_BORDERLESS_COLS ? 4 : 2));
|
|
148
|
-
const rows = source === null
|
|
149
|
-
? [{
|
|
150
|
-
key: 'empty',
|
|
151
|
-
kind: 'hint',
|
|
152
|
-
text: 'No subagent dispatch yet.',
|
|
153
|
-
tone: 'muted',
|
|
154
|
-
}]
|
|
155
|
-
: buildAgentBoardRows({
|
|
156
|
-
source,
|
|
157
|
-
cols: contentCols,
|
|
158
|
-
now: at,
|
|
159
|
-
selectedLabel: selected?.label ?? null,
|
|
160
|
-
glyphs,
|
|
161
|
-
native,
|
|
162
|
-
});
|
|
163
|
-
// The `dispatch ended` banner is a ROW rather than a title swap: the title is the
|
|
164
|
-
// frame's own ("Agents"), and replacing it would hide which screen the reader is on.
|
|
165
|
-
const endedRow = source !== null && !source.active
|
|
166
|
-
? [{
|
|
167
|
-
key: 'ended',
|
|
168
|
-
kind: 'hint',
|
|
169
|
-
text: `dispatch ended ${glyphs.midDot} Esc to close`,
|
|
170
|
-
tone: 'warn',
|
|
171
|
-
}]
|
|
172
|
-
: [];
|
|
173
|
-
const elements = [...endedRow, ...rows].map((row) => (_jsx(Text, { wrap: "truncate", color: toneColor(row.tone, theme), ...(row.kind === 'section' ? { bold: true } : {}), children: row.text }, row.key)));
|
|
174
|
-
// THE HINT SHRINKS WITH THE FRAME. `OverlayFrame` prints the hint as one unwrapped
|
|
175
|
-
// row, so a 41-column hint inside a 30-column frame makes the FRAME 41 wide - the
|
|
176
|
-
// board would overflow the terminal and take the overlay's border with it.
|
|
177
|
-
const hint = contentCols >= 60
|
|
178
|
-
? `Esc close ${glyphs.midDot} Up/Down child ${glyphs.midDot} PgUp/PgDn scroll`
|
|
179
|
-
: contentCols >= 30
|
|
180
|
-
? `Esc close ${glyphs.midDot} Up/Down child`
|
|
181
|
-
: 'Esc close';
|
|
182
|
-
return (_jsx(OverlayFrame, { title: "Agents", hint: hint, maxRows: maxRows, cols: cols, rows: elements, scrollOffset: scrollOffset, onScrollClamp: onScrollClamp, theme: theme, caps: caps }));
|
|
183
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Confirm dialog — Yes/No gate for `confirmTools` mode. Resolves the pending
|
|
3
|
-
* tool-execution promise (spec §3.6). `y` = approve; `n`/Enter/Esc = reject
|
|
4
|
-
* (Enter follows the safe default shown by the capital N in the "(y/N)" prompt,
|
|
5
|
-
* since this gates mutating tools like write_file/edit_file/bash).
|
|
6
|
-
*/
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import type { Theme } from '../theme.js';
|
|
9
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
10
|
-
export interface ConfirmState {
|
|
11
|
-
summary: string;
|
|
12
|
-
resolve: (approved: boolean) => void;
|
|
13
|
-
}
|
|
14
|
-
interface ConfirmDialogProps {
|
|
15
|
-
isActive?: boolean;
|
|
16
|
-
state: ConfirmState;
|
|
17
|
-
maxRows: number;
|
|
18
|
-
cols: number;
|
|
19
|
-
theme: Theme;
|
|
20
|
-
caps: TermCapabilities;
|
|
21
|
-
onClose: () => void;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Self-managed (mode B) and deliberately without a position indicator: five
|
|
25
|
-
* rows do not need scrolling, and `state.summary` may itself be multi-line, so
|
|
26
|
-
* element slicing would be meaningless here. The frame is used purely so the
|
|
27
|
-
* title and border match the other three overlays; the existing `useInput` is
|
|
28
|
-
* untouched.
|
|
29
|
-
*/
|
|
30
|
-
export declare function ConfirmDialog({ state, isActive, maxRows, cols, theme, caps, onClose, }: ConfirmDialogProps): React.ReactElement;
|
|
31
|
-
export {};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Confirm dialog — Yes/No gate for `confirmTools` mode. Resolves the pending
|
|
4
|
-
* tool-execution promise (spec §3.6). `y` = approve; `n`/Enter/Esc = reject
|
|
5
|
-
* (Enter follows the safe default shown by the capital N in the "(y/N)" prompt,
|
|
6
|
-
* since this gates mutating tools like write_file/edit_file/bash).
|
|
7
|
-
*/
|
|
8
|
-
import { useState } from 'react';
|
|
9
|
-
import { Text, useInput } from 'ink';
|
|
10
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
11
|
-
import { wrapToRows } from '../layout/wrap-rows.js';
|
|
12
|
-
import { OverlayFrame } from '../layout/OverlayFrame.js';
|
|
13
|
-
/**
|
|
14
|
-
* Self-managed (mode B) and deliberately without a position indicator: five
|
|
15
|
-
* rows do not need scrolling, and `state.summary` may itself be multi-line, so
|
|
16
|
-
* element slicing would be meaningless here. The frame is used purely so the
|
|
17
|
-
* title and border match the other three overlays; the existing `useInput` is
|
|
18
|
-
* untouched.
|
|
19
|
-
*/
|
|
20
|
-
export function ConfirmDialog({ state, isActive = true, maxRows, cols, theme, caps, onClose, }) {
|
|
21
|
-
const glyphs = pickGlyphs(caps);
|
|
22
|
-
const [offset, setOffset] = useState(0);
|
|
23
|
-
useInput((input, key) => {
|
|
24
|
-
if (!isActive)
|
|
25
|
-
return;
|
|
26
|
-
if (key.pageUp || key.upArrow) {
|
|
27
|
-
setOffset(n => Math.max(0, n - 1));
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (key.pageDown || key.downArrow) {
|
|
31
|
-
setOffset(n => n + 1);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (input === 'y' || input === 'Y') {
|
|
35
|
-
state.resolve(true);
|
|
36
|
-
onClose();
|
|
37
|
-
}
|
|
38
|
-
else if (input === 'n' || input === 'N' || key.return || key.escape) {
|
|
39
|
-
state.resolve(false);
|
|
40
|
-
onClose();
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
return (_jsx(OverlayFrame, { title: "Confirm action", hint: "y approve | n/Enter/Esc reject | PgDn", maxRows: maxRows, cols: cols, theme: theme, caps: caps, scrollOffset: offset, onScrollClamp: setOffset, rows: wrapToRows(state.summary, Math.max(1, cols - 4)).map((line, index) => _jsx(Text, { wrap: "truncate", color: theme.assistant, children: line || ' ' }, index)) }));
|
|
44
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GovernanceBoardOverlay - the read-only `/gov board` overview
|
|
3
|
-
* (governance-mode section 10.5).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: every symbol comes through `glyphs`.
|
|
6
|
-
*
|
|
7
|
-
* READ-ONLY IS THE SAFETY BOUNDARY, as for the Agents board: nothing here scores, rules
|
|
8
|
-
* or resolves anything. The only side effect is `e`, which asks the owner to copy the
|
|
9
|
-
* `board.md` path.
|
|
10
|
-
*
|
|
11
|
-
* `OverlayFrame` SELF-MANAGED MODE, with this file owning the window. The tab strip must
|
|
12
|
-
* stay put while the rows scroll, which the frame's controlled mode (it windows EVERY row
|
|
13
|
-
* it is given) cannot do; so the body is "one strip row + a window of rows" and the
|
|
14
|
-
* windowing is `sliceWindow` through `boardWindow`, the arithmetic the frame itself uses.
|
|
15
|
-
* `PgUp` / `PgDn` / the wheel arrive through `App`'s `controlled` overlay list as
|
|
16
|
-
* `scrollOffset`; Up/Down and Left/Right are this component's own keys, the same split the
|
|
17
|
-
* Agents board makes.
|
|
18
|
-
*
|
|
19
|
-
* NO `ink-spinner` and no motion prop (spinner-census): this is a reading surface.
|
|
20
|
-
*/
|
|
21
|
-
import React from 'react';
|
|
22
|
-
import type { Theme } from '../theme.js';
|
|
23
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
24
|
-
import { type BoardTab, type GovernanceBoardData } from '../layout/governance-board.js';
|
|
25
|
-
export interface GovernanceBoardOverlayProps {
|
|
26
|
-
/** The board's data, or null when there is no governed run to show. */
|
|
27
|
-
data: GovernanceBoardData | null;
|
|
28
|
-
/** The overlay's FRAME width (`App`'s `viewCols`). */
|
|
29
|
-
cols: number;
|
|
30
|
-
maxRows: number;
|
|
31
|
-
scrollOffset: number;
|
|
32
|
-
onScrollClamp: (offset: number) => void;
|
|
33
|
-
isActive: boolean;
|
|
34
|
-
theme: Theme;
|
|
35
|
-
caps: TermCapabilities;
|
|
36
|
-
/** `e`: copy the board file path. Absent = the key reports the path as unavailable. */
|
|
37
|
-
onCopyPath?: (path: string) => void;
|
|
38
|
-
onNotice?: (level: 'info' | 'warn', text: string) => void;
|
|
39
|
-
initialTab?: BoardTab;
|
|
40
|
-
}
|
|
41
|
-
export declare function GovernanceBoardOverlay({ data, cols, maxRows, scrollOffset, onScrollClamp, isActive, theme, caps, onCopyPath, onNotice, initialTab, }: GovernanceBoardOverlayProps): React.ReactElement;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* GovernanceBoardOverlay - the read-only `/gov board` overview
|
|
4
|
-
* (governance-mode section 10.5).
|
|
5
|
-
*
|
|
6
|
-
* ASCII ONLY: every symbol comes through `glyphs`.
|
|
7
|
-
*
|
|
8
|
-
* READ-ONLY IS THE SAFETY BOUNDARY, as for the Agents board: nothing here scores, rules
|
|
9
|
-
* or resolves anything. The only side effect is `e`, which asks the owner to copy the
|
|
10
|
-
* `board.md` path.
|
|
11
|
-
*
|
|
12
|
-
* `OverlayFrame` SELF-MANAGED MODE, with this file owning the window. The tab strip must
|
|
13
|
-
* stay put while the rows scroll, which the frame's controlled mode (it windows EVERY row
|
|
14
|
-
* it is given) cannot do; so the body is "one strip row + a window of rows" and the
|
|
15
|
-
* windowing is `sliceWindow` through `boardWindow`, the arithmetic the frame itself uses.
|
|
16
|
-
* `PgUp` / `PgDn` / the wheel arrive through `App`'s `controlled` overlay list as
|
|
17
|
-
* `scrollOffset`; Up/Down and Left/Right are this component's own keys, the same split the
|
|
18
|
-
* Agents board makes.
|
|
19
|
-
*
|
|
20
|
-
* NO `ink-spinner` and no motion prop (spinner-census): this is a reading surface.
|
|
21
|
-
*/
|
|
22
|
-
import { useEffect, useRef, useState } from 'react';
|
|
23
|
-
import { Box, Text, useInput } from 'ink';
|
|
24
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
25
|
-
import { OverlayFrame, overlayBodyRows } from '../layout/OverlayFrame.js';
|
|
26
|
-
import { boardBodyRows, boardHint, boardPosition, boardWindow, buildGovernanceBoardLayout, stepTab, } from '../layout/governance-board.js';
|
|
27
|
-
import { cellWidth } from '../layout/cells.js';
|
|
28
|
-
import { GovernanceLine } from '../GovernanceRun.js';
|
|
29
|
-
import { BOARD_COPIED, BOARD_NO_PATH, BOARD_TITLE } from '../governance-copy.js';
|
|
30
|
-
/** `OverlayFrame`'s own breakpoint, mirrored so the chrome estimate cannot drift. */
|
|
31
|
-
const FRAME_BORDERLESS_COLS = 48;
|
|
32
|
-
export function GovernanceBoardOverlay({ data, cols, maxRows, scrollOffset, onScrollClamp, isActive, theme, caps, onCopyPath, onNotice, initialTab = 'roster', }) {
|
|
33
|
-
const glyphs = pickGlyphs(caps);
|
|
34
|
-
const [tab, setTab] = useState(initialTab);
|
|
35
|
-
// The frame spends 4 of `cols` on its border + padding (2 in the narrow rail form), so a
|
|
36
|
-
// board planned against the frame width would lose its last four columns to truncation.
|
|
37
|
-
const contentCols = Math.max(1, cols - (cols >= FRAME_BORDERLESS_COLS ? 4 : 2));
|
|
38
|
-
const layout = buildGovernanceBoardLayout({ cols: contentCols, tab, data, glyphs });
|
|
39
|
-
const height = boardBodyRows(overlayBodyRows(maxRows, cols));
|
|
40
|
-
const window = boardWindow(layout.lines.length, scrollOffset, height);
|
|
41
|
-
const position = boardPosition(window, glyphs);
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
if (window.clamped !== scrollOffset)
|
|
44
|
-
onScrollClamp(window.clamped);
|
|
45
|
-
}, [window.clamped, scrollOffset, onScrollClamp]);
|
|
46
|
-
// The offset the NEXT key press starts from. A held Down key delivers several presses
|
|
47
|
-
// before React re-renders; stepping from the rendered value would turn three presses
|
|
48
|
-
// into one row of movement.
|
|
49
|
-
const offsetRef = useRef(window.clamped);
|
|
50
|
-
offsetRef.current = window.clamped;
|
|
51
|
-
useInput((input, key) => {
|
|
52
|
-
if (!isActive)
|
|
53
|
-
return;
|
|
54
|
-
if (key.leftArrow || key.rightArrow) {
|
|
55
|
-
setTab((current) => stepTab(current, key.rightArrow ? 1 : -1));
|
|
56
|
-
offsetRef.current = 0;
|
|
57
|
-
onScrollClamp(0);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (key.upArrow || key.downArrow) {
|
|
61
|
-
offsetRef.current = Math.max(0, offsetRef.current + (key.upArrow ? -1 : 1));
|
|
62
|
-
onScrollClamp(offsetRef.current);
|
|
63
|
-
}
|
|
64
|
-
else if (input === 'e' || input === 'E') {
|
|
65
|
-
const path = data?.boardPath ?? null;
|
|
66
|
-
if (path === null || onCopyPath === undefined) {
|
|
67
|
-
onNotice?.('warn', BOARD_NO_PATH);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
onCopyPath(path);
|
|
71
|
-
onNotice?.('info', BOARD_COPIED);
|
|
72
|
-
}
|
|
73
|
-
}, { isActive });
|
|
74
|
-
const visible = layout.lines.slice(window.start, window.start + window.visible);
|
|
75
|
-
return (_jsxs(OverlayFrame, { title: BOARD_TITLE, hint: boardHint(contentCols, glyphs), maxRows: maxRows, cols: cols, theme: theme, caps: caps, children: [_jsxs(Box, { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx(GovernanceLine, { segments: layout.tabStrip.segments, theme: theme }) }), position !== '' && (_jsx(Box, { width: cellWidth(position) + 1, flexShrink: 0, justifyContent: "flex-end", children: _jsx(Text, { color: theme.muted, children: position }) }))] }), visible.map((line) => (_jsx(GovernanceLine, { segments: line.segments, theme: theme }, line.key)))] }));
|
|
76
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings > Governance: eleven arrows-adjustable rows (governance-mode-v1-1 5, closing
|
|
3
|
-
* governance-mode IF-13).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
6
|
-
*
|
|
7
|
-
* THIS IS `TeamFanoutPage` WITH A DIFFERENT TABLE, ON PURPOSE. Every defence that page
|
|
8
|
-
* carries was paid for by a real defect, so each one is inherited verbatim:
|
|
9
|
-
*
|
|
10
|
-
* - THE PAGE OWNS ONE PIECE OF STATE, its cursor. Every value comes from `props.view.rows`,
|
|
11
|
-
* which `SettingsScreen` derives from the reducer; a second copy of the draft here could
|
|
12
|
-
* disagree with the root page about what Ctrl+S is about to save.
|
|
13
|
-
* - `Enter` TOGGLES THE SWITCH ROWS AND DOES NOTHING ON A NUMBER (R-P1-12). A stray Return
|
|
14
|
-
* that silently changed a number is indistinguishable from a bug, and the arrow keys are
|
|
15
|
-
* already the obvious control there.
|
|
16
|
-
* - IT DOES NOT LISTEN FOR Ctrl+S, AND THE FOOTER SAYS SO (R-P1-13). `useRootSettingsInput`
|
|
17
|
-
* gates its `useInput` on `state.page === 'root'`, so a subpage has no save listener at
|
|
18
|
-
* all; a footer promising "Ctrl+S saves here" would be a lie the user acts on.
|
|
19
|
-
*
|
|
20
|
-
* THE RESTART NOTE IS THE ONE THING THIS PAGE ADDS. `enabled` is a REGISTRATION key: the tool
|
|
21
|
-
* array is fixed when the session is built, so flipping it here changes the file and the
|
|
22
|
-
* next launch, not this session. The note sits under that row so the consequence is read
|
|
23
|
-
* where the choice is made.
|
|
24
|
-
*/
|
|
25
|
-
import React from 'react';
|
|
26
|
-
import { type ProfileFrameProps } from './ModelProfilePicker.js';
|
|
27
|
-
import type { GovernanceSettingKey, GovernanceSettingRow } from './governance-settings.js';
|
|
28
|
-
/** What the page may ask the screen to change. */
|
|
29
|
-
export interface GovernanceSettingsAction {
|
|
30
|
-
type: 'governance-step';
|
|
31
|
-
key: GovernanceSettingKey;
|
|
32
|
-
delta: -1 | 1;
|
|
33
|
-
}
|
|
34
|
-
export interface GovernanceSettingsView {
|
|
35
|
-
/** Exactly eleven, in the fixed order the cursor indexes. */
|
|
36
|
-
rows: GovernanceSettingRow[];
|
|
37
|
-
error?: string;
|
|
38
|
-
/** Shown under the first row; `null` when the draft agrees with this session. */
|
|
39
|
-
restartNote: string | null;
|
|
40
|
-
}
|
|
41
|
-
interface GovernanceSettingsPageProps extends ProfileFrameProps {
|
|
42
|
-
view: GovernanceSettingsView;
|
|
43
|
-
dispatch: (action: GovernanceSettingsAction) => void;
|
|
44
|
-
/** Esc: back to the settings root. The draft is NOT discarded here. */
|
|
45
|
-
onBack: () => void;
|
|
46
|
-
}
|
|
47
|
-
export declare function GovernanceSettingsPage(props: GovernanceSettingsPageProps): React.ReactElement;
|
|
48
|
-
export {};
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Settings > Governance: eleven arrows-adjustable rows (governance-mode-v1-1 5, closing
|
|
4
|
-
* governance-mode IF-13).
|
|
5
|
-
*
|
|
6
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
7
|
-
*
|
|
8
|
-
* THIS IS `TeamFanoutPage` WITH A DIFFERENT TABLE, ON PURPOSE. Every defence that page
|
|
9
|
-
* carries was paid for by a real defect, so each one is inherited verbatim:
|
|
10
|
-
*
|
|
11
|
-
* - THE PAGE OWNS ONE PIECE OF STATE, its cursor. Every value comes from `props.view.rows`,
|
|
12
|
-
* which `SettingsScreen` derives from the reducer; a second copy of the draft here could
|
|
13
|
-
* disagree with the root page about what Ctrl+S is about to save.
|
|
14
|
-
* - `Enter` TOGGLES THE SWITCH ROWS AND DOES NOTHING ON A NUMBER (R-P1-12). A stray Return
|
|
15
|
-
* that silently changed a number is indistinguishable from a bug, and the arrow keys are
|
|
16
|
-
* already the obvious control there.
|
|
17
|
-
* - IT DOES NOT LISTEN FOR Ctrl+S, AND THE FOOTER SAYS SO (R-P1-13). `useRootSettingsInput`
|
|
18
|
-
* gates its `useInput` on `state.page === 'root'`, so a subpage has no save listener at
|
|
19
|
-
* all; a footer promising "Ctrl+S saves here" would be a lie the user acts on.
|
|
20
|
-
*
|
|
21
|
-
* THE RESTART NOTE IS THE ONE THING THIS PAGE ADDS. `enabled` is a REGISTRATION key: the tool
|
|
22
|
-
* array is fixed when the session is built, so flipping it here changes the file and the
|
|
23
|
-
* next launch, not this session. The note sits under that row so the consequence is read
|
|
24
|
-
* where the choice is made.
|
|
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
|
-
/** Matches the root page's `padEnd(18)` rows so the value column lines up (measured). */
|
|
32
|
-
const LABEL_PAD = 18;
|
|
33
|
-
/** The rows `Enter` flips, and nothing else (R-P1-12). */
|
|
34
|
-
const TOGGLE_KEYS = new Set([
|
|
35
|
-
'enabled',
|
|
36
|
-
'shiftTab',
|
|
37
|
-
'panel',
|
|
38
|
-
'confirmCharter',
|
|
39
|
-
]);
|
|
40
|
-
export function GovernanceSettingsPage(props) {
|
|
41
|
-
const [index, setIndex] = useState(0);
|
|
42
|
-
const rows = props.view.rows;
|
|
43
|
-
const count = Math.max(1, rows.length);
|
|
44
|
-
const cursor = Math.min(index, count - 1);
|
|
45
|
-
const focused = rows[cursor];
|
|
46
|
-
const note = props.view.restartNote;
|
|
47
|
-
// The note is one extra LINE after row 0, so every later row sits one line lower.
|
|
48
|
-
const offset = useProfileScroll(props, cursor + (note !== null && cursor > 0 ? 1 : 0));
|
|
49
|
-
const nudge = (delta) => {
|
|
50
|
-
if (focused)
|
|
51
|
-
props.dispatch({ type: 'governance-step', key: focused.key, delta });
|
|
52
|
-
};
|
|
53
|
-
const handleKey = (key) => {
|
|
54
|
-
if (key.escape) {
|
|
55
|
-
props.onBack();
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (key.upArrow || (key.tab && key.shift)) {
|
|
59
|
-
setIndex((cursor - 1 + count) % count);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (key.downArrow || key.tab) {
|
|
63
|
-
setIndex((cursor + 1) % count);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (key.leftArrow || key.rightArrow) {
|
|
67
|
-
nudge(key.leftArrow ? -1 : 1);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
// `Enter` toggles the switch rows and does NOTHING on a numeric or choice row.
|
|
71
|
-
if (key.return && focused && TOGGLE_KEYS.has(focused.key))
|
|
72
|
-
nudge(1);
|
|
73
|
-
};
|
|
74
|
-
useInput((_input, key) => {
|
|
75
|
-
if (props.isActive === false)
|
|
76
|
-
return;
|
|
77
|
-
handleKey(key);
|
|
78
|
-
});
|
|
79
|
-
const glyphs = pickGlyphs(props.caps);
|
|
80
|
-
const body = [];
|
|
81
|
-
rows.forEach((row, at) => {
|
|
82
|
-
const line = `${row.label.padEnd(LABEL_PAD)}${row.value}`;
|
|
83
|
-
body.push(_jsx(Text, { wrap: "truncate", color: at === cursor ? props.theme.accent : props.theme.muted, children: `${at === cursor ? glyphs.caret : ' '} ${clipProfileText(line, props.cols - 8)}` }, row.key));
|
|
84
|
-
if (at === 0 && note !== null) {
|
|
85
|
-
body.push(_jsx(Text, { wrap: "truncate", color: props.theme.muted, children: ` ${clipProfileText(note, props.cols - 8)}` }, "restart-note"));
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
// The hint explains the FOCUSED row: the range and the reason are the point of the page.
|
|
89
|
-
if (focused) {
|
|
90
|
-
body.push(_jsx(Text, { wrap: "truncate", color: props.theme.muted, children: clipProfileText(focused.hint, props.cols - 8) }, "hint"));
|
|
91
|
-
}
|
|
92
|
-
return _jsx(OverlayFrame, { ...props, rows: body, scrollOffset: offset, title: props.view.error ?? 'Governance', hint: "Arrows adjust. Esc goes back; Ctrl+S on the main page saves." });
|
|
93
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Help overlay — keybindings and slash-command reference (spec §5.2 / §5.3).
|
|
3
|
-
*
|
|
4
|
-
* Emits a flat array of ONE-ROW elements for `OverlayFrame`'s controlled mode
|
|
5
|
-
* rather than a nested tree. This content is 29 rows tall against a 15-row
|
|
6
|
-
* viewport on a 30-row terminal; before v0.4.0 everything past `/clear` was
|
|
7
|
-
* clipped by `overflow: hidden` with no scrollbar, no indicator, and no way to
|
|
8
|
-
* reach it. Slicing is done by element, so every row must be exactly one row —
|
|
9
|
-
* hence the unconditional `wrap="truncate"`: the first keybinding description
|
|
10
|
-
* alone is 100 characters with its padding and would wrap on any normal
|
|
11
|
-
* terminal, silently desynchronising the position indicator (R-8).
|
|
12
|
-
*/
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import type { Theme } from '../theme.js';
|
|
15
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
16
|
-
/**
|
|
17
|
-
* The key column of every binding row, EXPORTED so the drawer's drift guard can read
|
|
18
|
-
* the real table instead of scraping this file with a regex
|
|
19
|
-
* (tui-shortcut-drawer-and-task-summary D-8 / AC-5).
|
|
20
|
-
*
|
|
21
|
-
* A SOURCE SCRAPE WOULD PASS ON A COMMENT: the regex has no way to tell a key row
|
|
22
|
-
* from a legend row from a line inside a block comment, and the guard's whole job is
|
|
23
|
-
* to notice a row someone forgot.
|
|
24
|
-
*/
|
|
25
|
-
export declare function allKeyRows(times: string): [string, string][];
|
|
26
|
-
/** The slash-command table's key column, for the same guard (commands are not keys). */
|
|
27
|
-
export declare function allCommandRows(): [string, string][];
|
|
28
|
-
/** Build the overlay's rows. Exported so `app.test.tsx` can count them. */
|
|
29
|
-
export declare function helpRows(theme: Theme, caps: TermCapabilities, native?: boolean): React.ReactElement[];
|