@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,97 +0,0 @@
|
|
|
1
|
-
import stringWidth from 'string-width';
|
|
2
|
-
import { interactionCopy as copy } from './interaction-copy.js';
|
|
3
|
-
import { cleanStatusText } from './layout/status-layout.js';
|
|
4
|
-
import { graphemes } from './editor-navigation.js';
|
|
5
|
-
export function escapeClause(input) {
|
|
6
|
-
if (input.overlay)
|
|
7
|
-
return copy.close;
|
|
8
|
-
if (input.completion && input.completion !== 'none' || input.escapeAction === 'menu')
|
|
9
|
-
return copy.closeCompletion;
|
|
10
|
-
if (input.escapeAction === 'force-stop' || input.interruptPhase === 'stopping')
|
|
11
|
-
return copy.forceStop;
|
|
12
|
-
if (input.interactionPhase === 'starting')
|
|
13
|
-
return input.interruptPhase === 'armed' ? copy.cancelStartAgain : copy.cancelStart;
|
|
14
|
-
if (input.interactionPhase !== 'running')
|
|
15
|
-
return '';
|
|
16
|
-
if (input.governed) {
|
|
17
|
-
return input.interruptPhase === 'armed' ? copy.governInterruptAgain : copy.governInterrupt;
|
|
18
|
-
}
|
|
19
|
-
return input.interruptPhase === 'armed' ? copy.interruptAgain : copy.interrupt;
|
|
20
|
-
}
|
|
21
|
-
export function clipStatusText(text, cells) {
|
|
22
|
-
let clipped = '';
|
|
23
|
-
for (const part of graphemes(cleanStatusText(text))) {
|
|
24
|
-
if (stringWidth(clipped + part.text) > cells)
|
|
25
|
-
break;
|
|
26
|
-
clipped += part.text;
|
|
27
|
-
}
|
|
28
|
-
return clipped;
|
|
29
|
-
}
|
|
30
|
-
/** Ordered actions before width allocation. No interpretation of translated feedback text. */
|
|
31
|
-
export function actionCandidates(input) {
|
|
32
|
-
if (input.overlay) {
|
|
33
|
-
if (input.overlay === 'confirm')
|
|
34
|
-
return [copy.approveTool, copy.rejectTool];
|
|
35
|
-
// THE DRAWER SELECTS, IT DOES NOT SCROLL (tui-shortcut-drawer-and-task-summary
|
|
36
|
-
// §5). It is a list with a cursor, so the generic `copy.scroll` fallback would
|
|
37
|
-
// describe the wrong interaction - and the drawer's own footer already names
|
|
38
|
-
// every key, so one clause is the whole line.
|
|
39
|
-
if (input.overlay === 'shortcuts')
|
|
40
|
-
return [copy.select];
|
|
41
|
-
const selects = ['question', 'model', 'session', 'settings'].includes(input.overlay);
|
|
42
|
-
return [selects ? copy.select : copy.scroll,
|
|
43
|
-
...(selects ? [input.overlay === 'settings' ? copy.saveSettings : copy.confirm] : [])];
|
|
44
|
-
}
|
|
45
|
-
const actions = [];
|
|
46
|
-
if (input.governed && input.govPausePending && input.interactionPhase === 'running') {
|
|
47
|
-
actions.push(copy.governPausePending);
|
|
48
|
-
}
|
|
49
|
-
if (input.selectionPending)
|
|
50
|
-
actions.push(copy.copy);
|
|
51
|
-
else if (input.services)
|
|
52
|
-
actions.push(copy.stopServicesShort);
|
|
53
|
-
if (input.completion && input.completion !== 'none') {
|
|
54
|
-
actions.push(...(input.completion === 'slash' ? [copy.executeCommand] : []), copy.complete, copy.select);
|
|
55
|
-
return actions;
|
|
56
|
-
}
|
|
57
|
-
// THE GOVERNED IDLE SENTENCE REPLACES `Enter send` / `newline` rather than joining them:
|
|
58
|
-
// at 120 columns it is 53 of the row's 119 cells, and the clause that would be crowded
|
|
59
|
-
// out is `Shift+Tab <next>`, the one the posture cycle most needs taught.
|
|
60
|
-
if (input.hintsEnabled !== false && input.governed && input.interactionPhase === 'idle') {
|
|
61
|
-
actions.push(copy.governIdle);
|
|
62
|
-
}
|
|
63
|
-
else if (input.hintsEnabled !== false && input.interactionPhase !== 'starting')
|
|
64
|
-
actions.push(input.interactionPhase === 'running' ? copy.enqueue : copy.send, input.cols < 72 ? copy.newline : copy.newlineLong);
|
|
65
|
-
return actions;
|
|
66
|
-
}
|
|
67
|
-
export function buildActionClauses(input) {
|
|
68
|
-
const budget = Math.max(0, Math.floor(input.cols) - 1);
|
|
69
|
-
const escape = escapeClause(input);
|
|
70
|
-
const result = [];
|
|
71
|
-
const feedback = input.feedback?.text || input.exitHint || (input.copyCleanupPending ? copy.copyCleanup
|
|
72
|
-
: input.copyInFlight ? copy.copying : input.toast) || '';
|
|
73
|
-
const reserve = escape ? stringWidth(escape) + 3 : 0;
|
|
74
|
-
if (feedback) {
|
|
75
|
-
const text = clipStatusText(feedback, Math.max(0, budget - reserve));
|
|
76
|
-
if (text)
|
|
77
|
-
result.push(text);
|
|
78
|
-
}
|
|
79
|
-
const add = (text, remaining = budget) => {
|
|
80
|
-
if (stringWidth([...result, text].join(' | ')) <= remaining)
|
|
81
|
-
result.push(cleanStatusText(text));
|
|
82
|
-
};
|
|
83
|
-
if (!feedback) {
|
|
84
|
-
for (const action of actionCandidates(input))
|
|
85
|
-
add(action, budget - reserve);
|
|
86
|
-
}
|
|
87
|
-
if (escape)
|
|
88
|
-
add(escape);
|
|
89
|
-
if (!feedback && input.hintsEnabled !== false && !input.overlay) {
|
|
90
|
-
if (input.updateAvailable)
|
|
91
|
-
add(copy.update);
|
|
92
|
-
add(input.hasDraft ? copy.exitDraft : copy.exit);
|
|
93
|
-
add((input.modeToggleKey ?? 'Shift+Tab') + ' ' + (input.nextPostureWord ?? copy.modeLabel));
|
|
94
|
-
add(copy.help);
|
|
95
|
-
}
|
|
96
|
-
return result;
|
|
97
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** Stable fullscreen slots preserve the editor during overlays and small resizes. */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export interface AppShellProps {
|
|
4
|
-
rows: number;
|
|
5
|
-
cols: number;
|
|
6
|
-
header: React.ReactNode;
|
|
7
|
-
viewport: React.ReactNode;
|
|
8
|
-
composer: React.ReactNode;
|
|
9
|
-
composerSlotRows: number;
|
|
10
|
-
viewportRows: number;
|
|
11
|
-
details?: React.ReactNode;
|
|
12
|
-
statusRows: 0 | 1 | 2;
|
|
13
|
-
status: React.ReactNode;
|
|
14
|
-
inactive?: boolean;
|
|
15
|
-
placeholder?: React.ReactNode;
|
|
16
|
-
}
|
|
17
|
-
export declare function AppShell({ rows, cols, header, viewport, composer, composerSlotRows, viewportRows, details, statusRows, status, inactive, placeholder, }: AppShellProps): React.ReactElement;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box } from 'ink';
|
|
3
|
-
import { frameHeight } from './frame.js';
|
|
4
|
-
export function AppShell({ rows, cols, header, viewport, composer, composerSlotRows, viewportRows, details, statusRows, status, inactive = false, placeholder, }) {
|
|
5
|
-
return (_jsxs(Box, { flexDirection: "column", height: frameHeight(rows), width: cols, overflow: "hidden", flexShrink: 0, children: [_jsxs(Box, { display: inactive ? 'none' : 'flex', flexDirection: "column", height: frameHeight(rows), width: cols, overflow: "hidden", flexShrink: 0, children: [_jsx(Box, { height: 1, flexShrink: 0, overflow: "hidden", children: header }), _jsx(Box, { flexDirection: "column", height: viewportRows, flexShrink: 0, overflow: "hidden", children: viewport }), _jsx(Box, { flexDirection: "column", height: composerSlotRows, justifyContent: "flex-end", flexShrink: 0, overflow: "hidden", children: composer }), _jsx(Box, { height: statusRows > 0 ? 1 : 0, flexShrink: 0, overflow: "hidden", children: status }), statusRows === 2 && _jsx(Box, { height: 1, flexShrink: 0, overflow: "hidden", children: details })] }), _jsx(Box, { display: inactive ? 'flex' : 'none', height: frameHeight(rows), overflow: "hidden", children: placeholder })] }));
|
|
6
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gutter (spec §4.3) — the two-column left rail every transcript entry sits in.
|
|
3
|
-
*
|
|
4
|
-
* Replaces the previous "blank line + round box per entry" idiom, which cost
|
|
5
|
-
* 3-4 fixed rows for every entry and made one ordinary tool call fill the entire
|
|
6
|
-
* viewport on a 24-row terminal. The rail carries the role glyph on the first
|
|
7
|
-
* row and the status colour along the whole entry, so the grouping that the
|
|
8
|
-
* border used to provide survives at a fraction of the vertical cost.
|
|
9
|
-
*
|
|
10
|
-
* INVARIANT I-2 — the content column MUST keep `flexShrink={0}`.
|
|
11
|
-
* `ScrollViewport` measures content height with `measureElement`; if yoga is
|
|
12
|
-
* allowed to squeeze this column down to the viewport height, the measurement
|
|
13
|
-
* reports `content === viewport`, `overflowLines` is permanently 0, and
|
|
14
|
-
* scrolling stops working with no error anywhere. Read the comment at
|
|
15
|
-
* `ScrollViewport.tsx:94-99` before touching this. Guarded by A-6.
|
|
16
|
-
*/
|
|
17
|
-
import React from 'react';
|
|
18
|
-
/** Columns reserved for the rail, glyph included. */
|
|
19
|
-
export declare const GUTTER_WIDTH = 2;
|
|
20
|
-
export interface GutterProps {
|
|
21
|
-
/**
|
|
22
|
-
* Role marker on the first row (user / assistant / tool status / notice).
|
|
23
|
-
*
|
|
24
|
-
* A node rather than a string because while an answer streams the marker IS
|
|
25
|
-
* the spinner — that used to live inside `AssistantEntry`, and moving the
|
|
26
|
-
* glyph out here without moving the spinner would have silently dropped the
|
|
27
|
-
* "something is happening" affordance.
|
|
28
|
-
*/
|
|
29
|
-
glyph: React.ReactNode;
|
|
30
|
-
color?: string;
|
|
31
|
-
children: React.ReactNode;
|
|
32
|
-
}
|
|
33
|
-
export declare function Gutter({ glyph, color, children }: GutterProps): React.ReactElement;
|
|
34
|
-
/**
|
|
35
|
-
* The one-row gap between turns: a dim rail stub rather than a blank line, so
|
|
36
|
-
* the eye still follows a continuous left edge across the turn boundary.
|
|
37
|
-
*/
|
|
38
|
-
export declare function RailSpacer({ continuation, color, }: {
|
|
39
|
-
continuation: string;
|
|
40
|
-
color?: string;
|
|
41
|
-
}): React.ReactElement;
|
|
42
|
-
/**
|
|
43
|
-
* A left-only border whose vertical character is the rail glyph.
|
|
44
|
-
*
|
|
45
|
-
* Used where a block owns its own lines (tool preview, fenced code) and used to
|
|
46
|
-
* be wrapped in a round box: the border cost 2 rows plus 2 columns of padding
|
|
47
|
-
* and nested visibly inside other round boxes. Ink repeats `box.left` for the
|
|
48
|
-
* measured height of the child, so this is a continuous rail that costs 1 column
|
|
49
|
-
* and 0 rows.
|
|
50
|
-
*/
|
|
51
|
-
export declare function railBorderProps(rail: string, color?: string): {
|
|
52
|
-
readonly borderStyle: {
|
|
53
|
-
readonly topLeft: string;
|
|
54
|
-
readonly top: "";
|
|
55
|
-
readonly topRight: "";
|
|
56
|
-
readonly right: "";
|
|
57
|
-
readonly bottomRight: "";
|
|
58
|
-
readonly bottom: "";
|
|
59
|
-
readonly bottomLeft: string;
|
|
60
|
-
readonly left: string;
|
|
61
|
-
};
|
|
62
|
-
readonly borderTop: false;
|
|
63
|
-
readonly borderBottom: false;
|
|
64
|
-
readonly borderRight: false;
|
|
65
|
-
readonly borderLeft: true;
|
|
66
|
-
readonly borderColor: string | undefined;
|
|
67
|
-
};
|
package/dist/ui/layout/Gutter.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
/** Columns reserved for the rail, glyph included. */
|
|
4
|
-
export const GUTTER_WIDTH = 2;
|
|
5
|
-
export function Gutter({ glyph, color, children }) {
|
|
6
|
-
return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { flexShrink: 0, width: GUTTER_WIDTH, children: _jsx(Text, { color: color, children: glyph }) }), _jsx(Box, { flexDirection: "column", flexBasis: 0, flexGrow: 1, flexShrink: 0, children: children })] }));
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* The one-row gap between turns: a dim rail stub rather than a blank line, so
|
|
10
|
-
* the eye still follows a continuous left edge across the turn boundary.
|
|
11
|
-
*/
|
|
12
|
-
export function RailSpacer({ continuation, color, }) {
|
|
13
|
-
return (_jsx(Text, { color: color, children: continuation }));
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* A left-only border whose vertical character is the rail glyph.
|
|
17
|
-
*
|
|
18
|
-
* Used where a block owns its own lines (tool preview, fenced code) and used to
|
|
19
|
-
* be wrapped in a round box: the border cost 2 rows plus 2 columns of padding
|
|
20
|
-
* and nested visibly inside other round boxes. Ink repeats `box.left` for the
|
|
21
|
-
* measured height of the child, so this is a continuous rail that costs 1 column
|
|
22
|
-
* and 0 rows.
|
|
23
|
-
*/
|
|
24
|
-
export function railBorderProps(rail, color) {
|
|
25
|
-
return {
|
|
26
|
-
borderStyle: {
|
|
27
|
-
topLeft: rail,
|
|
28
|
-
top: '',
|
|
29
|
-
topRight: '',
|
|
30
|
-
right: '',
|
|
31
|
-
bottomRight: '',
|
|
32
|
-
bottom: '',
|
|
33
|
-
bottomLeft: rail,
|
|
34
|
-
left: rail,
|
|
35
|
-
},
|
|
36
|
-
borderTop: false,
|
|
37
|
-
borderBottom: false,
|
|
38
|
-
borderRight: false,
|
|
39
|
-
borderLeft: true,
|
|
40
|
-
borderColor: color,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One transcript entry, wrapped so its rendered height reaches the height store
|
|
3
|
-
* (tui-render-performance L3).
|
|
4
|
-
*
|
|
5
|
-
* IT MUST NOT CONSTRAIN HEIGHT. The natural height IS the value being measured;
|
|
6
|
-
* a `height` prop here would make every entry report back whatever it was told,
|
|
7
|
-
* and the spacers would encode a fiction.
|
|
8
|
-
*
|
|
9
|
-
* Ink computes yoga layout in `onRender`, which React runs BEFORE layout
|
|
10
|
-
* effects, so the measurement below reflects the commit that just happened —
|
|
11
|
-
* the same mechanism `ScrollViewport.tsx:87-88` and `AppShell.tsx:100-102`
|
|
12
|
-
* already document and rely on.
|
|
13
|
-
*/
|
|
14
|
-
import React from 'react';
|
|
15
|
-
import type { HeightKey } from './virtual-window.js';
|
|
16
|
-
export interface MeasuredEntryProps {
|
|
17
|
-
heightKey: HeightKey;
|
|
18
|
-
onMeasure: (key: HeightKey, rows: number) => void;
|
|
19
|
-
children: React.ReactNode;
|
|
20
|
-
}
|
|
21
|
-
export declare function MeasuredEntry({ heightKey, onMeasure, children, }: MeasuredEntryProps): React.ReactElement;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* One transcript entry, wrapped so its rendered height reaches the height store
|
|
4
|
-
* (tui-render-performance L3).
|
|
5
|
-
*
|
|
6
|
-
* IT MUST NOT CONSTRAIN HEIGHT. The natural height IS the value being measured;
|
|
7
|
-
* a `height` prop here would make every entry report back whatever it was told,
|
|
8
|
-
* and the spacers would encode a fiction.
|
|
9
|
-
*
|
|
10
|
-
* Ink computes yoga layout in `onRender`, which React runs BEFORE layout
|
|
11
|
-
* effects, so the measurement below reflects the commit that just happened —
|
|
12
|
-
* the same mechanism `ScrollViewport.tsx:87-88` and `AppShell.tsx:100-102`
|
|
13
|
-
* already document and rely on.
|
|
14
|
-
*/
|
|
15
|
-
import { useLayoutEffect, useRef } from 'react';
|
|
16
|
-
import { Box, measureElement } from 'ink';
|
|
17
|
-
export function MeasuredEntry({ heightKey, onMeasure, children, }) {
|
|
18
|
-
const ref = useRef(null);
|
|
19
|
-
// No dependency array on purpose: the entry's content can change without the
|
|
20
|
-
// key changing identity in a way this component can see, and `report` is a
|
|
21
|
-
// no-op when the measurement is unchanged — so an unconditional effect costs
|
|
22
|
-
// one `getComputedHeight()` read and cannot miss a resize.
|
|
23
|
-
useLayoutEffect(() => {
|
|
24
|
-
const node = ref.current;
|
|
25
|
-
if (!node)
|
|
26
|
-
return;
|
|
27
|
-
onMeasure(heightKey, measureElement(node).height);
|
|
28
|
-
});
|
|
29
|
-
return (_jsx(Box, { ref: ref, flexDirection: "column", flexShrink: 0, children: children }));
|
|
30
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Theme } from '../theme.js';
|
|
3
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
4
|
-
interface OverlayFrameBase {
|
|
5
|
-
title: string;
|
|
6
|
-
/** Footer text. Written by the CALLER so each overlay names its own keys. */
|
|
7
|
-
hint: string;
|
|
8
|
-
/** Viewport rows the overlay may occupy. */
|
|
9
|
-
maxRows: number;
|
|
10
|
-
cols?: number;
|
|
11
|
-
theme: Theme;
|
|
12
|
-
caps: TermCapabilities;
|
|
13
|
-
/**
|
|
14
|
-
* Where the frame sits on the row when `width` is given.
|
|
15
|
-
*
|
|
16
|
-
* DEFAULT `'left'` AND NO WRAPPER BOX: with neither new prop set, the render
|
|
17
|
-
* tree is byte-identical to the pre-`shortcut-drawer` one, which is what keeps
|
|
18
|
-
* the eight existing overlays' layout assertions green (`R-16`).
|
|
19
|
-
*/
|
|
20
|
-
align?: 'left' | 'right';
|
|
21
|
-
/**
|
|
22
|
-
* An explicit width for a frame that is NOT the full terminal width - the
|
|
23
|
-
* shortcut drawer's right-hand bar.
|
|
24
|
-
*
|
|
25
|
-
* THE FRAME STILL DECIDES ITS OWN FORM from `cols` (`BORDERLESS_COLS`), so the
|
|
26
|
-
* caller passes the TERMINAL width here and the bar's width separately. Passing
|
|
27
|
-
* the bar's width as `cols` would put a 46-cell drawer on a 200-column terminal
|
|
28
|
-
* into the rail form for ever.
|
|
29
|
-
*/
|
|
30
|
-
width?: number;
|
|
31
|
-
}
|
|
32
|
-
interface OverlayFrameControlled extends OverlayFrameBase {
|
|
33
|
-
/** One element per row, each already `wrap="truncate"`. */
|
|
34
|
-
rows: readonly React.ReactElement[];
|
|
35
|
-
scrollOffset: number;
|
|
36
|
-
/**
|
|
37
|
-
* Report the offset back after clamping.
|
|
38
|
-
*
|
|
39
|
-
* `sliceWindow` clamps for DISPLAY, but the owner of the state does not learn
|
|
40
|
-
* about it. A caller that just keeps adding a page per `PgDn` therefore ends
|
|
41
|
-
* up parked far past the end, and the first several `PgUp` presses then move a
|
|
42
|
-
* counter nobody can see while the screen sits still — the overlay reads as
|
|
43
|
-
* frozen. Feeding the clamped value back keeps the two in step.
|
|
44
|
-
*/
|
|
45
|
-
onScrollClamp?: (offset: number) => void;
|
|
46
|
-
children?: undefined;
|
|
47
|
-
}
|
|
48
|
-
interface OverlayFrameSelfManaged extends OverlayFrameBase {
|
|
49
|
-
rows?: undefined;
|
|
50
|
-
scrollOffset?: undefined;
|
|
51
|
-
onScrollClamp?: undefined;
|
|
52
|
-
children: React.ReactNode;
|
|
53
|
-
}
|
|
54
|
-
export type OverlayFrameProps = OverlayFrameControlled | OverlayFrameSelfManaged;
|
|
55
|
-
export declare function OverlayFrame(props: OverlayFrameProps): React.ReactElement;
|
|
56
|
-
/**
|
|
57
|
-
* Rows one PgUp/PgDn - and one Shift+wheel notch - turns inside a controlled
|
|
58
|
-
* overlay (defect 11).
|
|
59
|
-
*
|
|
60
|
-
* THIS IS THE OVERLAY'S `scroll.pageSize`, deliberately the same rule: one window
|
|
61
|
-
* minus `PAGE_CONTEXT_LINES` of overlap, so a reader keeps two rows of context
|
|
62
|
-
* across a page turn exactly as `PgDn` in the transcript does. It replaces a
|
|
63
|
-
* constant 8, which was 42% of `/help`'s 19-row window on a 100x24 terminal and
|
|
64
|
-
* made reading a 93-row shortcut list a twelve-keystroke exercise.
|
|
65
|
-
*
|
|
66
|
-
* THE WINDOW HEIGHT COMES FROM `overlayBodyRows`, which is the same expression
|
|
67
|
-
* `OverlayFrame` renders with - computed twice here would be the two-authorities
|
|
68
|
-
* defect B1 is fixing one component over.
|
|
69
|
-
*/
|
|
70
|
-
export declare function overlayPageSize(maxRows: number, cols: number): number;
|
|
71
|
-
/** Body rows shared by controlled overlays and self-managed focused lists. */
|
|
72
|
-
export declare function overlayBodyRows(maxRows: number, cols: number): number;
|
|
73
|
-
export {};
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo } from 'react';
|
|
3
|
-
import { Box, Text } from 'ink';
|
|
4
|
-
import stringWidth from 'string-width';
|
|
5
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
6
|
-
import { sliceWindow } from './overlay-window.js';
|
|
7
|
-
import { pageSize } from './scroll.js';
|
|
8
|
-
/** Below this width the round border costs more than it conveys (§5.2). */
|
|
9
|
-
const BORDERLESS_COLS = 48;
|
|
10
|
-
/** Title + footer + top and bottom border. */
|
|
11
|
-
const CHROME_ROWS = 4;
|
|
12
|
-
/**
|
|
13
|
-
* The frame's own `marginTop`, which is spent out of the SAME `maxRows` budget.
|
|
14
|
-
*
|
|
15
|
-
* Leaving it out makes the box render one row taller than the viewport it sits
|
|
16
|
-
* in, and the viewport's `overflow: hidden` then eats the bottom border — an
|
|
17
|
-
* overlay silently clipped by exactly the mechanism this round exists to remove.
|
|
18
|
-
* Verified by `overlay-frame-height.test.tsx`.
|
|
19
|
-
*/
|
|
20
|
-
const MARGIN_ROWS = 1;
|
|
21
|
-
export function OverlayFrame(props) {
|
|
22
|
-
const { title, hint, maxRows, cols = 80, theme, caps } = props;
|
|
23
|
-
const glyphs = pickGlyphs(caps);
|
|
24
|
-
// Ink applies changed style keys alone. Recreating this object resets the
|
|
25
|
-
// unchanged borderTop/borderBottom=false edges to one cell on a later render.
|
|
26
|
-
const railBorderStyle = useMemo(() => ({
|
|
27
|
-
topLeft: glyphs.railVertical, top: '', topRight: '', right: '',
|
|
28
|
-
bottomRight: '', bottom: '', bottomLeft: glyphs.railVertical,
|
|
29
|
-
left: glyphs.railVertical,
|
|
30
|
-
}), [glyphs.railVertical]);
|
|
31
|
-
const compact = Number.isFinite(maxRows) && maxRows < (cols >= BORDERLESS_COLS ? 6 : 4);
|
|
32
|
-
const bordered = !compact && cols >= BORDERLESS_COLS;
|
|
33
|
-
const unbounded = !Number.isFinite(maxRows);
|
|
34
|
-
let body;
|
|
35
|
-
let position = '';
|
|
36
|
-
/** Set only in controlled mode; `null` means "nothing to report back". */
|
|
37
|
-
let overflowOffset = null;
|
|
38
|
-
if (props.rows) {
|
|
39
|
-
const chrome = compact ? 2 : MARGIN_ROWS + (bordered ? CHROME_ROWS : CHROME_ROWS - 2);
|
|
40
|
-
const height = unbounded ? props.rows.length : Math.max(1, Math.floor(maxRows) - chrome);
|
|
41
|
-
const win = sliceWindow(props.rows.length, props.scrollOffset, height);
|
|
42
|
-
body = props.rows.slice(win.start, win.start + win.visible);
|
|
43
|
-
if (win.clamped !== props.scrollOffset)
|
|
44
|
-
overflowOffset = win.clamped;
|
|
45
|
-
if (!unbounded && win.visible < win.total) {
|
|
46
|
-
const up = win.start > 0 ? glyphs.arrowUp : ' ';
|
|
47
|
-
const down = win.start + win.visible < win.total ? glyphs.arrowDown : ' ';
|
|
48
|
-
position = ` ${up}${down} ${win.start + 1}-${win.start + win.visible}/${win.total}`;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
body = props.children;
|
|
53
|
-
}
|
|
54
|
-
// In an effect, not in the branch above: calling the owner's setter mid-render
|
|
55
|
-
// updates another component while this one renders. Clamping is idempotent, so
|
|
56
|
-
// this settles after one extra pass.
|
|
57
|
-
const onScrollClamp = props.onScrollClamp;
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
if (overflowOffset !== null)
|
|
60
|
-
onScrollClamp?.(overflowOffset);
|
|
61
|
-
}, [overflowOffset, onScrollClamp]);
|
|
62
|
-
const inner = (_jsxs(_Fragment, { children: [_jsxs(Box, { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, children: _jsx(Text, { wrap: "truncate", color: theme.primary, bold: true, children: title }) }), position && _jsx(Box, { width: stringWidth(position), flexShrink: 0, children: _jsx(Text, { color: theme.muted, children: position }) })] }), _jsx(Box, { flexDirection: "column", flexShrink: 0, height: unbounded ? undefined : Math.max(1, maxRows - (compact ? 2 : bordered ? 5 : 3)), overflowY: "hidden", children: body }), _jsx(Text, { wrap: "truncate", color: theme.hintFg ?? theme.muted, children: hint })] }));
|
|
63
|
-
// THE NEW PROPS ARE OPTIONAL AND THEIR DEFAULT IS TODAY'S BEHAVIOUR (R-16): the
|
|
64
|
-
// three branches below return exactly what they always returned unless the
|
|
65
|
-
// caller asked for a width or a right-hand placement. When it did, the SAME box
|
|
66
|
-
// is built and then placed inside one row-wide wrapper, which is the only way
|
|
67
|
-
// Ink can push a fixed-width child to the right edge (a `marginLeft: 'auto'`
|
|
68
|
-
// does not exist here).
|
|
69
|
-
const width = props.width;
|
|
70
|
-
const align = props.align ?? 'left';
|
|
71
|
-
const placed = (node) => {
|
|
72
|
-
if (width === undefined && align === 'left')
|
|
73
|
-
return node;
|
|
74
|
-
return (_jsx(Box, { width: cols, flexDirection: "row", flexShrink: 0, justifyContent: align === 'right' ? 'flex-end' : 'flex-start', children: node }));
|
|
75
|
-
};
|
|
76
|
-
const boxWidth = width === undefined ? {} : { width };
|
|
77
|
-
if (compact) {
|
|
78
|
-
return placed(_jsx(Box, { ...boxWidth, width: width ?? cols, height: Math.max(0, maxRows), flexDirection: "column", flexShrink: 0, overflowY: "hidden", children: inner }));
|
|
79
|
-
}
|
|
80
|
-
if (!bordered) {
|
|
81
|
-
// Narrow terminals trade the box for a rail: same grouping, 2 fewer rows
|
|
82
|
-
// and 4 fewer columns (§5.2).
|
|
83
|
-
return placed(_jsx(Box, { flexDirection: "column", flexShrink: 0, marginTop: 1, ...boxWidth, children: _jsx(Box, { flexDirection: "column", flexShrink: 0, borderStyle: railBorderStyle, borderTop: false, borderBottom: false, borderRight: false, borderColor: theme.primary, paddingLeft: 1, children: inner }) }));
|
|
84
|
-
}
|
|
85
|
-
return placed(_jsx(Box, { flexDirection: "column", flexShrink: 0, borderStyle: glyphs.boxStyle, borderColor: theme.primary, paddingX: 1, marginTop: 1, ...boxWidth, children: inner }));
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Rows one PgUp/PgDn - and one Shift+wheel notch - turns inside a controlled
|
|
89
|
-
* overlay (defect 11).
|
|
90
|
-
*
|
|
91
|
-
* THIS IS THE OVERLAY'S `scroll.pageSize`, deliberately the same rule: one window
|
|
92
|
-
* minus `PAGE_CONTEXT_LINES` of overlap, so a reader keeps two rows of context
|
|
93
|
-
* across a page turn exactly as `PgDn` in the transcript does. It replaces a
|
|
94
|
-
* constant 8, which was 42% of `/help`'s 19-row window on a 100x24 terminal and
|
|
95
|
-
* made reading a 93-row shortcut list a twelve-keystroke exercise.
|
|
96
|
-
*
|
|
97
|
-
* THE WINDOW HEIGHT COMES FROM `overlayBodyRows`, which is the same expression
|
|
98
|
-
* `OverlayFrame` renders with - computed twice here would be the two-authorities
|
|
99
|
-
* defect B1 is fixing one component over.
|
|
100
|
-
*/
|
|
101
|
-
export function overlayPageSize(maxRows, cols) {
|
|
102
|
-
return pageSize(overlayBodyRows(maxRows, cols));
|
|
103
|
-
}
|
|
104
|
-
/** Body rows shared by controlled overlays and self-managed focused lists. */
|
|
105
|
-
export function overlayBodyRows(maxRows, cols) {
|
|
106
|
-
if (!Number.isFinite(maxRows))
|
|
107
|
-
return 20;
|
|
108
|
-
const compact = maxRows < (cols >= BORDERLESS_COLS ? 6 : 4);
|
|
109
|
-
return Math.max(1, Math.floor(maxRows) - (compact ? 2 : cols >= BORDERLESS_COLS ? 5 : 3));
|
|
110
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ScrollIndicator (mouse-wheel-region-routing §4.8) — the one-column scroll
|
|
3
|
-
* position rail on the viewport's right edge.
|
|
4
|
-
*
|
|
5
|
-
* NAMING (P2-1): this is NOT `layout/Gutter.tsx`. That one is the two-column
|
|
6
|
-
* left rail every transcript entry sits in, and it carries an invariant of its
|
|
7
|
-
* own. Two components called a gutter, on opposite edges, for unrelated
|
|
8
|
-
* purposes, is how a codebase stops being able to say what it means.
|
|
9
|
-
*
|
|
10
|
-
* THE COLUMN IS RESERVED UNCONDITIONALLY, track glyph and all. Showing it only
|
|
11
|
-
* while scrolled would change the content width, re-wrap every line, change the
|
|
12
|
-
* content height, and feed that back into the measurement that decides whether
|
|
13
|
-
* to show it — a shimmer at the exact moment the user is reading. Constant
|
|
14
|
-
* width, no feedback loop (D-9); `width={1}` and `flexShrink={0}` hold the
|
|
15
|
-
* column even on the first frame, before anything has been measured.
|
|
16
|
-
*/
|
|
17
|
-
import React from 'react';
|
|
18
|
-
import type { Theme } from '../theme.js';
|
|
19
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
20
|
-
import type { ThumbRange } from './scroll-indicator.js';
|
|
21
|
-
/** Smallest supported fullscreen width; every usable chat frame reserves the column. */
|
|
22
|
-
export declare const MIN_INDICATOR_COLS = 40;
|
|
23
|
-
export interface ScrollIndicatorProps {
|
|
24
|
-
/** Viewport height in rows, as measured by `ScrollViewport`. */
|
|
25
|
-
rows: number;
|
|
26
|
-
/** `null` when the content fits — the rail is drawn as bare track. */
|
|
27
|
-
thumb: ThumbRange | null;
|
|
28
|
-
dragging?: boolean;
|
|
29
|
-
theme: Theme;
|
|
30
|
-
caps: TermCapabilities;
|
|
31
|
-
}
|
|
32
|
-
export declare function ScrollIndicator({ rows, thumb, dragging, theme, caps, }: ScrollIndicatorProps): React.ReactElement;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
4
|
-
/** Smallest supported fullscreen width; every usable chat frame reserves the column. */
|
|
5
|
-
export const MIN_INDICATOR_COLS = 40;
|
|
6
|
-
export function ScrollIndicator({ rows, thumb, dragging = false, theme, caps, }) {
|
|
7
|
-
const glyphs = pickGlyphs(caps);
|
|
8
|
-
const count = Math.max(0, Math.floor(rows) || 0);
|
|
9
|
-
// NO CELLS WITHOUT A THUMB (defect 6). `thumb === null` means the content fits,
|
|
10
|
-
// so there is no position to mark and a full-height column of track glyphs is
|
|
11
|
-
// pure noise next to an empty transcript. The BOX below is still rendered
|
|
12
|
-
// whatever the thumb is — see the feedback-loop note at the top of this file:
|
|
13
|
-
// the reserved column, not the glyphs, is what keeps the width constant.
|
|
14
|
-
const cells = [];
|
|
15
|
-
if (thumb) {
|
|
16
|
-
for (let i = 0; i < count; i += 1) {
|
|
17
|
-
const onThumb = i >= thumb.start && i < thumb.start + thumb.size;
|
|
18
|
-
cells.push(_jsx(Text, { color: onThumb ? theme.primary : theme.muted, bold: onThumb && dragging, children: onThumb ? glyphs.scrollThumb : glyphs.scrollTrack }, i));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return (_jsx(Box, { flexDirection: "column", flexShrink: 0, width: 1, children: cells }));
|
|
22
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type DOMElement } from 'ink';
|
|
3
|
-
import type { Theme } from '../theme.js';
|
|
4
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
5
|
-
import { type ScrollbarBridge } from '../scrollbar-controller.js';
|
|
6
|
-
import { type ScrollIntent } from './scroll.js';
|
|
7
|
-
import { type TailSink } from './follow-state.js';
|
|
8
|
-
export interface ScrollViewportProps {
|
|
9
|
-
intent?: {
|
|
10
|
-
kind: ScrollIntent;
|
|
11
|
-
nonce: number;
|
|
12
|
-
repeat?: number;
|
|
13
|
-
};
|
|
14
|
-
pinToBottomNonce?: number;
|
|
15
|
-
resetKey?: unknown;
|
|
16
|
-
geometryKey?: string;
|
|
17
|
-
onGeometryChange?: () => void;
|
|
18
|
-
onScrolledLinesChange?: (lines: number) => void;
|
|
19
|
-
onViewportShiftChange?: (shift: number) => void;
|
|
20
|
-
tailRowsRef?: TailSink;
|
|
21
|
-
hold?: boolean;
|
|
22
|
-
resumeMs?: number;
|
|
23
|
-
showScrollIndicator?: boolean;
|
|
24
|
-
cols?: number;
|
|
25
|
-
footer?: React.ReactNode;
|
|
26
|
-
rail?: React.ReactNode;
|
|
27
|
-
overlay?: React.ReactNode;
|
|
28
|
-
active?: boolean;
|
|
29
|
-
scrollbar?: ScrollbarBridge;
|
|
30
|
-
composerRef?: React.RefObject<DOMElement>;
|
|
31
|
-
onComposerVisibilityChange?: (visible: boolean) => void;
|
|
32
|
-
/** The run status row above the input box (tui-scrollbar-edge-and-run-row). */
|
|
33
|
-
activityRef?: React.RefObject<DOMElement>;
|
|
34
|
-
onActivityVisibilityChange?: (visible: boolean) => void;
|
|
35
|
-
theme: Theme;
|
|
36
|
-
caps: TermCapabilities;
|
|
37
|
-
children: React.ReactNode;
|
|
38
|
-
}
|
|
39
|
-
/** One offset for messages, padding and panels; hidden trees keep their local state. */
|
|
40
|
-
export declare function ScrollViewport(props: ScrollViewportProps): React.ReactElement;
|