@aragon-agent/cli 0.6.47 → 0.6.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +27 -6
- package/dist/agent/coalesce.d.ts +1 -1
- package/dist/agent/controller.d.ts +21 -21
- package/dist/agent/controller.js +13 -13
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +79 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +29 -29
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +6 -6
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +1 -1
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +3 -3
- package/dist/proc/wait.d.ts +1 -1
- package/dist/proc/wait.js +1 -1
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +1 -1
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +3 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +2 -2
- package/dist/tools/job-tools.js +4 -4
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -857
- package/dist/agent/reducer.js +0 -1646
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1383
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -214
- package/dist/proc/limits.js +0 -221
- package/dist/proc/progress.d.ts +0 -47
- package/dist/proc/progress.js +0 -163
- package/dist/proc/types.d.ts +0 -269
- package/dist/proc/types.js +0 -15
- package/dist/proc/wait-view.d.ts +0 -65
- package/dist/proc/wait-view.js +0 -66
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -51
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -130
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -258
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -169
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/entries/WaitCard.d.ts +0 -37
- package/dist/ui/entries/WaitCard.js +0 -92
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -84
- package/dist/ui/interaction-copy.js +0 -41
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -140
- package/dist/ui/layout/status-layout.js +0 -262
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -494
- package/dist/ui/layout/wait-bar.d.ts +0 -34
- package/dist/ui/layout/wait-bar.js +0 -48
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -63
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -130
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Render a `user` entry that carries an invocation card (tui-invocation-cards).
|
|
3
|
-
*
|
|
4
|
-
* Like `UserEntry`, this renders CONTENT only: the role glyph, rail and spacing belong
|
|
5
|
-
* to `EntryFrame`, so the card stays "the user's turn" for density, turn counting and
|
|
6
|
-
* the settled boundary. The header text comes from `invocationHeaderSegments` and is
|
|
7
|
-
* never assembled here (RV-10); the row count it implies is `invocationCardRows`.
|
|
8
|
-
*/
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import type { Theme } from '../theme.js';
|
|
11
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
12
|
-
import type { InvocationCard as InvocationCardData } from '../../agent/invocation-card.js';
|
|
13
|
-
declare function InvocationCardImpl({ card, theme, caps, }: {
|
|
14
|
-
card: InvocationCardData;
|
|
15
|
-
theme: Theme;
|
|
16
|
-
caps: TermCapabilities;
|
|
17
|
-
}): React.ReactElement;
|
|
18
|
-
/** Default comparator: `mapEntry` preserves identity for untouched entries (L2 / R3). */
|
|
19
|
-
export declare const InvocationCard: React.MemoExoticComponent<typeof InvocationCardImpl>;
|
|
20
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Render a `user` entry that carries an invocation card (tui-invocation-cards).
|
|
4
|
-
*
|
|
5
|
-
* Like `UserEntry`, this renders CONTENT only: the role glyph, rail and spacing belong
|
|
6
|
-
* to `EntryFrame`, so the card stays "the user's turn" for density, turn counting and
|
|
7
|
-
* the settled boundary. The header text comes from `invocationHeaderSegments` and is
|
|
8
|
-
* never assembled here (RV-10); the row count it implies is `invocationCardRows`.
|
|
9
|
-
*/
|
|
10
|
-
import React from 'react';
|
|
11
|
-
import { Box, Text } from 'ink';
|
|
12
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
13
|
-
import { invocationHeaderSegments, invocationHiddenText, invocationInputText, } from '../layout/invocation-card.js';
|
|
14
|
-
import { GUTTER_WIDTH } from '../layout/Gutter.js';
|
|
15
|
-
import { useTerminalSize } from '../layout/useTerminalSize.js';
|
|
16
|
-
import { fitCells } from '../layout/cells.js';
|
|
17
|
-
function toneColor(tone, theme) {
|
|
18
|
-
if (tone === 'label')
|
|
19
|
-
return theme.accent;
|
|
20
|
-
if (tone === 'name')
|
|
21
|
-
return theme.user;
|
|
22
|
-
return theme.muted;
|
|
23
|
-
}
|
|
24
|
-
function InvocationCardImpl({ card, theme, caps, }) {
|
|
25
|
-
const glyphs = pickGlyphs(caps);
|
|
26
|
-
const { cols } = useTerminalSize();
|
|
27
|
-
const usable = Math.max(1, cols - GUTTER_WIDTH);
|
|
28
|
-
const header = invocationHeaderSegments(card, glyphs, usable);
|
|
29
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { wrap: "truncate", children: header.map((part, index) => (_jsx(Text, { color: toneColor(part.tone, theme), bold: part.bold, children: part.text }, index))) }), card.input !== '' && _jsx(Text, { color: theme.user, children: invocationInputText(card) }), card.inputHidden > 0 && (_jsx(Text, { color: theme.muted, wrap: "truncate", children: invocationHiddenText(card, glyphs) })), card.note !== undefined && card.note !== '' && (_jsx(Text, { color: theme.muted, wrap: "truncate", children: fitCells(card.note, usable, glyphs.ellipsis) }))] }));
|
|
30
|
-
}
|
|
31
|
-
/** Default comparator: `mapEntry` preserves identity for untouched entries (L2 / R3). */
|
|
32
|
-
export const InvocationCard = React.memo(InvocationCardImpl);
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Render a queued steering message (tui-shift-enter-copy-queue 5.4).
|
|
3
|
-
*
|
|
4
|
-
* ONE ROW, ALWAYS. `wrap="truncate"` -- the run-status-row width policy, for
|
|
5
|
-
* the height-estimate reason DiffView learned the hard way: a queued message
|
|
6
|
-
* can be arbitrarily long, and an entry whose wrapped height disagrees with its
|
|
7
|
-
* estimate is exactly the one the virtual window never re-measures.
|
|
8
|
-
*
|
|
9
|
-
* The glyph and the rail belong to `EntryFrame`, exactly as for every other
|
|
10
|
-
* entry; this component renders content only.
|
|
11
|
-
*/
|
|
12
|
-
import React from 'react';
|
|
13
|
-
import type { Theme } from '../theme.js';
|
|
14
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
15
|
-
declare function QueuedEntryImpl({ text, theme, caps, }: {
|
|
16
|
-
text: string;
|
|
17
|
-
theme: Theme;
|
|
18
|
-
caps: TermCapabilities;
|
|
19
|
-
}): React.ReactElement;
|
|
20
|
-
/**
|
|
21
|
-
* `React.memo` with the DEFAULT comparator, like every sibling entry card: the
|
|
22
|
-
* reducer rebuilds the entry object only when it changes, and a `queued` entry
|
|
23
|
-
* changes exactly twice -- once when appended, once when it is rewritten into a
|
|
24
|
-
* `user` entry and stops being this component's problem.
|
|
25
|
-
*/
|
|
26
|
-
export declare const QueuedEntry: React.MemoExoticComponent<typeof QueuedEntryImpl>;
|
|
27
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Render a queued steering message (tui-shift-enter-copy-queue 5.4).
|
|
4
|
-
*
|
|
5
|
-
* ONE ROW, ALWAYS. `wrap="truncate"` -- the run-status-row width policy, for
|
|
6
|
-
* the height-estimate reason DiffView learned the hard way: a queued message
|
|
7
|
-
* can be arbitrarily long, and an entry whose wrapped height disagrees with its
|
|
8
|
-
* estimate is exactly the one the virtual window never re-measures.
|
|
9
|
-
*
|
|
10
|
-
* The glyph and the rail belong to `EntryFrame`, exactly as for every other
|
|
11
|
-
* entry; this component renders content only.
|
|
12
|
-
*/
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import { Text } from 'ink';
|
|
15
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
16
|
-
import { expandTabs } from '../display-tab.js';
|
|
17
|
-
function QueuedEntryImpl({ text, theme, caps, }) {
|
|
18
|
-
const glyphs = pickGlyphs(caps);
|
|
19
|
-
const lines = text.split('\n');
|
|
20
|
-
// Same reason as `UserEntry`: a queued draft is a draft, so its TABs must
|
|
21
|
-
// occupy the columns the composer showed them at.
|
|
22
|
-
const first = expandTabs(lines[0] ?? '');
|
|
23
|
-
const extra = lines.length - 1;
|
|
24
|
-
const suffix = extra > 0 ? ` ${glyphs.ellipsis}+${extra} line${extra === 1 ? '' : 's'}` : '';
|
|
25
|
-
return (_jsx(Text, { wrap: "truncate", color: theme.muted, children: `Queue: ${first}${suffix}` }));
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* `React.memo` with the DEFAULT comparator, like every sibling entry card: the
|
|
29
|
-
* reducer rebuilds the entry object only when it changes, and a `queued` entry
|
|
30
|
-
* changes exactly twice -- once when appended, once when it is rewritten into a
|
|
31
|
-
* `user` entry and stops being this component's problem.
|
|
32
|
-
*/
|
|
33
|
-
export const QueuedEntry = React.memo(QueuedEntryImpl);
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RetryCard — the one-line retry entry (llm-api-retry-backoff §6.5).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`, and the line itself is built by
|
|
5
|
-
* the pure `formatRetryLine` in `agent/retry-view.ts` so it can be asserted
|
|
6
|
-
* without a terminal.
|
|
7
|
-
*
|
|
8
|
-
* ONE LINE. ALWAYS ONE LINE. Ten retries rendered as ten notices would bury the
|
|
9
|
-
* transcript in the one moment the user most needs it legible, so this card is
|
|
10
|
-
* rewritten in place for the whole turn and settles into a single row of history.
|
|
11
|
-
* Amber while in flight, muted once recovered, red once the ladder is exhausted.
|
|
12
|
-
*/
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import type { Theme } from '../theme.js';
|
|
15
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
16
|
-
import { type RetryPhase } from '../../agent/retry-view.js';
|
|
17
|
-
export interface RetryCardProps {
|
|
18
|
-
attempt: number;
|
|
19
|
-
maxRetries: number;
|
|
20
|
-
errorType: string;
|
|
21
|
-
phase: RetryPhase;
|
|
22
|
-
resumeAt?: number;
|
|
23
|
-
totalRetries?: number;
|
|
24
|
-
elapsedMs?: number;
|
|
25
|
-
/**
|
|
26
|
-
* `Date.now()` at render, injected so the component stays testable.
|
|
27
|
-
*
|
|
28
|
-
* The countdown is recomputed from `resumeAt - now` on every frame; `App` runs a
|
|
29
|
-
* 1 Hz tick ONLY while the phase is `waiting`, so an idle session has no timer.
|
|
30
|
-
*/
|
|
31
|
-
now: number;
|
|
32
|
-
/**
|
|
33
|
-
* Whether Esc would actually be felt. `App` passes `true` only for an
|
|
34
|
-
* interactive session, because the hint has to be the truth: the wait is
|
|
35
|
-
* signal-aware in `withRetry`, so Esc lands within a frame — but there is no Esc
|
|
36
|
-
* in headless mode to promise.
|
|
37
|
-
*/
|
|
38
|
-
interactive?: boolean;
|
|
39
|
-
reducedMotion?: boolean;
|
|
40
|
-
theme: Theme;
|
|
41
|
-
caps: TermCapabilities;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* The card's tone. `exhausted` is the only failure: an `interrupted` card records
|
|
45
|
-
* a user decision, and colouring that red would blame them for it.
|
|
46
|
-
*/
|
|
47
|
-
export declare function retryCardColor(phase: RetryPhase, theme: Theme): string | undefined;
|
|
48
|
-
declare function RetryCardImpl(props: RetryCardProps): React.ReactElement;
|
|
49
|
-
/**
|
|
50
|
-
* `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
|
|
51
|
-
* `mapEntry` preserves object identity for untouched entries, and `theme` / `caps`
|
|
52
|
-
* are `useMemo`d in `App.tsx` (I-L2-1). `now` changes once a second while the card
|
|
53
|
-
* is waiting, which is exactly when it must re-render.
|
|
54
|
-
*/
|
|
55
|
-
export declare const RetryCard: React.MemoExoticComponent<typeof RetryCardImpl>;
|
|
56
|
-
export {};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* RetryCard — the one-line retry entry (llm-api-retry-backoff §6.5).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`, and the line itself is built by
|
|
6
|
-
* the pure `formatRetryLine` in `agent/retry-view.ts` so it can be asserted
|
|
7
|
-
* without a terminal.
|
|
8
|
-
*
|
|
9
|
-
* ONE LINE. ALWAYS ONE LINE. Ten retries rendered as ten notices would bury the
|
|
10
|
-
* transcript in the one moment the user most needs it legible, so this card is
|
|
11
|
-
* rewritten in place for the whole turn and settles into a single row of history.
|
|
12
|
-
* Amber while in flight, muted once recovered, red once the ladder is exhausted.
|
|
13
|
-
*/
|
|
14
|
-
import React from 'react';
|
|
15
|
-
import { Box, Text } from 'ink';
|
|
16
|
-
import Spinner from 'ink-spinner';
|
|
17
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
18
|
-
import { formatRetryLine } from '../../agent/retry-view.js';
|
|
19
|
-
/**
|
|
20
|
-
* The card's tone. `exhausted` is the only failure: an `interrupted` card records
|
|
21
|
-
* a user decision, and colouring that red would blame them for it.
|
|
22
|
-
*/
|
|
23
|
-
export function retryCardColor(phase, theme) {
|
|
24
|
-
if (phase === 'waiting' || phase === 'retrying')
|
|
25
|
-
return theme.noticeWarn;
|
|
26
|
-
if (phase === 'exhausted')
|
|
27
|
-
return theme.noticeError;
|
|
28
|
-
return theme.muted;
|
|
29
|
-
}
|
|
30
|
-
function RetryCardImpl(props) {
|
|
31
|
-
const { attempt, maxRetries, errorType, phase, resumeAt, totalRetries, elapsedMs, now,
|
|
32
|
-
// DEFAULTS TO TRUE: reaching this component means a TUI is mounted, and the
|
|
33
|
-
// TUI always binds Esc to abort. The prop exists so headless-shaped callers
|
|
34
|
-
// and the render tests can assert the suppressed form.
|
|
35
|
-
interactive = true, reducedMotion, theme, caps, } = props;
|
|
36
|
-
const glyphs = pickGlyphs(caps);
|
|
37
|
-
const color = retryCardColor(phase, theme);
|
|
38
|
-
const inFlight = phase === 'waiting' || phase === 'retrying';
|
|
39
|
-
const line = formatRetryLine({
|
|
40
|
-
attempt,
|
|
41
|
-
maxRetries,
|
|
42
|
-
errorType,
|
|
43
|
-
phase,
|
|
44
|
-
...(resumeAt !== undefined ? { resumeAt } : {}),
|
|
45
|
-
...(totalRetries !== undefined ? { totalRetries } : {}),
|
|
46
|
-
...(elapsedMs !== undefined ? { elapsedMs } : {}),
|
|
47
|
-
}, glyphs, now);
|
|
48
|
-
// REDUCED MOTION SUPPRESSES THE SPINNER AND KEEPS THE COUNTDOWN. A frozen number
|
|
49
|
-
// is not calmer, it is broken: reduced motion is about animation, and a
|
|
50
|
-
// countdown is information.
|
|
51
|
-
const animate = inFlight && !reducedMotion && caps.unicode;
|
|
52
|
-
return (_jsxs(Box, { flexDirection: "row", children: [animate ? (_jsxs(Text, { color: color, children: [_jsx(Spinner, { type: "dots" }), ' '] })) : null, _jsx(Text, { color: color, wrap: "truncate", children: line }), phase === 'waiting' && interactive && (_jsxs(Text, { color: theme.muted, children: [' ', "Esc to cancel"] }))] }));
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
|
|
56
|
-
* `mapEntry` preserves object identity for untouched entries, and `theme` / `caps`
|
|
57
|
-
* are `useMemo`d in `App.tsx` (I-L2-1). `now` changes once a second while the card
|
|
58
|
-
* is waiting, which is exactly when it must re-render.
|
|
59
|
-
*/
|
|
60
|
-
export const RetryCard = React.memo(RetryCardImpl);
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ServiceCard — one supervised background service in the transcript
|
|
3
|
-
* (background-service-supervision §3.8).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`. `ui/` is inside
|
|
6
|
-
* `glyphs.test.ts::inScope`, so a literal here fails the scan.
|
|
7
|
-
*
|
|
8
|
-
* NO ANIMATED SPINNER, IN ANY STATE (D-14 / P2-7). That is STRICTER than
|
|
9
|
-
* `single-spinner-while-running` D-1, which suppresses animation only while the
|
|
10
|
-
* activity line is mounted — and a service can sit at `starting` while the agent
|
|
11
|
-
* is IDLE, where D-1's "one owner on screen" argument does not reach because
|
|
12
|
-
* there is no owner on screen. A card that animated only when the agent happened
|
|
13
|
-
* to be idle would be the worst of both. It uses `glyphs.spinnerStill`
|
|
14
|
-
* throughout and still accepts `reducedMotion` for consistency with
|
|
15
|
-
* `EntryView`'s comparator.
|
|
16
|
-
*
|
|
17
|
-
* TWO SHAPES, ONE COMPONENT. `terminal: true` is the one-row record a service's
|
|
18
|
-
* exit appends (D-11); everything else is the live card. They share a component
|
|
19
|
-
* because they share a colour ladder and a status vocabulary, and splitting them
|
|
20
|
-
* would be two places to keep those in step.
|
|
21
|
-
*/
|
|
22
|
-
import React from 'react';
|
|
23
|
-
import type { Theme } from '../theme.js';
|
|
24
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
25
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
26
|
-
import type { JobKind, ServiceStatus } from '../../proc/types.js';
|
|
27
|
-
export interface ServiceCardProps {
|
|
28
|
-
serviceId: string;
|
|
29
|
-
/** `service` or `task`: NOUN ONLY, never a rename of the entry kind (I-2). */
|
|
30
|
-
jobKind?: JobKind;
|
|
31
|
-
command: string;
|
|
32
|
-
status: ServiceStatus;
|
|
33
|
-
url?: string;
|
|
34
|
-
port?: number;
|
|
35
|
-
exitCode: number | null;
|
|
36
|
-
startedAt: number;
|
|
37
|
-
readyAt?: number;
|
|
38
|
-
endedAt?: number;
|
|
39
|
-
rows: readonly string[];
|
|
40
|
-
/** The one-row record a terminal transition appends. */
|
|
41
|
-
terminal?: boolean;
|
|
42
|
-
killIncomplete?: boolean;
|
|
43
|
-
expanded?: boolean;
|
|
44
|
-
/** The extracted progress line, one row, already clipped by the supervisor. */
|
|
45
|
-
progress?: string;
|
|
46
|
-
/** Silence past `jobs.stallSeconds` - a muted badge, never an action. */
|
|
47
|
-
stalled?: boolean;
|
|
48
|
-
/** When output last arrived; with `nowSec` it renders `no output 6m02s`. */
|
|
49
|
-
lastOutputAt?: number;
|
|
50
|
-
/**
|
|
51
|
-
* The transcript's 1 Hz clock (D-8).
|
|
52
|
-
*
|
|
53
|
-
* ONE CLOCK FOR EVERYTHING. A per-card `setInterval` would be one timer per job,
|
|
54
|
-
* and the transcript's comparator already includes `nowSec`, so the live elapsed
|
|
55
|
-
* figure and the `no output` figure update for free.
|
|
56
|
-
*/
|
|
57
|
-
nowSec?: number;
|
|
58
|
-
/** Accepted for comparator consistency; this card never animates (D-14). */
|
|
59
|
-
reducedMotion?: boolean;
|
|
60
|
-
theme: Theme;
|
|
61
|
-
caps: TermCapabilities;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* The card's colour.
|
|
65
|
-
*
|
|
66
|
-
* `running` is `toolRunning` rather than the accent: it is alive and listening
|
|
67
|
-
* on nothing, which is a real third state and not a lesser `ready`. A clean
|
|
68
|
-
* `exited(0)` is muted, because a command that finished on purpose is not a
|
|
69
|
-
* failure.
|
|
70
|
-
*/
|
|
71
|
-
export declare function serviceCardColor(props: Pick<ServiceCardProps, 'status' | 'exitCode'>, theme: Theme): string | undefined;
|
|
72
|
-
/** The status glyph, by the same ladder as the colour. */
|
|
73
|
-
export declare function serviceGlyph(props: Pick<ServiceCardProps, 'status' | 'exitCode'>, glyphs: ReturnType<typeof pickGlyphs>): string;
|
|
74
|
-
declare function ServiceCardImpl(props: ServiceCardProps): React.ReactElement;
|
|
75
|
-
/**
|
|
76
|
-
* `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
|
|
77
|
-
* `mapEntry` already preserves object identity for untouched entries, so the
|
|
78
|
-
* props below are stable references on a settled card, and `theme` / `caps` are
|
|
79
|
-
* `useMemo`d in `App.tsx` (I-L2-1).
|
|
80
|
-
*/
|
|
81
|
-
export declare const ServiceCard: React.MemoExoticComponent<typeof ServiceCardImpl>;
|
|
82
|
-
export {};
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* ServiceCard — one supervised background service in the transcript
|
|
4
|
-
* (background-service-supervision §3.8).
|
|
5
|
-
*
|
|
6
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`. `ui/` is inside
|
|
7
|
-
* `glyphs.test.ts::inScope`, so a literal here fails the scan.
|
|
8
|
-
*
|
|
9
|
-
* NO ANIMATED SPINNER, IN ANY STATE (D-14 / P2-7). That is STRICTER than
|
|
10
|
-
* `single-spinner-while-running` D-1, which suppresses animation only while the
|
|
11
|
-
* activity line is mounted — and a service can sit at `starting` while the agent
|
|
12
|
-
* is IDLE, where D-1's "one owner on screen" argument does not reach because
|
|
13
|
-
* there is no owner on screen. A card that animated only when the agent happened
|
|
14
|
-
* to be idle would be the worst of both. It uses `glyphs.spinnerStill`
|
|
15
|
-
* throughout and still accepts `reducedMotion` for consistency with
|
|
16
|
-
* `EntryView`'s comparator.
|
|
17
|
-
*
|
|
18
|
-
* TWO SHAPES, ONE COMPONENT. `terminal: true` is the one-row record a service's
|
|
19
|
-
* exit appends (D-11); everything else is the live card. They share a component
|
|
20
|
-
* because they share a colour ladder and a status vocabulary, and splitting them
|
|
21
|
-
* would be two places to keep those in step.
|
|
22
|
-
*/
|
|
23
|
-
import React from 'react';
|
|
24
|
-
import { Box, Text } from 'ink';
|
|
25
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
26
|
-
import { railBorderProps } from '../layout/Gutter.js';
|
|
27
|
-
import { formatDuration } from '../../agent/usage.js';
|
|
28
|
-
/** Tail rows the collapsed card draws. Mirrored as a NUMBER in `virtual-window.ts`. */
|
|
29
|
-
const COLLAPSED_TAIL_ROWS = 2;
|
|
30
|
-
/** Tail rows the expanded card draws — the snapshot's own cap. */
|
|
31
|
-
const EXPANDED_TAIL_ROWS = 8;
|
|
32
|
-
/**
|
|
33
|
-
* The card's colour.
|
|
34
|
-
*
|
|
35
|
-
* `running` is `toolRunning` rather than the accent: it is alive and listening
|
|
36
|
-
* on nothing, which is a real third state and not a lesser `ready`. A clean
|
|
37
|
-
* `exited(0)` is muted, because a command that finished on purpose is not a
|
|
38
|
-
* failure.
|
|
39
|
-
*/
|
|
40
|
-
export function serviceCardColor(props, theme) {
|
|
41
|
-
switch (props.status) {
|
|
42
|
-
case 'starting':
|
|
43
|
-
return theme.muted;
|
|
44
|
-
case 'ready':
|
|
45
|
-
return theme.accent;
|
|
46
|
-
case 'running':
|
|
47
|
-
return theme.toolRunning;
|
|
48
|
-
case 'failed':
|
|
49
|
-
return theme.toolError;
|
|
50
|
-
case 'exited':
|
|
51
|
-
return props.exitCode === 0 ? theme.muted : theme.toolError;
|
|
52
|
-
case 'stopped':
|
|
53
|
-
return theme.muted;
|
|
54
|
-
default:
|
|
55
|
-
return theme.muted;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/** The status glyph, by the same ladder as the colour. */
|
|
59
|
-
export function serviceGlyph(props, glyphs) {
|
|
60
|
-
switch (props.status) {
|
|
61
|
-
case 'starting':
|
|
62
|
-
return glyphs.toolPending;
|
|
63
|
-
case 'ready':
|
|
64
|
-
return glyphs.toolDone;
|
|
65
|
-
case 'running':
|
|
66
|
-
return glyphs.toolRunning;
|
|
67
|
-
case 'failed':
|
|
68
|
-
return glyphs.toolError;
|
|
69
|
-
case 'exited':
|
|
70
|
-
return props.exitCode === 0 ? glyphs.toolDone : glyphs.toolError;
|
|
71
|
-
case 'stopped':
|
|
72
|
-
return glyphs.toolPending;
|
|
73
|
-
default:
|
|
74
|
-
return glyphs.toolPending;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/** The right-hand status clause: what happened, and how long it took. */
|
|
78
|
-
function statusClause(props, dot) {
|
|
79
|
-
const { status, exitCode, startedAt, readyAt, endedAt } = props;
|
|
80
|
-
if (status === 'ready') {
|
|
81
|
-
const took = readyAt === undefined ? '' : `${dot}${formatDuration(readyAt - startedAt)}`;
|
|
82
|
-
return `ready${took}`;
|
|
83
|
-
}
|
|
84
|
-
// A LIVE JOB SHOWS ITS ELAPSED TIME (D-8), because a task's whole story is
|
|
85
|
-
// "how long has this been going". The number comes from the transcript's 1 Hz
|
|
86
|
-
// `nowSec`; without it the card falls back to the spawn time and reads `0ms`,
|
|
87
|
-
// which is honest about never having been ticked rather than wrong about it.
|
|
88
|
-
if (status === 'running') {
|
|
89
|
-
// NO CLOCK, NO FIGURE. Falling back to `startedAt` would print `0ms` on every
|
|
90
|
-
// settled frame, which reads as "it just started" - a wrong number rather than
|
|
91
|
-
// an absent one.
|
|
92
|
-
if (props.nowSec === undefined)
|
|
93
|
-
return 'running';
|
|
94
|
-
const elapsed = Math.max(0, props.nowSec * 1000 - startedAt);
|
|
95
|
-
return `running${dot}${formatDuration(elapsed)}`;
|
|
96
|
-
}
|
|
97
|
-
if (status === 'starting')
|
|
98
|
-
return 'starting';
|
|
99
|
-
const lived = endedAt === undefined ? '' : `${dot}${formatDuration(endedAt - startedAt)}`;
|
|
100
|
-
if (status === 'stopped')
|
|
101
|
-
return `stopped${lived}`;
|
|
102
|
-
if (status === 'failed')
|
|
103
|
-
return `failed${lived}`;
|
|
104
|
-
return `exited${exitCode === null ? '' : ` code ${exitCode}`}${lived}`;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* The progress row, or `undefined` when there is nothing to draw.
|
|
108
|
-
*
|
|
109
|
-
* STALLED OUTRANKS PROGRESS: "no output for 6m" is the more urgent of the two
|
|
110
|
-
* facts, and drawing both would cost a second row the height estimator does not
|
|
111
|
-
* know about. The `no output` figure needs `nowSec`; without it the badge is
|
|
112
|
-
* omitted rather than printed with a wrong number.
|
|
113
|
-
*/
|
|
114
|
-
function progressRow(props) {
|
|
115
|
-
if (props.stalled === true) {
|
|
116
|
-
if (props.nowSec === undefined || props.lastOutputAt === undefined) {
|
|
117
|
-
return { text: 'no output', stalled: true };
|
|
118
|
-
}
|
|
119
|
-
const quiet = Math.max(0, props.nowSec * 1000 - props.lastOutputAt);
|
|
120
|
-
return { text: `no output ${formatDuration(quiet)}`, stalled: true };
|
|
121
|
-
}
|
|
122
|
-
if (props.progress)
|
|
123
|
-
return { text: props.progress, stalled: false };
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
function ServiceCardImpl(props) {
|
|
127
|
-
const { serviceId, command, url, rows, expanded, terminal, theme, caps } = props;
|
|
128
|
-
const glyphs = pickGlyphs(caps);
|
|
129
|
-
const color = serviceCardColor(props, theme);
|
|
130
|
-
const dot = ` ${glyphs.midDot} `;
|
|
131
|
-
const clause = statusClause(props, dot);
|
|
132
|
-
// THE NOUN, NOT THE KIND: `task t1` and `service s1` are the same component
|
|
133
|
-
// drawing two kinds of job, and every id keeps its existing prefix (I-2).
|
|
134
|
-
const noun = props.jobKind === 'task' ? 'task' : 'service';
|
|
135
|
-
// THE TERMINAL RECORD IS ONE ROW, ALWAYS. It is a SECOND event at a SECOND
|
|
136
|
-
// time — the only thing `<Static>` permits once the live card is printed — so
|
|
137
|
-
// it names what happened and nothing else (D-11).
|
|
138
|
-
if (terminal) {
|
|
139
|
-
return (_jsx(Box, { flexDirection: "row", children: _jsxs(Text, { color: color, wrap: "truncate", children: [noun, " ", serviceId, " ", clause, props.killIncomplete ? ' (may have left a detached child)' : ''] }) }));
|
|
140
|
-
}
|
|
141
|
-
const shown = rows.slice(-(expanded ? EXPANDED_TAIL_ROWS : COLLAPSED_TAIL_ROWS));
|
|
142
|
-
const progress = progressRow(props);
|
|
143
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: theme.accent, bold: true, children: [noun, " ", serviceId] }), _jsxs(Text, { color: theme.muted, wrap: "truncate", children: [' ', command] }), _jsxs(Text, { color: color, wrap: "truncate", children: [dot, clause] })] }), progress !== undefined && (_jsx(Box, { flexDirection: "row", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: progress.stalled ? theme.noticeWarn : theme.muted, wrap: "truncate", children: progress.stalled ? progress.text : `[progress] ${progress.text}` }) })), url !== undefined && (_jsxs(Box, { flexDirection: "row", flexShrink: 0, paddingLeft: 1, children: [_jsx(Text, { color: theme.primary, children: url }), _jsxs(Text, { color: theme.muted, children: [dot, "ctrl+c stop", dot, "ctrl+o log"] })] })), shown.length > 0 && (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, ...railBorderProps(glyphs.railVertical, theme.border), children: shown.map((line, index) => (_jsx(Text, { color: theme.muted, wrap: "truncate", children: line }, index))) }))] }));
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
|
|
147
|
-
* `mapEntry` already preserves object identity for untouched entries, so the
|
|
148
|
-
* props below are stable references on a settled card, and `theme` / `caps` are
|
|
149
|
-
* `useMemo`d in `App.tsx` (I-L2-1).
|
|
150
|
-
*/
|
|
151
|
-
export const ServiceCard = React.memo(ServiceCardImpl);
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TeamCard — the settled-dispatch transcript entry (team-subagents §6.3).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`.
|
|
5
|
-
*
|
|
6
|
-
* The panel is EPHEMERAL and this card is the HISTORY. It renders like a
|
|
7
|
-
* `ToolCard` — same `EntryFrame` supplied by `EntryView`, same left rail for the
|
|
8
|
-
* expanded body — so a dispatch reads as one more step in the transcript rather
|
|
9
|
-
* than a second kind of object.
|
|
10
|
-
*
|
|
11
|
-
* `Ctrl+O` expands it to the per-agent summaries, which is why `App.tsx`'s
|
|
12
|
-
* Ctrl+O finder had to widen from `kind === 'tool'` to `tool || team`.
|
|
13
|
-
*/
|
|
14
|
-
import React from 'react';
|
|
15
|
-
import type { Theme } from '../theme.js';
|
|
16
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
17
|
-
import type { SubagentRun } from '../../team/types.js';
|
|
18
|
-
import { type RosterCounts } from '../team-status.js';
|
|
19
|
-
export interface TeamCardProps {
|
|
20
|
-
requested: number;
|
|
21
|
-
runs: SubagentRun[];
|
|
22
|
-
aborted: boolean;
|
|
23
|
-
durationMs?: number;
|
|
24
|
-
active: boolean;
|
|
25
|
-
expanded?: boolean;
|
|
26
|
-
reducedMotion?: boolean;
|
|
27
|
-
theme: Theme;
|
|
28
|
-
caps: TermCapabilities;
|
|
29
|
-
/**
|
|
30
|
-
* Wall-clock seconds, set only while the dispatch is live (`nowSecFor`). WITHOUT
|
|
31
|
-
* IT a running child's elapsed time came from `(endedAt ?? 0) - startedAt` - a
|
|
32
|
-
* negative number clamped to `0ms`, the readout that contradicted the roster
|
|
33
|
-
* beside it (A-1 / E4).
|
|
34
|
-
*/
|
|
35
|
-
nowSec?: number;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* The card's aggregate colour.
|
|
39
|
-
*
|
|
40
|
-
* FAILURES DOMINATE, THEN A CANCELLATION, THEN A DISPATCH THAT NEVER SETTLED.
|
|
41
|
-
* The old version asked `runs.some((r) => !isOk(r))`, so an entry whose children
|
|
42
|
-
* were still working - and one the user had cancelled - was painted `toolError`
|
|
43
|
-
* (A-1 / E8). `RosterCounts` is passed IN rather than recomputed, so this colour
|
|
44
|
-
* and the headline cannot disagree inside one card.
|
|
45
|
-
*/
|
|
46
|
-
export declare function teamCardColor(counts: RosterCounts, active: boolean, aborted: boolean, theme: Theme): string | undefined;
|
|
47
|
-
declare function TeamCardImpl(props: TeamCardProps): React.ReactElement;
|
|
48
|
-
/**
|
|
49
|
-
* `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
|
|
50
|
-
* `mapEntry` already preserves object identity for untouched entries, so the
|
|
51
|
-
* array props below are stable references on a settled card, and `theme` /
|
|
52
|
-
* `caps` are `useMemo`d in `App.tsx` (I-L2-1).
|
|
53
|
-
*/
|
|
54
|
-
export declare const TeamCard: React.MemoExoticComponent<typeof TeamCardImpl>;
|
|
55
|
-
export {};
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* TeamCard — the settled-dispatch transcript entry (team-subagents §6.3).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: every glyph comes from `pickGlyphs`.
|
|
6
|
-
*
|
|
7
|
-
* The panel is EPHEMERAL and this card is the HISTORY. It renders like a
|
|
8
|
-
* `ToolCard` — same `EntryFrame` supplied by `EntryView`, same left rail for the
|
|
9
|
-
* expanded body — so a dispatch reads as one more step in the transcript rather
|
|
10
|
-
* than a second kind of object.
|
|
11
|
-
*
|
|
12
|
-
* `Ctrl+O` expands it to the per-agent summaries, which is why `App.tsx`'s
|
|
13
|
-
* Ctrl+O finder had to widen from `kind === 'tool'` to `tool || team`.
|
|
14
|
-
*/
|
|
15
|
-
import React from 'react';
|
|
16
|
-
import { Box, Text } from 'ink';
|
|
17
|
-
import Spinner from 'ink-spinner';
|
|
18
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
19
|
-
import { railBorderProps } from '../layout/Gutter.js';
|
|
20
|
-
import { formatDuration } from '../../agent/usage.js';
|
|
21
|
-
import { childElapsedMs, childStatus, outcomePhrase, rosterCounts, statusColor, statusMarkerCell, } from '../team-status.js';
|
|
22
|
-
/**
|
|
23
|
-
* The card's aggregate colour.
|
|
24
|
-
*
|
|
25
|
-
* FAILURES DOMINATE, THEN A CANCELLATION, THEN A DISPATCH THAT NEVER SETTLED.
|
|
26
|
-
* The old version asked `runs.some((r) => !isOk(r))`, so an entry whose children
|
|
27
|
-
* were still working - and one the user had cancelled - was painted `toolError`
|
|
28
|
-
* (A-1 / E8). `RosterCounts` is passed IN rather than recomputed, so this colour
|
|
29
|
-
* and the headline cannot disagree inside one card.
|
|
30
|
-
*/
|
|
31
|
-
export function teamCardColor(counts, active, aborted, theme) {
|
|
32
|
-
if (active)
|
|
33
|
-
return theme.toolRunning;
|
|
34
|
-
if (counts.failed > 0)
|
|
35
|
-
return theme.toolError;
|
|
36
|
-
if (aborted || counts.aborted > 0 || counts.queued > 0 || counts.running > 0) {
|
|
37
|
-
return theme.noticeWarn;
|
|
38
|
-
}
|
|
39
|
-
return theme.toolDone;
|
|
40
|
-
}
|
|
41
|
-
/** `nowSec` is seconds (`App`'s 1 Hz clock); a card measures in milliseconds. */
|
|
42
|
-
function liveClockMs(nowSec) {
|
|
43
|
-
return nowSec === undefined ? Date.now() : nowSec * 1000;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* The elapsed column for one child: a MEASUREMENT, or an empty cell.
|
|
47
|
-
*
|
|
48
|
-
* `liveNow` is defined only while the dispatch is live, and that distinction is the
|
|
49
|
-
* whole point. A child restored by `/resume` keeps its `startedAt` and has no
|
|
50
|
-
* `endedAt` - `session/persist.ts` settles the ENTRY, it does not invent an end time
|
|
51
|
-
* for the run - so a figure computed against `Date.now()` would claim hours of work
|
|
52
|
-
* that never happened, next to an `interrupted (session resumed)` headline that says
|
|
53
|
-
* the opposite. An unmeasurable duration is left blank instead.
|
|
54
|
-
*/
|
|
55
|
-
function elapsedCell(run, liveNow) {
|
|
56
|
-
const end = run.endedAt ?? liveNow;
|
|
57
|
-
if (run.startedAt === undefined || end === undefined)
|
|
58
|
-
return '';
|
|
59
|
-
return formatDuration(childElapsedMs(run, end));
|
|
60
|
-
}
|
|
61
|
-
function TeamCardImpl(props) {
|
|
62
|
-
const { requested, runs, aborted, durationMs, active, expanded, reducedMotion, theme, caps } = props;
|
|
63
|
-
const glyphs = pickGlyphs(caps);
|
|
64
|
-
// ONE COUNTING AUTHORITY (A-1): `ok`/`failed` used to be `isOk(...)` and
|
|
65
|
-
// `runs.length - ok`, which counted a cancelled child - and a still-working one -
|
|
66
|
-
// as a failed one (E3 / E8).
|
|
67
|
-
const counts = rosterCounts(runs);
|
|
68
|
-
const color = teamCardColor(counts, active, aborted, theme);
|
|
69
|
-
// A CLOCK ONLY WHILE THE DISPATCH IS LIVE: a settled card has nothing left to time,
|
|
70
|
-
// and a clock in the settled path is how a resumed dispatch came to read like a run
|
|
71
|
-
// that is still going (`elapsedCell`).
|
|
72
|
-
const liveNow = active ? liveClockMs(props.nowSec) : undefined;
|
|
73
|
-
// A dispatch entry restored from `/resume` is settled and aborted but has no
|
|
74
|
-
// duration: nothing measured it, because the process it belonged to is gone.
|
|
75
|
-
// Saying so plainly beats rendering `0.0s (0 ok, 3 failed)`, which reads like
|
|
76
|
-
// a dispatch that ran and lost (§5.3 / P1-5).
|
|
77
|
-
const interrupted = !active && aborted && durationMs === undefined;
|
|
78
|
-
const headline = interrupted
|
|
79
|
-
? 'interrupted (session resumed)'
|
|
80
|
-
: active
|
|
81
|
-
? `${counts.queued + counts.running} running`
|
|
82
|
-
: `${formatDuration(durationMs ?? 0)} (${outcomePhrase(counts)})`;
|
|
83
|
-
const count = `${runs.length} ${runs.length === 1 ? 'subagent' : 'subagents'}`;
|
|
84
|
-
const dropped = requested > runs.length ? ` (${runs.length} of ${requested} requested)` : '';
|
|
85
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: theme.accent, bold: true, children: "team" }), _jsxs(Text, { color: theme.muted, children: [' ', count, dropped, ' '] }), active && !reducedMotion && caps.unicode ? (_jsxs(Text, { color: color, children: [_jsx(Spinner, { type: "dots" }), " ", headline] })) : (_jsxs(Text, { color: color, children: [active ? `${glyphs.spinnerStill} ` : '', headline] }))] }), _jsxs(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, ...railBorderProps(glyphs.railVertical, theme.border), children: [runs.map((run) => (_jsxs(Text, { wrap: "truncate", children: [_jsx(Text, { color: statusColor(childStatus(run), theme), children: statusMarkerCell(childStatus(run), glyphs) }), _jsxs(Text, { color: theme.primary, children: [' ', run.label.padEnd(8).slice(0, 8)] }), _jsxs(Text, { color: theme.muted, children: [' ', run.description, ' ', elapsedCell(run, liveNow), ` ${run.turns} turns`, run.filesTouched.length > 0 ? ` ${run.filesTouched.length} files` : '', run.error ? ` ${run.error}` : ''] }), run.retry && (_jsxs(Text, { color: theme.noticeWarn, bold: true, children: [' ', "retry ", run.retry.attempt, "/", run.retry.maxRetries] }))] }, run.label))), expanded &&
|
|
86
|
-
runs.map((run) => (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: theme.accent, children: [run.label, " ", glyphs.midDot, " ", run.description] }), _jsx(Text, { color: theme.muted, children: run.summary ?? '(no summary)' })] }, `s-${run.label}`))), !expanded && !active && runs.length > 0 && (_jsxs(Text, { color: theme.muted, children: ["+", runs.length, " ", runs.length === 1 ? 'summary' : 'summaries', " (Ctrl+O)"] })), expanded && _jsx(Text, { color: theme.muted, children: "(Ctrl+O to collapse)" })] })] }));
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
|
|
90
|
-
* `mapEntry` already preserves object identity for untouched entries, so the
|
|
91
|
-
* array props below are stable references on a settled card, and `theme` /
|
|
92
|
-
* `caps` are `useMemo`d in `App.tsx` (I-L2-1).
|
|
93
|
-
*/
|
|
94
|
-
export const TeamCard = React.memo(TeamCardImpl);
|