@aragon-agent/cli 0.6.47 → 0.6.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +27 -6
- package/dist/agent/coalesce.d.ts +1 -1
- package/dist/agent/controller.d.ts +21 -21
- package/dist/agent/controller.js +13 -13
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +79 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +29 -29
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +6 -6
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +1 -1
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +3 -3
- package/dist/proc/wait.d.ts +1 -1
- package/dist/proc/wait.js +1 -1
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +1 -1
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +3 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +2 -2
- package/dist/tools/job-tools.js +4 -4
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -857
- package/dist/agent/reducer.js +0 -1646
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1383
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -214
- package/dist/proc/limits.js +0 -221
- package/dist/proc/progress.d.ts +0 -47
- package/dist/proc/progress.js +0 -163
- package/dist/proc/types.d.ts +0 -269
- package/dist/proc/types.js +0 -15
- package/dist/proc/wait-view.d.ts +0 -65
- package/dist/proc/wait-view.js +0 -66
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -51
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -130
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -258
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -169
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/entries/WaitCard.d.ts +0 -37
- package/dist/ui/entries/WaitCard.js +0 -92
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -84
- package/dist/ui/interaction-copy.js +0 -41
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -140
- package/dist/ui/layout/status-layout.js +0 -262
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -494
- package/dist/ui/layout/wait-bar.d.ts +0 -34
- package/dist/ui/layout/wait-bar.js +0 -48
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -63
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -130
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
package/dist/ui/TeamPanel.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import Spinner from 'ink-spinner';
|
|
4
|
-
import { pickGlyphs } from './glyphs.js';
|
|
5
|
-
import { childStatus, isRunningStatus, rosterCounts, rosterHeadline, statusColor, } from './team-status.js';
|
|
6
|
-
import { formatDuration } from '../agent/usage.js';
|
|
7
|
-
import { buildTeamPanelLayout } from './layout/team-panel.js';
|
|
8
|
-
import { interventionWord, teamRowCells, teamRowGeometry, TEAM_CLOCK_CELLS, } from './layout/team-row.js';
|
|
9
|
-
import { fitCells } from './layout/cells.js';
|
|
10
|
-
/**
|
|
11
|
-
* THE ACTIVITY / BADGE HELPERS LIVE IN `layout/team-row.ts` NOW (v2 implementation
|
|
12
|
-
* note, recorded in the spec's "implementation findings"). `teamRowCells` has to
|
|
13
|
-
* compose the activity text with the supervisor badge, so keeping those functions
|
|
14
|
-
* in this component would make the two modules import each other. They are
|
|
15
|
-
* re-exported here so every existing import site keeps its path.
|
|
16
|
-
*/
|
|
17
|
-
export { activityBudget, activityLine, activityWithBadge, overseerBadge, teamClockText, teamRowCells, teamRowGeometry, } from './layout/team-row.js';
|
|
18
|
-
/**
|
|
19
|
-
* The panel's one supervisor status line (AC-5): the most recent intervention
|
|
20
|
-
* across the roster, human-phrased. Empty when the supervisor has not acted
|
|
21
|
-
* yet - furniture that says nothing is worse than no line.
|
|
22
|
-
*/
|
|
23
|
-
export function supervisorStatusLine(runs, at) {
|
|
24
|
-
let label = '';
|
|
25
|
-
let latest;
|
|
26
|
-
for (const run of runs) {
|
|
27
|
-
const last = run.lastIntervention;
|
|
28
|
-
if (last !== undefined && (latest === undefined || last.at > latest.at)) {
|
|
29
|
-
latest = last;
|
|
30
|
-
label = run.label;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (latest === undefined)
|
|
34
|
-
return '';
|
|
35
|
-
const ago = formatDuration(Math.max(0, at - latest.at));
|
|
36
|
-
const head = latest.reasonHead.length > 0 ? ` (${latest.reasonHead})` : '';
|
|
37
|
-
return `supervisor: ${interventionWord(latest.action)} ${label} ${ago} ago${head}`;
|
|
38
|
-
}
|
|
39
|
-
/** Columns the `ctrl+b` hint cell spends, and the width below which it is dropped. */
|
|
40
|
-
const HINT_CELLS = 'ctrl+b'.length;
|
|
41
|
-
const HINT_MIN_COLS = 100;
|
|
42
|
-
export function TeamPanel({ snapshot, rows, cols, reducedMotion, theme, caps, now, layout, }) {
|
|
43
|
-
const projection = layout ?? buildTeamPanelLayout({
|
|
44
|
-
snapshot, terminalRows: rows, availableRows: Infinity,
|
|
45
|
-
});
|
|
46
|
-
if (projection.rowCount === 0)
|
|
47
|
-
return null;
|
|
48
|
-
const glyphs = pickGlyphs(caps);
|
|
49
|
-
const at = now ?? Date.now();
|
|
50
|
-
// ONE COUNTING AUTHORITY (A-1): `queued` used to fall between `isRunning` and
|
|
51
|
-
// `isSettled`, so a fresh dispatch read `0 running 0 done` above rows that each
|
|
52
|
-
// said `queued`.
|
|
53
|
-
const counts = rosterCounts(snapshot.runs);
|
|
54
|
-
const elapsed = formatDuration(Math.max(0, at - snapshot.startedAt));
|
|
55
|
-
const g = teamRowGeometry(cols, glyphs);
|
|
56
|
-
// WIDTH IS BUDGETED ONCE (I-13). `rosterHeadline` subtracts its own
|
|
57
|
-
// HEADER_RESERVED_COLS(16) - it takes the ROW's column count, not a budget - so
|
|
58
|
-
// the caller may only take away the cells this feature ADDS. Subtracting 16 here
|
|
59
|
-
// too would spend the reserve twice and drop `done` / `queued` from a 100-column
|
|
60
|
-
// header that has room for them.
|
|
61
|
-
const showHint = cols >= HINT_MIN_COLS && !projection.collapsed;
|
|
62
|
-
const headlineCols = Math.max(0, cols - TEAM_CLOCK_CELLS - (showHint ? HINT_CELLS : 0));
|
|
63
|
-
const mailText = `${glyphs.teamMail} ${snapshot.messageCount}`;
|
|
64
|
-
// The badge takes its NATURAL width and the flexible left cell gives way: it is
|
|
65
|
-
// the only header cell whose content length varies, and pinning it to a computed
|
|
66
|
-
// width would clip `@ 12` on a row that has room for it.
|
|
67
|
-
const mailCells = Math.min(mailText.length, Math.max(0, cols - TEAM_CLOCK_CELLS));
|
|
68
|
-
/**
|
|
69
|
-
* The header is the row's own geometry one level up: a flexible left cell and
|
|
70
|
-
* fixed right-hand cells, so the dispatch clock and every child clock stand in
|
|
71
|
-
* the SAME column (I-5 / AC-2).
|
|
72
|
-
*
|
|
73
|
-
* THE ELAPSED TIME APPEARS ONLY IN THE CLOCK CELL (§4.3 / RV-P2-9). The old
|
|
74
|
-
* header also carried it inline among the count clauses; with a right-edge clock
|
|
75
|
-
* that would be the same number twice, and the pair could disagree for one frame
|
|
76
|
-
* every 200 ms.
|
|
77
|
-
*/
|
|
78
|
-
const header = (_jsxs(Box, { flexDirection: "row", width: "100%", height: 1, flexShrink: 0, overflow: "hidden", children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsxs(Text, { wrap: "truncate", color: theme.accent, bold: true, children: [glyphs.teamAgent, ' team ', _jsx(Text, { color: theme.muted, children: rosterHeadline(counts, glyphs, headlineCols) })] }) }), showHint && (_jsx(Box, { width: HINT_CELLS, flexShrink: 0, justifyContent: "flex-end", children: _jsx(Text, { color: theme.hintFg, children: "ctrl+b" }) })), snapshot.messageCount > 0 && (_jsx(Box, { width: mailCells, flexShrink: 0, justifyContent: "flex-end", children: _jsx(Text, { wrap: "truncate", color: theme.muted, children: mailText }) })), _jsx(Box, { width: TEAM_CLOCK_CELLS, flexShrink: 0, justifyContent: "flex-end", children: _jsx(Text, { wrap: "truncate", color: theme.accent, bold: true, children: elapsed }) })] }));
|
|
79
|
-
// Short terminals or a long draft leave only the shared header projection,
|
|
80
|
-
// which still answers whether anything is running and for how long. The header
|
|
81
|
-
// keeps the count clauses AND the right-edge clock, so the collapsed form loses
|
|
82
|
-
// no information - only the per-child rows.
|
|
83
|
-
if (projection.collapsed) {
|
|
84
|
-
return _jsx(Box, { flexDirection: "column", width: "100%", flexShrink: 0, children: header });
|
|
85
|
-
}
|
|
86
|
-
// RANKED, not sliced by array index (F-2). The slot pool hands out indices in
|
|
87
|
-
// order, so `slice(0, 5)` showed the five children that finished FIRST and hid
|
|
88
|
-
// everything still working behind `+N more` - at exactly the fan-out widths
|
|
89
|
-
// the requirement permits.
|
|
90
|
-
const { visible, hiddenTotal, hiddenRunning } = projection;
|
|
91
|
-
const supervisorLine = supervisorStatusLine(snapshot.runs, at);
|
|
92
|
-
return (_jsxs(Box, { flexDirection: "column", width: "100%", flexShrink: 0, children: [header, visible.map((run) => {
|
|
93
|
-
const status = childStatus(run);
|
|
94
|
-
const color = statusColor(status, theme);
|
|
95
|
-
// One spinner per RUNNING row, and the row cap is 5 precisely because
|
|
96
|
-
// five is the documented maximum number of simultaneous spinners. Both
|
|
97
|
-
// `reducedMotion` and a non-Unicode terminal fall back to the same
|
|
98
|
-
// static marker, exactly as `AssistantEntry` and `ToolCard` already do.
|
|
99
|
-
const animate = isRunningStatus(status) && !reducedMotion && caps.unicode;
|
|
100
|
-
const cells = teamRowCells(run, cols, at, glyphs);
|
|
101
|
-
return (_jsxs(Box, { flexDirection: "row", width: "100%", height: 1, flexShrink: 0, overflow: "hidden", children: [_jsx(Box, { width: g.marker, flexShrink: 0, children: _jsxs(Text, { wrap: "truncate", color: color, children: [' ', animate ? _jsx(Spinner, { type: "dots" }) : cells.marker, ' '] }) }), _jsx(Box, { width: g.label, flexShrink: 0, children: _jsx(Text, { wrap: "truncate", color: theme.primary, children: cells.label }) }), _jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx(Text, { wrap: "truncate", color: theme.muted, children: cells.description }) }), _jsx(Box, { width: g.gap, flexShrink: 0, children: _jsx(Text, { children: " " }) }), _jsx(Box, { width: g.activity, flexShrink: 0, overflow: "hidden", children: _jsx(Text, { wrap: "truncate", color: color, children: cells.activity }) }), _jsx(Box, { width: g.clock, flexShrink: 0, justifyContent: "flex-end", children: _jsx(Text, { wrap: "truncate", color: theme.muted, children: cells.clock }) })] }, run.label));
|
|
102
|
-
}), hiddenTotal > 0 && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [' ', "+", hiddenTotal, " more", hiddenRunning > 0 ? ` (${hiddenRunning} running)` : ''] })), supervisorLine.length > 0 && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [' ', fitCells(supervisorLine, Math.max(0, cols - 2), glyphs.ellipsis)] })), snapshot.lastMessage && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [' ', glyphs.teamMail, " ", snapshot.lastMessage.from, " ", glyphs.arrowRight, " ", snapshot.lastMessage.to, ": ", snapshot.lastMessage.subject.replace(/\s+/g, ' ')] }))] }));
|
|
103
|
-
}
|
package/dist/ui/ToastStack.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** Fixed one-row toast strip; only the newest toast is shown. */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import type { Theme } from './theme.js';
|
|
4
|
-
import type { Toast } from '../agent/reducer.js';
|
|
5
|
-
export declare function ToastStack({ toasts, theme, }: {
|
|
6
|
-
toasts: Toast[];
|
|
7
|
-
theme: Theme;
|
|
8
|
-
}): React.ReactElement | null;
|
package/dist/ui/ToastStack.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
function toastColor(level, theme) {
|
|
4
|
-
switch (level) {
|
|
5
|
-
case 'success':
|
|
6
|
-
return theme.toast.success;
|
|
7
|
-
case 'warn':
|
|
8
|
-
return theme.toast.warn;
|
|
9
|
-
case 'error':
|
|
10
|
-
return theme.toast.error;
|
|
11
|
-
default:
|
|
12
|
-
return theme.toast.info;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function toastGlyph(level, theme) {
|
|
16
|
-
switch (level) {
|
|
17
|
-
case 'success':
|
|
18
|
-
return theme.symbols.toolDone;
|
|
19
|
-
case 'warn':
|
|
20
|
-
return theme.symbols.warn;
|
|
21
|
-
case 'error':
|
|
22
|
-
return theme.symbols.error;
|
|
23
|
-
default:
|
|
24
|
-
return theme.symbols.info;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function ToastStack({ toasts, theme, }) {
|
|
28
|
-
const latest = toasts[toasts.length - 1];
|
|
29
|
-
const extra = Math.max(0, toasts.length - 1);
|
|
30
|
-
return (_jsx(Box, { flexShrink: 0, children: latest ? (_jsxs(Text, { wrap: "truncate", color: toastColor(latest.level, theme), children: [' ', toastGlyph(latest.level, theme), " ", latest.text, extra > 0 ? ` +${extra}` : ''] })) : (_jsx(Text, { children: " " })) }));
|
|
31
|
-
}
|
package/dist/ui/TodoPanel.d.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TodoPanel — the right rail (todo-plan-execution §6.1; two sections per
|
|
3
|
-
* todo-acceptance-criteria §6.9).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`; a literal here bypasses the
|
|
6
|
-
* capability probe and shows mojibake on a legacy console (`glyphs.ts` header).
|
|
7
|
-
*
|
|
8
|
-
* MOUNTED ONLY WHEN A LIST EXISTS. `App` passes `null` the rest of the time and
|
|
9
|
-
* this component is not rendered at all, so a session that never plans has zero
|
|
10
|
-
* columns and zero layout shift (R-g's "no furniture when idle" / AC-24).
|
|
11
|
-
*
|
|
12
|
-
* NO NEW PROP CARRIES THE ACCEPTANCE TABLE (§6.9.1): `snapshot.acceptance` is
|
|
13
|
-
* already inside `snapshot`, and `null` IS the projection of "the capability is
|
|
14
|
-
* off", because a disabled store commits an empty table. Keeping the props surface
|
|
15
|
-
* narrow is what keeps `App`'s two mount points untouched.
|
|
16
|
-
*
|
|
17
|
-
* IT MUST BE MOUNTED IN `AppShell`'s MIDDLE BAND, NEVER IN THE BOTTOM CHROME
|
|
18
|
-
* (C-6 / I-4). This is a COLUMN BESIDE the viewport, and the middle band is the
|
|
19
|
-
* only row-wrapped region there is; moved down into the bottom chrome it would stop
|
|
20
|
-
* being a rail and start eating viewport height, growing and shrinking the
|
|
21
|
-
* transcript every time the list changed length.
|
|
22
|
-
*
|
|
23
|
-
* WIDTH IS MEASURED IN COLUMNS, NEVER IN CODE UNITS (P2-3). This rail is 14-36
|
|
24
|
-
* columns wide and the system prompt's last line is "Respond in the language the
|
|
25
|
-
* user writes in", so CJK text in an 18-column rail is the NORMAL case rather than
|
|
26
|
-
* the edge case. Every text cell is `wrap="truncate"` and Ink's truncation is
|
|
27
|
-
* display-width aware, so nothing can overflow the box - and NO ARITHMETIC HERE MAY
|
|
28
|
-
* BUDGET USER TEXT BY `.length`. The count strings and `padStart(2)` cells below are
|
|
29
|
-
* ASCII counts and indices, which is why they are safe.
|
|
30
|
-
*/
|
|
31
|
-
import React from 'react';
|
|
32
|
-
import type { Theme } from './theme.js';
|
|
33
|
-
import type { TermCapabilities } from './capabilities.js';
|
|
34
|
-
import type { TodoSnapshot } from '../todo/types.js';
|
|
35
|
-
export interface TodoPanelProps {
|
|
36
|
-
snapshot: TodoSnapshot;
|
|
37
|
-
/** From `todoRailWidth(cols)`. The rail's whole column budget, separator included. */
|
|
38
|
-
width: number;
|
|
39
|
-
/**
|
|
40
|
-
* From `buildTodoRailLayout` after actual team/menu rows are subtracted.
|
|
41
|
-
* (I-10 / P1-3). The gate that mounts this component and the number it lays out
|
|
42
|
-
* against are ONE value computed once in `App`: a panel that mounts on one number
|
|
43
|
-
* and lays out against another renders nothing and reports nothing.
|
|
44
|
-
*/
|
|
45
|
-
rows: number;
|
|
46
|
-
/** Whether the agent is running; gates the spinner (never animate when idle). */
|
|
47
|
-
running: boolean;
|
|
48
|
-
reducedMotion: boolean;
|
|
49
|
-
theme: Theme;
|
|
50
|
-
caps: TermCapabilities;
|
|
51
|
-
}
|
|
52
|
-
export declare function TodoPanel({ snapshot, width, rows, running, reducedMotion, theme, caps, }: TodoPanelProps): React.ReactElement | null;
|
package/dist/ui/TodoPanel.js
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* TodoPanel — the right rail (todo-plan-execution §6.1; two sections per
|
|
4
|
-
* todo-acceptance-criteria §6.9).
|
|
5
|
-
*
|
|
6
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`; a literal here bypasses the
|
|
7
|
-
* capability probe and shows mojibake on a legacy console (`glyphs.ts` header).
|
|
8
|
-
*
|
|
9
|
-
* MOUNTED ONLY WHEN A LIST EXISTS. `App` passes `null` the rest of the time and
|
|
10
|
-
* this component is not rendered at all, so a session that never plans has zero
|
|
11
|
-
* columns and zero layout shift (R-g's "no furniture when idle" / AC-24).
|
|
12
|
-
*
|
|
13
|
-
* NO NEW PROP CARRIES THE ACCEPTANCE TABLE (§6.9.1): `snapshot.acceptance` is
|
|
14
|
-
* already inside `snapshot`, and `null` IS the projection of "the capability is
|
|
15
|
-
* off", because a disabled store commits an empty table. Keeping the props surface
|
|
16
|
-
* narrow is what keeps `App`'s two mount points untouched.
|
|
17
|
-
*
|
|
18
|
-
* IT MUST BE MOUNTED IN `AppShell`'s MIDDLE BAND, NEVER IN THE BOTTOM CHROME
|
|
19
|
-
* (C-6 / I-4). This is a COLUMN BESIDE the viewport, and the middle band is the
|
|
20
|
-
* only row-wrapped region there is; moved down into the bottom chrome it would stop
|
|
21
|
-
* being a rail and start eating viewport height, growing and shrinking the
|
|
22
|
-
* transcript every time the list changed length.
|
|
23
|
-
*
|
|
24
|
-
* WIDTH IS MEASURED IN COLUMNS, NEVER IN CODE UNITS (P2-3). This rail is 14-36
|
|
25
|
-
* columns wide and the system prompt's last line is "Respond in the language the
|
|
26
|
-
* user writes in", so CJK text in an 18-column rail is the NORMAL case rather than
|
|
27
|
-
* the edge case. Every text cell is `wrap="truncate"` and Ink's truncation is
|
|
28
|
-
* display-width aware, so nothing can overflow the box - and NO ARITHMETIC HERE MAY
|
|
29
|
-
* BUDGET USER TEXT BY `.length`. The count strings and `padStart(2)` cells below are
|
|
30
|
-
* ASCII counts and indices, which is why they are safe.
|
|
31
|
-
*/
|
|
32
|
-
import { useMemo } from 'react';
|
|
33
|
-
import { Box, Text } from 'ink';
|
|
34
|
-
import Spinner from 'ink-spinner';
|
|
35
|
-
import { pickGlyphs } from './glyphs.js';
|
|
36
|
-
import { buildGauge } from './gauge.js';
|
|
37
|
-
import { railBorderProps } from './layout/Gutter.js';
|
|
38
|
-
import { TODO_RAIL_INDEX_MIN_COLS } from './layout/rail.js';
|
|
39
|
-
import { TODO_LIMITS } from '../todo/limits.js';
|
|
40
|
-
import { derivePlanPhase } from '../todo/acceptance.js';
|
|
41
|
-
import { buildPlanSections } from '../todo/plan-sections.js';
|
|
42
|
-
import { selectAcceptanceRows, selectCompactAcceptanceRows, selectCompactTodoRows, selectTodoRows, } from '../todo/panel-rows.js';
|
|
43
|
-
/** The gauge is the one purely decorative element, so it is the first to go. */
|
|
44
|
-
const GAUGE_MIN_ROWS = 8;
|
|
45
|
-
const GAUGE_MIN_COLS = 20;
|
|
46
|
-
/** Separator column + one space of padding, supplied by `railBorderProps`. */
|
|
47
|
-
const CHROME_COLS = 2;
|
|
48
|
-
/** Marker cell. Three, because the ASCII tier's `[x]` / `[ ]` / `[!]` are three wide. */
|
|
49
|
-
const MARKER_COLS = 3;
|
|
50
|
-
/** Index cell: two digits plus the space that separates it from the text. */
|
|
51
|
-
const INDEX_COLS = 3;
|
|
52
|
-
/** `ACCEPT` / `VERIFY` are both six columns, so switching phase shifts nothing (D-8). */
|
|
53
|
-
const ACCEPT_LABEL = 'ACCEPT';
|
|
54
|
-
const VERIFY_LABEL = 'VERIFY';
|
|
55
|
-
function marker(item, glyphs) {
|
|
56
|
-
// Ink's tokenizer otherwise treats the bare emoji-capable check as one cell,
|
|
57
|
-
// while string-width counts two, adding an extra visible space to each row.
|
|
58
|
-
if (item.status === 'completed') {
|
|
59
|
-
return glyphs.todoDone.length === 1 ? `${glyphs.todoDone}\uFE0F` : glyphs.todoDone;
|
|
60
|
-
}
|
|
61
|
-
if (item.status === 'in_progress')
|
|
62
|
-
return glyphs.todoActive;
|
|
63
|
-
return glyphs.todoPending;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* `passed` REUSES THE DONE GLYPH ON PURPOSE (D-9): it is the same settled positive,
|
|
67
|
-
* so two colour ramps and two shapes for one meaning would be learned twice for
|
|
68
|
-
* nothing. `failed` is the only new meaning, and it gets the only new glyph.
|
|
69
|
-
*/
|
|
70
|
-
function acceptanceMarker(item, glyphs) {
|
|
71
|
-
if (item.status === 'passed') {
|
|
72
|
-
return glyphs.todoDone.length === 1 ? `${glyphs.todoDone}\uFE0F` : glyphs.todoDone;
|
|
73
|
-
}
|
|
74
|
-
if (item.status === 'failed')
|
|
75
|
-
return glyphs.todoFail;
|
|
76
|
-
if (item.status === 'in_progress')
|
|
77
|
-
return glyphs.todoActive;
|
|
78
|
-
return glyphs.todoPending;
|
|
79
|
-
}
|
|
80
|
-
function rowColor(item, theme) {
|
|
81
|
-
if (item.status === 'completed')
|
|
82
|
-
return theme.muted;
|
|
83
|
-
if (item.status === 'in_progress')
|
|
84
|
-
return theme.primary;
|
|
85
|
-
return theme.hintFg ?? theme.muted;
|
|
86
|
-
}
|
|
87
|
-
function acceptanceRowColor(item, theme) {
|
|
88
|
-
if (item.status === 'failed')
|
|
89
|
-
return theme.toolError;
|
|
90
|
-
if (item.status === 'passed')
|
|
91
|
-
return theme.muted;
|
|
92
|
-
if (item.status === 'in_progress')
|
|
93
|
-
return theme.primary;
|
|
94
|
-
return theme.hintFg ?? theme.muted;
|
|
95
|
-
}
|
|
96
|
-
export function TodoPanel({ snapshot, width, rows, running, reducedMotion, theme, caps, }) {
|
|
97
|
-
const glyphs = pickGlyphs(caps);
|
|
98
|
-
// Ink reapplies all four Yoga borders when the borderStyle object changes, but
|
|
99
|
-
// unchanged borderTop/Bottom=false props are not reapplied on that update.
|
|
100
|
-
const border = useMemo(() => railBorderProps(glyphs.railVertical), [glyphs.railVertical]);
|
|
101
|
-
if (snapshot.items.length === 0 || rows < TODO_LIMITS.panelMinRows)
|
|
102
|
-
return null;
|
|
103
|
-
const compact = rows < TODO_LIMITS.panelFullRows;
|
|
104
|
-
const showGauge = width >= GAUGE_MIN_COLS && rows >= GAUGE_MIN_ROWS;
|
|
105
|
-
const showIndex = !compact && width >= TODO_RAIL_INDEX_MIN_COLS;
|
|
106
|
-
const acceptance = snapshot.acceptance;
|
|
107
|
-
const acceptanceItems = acceptance?.items ?? [];
|
|
108
|
-
const phase = derivePlanPhase(snapshot.items, acceptanceItems);
|
|
109
|
-
// EVERY ROW FIGURE COMES FROM ONE FUNCTION (§6.9.2). Not because arithmetic in a
|
|
110
|
-
// component is hard, but because `/perf` and the status-bar chip have to report
|
|
111
|
-
// the same answer, and a second copy is a second answer.
|
|
112
|
-
const sections = buildPlanSections({
|
|
113
|
-
rows,
|
|
114
|
-
width,
|
|
115
|
-
phase,
|
|
116
|
-
todoCount: snapshot.items.length,
|
|
117
|
-
acceptanceCount: acceptanceItems.length,
|
|
118
|
-
showGauge,
|
|
119
|
-
});
|
|
120
|
-
const compactFooter = sections.todoFooter;
|
|
121
|
-
const todoWindow = compact
|
|
122
|
-
? selectCompactTodoRows(snapshot.items, sections.todoItemRows)
|
|
123
|
-
: selectTodoRows(snapshot.items, sections.todoItemRows);
|
|
124
|
-
const acceptanceSection = sections.acceptance;
|
|
125
|
-
const acceptanceWindow = acceptanceSection && acceptanceSection.itemRows > 0
|
|
126
|
-
? compact
|
|
127
|
-
? selectCompactAcceptanceRows(acceptanceItems, acceptanceSection.itemRows)
|
|
128
|
-
: selectAcceptanceRows(acceptanceItems, acceptanceSection.itemRows)
|
|
129
|
-
: { visible: [], hiddenAbove: 0, hiddenBelow: 0 };
|
|
130
|
-
const pct = snapshot.total > 0 ? Math.round((snapshot.doneCount / snapshot.total) * 100) : 0;
|
|
131
|
-
const gauge = buildGauge(pct, Math.max(4, width - CHROME_COLS - 2), theme, caps);
|
|
132
|
-
const complete = snapshot.doneCount === snapshot.total;
|
|
133
|
-
const countText = `${snapshot.doneCount}/${snapshot.total}`;
|
|
134
|
-
const showDone = complete && fitsDone(width, countText, 'TODO');
|
|
135
|
-
const count = `${countText}${showDone ? ' done' : ''}`;
|
|
136
|
-
// ONE CALL EACH: the text is both the header's right-hand cell and the width that
|
|
137
|
-
// cell is measured with, so computing it twice invites the two to drift.
|
|
138
|
-
const acceptanceCountLabel = acceptanceCountText(acceptance, width);
|
|
139
|
-
const acceptanceTone = acceptanceColor(acceptance, theme);
|
|
140
|
-
// The `summary` rung has NO `done` rung (§6.9.3): one muted line, or the error
|
|
141
|
-
// colour when something failed. Green is a verdict about a table the narrow rail is
|
|
142
|
-
// not showing, and claiming it in one line would be the only place in this feature
|
|
143
|
-
// where a colour says more than the text does.
|
|
144
|
-
const hasFailed = (acceptance?.failedCount ?? 0) > 0;
|
|
145
|
-
const acceptanceSummaryTone = hasFailed ? theme.toolError : theme.muted;
|
|
146
|
-
// `verify` collapses the step list to ONE row: every step is done, so seven rows
|
|
147
|
-
// of "completed" buy no information and cost the rows the eye needs (D-7). The
|
|
148
|
-
// marker cell is still reserved so the two sections stay column-aligned.
|
|
149
|
-
const showTodoItems = phase !== 'verify';
|
|
150
|
-
// THE `-N +M` FOOTER DESCRIBES A WINDOW THAT IS ON SCREEN. In `verify` the list is
|
|
151
|
-
// collapsed on purpose, so the marker would advertise rows the user cannot reach
|
|
152
|
-
// (`-0 +5` under "all steps complete" is the exact opposite of the sentence above
|
|
153
|
-
// it). The rows it would have occupied stay blank inside the fixed-height box.
|
|
154
|
-
const showCompactFooter = compactFooter && showTodoItems;
|
|
155
|
-
return (
|
|
156
|
-
// `flexShrink={0}` IS LOAD-BEARING (P1-4). Ink's `Box.defaultProps` is
|
|
157
|
-
// `{ flexWrap:'nowrap', flexDirection:'row', flexGrow:0, flexShrink:1 }`, so a
|
|
158
|
-
// `width={n}` box inside a shrinking row is SQUEEZED under pressure - and every
|
|
159
|
-
// piece of arithmetic in `rail.ts` silently becomes a suggestion at exactly the
|
|
160
|
-
// narrow widths where the guarantee matters. `ScrollIndicator` spells the same
|
|
161
|
-
// pair one level down. Height uses the same row budget as selection, so content
|
|
162
|
-
// cannot silently enlarge the middle band.
|
|
163
|
-
_jsxs(Box, { flexDirection: "column", flexShrink: 0, width: width, height: rows, overflow: "hidden", paddingLeft: 1, ...border, borderColor: theme.border, children: [_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx(Text, { wrap: "truncate", color: theme.accent, bold: true, children: "TODO" }) }), _jsx(Box, { width: count.length, flexShrink: 0, children: _jsx(Text, { wrap: "truncate", color: complete ? theme.toolDone : theme.muted, children: count }) })] }), showGauge && (_jsxs(Text, { wrap: "truncate", children: [_jsx(Text, { color: gauge.fillColor, children: gauge.filled }), _jsx(Text, { color: gauge.trackColor, children: gauge.empty })] })), !compact && _jsx(Text, { children: " " }), !compact && showTodoItems && todoWindow.hiddenAbove > 0 && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [' ', "+", todoWindow.hiddenAbove, " above"] })), showTodoItems && todoWindow.visible.map(({ item, index }) => {
|
|
164
|
-
const active = item.status === 'in_progress';
|
|
165
|
-
// The spinner is gated on `running`: a spinner while the agent is idle is a
|
|
166
|
-
// lie about the state of the world, and this panel outlives the run that
|
|
167
|
-
// filled it. Reduced motion and a non-Unicode terminal fall back to the same
|
|
168
|
-
// static marker, exactly as `AssistantEntry` and `TeamPanel` do.
|
|
169
|
-
const animate = active && running && !reducedMotion && caps.unicode;
|
|
170
|
-
return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { flexShrink: 0, width: MARKER_COLS, children: _jsx(Text, { color: rowColor(item, theme), bold: active, children: animate ? _jsx(Spinner, { type: "dots" }) : marker(item, glyphs) }) }), showIndex && (_jsx(Box, { flexShrink: 0, width: INDEX_COLS, children: _jsx(Text, { color: theme.muted, children: String(index + 1).padStart(2) }) })), _jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx(Text, { wrap: "truncate", color: rowColor(item, theme), bold: active, children: active ? item.activeForm : item.content }) })] }, `${index}-${item.content}`));
|
|
171
|
-
}), phase === 'verify' && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [' ', "all steps complete"] })), showCompactFooter && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: ["-", todoWindow.hiddenAbove, " +", todoWindow.hiddenBelow] })), !compact && showTodoItems && todoWindow.hiddenBelow > 0 && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [' ', "+", todoWindow.hiddenBelow, " more"] })), acceptanceSection && acceptanceSection.reason === 'summary' && (_jsxs(Text, { wrap: "truncate", color: acceptanceSummaryTone, children: [' ', "AC ", summaryCount(acceptance)] })), acceptanceSection && acceptanceSection.reason === 'visible' && (_jsxs(_Fragment, { children: [_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx(Text, { wrap: "truncate", color: theme.accent, bold: true, children: phase === 'verify' ? VERIFY_LABEL : ACCEPT_LABEL }) }), _jsx(Box, { width: acceptanceCountLabel.length, flexShrink: 0, children: _jsx(Text, { wrap: "truncate", color: acceptanceTone, children: acceptanceCountLabel }) })] }), acceptanceWindow.visible.map(({ item, index }) => {
|
|
172
|
-
const active = item.status === 'in_progress';
|
|
173
|
-
const animate = active && running && !reducedMotion && caps.unicode;
|
|
174
|
-
return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { flexShrink: 0, width: MARKER_COLS + 1, children: _jsx(Text, { color: acceptanceRowColor(item, theme), bold: active, children: animate ? _jsx(Spinner, { type: "dots" }) : acceptanceMarker(item, glyphs) }) }), _jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx(Text, { wrap: "truncate", color: acceptanceRowColor(item, theme), bold: active, children: item.content }) })] }, `acc-${index}-${item.content}`));
|
|
175
|
-
})] }))] }, glyphs.railVertical));
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Does the section's count fit beside its label? The same width guard the TODO
|
|
179
|
-
* header uses for ` done`, so a narrow rail drops the suffix rather than the number.
|
|
180
|
-
*/
|
|
181
|
-
function fitsDone(width, countText, label) {
|
|
182
|
-
return width - CHROME_COLS >= label.length + 1 + countText.length + ' done'.length;
|
|
183
|
-
}
|
|
184
|
-
/** `<checked>/<total>`, ` !<failed>`, and ` done` when every criterion passed. */
|
|
185
|
-
function acceptanceCountText(acceptance, width) {
|
|
186
|
-
if (!acceptance)
|
|
187
|
-
return '';
|
|
188
|
-
const base = `${acceptance.checkedCount}/${acceptance.total}`;
|
|
189
|
-
const failed = acceptance.failedCount > 0 ? ` !${acceptance.failedCount}` : '';
|
|
190
|
-
const allPassed = acceptance.checkedCount === acceptance.total && acceptance.failedCount === 0;
|
|
191
|
-
const done = allPassed && fitsDone(width, base, VERIFY_LABEL) ? ' done' : '';
|
|
192
|
-
return `${base}${failed}${done}`;
|
|
193
|
-
}
|
|
194
|
-
/** The `summary` rung's single line: `2/5`, plus ` !1` when something failed. */
|
|
195
|
-
function summaryCount(acceptance) {
|
|
196
|
-
if (!acceptance)
|
|
197
|
-
return '';
|
|
198
|
-
return `${acceptance.checkedCount}/${acceptance.total}` +
|
|
199
|
-
(acceptance.failedCount > 0 ? ` !${acceptance.failedCount}` : '');
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* All passed reads as done, any failure reads as an error, everything else is
|
|
203
|
-
* muted - the same three-rung colour ladder the TODO header uses.
|
|
204
|
-
*/
|
|
205
|
-
function acceptanceColor(acceptance, theme) {
|
|
206
|
-
if (!acceptance)
|
|
207
|
-
return theme.muted;
|
|
208
|
-
if (acceptance.failedCount > 0)
|
|
209
|
-
return theme.toolError;
|
|
210
|
-
if (acceptance.total > 0 && acceptance.checkedCount === acceptance.total) {
|
|
211
|
-
return theme.toolDone;
|
|
212
|
-
}
|
|
213
|
-
return theme.muted;
|
|
214
|
-
}
|
package/dist/ui/Transcript.d.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/** Virtualized full-screen transcript and entry cards. */
|
|
2
|
-
/** Virtualized full-screen transcript and shared entry cards. */
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { type Theme } from './theme.js';
|
|
5
|
-
import type { TermCapabilities } from './capabilities.js';
|
|
6
|
-
import { type DensityMode } from './density.js';
|
|
7
|
-
import type { Entry } from '../agent/reducer.js';
|
|
8
|
-
import { type TailSink } from './layout/follow-state.js';
|
|
9
|
-
import type { HeightStore } from './use-height-store.js';
|
|
10
|
-
interface TranscriptProps {
|
|
11
|
-
entries: Entry[];
|
|
12
|
-
expandedToolIds: Record<string, true>;
|
|
13
|
-
thinkingVisible: boolean;
|
|
14
|
-
reducedMotion: boolean;
|
|
15
|
-
density: DensityMode;
|
|
16
|
-
/**
|
|
17
|
-
* Wall-clock seconds, threaded from `App`'s existing 200 ms ticker, for the
|
|
18
|
-
* live tool card's stall row (agent-activity-presentation-live §3.3.4 / D-36).
|
|
19
|
-
*
|
|
20
|
-
* The entry map decides per entry whether to pass it on, and it
|
|
21
|
-
* may pass it unconditionally: `ToolCard` is `React.memo` with the default
|
|
22
|
-
* comparator, so a prop that changes every second on every card would defeat
|
|
23
|
-
* that boundary for the whole transcript.
|
|
24
|
-
*/
|
|
25
|
-
nowSec?: number;
|
|
26
|
-
theme: Theme;
|
|
27
|
-
caps: TermCapabilities;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* The value `EntryView` should receive for `nowSec` on THIS entry.
|
|
31
|
-
*
|
|
32
|
-
* `undefined` for everything that is not a running tool, which is what keeps
|
|
33
|
-
* every other card's memo boundary intact — `undefined === undefined` in the
|
|
34
|
-
* comparator, on every frame, forever.
|
|
35
|
-
*
|
|
36
|
-
* EXPORTED for `ui/scrollback/LiveTail.tsx` (release-gate-and-native-panels §6.5), and
|
|
37
|
-
* that is the whole of this feature's change to this file: the live region mounts the
|
|
38
|
-
* same `EntryView` the transcript does, so it must feed it the same per-entry clock.
|
|
39
|
-
* A copy of this rule in the band would be a second answer to "does this card tick?"
|
|
40
|
-
* and the two would disagree the first time a consumer is added.
|
|
41
|
-
*/
|
|
42
|
-
export declare function nowSecFor(entry: Entry, nowSec: number | undefined): number | undefined;
|
|
43
|
-
export interface EntryViewProps {
|
|
44
|
-
entry: Entry;
|
|
45
|
-
/** Previous entry in the list; `undefined` for the first item. */
|
|
46
|
-
prev: Entry | undefined;
|
|
47
|
-
expanded: boolean;
|
|
48
|
-
thinkingVisible: boolean;
|
|
49
|
-
reducedMotion: boolean;
|
|
50
|
-
density: DensityMode;
|
|
51
|
-
theme: Theme;
|
|
52
|
-
caps: TermCapabilities;
|
|
53
|
-
/** Wall-clock seconds; set ONLY on a running tool entry (§3.3.4 / P1-3). */
|
|
54
|
-
nowSec?: number;
|
|
55
|
-
}
|
|
56
|
-
declare function EntryViewImpl({ entry, prev, expanded, thinkingVisible, reducedMotion, density, theme, caps, nowSec, }: EntryViewProps): React.ReactElement | null;
|
|
57
|
-
/**
|
|
58
|
-
* THE memo boundary that makes a long transcript cheap (L2 / R3).
|
|
59
|
-
*
|
|
60
|
-
* The comparator is written out rather than defaulted because `prev` is the one
|
|
61
|
-
* prop whose identity matters for a reason the type does not show: it feeds
|
|
62
|
-
* `separationRows`, so an entry whose PREDECESSOR changed kind must re-render
|
|
63
|
-
* even though the entry itself did not.
|
|
64
|
-
*
|
|
65
|
-
* I-L2-1 — `theme` and `caps` are `useMemo`d in `App.tsx` and are therefore
|
|
66
|
-
* referentially stable across frames. If a future change makes either a fresh
|
|
67
|
-
* object per render, EVERY boundary below becomes a no-op AND NOTHING FAILS;
|
|
68
|
-
* `render-memo.test.tsx` asserts that stability directly so the trap is a red
|
|
69
|
-
* test rather than a silent regression.
|
|
70
|
-
*/
|
|
71
|
-
export declare const EntryView: React.MemoExoticComponent<typeof EntryViewImpl>;
|
|
72
|
-
export declare function TranscriptList({ entries, expandedToolIds, thinkingVisible, reducedMotion, density, nowSec, theme, caps, windowSize, cols, heights, mountedSink, tailSink, }: TranscriptProps & {
|
|
73
|
-
windowSize: number;
|
|
74
|
-
/** The viewport's own width — narrower than the terminal when the rail is up. */
|
|
75
|
-
cols: number;
|
|
76
|
-
heights: HeightStore;
|
|
77
|
-
/**
|
|
78
|
-
* Written during render with the number of entries actually mounted, for
|
|
79
|
-
* `/perf` (AC-9). A ref rather than a callback: a `setState` here would make
|
|
80
|
-
* observing the render budget cost a render.
|
|
81
|
-
*/
|
|
82
|
-
mountedSink?: {
|
|
83
|
-
current: number;
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Rows appended AT THE TAIL, published for `ScrollViewport`'s Rule A
|
|
87
|
-
* (tui-selection-and-scroll-follow §4.3.1a). THIS IS P0-1's FIX.
|
|
88
|
-
*
|
|
89
|
-
* It lives here because this is the only place that holds the per-entry height
|
|
90
|
-
* table, and therefore the only place that can tell "the agent produced output"
|
|
91
|
-
* apart from "an entry above changed height" or "the horizon dropped an entry
|
|
92
|
-
* off the front". Reacting to `measureElement(inner).height` instead conflates
|
|
93
|
-
* all three, breaks `virtual-window.ts`'s invariant V-4, and closes an
|
|
94
|
-
* offset → mounted-set → measured-height → offset loop.
|
|
95
|
-
*
|
|
96
|
-
* A REF WRITTEN DURING RENDER, exactly as `mountedSink` above is and for the
|
|
97
|
-
* same reason: a `setState` here would make observing the tail cost a render.
|
|
98
|
-
* If this sink ever needs more than that — a `setState`, or the geometry
|
|
99
|
-
* context — STOP AND RE-REVIEW: the loop above is open again, and the correct
|
|
100
|
-
* response is full entry anchoring (D-13's rejected alternative), not a larger
|
|
101
|
-
* sink.
|
|
102
|
-
*/
|
|
103
|
-
tailSink?: TailSink;
|
|
104
|
-
}): React.ReactElement;
|
|
105
|
-
export {};
|