@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,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[];
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Text } from 'ink';
|
|
3
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
4
|
-
const KEY_PAD = 24;
|
|
5
|
-
/**
|
|
6
|
-
* Rows that only make sense when the APPLICATION scrolls and selects. In native
|
|
7
|
-
* scroll mode (tui-native-terminal-scroll §4.7) the terminal does both, so they are
|
|
8
|
-
* dropped and one honest row replaces them.
|
|
9
|
-
*/
|
|
10
|
-
const APP_SCROLL_ROWS = new Set([
|
|
11
|
-
'Shift+Up / Shift+Down', 'Wheel', 'Shift+Wheel', 'Drag right edge', '^N',
|
|
12
|
-
'Drag text (left button)', 'Ctrl+C (with a selection)',
|
|
13
|
-
]);
|
|
14
|
-
function keyRows(times, native = false) {
|
|
15
|
-
const all = allKeyRows(times);
|
|
16
|
-
if (!native)
|
|
17
|
-
return all;
|
|
18
|
-
return all
|
|
19
|
-
.filter(([key]) => !APP_SCROLL_ROWS.has(key))
|
|
20
|
-
.map(([key, description]) => key === 'PgUp / PgDn' ? [key, 'Page through an open overlay'] : [key, description])
|
|
21
|
-
.concat([['Scroll', 'Use your terminal (wheel, Shift+PgUp, scrollbar, search)']]);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* The key column of every binding row, EXPORTED so the drawer's drift guard can read
|
|
25
|
-
* the real table instead of scraping this file with a regex
|
|
26
|
-
* (tui-shortcut-drawer-and-task-summary D-8 / AC-5).
|
|
27
|
-
*
|
|
28
|
-
* A SOURCE SCRAPE WOULD PASS ON A COMMENT: the regex has no way to tell a key row
|
|
29
|
-
* from a legend row from a line inside a block comment, and the guard's whole job is
|
|
30
|
-
* to notice a row someone forgot.
|
|
31
|
-
*/
|
|
32
|
-
export function allKeyRows(times) {
|
|
33
|
-
return [
|
|
34
|
-
['Enter', 'Submit (idle) / queue steering (running); re-pins to the newest output'],
|
|
35
|
-
['Alt+Enter / Shift+Enter', 'Newline when supported; the host may intercept either binding'],
|
|
36
|
-
['Ctrl+J', 'Newline fallback; /terminal-setup explains Shift+Enter binding'],
|
|
37
|
-
['Esc', 'Close menu / overlay'],
|
|
38
|
-
['Esc twice', 'Interrupt run (within 1.5s)'],
|
|
39
|
-
['Esc again', 'Force-stop after requesting interruption'],
|
|
40
|
-
// BOTH KEYS ARE LISTED HERE, and this row is why (shift-tab-mode-toggle-
|
|
41
|
-
// still-dead-on-windows, review R-7). The hint row above the composer is the
|
|
42
|
-
// other place the fallback is named, and it has two off-switches - a short
|
|
43
|
-
// terminal (`showHint`) and `hints: false`. A key that only exists behind
|
|
44
|
-
// either of them is a key the affected user never learns about, which is the
|
|
45
|
-
// one-shot notice's failure repeated with a different switch.
|
|
46
|
-
// BOTH KEYS ARE SPELLED OUT, and `Ctrl+N` is written in FULL: `^N` is this
|
|
47
|
-
// product's word for transcript line offset (the header chip and the row below),
|
|
48
|
-
// so abbreviating the mode fallback would put two meanings of `^` on one screen
|
|
49
|
-
// (quick-prompt-library D-1 / P1-7).
|
|
50
|
-
['Shift+Tab / Ctrl+N', 'Cycle BUILD / PLAN / GOVERN / PLAN+GOVERN (/plan and /gov pick one)'],
|
|
51
|
-
['Ctrl+P', 'Quick prompt library: manage, create, reorder, pick'],
|
|
52
|
-
// The ladder clears a draft first (ctrl-c-clear-draft-exit):
|
|
53
|
-
// with a draft x2 clears the input and x3 exits; an empty input
|
|
54
|
-
// keeps the previous x2 exit.
|
|
55
|
-
['Ctrl+C', `Draft: ${times}2 clear input, ${times}3 exit. Empty: ${times}2 exit`],
|
|
56
|
-
// Ctrl+L IS THE BRANCH KEY NOW (tui-branch-terminal-shortcut D-1) and the
|
|
57
|
-
// redraw moved to Ctrl+R. Both rows are listed, because the migration is the
|
|
58
|
-
// one thing an existing user will press by muscle memory and be surprised by.
|
|
59
|
-
['Ctrl+L', 'Open a new terminal on this session (the branch gets its own id)'],
|
|
60
|
-
['Ctrl+R', 'Redraw the frame'],
|
|
61
|
-
['Ctrl+T', 'Show/hide thinking (off by default)'],
|
|
62
|
-
['Ctrl+I', 'Build the project index (bundled skill; asks first; needs keyboard enhancement)'],
|
|
63
|
-
// THE KIT KEYS (agent-model-kits D-11 / D-15): `Ctrl+K` moved to the picker
|
|
64
|
-
// and `killToEnd` moved to `Alt+K`. BOTH rows are listed, because an existing
|
|
65
|
-
// user will press the old key by muscle memory and needs to find out where it
|
|
66
|
-
// went - and because `^K` is only advertised in the expanded header row.
|
|
67
|
-
['Ctrl+K', 'Agent kits: pick a preset for this session (see /kit)'],
|
|
68
|
-
['Alt+K', 'Delete from the cursor to the end of the line (was Ctrl+K)'],
|
|
69
|
-
// Ctrl+G OPENED THE STATUS DETAIL ROW UNTIL THE DRAWER TOOK THE KEY
|
|
70
|
-
// (tui-shortcut-drawer-and-task-summary D-6). The detail row did not disappear,
|
|
71
|
-
// it moved to `d` inside this panel, and saying so here is the only place a
|
|
72
|
-
// user's muscle memory can find out.
|
|
73
|
-
['Ctrl+G', 'Keyboard drawer: every shortcut, with keywords (d = status details)'],
|
|
74
|
-
// Ctrl+O WAS MISSING FROM THIS TABLE ENTIRELY while it worked in the app, which
|
|
75
|
-
// is exactly the gap the drawer's reverse drift guard exists to force closed: a
|
|
76
|
-
// key that only exists in the code is a key only its author knows.
|
|
77
|
-
['Ctrl+O', 'Expand the newest tool output (native mode reprints it as a block)'],
|
|
78
|
-
// The board's key is listed HERE and in the team table below: the roster shows
|
|
79
|
-
// `ctrl+b` only on a terminal wide enough for the hint cell, and a key a user can
|
|
80
|
-
// only learn from a wide terminal is a key the rest never discover (AC-18).
|
|
81
|
-
['Ctrl+B', 'Agents board: every subagent, its facts and its timeline (read-only)'],
|
|
82
|
-
['PgUp / PgDn', 'Scroll a page (transcript, or this overlay)'],
|
|
83
|
-
['Shift+Up / Shift+Down', 'Scroll the transcript a line (full-screen mode)'],
|
|
84
|
-
['Wheel', 'Scroll the transcript (or the open overlay)'],
|
|
85
|
-
['Shift+Wheel', 'Scroll the transcript a page'],
|
|
86
|
-
// Drag-select is the one affordance here a user cannot discover by pressing
|
|
87
|
-
// a key, so it has to be named somewhere they can look it up. The one-shot
|
|
88
|
-
// startup notice is the other place, and it scrolls away.
|
|
89
|
-
['Drag right edge', 'Scroll messages; input stays fixed; type to return to newest output'],
|
|
90
|
-
['Bottom rows', 'Fixed input, one status row; Ctrl+G adds one detail row'],
|
|
91
|
-
['C / Th / t/s', 'Context percent / thinking level / run-average output tokens per second'],
|
|
92
|
-
['B / P / P>B', 'Status-row mode word: BUILD / PLAN; CUR>PENDING = switch deferred to run end'],
|
|
93
|
-
['O/N/L/M/H/X', 'Thinking: off/minimal/low/medium/high/xhigh'],
|
|
94
|
-
['~ / ? / --', 'Estimated context / unknown context / unavailable output speed'],
|
|
95
|
-
['Output speed', 'Main Agent reported output tokens / total run time, including tools and waits'],
|
|
96
|
-
['Copy / Sent / E / F', 'Copying / unconfirmed copy sent / copy error / Esc force-stop'],
|
|
97
|
-
['^N', 'Transcript line offset from the bottom, not a new-message count'],
|
|
98
|
-
['Drag text (left button)', 'Select text on screen; the highlight waits'],
|
|
99
|
-
['Ctrl+C (with a selection)', 'Copy the pending selection - does not arm exit'],
|
|
100
|
-
['Native terminal selection', 'Copy-on-select is controlled by your terminal settings'],
|
|
101
|
-
['Queue / /queue', 'Pending receipt; /queue opens full text, PgUp/PgDn pages, Esc closes'],
|
|
102
|
-
['/bg / /todo status', 'Show full service and TODO counts when status fields are hidden'],
|
|
103
|
-
['Queue paused', 'Unreceived messages persist after interruption until accepted or cancelled'],
|
|
104
|
-
['Up / Down', 'Prompt history (empty input)'],
|
|
105
|
-
// Pasting is the one affordance here with no key of its own, so the only
|
|
106
|
-
// place a user can learn what happened to their 218 lines is this row.
|
|
107
|
-
['Paste', 'Inserted as-is up to 6 lines; larger becomes [Pasted text #N] (--no-paste)'],
|
|
108
|
-
];
|
|
109
|
-
}
|
|
110
|
-
const COMMANDS = [
|
|
111
|
-
['/help', 'Show this help'],
|
|
112
|
-
// THE DRAWER'S COMMAND-SIDE ENTRY (tui-shortcut-drawer-and-task-summary §4.7).
|
|
113
|
-
// Listed here as well as behind Ctrl+G, because a key is unreachable in a script
|
|
114
|
-
// and `/keys` is how a paste or a screen reader gets to the same list.
|
|
115
|
-
['/keys [query]', 'List every shortcut in the drawer; a query pre-filters it'],
|
|
116
|
-
['/task', 'Show the header task summary: what it says, where it came from'],
|
|
117
|
-
['/task refresh', 'Regenerate the header task summary from the last prompt'],
|
|
118
|
-
['/model', 'Open the model picker'],
|
|
119
|
-
['/settings', 'Open the settings screen'],
|
|
120
|
-
['/plan [on|off|status]', 'Toggle plan mode (leaves GOVERN)'],
|
|
121
|
-
['/gov [on|plan|off|board|status]', 'Governed team: enter, leave, the board, the run status'],
|
|
122
|
-
['/theme <name>', 'auto | warm | cool | light'],
|
|
123
|
-
['/thinking <level>', 'Set thinking level'],
|
|
124
|
-
['/max-tokens [n|auto]', 'Output token cap; no argument reports the effective one'],
|
|
125
|
-
['/team [on|off|<brief>]', 'Force team mode and start now: /team <brief> fans out'],
|
|
126
|
-
['/fast [on|off|model|review]', 'Fast model tier: status, switch, model, review cadence'],
|
|
127
|
-
['/kit [list|use <name>]', 'Agent kits: what is in effect, list them, use one for this session'],
|
|
128
|
-
[
|
|
129
|
-
'/todo [on|off|panel|follow|clear|continue]',
|
|
130
|
-
'Todo planning: status, switches, the rail, follow-through',
|
|
131
|
-
],
|
|
132
|
-
['/tools', 'List active tools'],
|
|
133
|
-
// `/clear` IS NOT "CLEAR THE SCREEN" ANY MORE (clear-command-context-reset D-1).
|
|
134
|
-
// Two rows, not one, because the intentions differ: `/clear` starts a NEW
|
|
135
|
-
// CONVERSATION (interrupt the run, archive the old one, drop the history), while
|
|
136
|
-
// `/clear screen` only wipes what is on screen. A user who wants the second has
|
|
137
|
-
// to be able to see that it exists before reaching for the first.
|
|
138
|
-
['/clear', 'Start a new conversation: archive, then clear context and transcript'],
|
|
139
|
-
['/clear screen', 'Clear the visible transcript only; keeps the conversation'],
|
|
140
|
-
['/reset', 'Alias of /clear'],
|
|
141
|
-
['/cwd [dir]', 'Show or change the tool working directory'],
|
|
142
|
-
['/save [file]', 'Export the session to JSON (a file you keep)'],
|
|
143
|
-
['/resume [file]', 'Load a saved session; this session moves to a new id'],
|
|
144
|
-
['/session [copy|pin]', 'Show this session id and file; copy the resume command; pin it'],
|
|
145
|
-
['/branch', 'Same as Ctrl+L: branch into a new terminal'],
|
|
146
|
-
['/copy', 'Copy last answer; native completion confirmed, OSC 52 request unconfirmed'],
|
|
147
|
-
['/queue', 'Read every pending message in full; no replay or queue mutation'],
|
|
148
|
-
['/prompts', 'Quick prompt library: pick one and fill the draft (Enter fills)'],
|
|
149
|
-
['/agents', 'Open the subagent board: every child, its facts and its timeline'],
|
|
150
|
-
['/prompts list | add | edit | rm', 'Manage the library; `add` opens the editor'],
|
|
151
|
-
['/prompts move <n> <to> | sort',
|
|
152
|
-
'Reorder by hand, or rewrite the order by name/recent/favorite'],
|
|
153
|
-
['/mouse [on|off]', 'Release the mouse to your terminal, or take it back'],
|
|
154
|
-
['/terminal-setup', 'Show newline key bindings without changing terminal settings'],
|
|
155
|
-
['/exit', 'Exit'],
|
|
156
|
-
];
|
|
157
|
-
const SKILL_ROWS = [
|
|
158
|
-
['/skills', 'List installed skills'],
|
|
159
|
-
['/skills info <name>', 'Show a skill\'s source, files and status'],
|
|
160
|
-
['/skills install <src>', 'Install from a dir, git repo, or https URL'],
|
|
161
|
-
['/skills enable|disable', 'Turn a skill on or off'],
|
|
162
|
-
['/skills policy [mode]', 'Tool ceiling from allowed-tools: off | warn | enforce'],
|
|
163
|
-
['/skills unload', 'Drop the tool ceiling (does not reclaim context)'],
|
|
164
|
-
['/skills usage [--reset]', 'Show or delete the local skill use counters'],
|
|
165
|
-
['/<skill-name> [args]', 'Run a skill directly ($ARGUMENTS / $1..$9)'],
|
|
166
|
-
['skill / skill_install', 'Tools the model uses to load and install skills'],
|
|
167
|
-
];
|
|
168
|
-
const PLAN_ROWS = [
|
|
169
|
-
['Shift+Tab / /plan', 'Switch BUILD (do it now) and PLAN (research first); Shift+Tab also cycles GOVERN'],
|
|
170
|
-
// A ROW OF ITS OWN, not a third name on the line above: the reader who needs
|
|
171
|
-
// this one is the reader whose `Shift+Tab` does nothing, and what they need is
|
|
172
|
-
// the reason, not another synonym. Listing the key in both places instead just
|
|
173
|
-
// says it twice and explains it nowhere.
|
|
174
|
-
['Ctrl+N', 'The same toggle, for Windows consoles that deliver Shift+Tab as a plain Tab'],
|
|
175
|
-
['In PLAN mode', 'write_file, edit_file, bash, skill_install and skill_create are refused'],
|
|
176
|
-
['bash', 'Refused in full, including git status - use read_file / glob / grep'],
|
|
177
|
-
['ask_user', 'The agent asks 1-5 multiple-choice questions; Enter takes the recommendation'],
|
|
178
|
-
['submit_plan', 'The agent submits a plan: a approve, r revise, Esc dismiss'],
|
|
179
|
-
['--plan / --no-plan', 'Start a session in a given mode (also ARAGON_PLAN=1)'],
|
|
180
|
-
];
|
|
181
|
-
const TEAM_ROWS = [
|
|
182
|
-
['task', 'The tool the agent uses to run 2-5 subagents in parallel'],
|
|
183
|
-
['/team <brief>', 'Force it: arms forced mode and starts that work as a turn'],
|
|
184
|
-
['/team on | off', 'Arm it without starting, or leave it; the capability is untouched'],
|
|
185
|
-
['/team', 'Report the forced state, capacity, the model, and where to change it'],
|
|
186
|
-
['-n <n> / --parts a,b', 'Fix the fan-out, or name the split (narrowing is disclosed)'],
|
|
187
|
-
['--read-only', 'Every child refuses writes and shell, for research-only fan-outs'],
|
|
188
|
-
['Team 4 (T4)', 'The status-bar chip - only while the session is armed'],
|
|
189
|
-
['--team / --no-team', 'Start a session with team mode on or off (also ARAGON_TEAM=0)'],
|
|
190
|
-
['team_send / team_wait', 'How subagents message each other; 6 each, one every 15s'],
|
|
191
|
-
['Ctrl+B / /agents', 'The board: every child, its full facts, its 24-event timeline'],
|
|
192
|
-
['Settings > Team', 'Team mode, width (1-10, 8 by default), concurrency, supervisor'],
|
|
193
|
-
];
|
|
194
|
-
const FAST_ROWS = [
|
|
195
|
-
['/fast', 'Status: on/off, the model, the cadence, and this session\'s totals'],
|
|
196
|
-
['/fast on | off', 'Switch the tier for this session (and save it)'],
|
|
197
|
-
['/fast model <id>', 'Set the fast model; accepts provider:model'],
|
|
198
|
-
['/fast same', 'Run the fast tier on the main model'],
|
|
199
|
-
['/fast review <n> | off', 'Turns between automatic reviews, or turn them off'],
|
|
200
|
-
['--fast / --no-fast', 'Start a session with the tier on or off (also ARAGON_FAST=1)'],
|
|
201
|
-
['<fast_review>', 'An automated second opinion from the fast model - advice, not the user'],
|
|
202
|
-
];
|
|
203
|
-
/** The slash-command table's key column, for the same guard (commands are not keys). */
|
|
204
|
-
export function allCommandRows() {
|
|
205
|
-
return COMMANDS;
|
|
206
|
-
}
|
|
207
|
-
/** Build the overlay's rows. Exported so `app.test.tsx` can count them. */
|
|
208
|
-
export function helpRows(theme, caps, native = false) {
|
|
209
|
-
const glyphs = pickGlyphs(caps);
|
|
210
|
-
const rows = [];
|
|
211
|
-
const section = (title) => (_jsx(Text, { wrap: "truncate", color: theme.accent, bold: true, children: title }, `s-${title}`));
|
|
212
|
-
const pair = (k, d) => (_jsxs(Text, { wrap: "truncate", children: [_jsx(Text, { color: theme.primary, children: k.padEnd(KEY_PAD) }), _jsx(Text, { color: theme.muted, children: d })] }, `r-${k}`));
|
|
213
|
-
rows.push(section('Keybindings'));
|
|
214
|
-
for (const [k, d] of keyRows(glyphs.times, native))
|
|
215
|
-
rows.push(pair(k, d));
|
|
216
|
-
rows.push(section('Slash commands'));
|
|
217
|
-
for (const [c, d] of COMMANDS)
|
|
218
|
-
rows.push(pair(c, d));
|
|
219
|
-
rows.push(section('Plan mode'));
|
|
220
|
-
for (const [c, d] of PLAN_ROWS)
|
|
221
|
-
rows.push(pair(c, d));
|
|
222
|
-
rows.push(section('Team subagents'));
|
|
223
|
-
for (const [c, d] of TEAM_ROWS)
|
|
224
|
-
rows.push(pair(c, d));
|
|
225
|
-
rows.push(section('Fast model tier'));
|
|
226
|
-
for (const [c, d] of FAST_ROWS)
|
|
227
|
-
rows.push(pair(c, d));
|
|
228
|
-
rows.push(section('Skills'));
|
|
229
|
-
for (const [c, d] of SKILL_ROWS)
|
|
230
|
-
rows.push(pair(c, d));
|
|
231
|
-
return rows;
|
|
232
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings > Kit pack > editor (agent-model-kits §4.5).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
5
|
-
*
|
|
6
|
-
* FOUR ROWS AND TWO ACTIONS, and every slot is an explicit decision (D-8): the
|
|
7
|
-
* Main slot is required, the Fast slot is a two-state choice (`off` is a
|
|
8
|
-
* decision, not an omission), and the Subagent slot reuses the existing
|
|
9
|
-
* `Same as main` / `Fast tier model` vocabulary so the summary sentence the root
|
|
10
|
-
* page already prints (`Fast tier (off - falls back to main)`) needs no second
|
|
11
|
-
* wording. Nothing is written until the ROOT page's Save.
|
|
12
|
-
*/
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import type { ModelProfileState } from './model-profile-state.js';
|
|
15
|
-
import type { KitAction, KitDraft } from './kit-settings-state.js';
|
|
16
|
-
import { type ProfileFrameProps } from './ModelProfilePicker.js';
|
|
17
|
-
interface KitEditorProps extends ProfileFrameProps {
|
|
18
|
-
draft: KitDraft;
|
|
19
|
-
state: ModelProfileState;
|
|
20
|
-
dispatch: React.Dispatch<KitAction>;
|
|
21
|
-
}
|
|
22
|
-
export declare function KitEditor(props: KitEditorProps): React.ReactElement;
|
|
23
|
-
export {};
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Settings > Kit pack > editor (agent-model-kits §4.5).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
6
|
-
*
|
|
7
|
-
* FOUR ROWS AND TWO ACTIONS, and every slot is an explicit decision (D-8): the
|
|
8
|
-
* Main slot is required, the Fast slot is a two-state choice (`off` is a
|
|
9
|
-
* decision, not an omission), and the Subagent slot reuses the existing
|
|
10
|
-
* `Same as main` / `Fast tier model` vocabulary so the summary sentence the root
|
|
11
|
-
* page already prints (`Fast tier (off - falls back to main)`) needs no second
|
|
12
|
-
* wording. Nothing is written until the ROOT page's Save.
|
|
13
|
-
*/
|
|
14
|
-
import { useState } from 'react';
|
|
15
|
-
import { Text, useInput } from 'ink';
|
|
16
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
17
|
-
import { OverlayFrame } from '../layout/OverlayFrame.js';
|
|
18
|
-
import { stripPasteFrames } from '../paste-frames.js';
|
|
19
|
-
import { stripEnterFrames } from '../enter-frames.js';
|
|
20
|
-
import { clipProfileText, useProfileScroll } from './ModelProfilePicker.js';
|
|
21
|
-
const ROWS = ['name', 'main', 'subagent', 'fast', 'save', 'cancel'];
|
|
22
|
-
function slotLabel(draft, state) {
|
|
23
|
-
const entries = state.draft.profiles?.entries ?? [];
|
|
24
|
-
const name = (id) => {
|
|
25
|
-
const entry = id ? entries.find((item) => item.id === id) : undefined;
|
|
26
|
-
// `Profile missing` rather than a blank: a kit can be pointed at a profile
|
|
27
|
-
// that was removed on disk, and the editor is where that gets fixed.
|
|
28
|
-
return entry ? `${entry.provider}:${entry.model} (${entry.name})` : id ? 'Profile missing'
|
|
29
|
-
: '(not set)';
|
|
30
|
-
};
|
|
31
|
-
const subagent = draft.subagent.model === 'main' ? 'Same as main'
|
|
32
|
-
: draft.subagent.model === 'fast' ? 'Fast tier model'
|
|
33
|
-
: name(draft.subagent.modelProfileId);
|
|
34
|
-
return { main: name(draft.mainProfileId), fast: name(draft.fastProfileId),
|
|
35
|
-
subagent };
|
|
36
|
-
}
|
|
37
|
-
export function KitEditor(props) {
|
|
38
|
-
const glyphs = pickGlyphs(props.caps);
|
|
39
|
-
const { draft, dispatch } = props;
|
|
40
|
-
const [index, setIndex] = useState(0);
|
|
41
|
-
const row = ROWS[index];
|
|
42
|
-
const offset = useProfileScroll(props, index);
|
|
43
|
-
const labels = slotLabel(draft, props.state);
|
|
44
|
-
const filled = [draft.mainProfileId, draft.fastProfileId,
|
|
45
|
-
draft.subagent.model !== 'profile' || draft.subagent.modelProfileId]
|
|
46
|
-
.filter(Boolean).length;
|
|
47
|
-
function activate(target) {
|
|
48
|
-
if (target === 'main')
|
|
49
|
-
dispatch({ type: 'kit-slot', slot: 'main' });
|
|
50
|
-
if (target === 'fast')
|
|
51
|
-
dispatch({ type: 'kit-slot', slot: 'fast' });
|
|
52
|
-
if (target === 'subagent')
|
|
53
|
-
dispatch({ type: 'kit-slot', slot: 'subagent' });
|
|
54
|
-
if (target === 'save')
|
|
55
|
-
dispatch({ type: 'kit-save' });
|
|
56
|
-
if (target === 'cancel')
|
|
57
|
-
dispatch({ type: 'kit-cancel' });
|
|
58
|
-
}
|
|
59
|
-
useInput((input, key) => {
|
|
60
|
-
if (props.isActive === false)
|
|
61
|
-
return;
|
|
62
|
-
if (key.escape) {
|
|
63
|
-
dispatch({ type: 'kit-cancel' });
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (key.upArrow || (key.tab && key.shift)) {
|
|
67
|
-
setIndex((index - 1 + ROWS.length) % ROWS.length);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (key.downArrow || key.tab) {
|
|
71
|
-
setIndex((index + 1) % ROWS.length);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (key.return) {
|
|
75
|
-
activate(row);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (row !== 'name' || key.ctrl || key.meta)
|
|
79
|
-
return;
|
|
80
|
-
// THE NAME IS THE ONLY TEXT FIELD, and control characters are stripped by the
|
|
81
|
-
// reducer rather than refused here - a pasted name with a newline should
|
|
82
|
-
// become a name, not an error the user cannot see.
|
|
83
|
-
const text = stripPasteFrames(stripEnterFrames(input));
|
|
84
|
-
if (key.backspace || key.delete) {
|
|
85
|
-
dispatch({ type: 'kit-name', value: [...draft.name].slice(0, -1).join('') });
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
if (text)
|
|
89
|
-
dispatch({ type: 'kit-name', value: `${draft.name}${text}` });
|
|
90
|
-
});
|
|
91
|
-
const lines = [`Name ${draft.name}`,
|
|
92
|
-
`Main profile ${labels.main}`,
|
|
93
|
-
`Subagent ${labels.subagent}`,
|
|
94
|
-
`Fast tier ${draft.fastProfileId ? labels.fast : 'off (this kit turns it off)'}`,
|
|
95
|
-
`Save (${filled} slots set)`, 'Cancel'];
|
|
96
|
-
const rows = lines.map((line, at) => (_jsx(Text, { wrap: "truncate", color: at === index ? props.theme.accent : props.theme.muted, children: `${at === index ? glyphs.caret : ' '} ${clipProfileText(line, props.cols - 8)}` }, at)));
|
|
97
|
-
if (draft.error) {
|
|
98
|
-
rows.push(_jsx(Text, { wrap: "truncate", color: props.theme.noticeError, children: clipProfileText(draft.error, props.cols - 8) }, "error"));
|
|
99
|
-
}
|
|
100
|
-
return _jsx(OverlayFrame, { ...props, title: draft.id ? 'Edit kit' : 'New kit', hint: "Enter choose | type to rename | Esc back", rows: rows, scrollOffset: offset });
|
|
101
|
-
}
|