@aragon-agent/cli 0.6.46 → 0.6.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +80 -12
- package/dist/agent/coalesce.d.ts +5 -1
- package/dist/agent/coalesce.js +13 -0
- package/dist/agent/controller.d.ts +41 -20
- package/dist/agent/controller.js +68 -15
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/user-attention.d.ts +17 -0
- package/dist/agent/user-attention.js +32 -0
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +113 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +31 -32
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +10 -31
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +8 -5
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +10 -4
- package/dist/proc/wait-plan.d.ts +39 -0
- package/dist/proc/wait-plan.js +77 -0
- package/dist/proc/wait.d.ts +37 -4
- package/dist/proc/wait.js +68 -5
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/checkpoint.js +2 -0
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +20 -3
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +6 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +14 -3
- package/dist/tools/job-tools.js +158 -35
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -837
- package/dist/agent/reducer.js +0 -1617
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1377
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -200
- package/dist/proc/limits.js +0 -207
- package/dist/proc/progress.d.ts +0 -40
- package/dist/proc/progress.js +0 -135
- package/dist/proc/types.d.ts +0 -263
- package/dist/proc/types.js +0 -15
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -48
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -129
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -251
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -160
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -82
- package/dist/ui/interaction-copy.js +0 -38
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -139
- package/dist/ui/layout/status-layout.js +0 -253
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -488
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -61
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -118
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
package/dist/ui/theme.d.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Theme — palette + symbols used across the Ink component tree (spec §3.2).
|
|
3
|
-
*
|
|
4
|
-
* A real theming engine: distinct `WARM` / `COOL` / `LIGHT` hex palettes, an
|
|
5
|
-
* `auto` resolution that is deterministic (`auto -> warm`, since terminals
|
|
6
|
-
* cannot reliably report their background), color degradation across terminal
|
|
7
|
-
* depth (truecolor -> 256 -> 16 -> monochrome), and an ASCII symbol swap for
|
|
8
|
-
* terminals without Unicode support.
|
|
9
|
-
*
|
|
10
|
-
* Two things used to live here and no longer do (spec §4.1 / §4.5):
|
|
11
|
-
* - the three symbol tables moved to `glyphs.ts`, which is now the single
|
|
12
|
-
* source of truth for every user-visible character. `symbols` is a VIEW of
|
|
13
|
-
* `pickGlyphs(caps)`, so every existing `theme.symbols.x` consumer is
|
|
14
|
-
* unchanged;
|
|
15
|
-
* - the palette data moved to `palettes.ts`.
|
|
16
|
-
*/
|
|
17
|
-
import type { ThemeName } from '../config/schema.js';
|
|
18
|
-
import type { TermCapabilities } from './capabilities.js';
|
|
19
|
-
import { type Glyphs } from './glyphs.js';
|
|
20
|
-
/** A resolved color: a hex/name string, or `undefined` (Ink renders plain). */
|
|
21
|
-
type Color = string | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Retained name for the symbol view on `Theme`. It is exactly `Glyphs`: the
|
|
24
|
-
* split is by ownership (glyphs.ts owns the data), not by shape.
|
|
25
|
-
*/
|
|
26
|
-
export type ThemeSymbols = Glyphs;
|
|
27
|
-
export interface Theme {
|
|
28
|
-
name: ThemeName;
|
|
29
|
-
symbols: ThemeSymbols;
|
|
30
|
-
primary: Color;
|
|
31
|
-
accent: Color;
|
|
32
|
-
user: Color;
|
|
33
|
-
assistant: Color;
|
|
34
|
-
thinking: Color;
|
|
35
|
-
toolPending: Color;
|
|
36
|
-
toolRunning: Color;
|
|
37
|
-
toolDone: Color;
|
|
38
|
-
toolError: Color;
|
|
39
|
-
noticeInfo: Color;
|
|
40
|
-
noticeWarn: Color;
|
|
41
|
-
noticeError: Color;
|
|
42
|
-
muted: Color;
|
|
43
|
-
border: Color;
|
|
44
|
-
code: Color;
|
|
45
|
-
/** Composer border while the input holds a draft. */
|
|
46
|
-
focusBorder: Color;
|
|
47
|
-
/** Composer border while idle and empty (matches the legacy `border`). */
|
|
48
|
-
idleBorder: Color;
|
|
49
|
-
/** Hint lines, collapse notices, and the off-bottom indicator. */
|
|
50
|
-
hintFg: Color;
|
|
51
|
-
/** Single-color wordmark fallback below ansi-256. */
|
|
52
|
-
logoShadow: Color;
|
|
53
|
-
/**
|
|
54
|
-
* Drag-selection highlight (tui-selection-and-scroll-follow §4.4.4).
|
|
55
|
-
*
|
|
56
|
-
* Degraded like every other colour here, which means that below ansi-256 these
|
|
57
|
-
* are chalk colour NAMES rather than hex triples. `highlight.ts` tests for a
|
|
58
|
-
* hex shape and falls back to plain reverse video otherwise — the fallback a
|
|
59
|
-
* terminal that shallow would render anyway, and what the emulator's own
|
|
60
|
-
* selection looks like.
|
|
61
|
-
*/
|
|
62
|
-
selectionBg: Color;
|
|
63
|
-
selectionFg: Color;
|
|
64
|
-
gradient: string[];
|
|
65
|
-
gauge: {
|
|
66
|
-
track: Color;
|
|
67
|
-
low: Color;
|
|
68
|
-
mid: Color;
|
|
69
|
-
high: Color;
|
|
70
|
-
};
|
|
71
|
-
diff: {
|
|
72
|
-
add: Color;
|
|
73
|
-
remove: Color;
|
|
74
|
-
meta: Color;
|
|
75
|
-
context: Color;
|
|
76
|
-
};
|
|
77
|
-
toast: {
|
|
78
|
-
info: Color;
|
|
79
|
-
warn: Color;
|
|
80
|
-
error: Color;
|
|
81
|
-
success: Color;
|
|
82
|
-
};
|
|
83
|
-
chip: {
|
|
84
|
-
fg: Color;
|
|
85
|
-
bg: Color;
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* The GOVERN posture colour (governance-mode section 10.7). Hex above ansi-256 and
|
|
89
|
-
* `undefined` at level 0 like every other token, but PINNED to `magenta` at 16 colours
|
|
90
|
-
* instead of the nearest-ANSI search: that search lands COOL's teal on cyan, which is
|
|
91
|
-
* `user`'s colour, and the badge exists to be unmistakable.
|
|
92
|
-
*/
|
|
93
|
-
governAccent: Color;
|
|
94
|
-
}
|
|
95
|
-
export declare function getTheme(name: ThemeName, caps: TermCapabilities): Theme;
|
|
96
|
-
export {};
|
package/dist/ui/theme.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Theme — palette + symbols used across the Ink component tree (spec §3.2).
|
|
3
|
-
*
|
|
4
|
-
* A real theming engine: distinct `WARM` / `COOL` / `LIGHT` hex palettes, an
|
|
5
|
-
* `auto` resolution that is deterministic (`auto -> warm`, since terminals
|
|
6
|
-
* cannot reliably report their background), color degradation across terminal
|
|
7
|
-
* depth (truecolor -> 256 -> 16 -> monochrome), and an ASCII symbol swap for
|
|
8
|
-
* terminals without Unicode support.
|
|
9
|
-
*
|
|
10
|
-
* Two things used to live here and no longer do (spec §4.1 / §4.5):
|
|
11
|
-
* - the three symbol tables moved to `glyphs.ts`, which is now the single
|
|
12
|
-
* source of truth for every user-visible character. `symbols` is a VIEW of
|
|
13
|
-
* `pickGlyphs(caps)`, so every existing `theme.symbols.x` consumer is
|
|
14
|
-
* unchanged;
|
|
15
|
-
* - the palette data moved to `palettes.ts`.
|
|
16
|
-
*/
|
|
17
|
-
import { pickGlyphs } from './glyphs.js';
|
|
18
|
-
import { resolvePalette } from './palettes.js';
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
// Color degradation (truecolor -> 256 -> 16 -> monochrome)
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
/** The 16 standard ANSI colours as chalk names + representative RGB. */
|
|
23
|
-
const ANSI16 = [
|
|
24
|
-
['black', [0, 0, 0]],
|
|
25
|
-
['red', [205, 49, 49]],
|
|
26
|
-
['green', [13, 188, 121]],
|
|
27
|
-
['yellow', [229, 229, 16]],
|
|
28
|
-
['blue', [36, 114, 200]],
|
|
29
|
-
['magenta', [188, 63, 188]],
|
|
30
|
-
['cyan', [17, 168, 205]],
|
|
31
|
-
['white', [229, 229, 229]],
|
|
32
|
-
['gray', [102, 102, 102]],
|
|
33
|
-
['redBright', [241, 76, 76]],
|
|
34
|
-
['greenBright', [35, 209, 139]],
|
|
35
|
-
['yellowBright', [245, 245, 67]],
|
|
36
|
-
['blueBright', [59, 142, 234]],
|
|
37
|
-
['magentaBright', [214, 112, 214]],
|
|
38
|
-
['cyanBright', [41, 184, 219]],
|
|
39
|
-
['whiteBright', [255, 255, 255]],
|
|
40
|
-
];
|
|
41
|
-
function hexToRgb(hex) {
|
|
42
|
-
let h = hex.replace('#', '').trim();
|
|
43
|
-
if (h.length === 3)
|
|
44
|
-
h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
|
|
45
|
-
const n = Number.parseInt(h, 16);
|
|
46
|
-
return [(n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff];
|
|
47
|
-
}
|
|
48
|
-
/** Nearest of the 16 ANSI colours (chalk name) to an arbitrary hex. */
|
|
49
|
-
function nearestAnsi16(hex) {
|
|
50
|
-
const [r, g, b] = hexToRgb(hex);
|
|
51
|
-
let best = ANSI16[0][0];
|
|
52
|
-
let bestDist = Infinity;
|
|
53
|
-
for (const [name, [cr, cg, cb]] of ANSI16) {
|
|
54
|
-
const d = (r - cr) ** 2 + (g - cg) ** 2 + (b - cb) ** 2;
|
|
55
|
-
if (d < bestDist) {
|
|
56
|
-
bestDist = d;
|
|
57
|
-
best = name;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return best;
|
|
61
|
-
}
|
|
62
|
-
/** Degrade a hex colour to the terminal's depth; `undefined` at level 0. */
|
|
63
|
-
function degrade(hex, level) {
|
|
64
|
-
if (level === 0)
|
|
65
|
-
return undefined;
|
|
66
|
-
if (level === 1)
|
|
67
|
-
return nearestAnsi16(hex);
|
|
68
|
-
return hex; // level 2/3: Ink/chalk downsamples the hex as needed
|
|
69
|
-
}
|
|
70
|
-
// ---------------------------------------------------------------------------
|
|
71
|
-
// getTheme (memoized)
|
|
72
|
-
// ---------------------------------------------------------------------------
|
|
73
|
-
const cache = new Map();
|
|
74
|
-
export function getTheme(name, caps) {
|
|
75
|
-
const key = `${name}|${caps.colorLevel}|${caps.unicode}`;
|
|
76
|
-
const hit = cache.get(key);
|
|
77
|
-
if (hit)
|
|
78
|
-
return hit;
|
|
79
|
-
const palette = resolvePalette(name);
|
|
80
|
-
const level = caps.colorLevel;
|
|
81
|
-
const d = (hex) => degrade(hex, level);
|
|
82
|
-
const theme = {
|
|
83
|
-
name,
|
|
84
|
-
symbols: pickGlyphs(caps),
|
|
85
|
-
primary: d(palette.primary),
|
|
86
|
-
accent: d(palette.accent),
|
|
87
|
-
user: d(palette.user),
|
|
88
|
-
assistant: d(palette.assistant),
|
|
89
|
-
thinking: d(palette.thinking),
|
|
90
|
-
toolPending: d(palette.toolPending),
|
|
91
|
-
toolRunning: d(palette.toolRunning),
|
|
92
|
-
toolDone: d(palette.toolDone),
|
|
93
|
-
toolError: d(palette.toolError),
|
|
94
|
-
noticeInfo: d(palette.noticeInfo),
|
|
95
|
-
noticeWarn: d(palette.noticeWarn),
|
|
96
|
-
noticeError: d(palette.noticeError),
|
|
97
|
-
muted: d(palette.muted),
|
|
98
|
-
border: d(palette.border),
|
|
99
|
-
code: d(palette.code),
|
|
100
|
-
focusBorder: d(palette.focusBorder),
|
|
101
|
-
idleBorder: d(palette.idleBorder),
|
|
102
|
-
hintFg: d(palette.hintFg),
|
|
103
|
-
logoShadow: d(palette.logoShadow),
|
|
104
|
-
selectionBg: d(palette.selectionBg),
|
|
105
|
-
selectionFg: d(palette.selectionFg),
|
|
106
|
-
gradient: level >= 2 ? [...palette.gradient] : [],
|
|
107
|
-
gauge: {
|
|
108
|
-
track: d(palette.gauge.track),
|
|
109
|
-
low: d(palette.gauge.low),
|
|
110
|
-
mid: d(palette.gauge.mid),
|
|
111
|
-
high: d(palette.gauge.high),
|
|
112
|
-
},
|
|
113
|
-
diff: {
|
|
114
|
-
add: d(palette.diff.add),
|
|
115
|
-
remove: d(palette.diff.remove),
|
|
116
|
-
meta: d(palette.diff.meta),
|
|
117
|
-
context: d(palette.diff.context),
|
|
118
|
-
},
|
|
119
|
-
toast: {
|
|
120
|
-
info: d(palette.toast.info),
|
|
121
|
-
warn: d(palette.toast.warn),
|
|
122
|
-
error: d(palette.toast.error),
|
|
123
|
-
success: d(palette.toast.success),
|
|
124
|
-
},
|
|
125
|
-
chip: { fg: d(palette.chip.fg), bg: d(palette.chip.bg) },
|
|
126
|
-
governAccent: level === 1 ? 'magenta' : d(palette.governAccent),
|
|
127
|
-
};
|
|
128
|
-
cache.set(key, theme);
|
|
129
|
-
return theme;
|
|
130
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { Entry, UsageTotal } from '../agent/reducer.js';
|
|
2
|
-
import type { Glyphs } from './glyphs.js';
|
|
3
|
-
export interface TranscriptTextOptions {
|
|
4
|
-
/**
|
|
5
|
-
* Glyph set for the terminal being replayed into. The exit replay lands in
|
|
6
|
-
* the SAME terminal the TUI just left, so it degrades by the same rule; it
|
|
7
|
-
* used to spell 11 Unicode literals of its own and wrote mojibake straight
|
|
8
|
-
* into the user's normal buffer on a legacy console.
|
|
9
|
-
*/
|
|
10
|
-
glyphs: Glyphs;
|
|
11
|
-
usageTotal: UsageTotal;
|
|
12
|
-
model: string;
|
|
13
|
-
provider: string;
|
|
14
|
-
elapsedMs: number;
|
|
15
|
-
/** Entries beyond this count collapse into a single "… N omitted" line. */
|
|
16
|
-
maxEntries?: number;
|
|
17
|
-
/**
|
|
18
|
-
* Entries the retain ring already removed from `ViewState`
|
|
19
|
-
* (tui-render-performance L1 / K-6).
|
|
20
|
-
*
|
|
21
|
-
* A DIFFERENT LOSS FROM `maxEntries`, and both have to be reported: that one
|
|
22
|
-
* omits the middle of a transcript this replay still holds in full, while this
|
|
23
|
-
* one names entries the process no longer has. A replay that silently starts
|
|
24
|
-
* mid-session is exactly the failure the retain ring would otherwise
|
|
25
|
-
* introduce.
|
|
26
|
-
*/
|
|
27
|
-
droppedEntries?: number;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* The three figures every session summary carries: turns, tokens, cost.
|
|
31
|
-
*
|
|
32
|
-
* One implementation for the exit replay and the native-scroll exit summary
|
|
33
|
-
* (tui-native-terminal-scroll §4.8), so the two can never disagree.
|
|
34
|
-
*/
|
|
35
|
-
export declare function formatSessionStats(entries: readonly Entry[], usageTotal: UsageTotal, g: Pick<Glyphs, 'arrowUp' | 'arrowDown'>): {
|
|
36
|
-
turns: string;
|
|
37
|
-
tokens: string;
|
|
38
|
-
cost: string;
|
|
39
|
-
};
|
|
40
|
-
/** Render the whole session (summary line + entries) as plain text. */
|
|
41
|
-
export declare function renderTranscriptText(entries: Entry[], opts: TranscriptTextOptions): string;
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import { formatCost, formatDuration, formatTokens, promptTokensOf } from '../agent/usage.js';
|
|
2
|
-
import { formatRetryLine } from '../agent/retry-view.js';
|
|
3
|
-
import { childStatus, outcomePhrase, rosterCounts, statusMarkerCell } from './team-status.js';
|
|
4
|
-
import { expandTabs } from './display-tab.js';
|
|
5
|
-
import { governanceCardLines } from './layout/governance-card.js';
|
|
6
|
-
import { invocationCardLines } from './layout/invocation-card.js';
|
|
7
|
-
const DEFAULT_MAX_ENTRIES = 200;
|
|
8
|
-
const CONTINUATION_INDENT = ' ';
|
|
9
|
-
const TOOL_INDENT = ' ';
|
|
10
|
-
const MAX_ARG_CHARS = 60;
|
|
11
|
-
/**
|
|
12
|
-
* Prefix the first line with `marker`, indent the rest to line up under it.
|
|
13
|
-
*
|
|
14
|
-
* `expandTabs` RUNS BEFORE THE PREFIX IS ADDED, so a stored line lands on the
|
|
15
|
-
* same columns the TUI drew it at. Without it this replay -- the only record
|
|
16
|
-
* left once the alternate screen is torn down -- disagreed with the screen
|
|
17
|
-
* about every TAB, because the terminal painted an eight-column stop under text
|
|
18
|
-
* the composer had laid out at four.
|
|
19
|
-
*/
|
|
20
|
-
function block(marker, text) {
|
|
21
|
-
const lines = expandTabs(text.replace(/\r\n/g, '\n')).split('\n');
|
|
22
|
-
const head = `${marker} ${lines[0] ?? ''}`.trimEnd();
|
|
23
|
-
const rest = lines.slice(1).map((l) => `${CONTINUATION_INDENT}${l}`.trimEnd());
|
|
24
|
-
return [head, ...rest];
|
|
25
|
-
}
|
|
26
|
-
/** A short, single-line rendering of the tool's arguments. */
|
|
27
|
-
function argSummary(entry, glyphs) {
|
|
28
|
-
const source = entry.args ?? safeParse(entry.argsRaw);
|
|
29
|
-
if (!source)
|
|
30
|
-
return '';
|
|
31
|
-
const parts = [];
|
|
32
|
-
for (const value of Object.values(source)) {
|
|
33
|
-
if (typeof value === 'string')
|
|
34
|
-
parts.push(value);
|
|
35
|
-
else if (typeof value === 'number' || typeof value === 'boolean')
|
|
36
|
-
parts.push(String(value));
|
|
37
|
-
if (parts.length >= 2)
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
const joined = parts.join(' ').replace(/\s+/g, ' ').trim();
|
|
41
|
-
if (joined.length === 0)
|
|
42
|
-
return '';
|
|
43
|
-
return joined.length > MAX_ARG_CHARS
|
|
44
|
-
? `${joined.slice(0, MAX_ARG_CHARS - 1)}${glyphs.ellipsis}`
|
|
45
|
-
: joined;
|
|
46
|
-
}
|
|
47
|
-
function safeParse(raw) {
|
|
48
|
-
if (!raw || raw.trim().length === 0)
|
|
49
|
-
return null;
|
|
50
|
-
try {
|
|
51
|
-
const parsed = JSON.parse(raw);
|
|
52
|
-
return parsed && typeof parsed === 'object' ? parsed : null;
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* The replay's glyph for a service, MIRRORING `ServiceCard::serviceGlyph`.
|
|
60
|
-
*
|
|
61
|
-
* The two ladders have to agree, and the cheap-looking shortcut here — "ready or
|
|
62
|
-
* running is a tick, everything else is an error" — disagrees on the two states
|
|
63
|
-
* a user reaches ON PURPOSE: a service they stopped with `Ctrl+C`, and one that
|
|
64
|
-
* exited cleanly. Marking either as a failure in the record the user is left
|
|
65
|
-
* with after the alternate screen is torn down is a lie about their own action.
|
|
66
|
-
*
|
|
67
|
-
* Duplicated rather than imported, as every other case in this file duplicates
|
|
68
|
-
* its card's ladder: this module is deliberately free of React and ink, and
|
|
69
|
-
* `serviceGlyph` lives in a `.tsx`.
|
|
70
|
-
*/
|
|
71
|
-
function serviceTextGlyph(status, exitCode, glyphs) {
|
|
72
|
-
switch (status) {
|
|
73
|
-
case 'ready':
|
|
74
|
-
return glyphs.toolDone;
|
|
75
|
-
case 'running':
|
|
76
|
-
return glyphs.toolRunning;
|
|
77
|
-
case 'starting':
|
|
78
|
-
case 'stopped':
|
|
79
|
-
return glyphs.toolPending;
|
|
80
|
-
case 'exited':
|
|
81
|
-
return exitCode === 0 ? glyphs.toolDone : glyphs.toolError;
|
|
82
|
-
default:
|
|
83
|
-
return glyphs.toolError;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
function renderEntry(entry, glyphs) {
|
|
87
|
-
switch (entry.kind) {
|
|
88
|
-
case 'queued':
|
|
89
|
-
return block('Queued but never sent:', entry.text);
|
|
90
|
-
case 'user':
|
|
91
|
-
return entry.invocation
|
|
92
|
-
? [...block(glyphs.user, entry.text), ...invocationCardLines(entry.invocation)]
|
|
93
|
-
: block(glyphs.user, entry.text);
|
|
94
|
-
case 'assistant': {
|
|
95
|
-
const suffix = entry.aborted ? ' (aborted)' : '';
|
|
96
|
-
return block(glyphs.assistant, `${entry.text}${suffix}`);
|
|
97
|
-
}
|
|
98
|
-
case 'tool': {
|
|
99
|
-
const glyph = entry.isError || entry.status === 'error' ? glyphs.toolError : glyphs.toolDone;
|
|
100
|
-
const args = argSummary(entry, glyphs);
|
|
101
|
-
const duration = entry.durationMs === undefined ? '' : ` (${entry.durationMs}ms)`;
|
|
102
|
-
return [`${TOOL_INDENT}${glyph} ${entry.label || entry.name}${args ? ` ${args}` : ''}${duration}`];
|
|
103
|
-
}
|
|
104
|
-
case 'team': {
|
|
105
|
-
// Same rows as `TeamCard`, without colour (team-subagents §6.3). A
|
|
106
|
-
// dispatch is often the most expensive thing in a session, so leaving it
|
|
107
|
-
// out of the plain-text replay would make the exported transcript
|
|
108
|
-
// unaccountable for most of its own cost.
|
|
109
|
-
// ONE COUNTING AUTHORITY (`team-status.ts`), so the replay cannot disagree with
|
|
110
|
-
// the card it replays: `runs.length - ok` counted a cancelled child as a failed
|
|
111
|
-
// one, and a still-working one as a failure (tui-subagent-double-roster E3/E8).
|
|
112
|
-
// A cancellation therefore gets its own bucket instead of inflating `failed`.
|
|
113
|
-
const counts = rosterCounts(entry.runs);
|
|
114
|
-
const head = entry.active || (entry.aborted && entry.durationMs === undefined)
|
|
115
|
-
? 'interrupted'
|
|
116
|
-
: `${entry.durationMs ?? 0}ms (${outcomePhrase(counts)})`;
|
|
117
|
-
const lines = [
|
|
118
|
-
`${TOOL_INDENT}team ${entry.runs.length} subagents ${head}`,
|
|
119
|
-
...entry.runs.map((run) => {
|
|
120
|
-
// The same five-state judgement the card uses: only a real failure takes
|
|
121
|
-
// the cross, a cancelled child takes the warning and a running one the
|
|
122
|
-
// running marker. `statusMarkerCell`, NOT the bare glyph: the ASCII tier
|
|
123
|
-
// spells `[ok]`, `[x]` and `!` at three widths, and a replay whose label
|
|
124
|
-
// column shifts from row to row is unreadable.
|
|
125
|
-
const glyph = statusMarkerCell(childStatus(run), glyphs);
|
|
126
|
-
const detail = run.error ? ` ${run.error}` : '';
|
|
127
|
-
return `${TOOL_INDENT}${CONTINUATION_INDENT}${glyph} ${run.label} ${run.description}${detail}`;
|
|
128
|
-
}),
|
|
129
|
-
];
|
|
130
|
-
return lines;
|
|
131
|
-
}
|
|
132
|
-
case 'retry': {
|
|
133
|
-
// A turn that spent three minutes retrying is exactly the kind of cost an
|
|
134
|
-
// exported transcript is supposed to account for — the same argument the
|
|
135
|
-
// `team` case above makes in its own words. This file's `default: return []`
|
|
136
|
-
// means the addition is a CHOICE rather than a compile requirement, and it is
|
|
137
|
-
// worth making: without it a replay of a session that lost two minutes to a
|
|
138
|
-
// 529 shows a gap and no reason for it.
|
|
139
|
-
const glyph = entry.phase === 'exhausted' ? glyphs.error : glyphs.retry;
|
|
140
|
-
return [
|
|
141
|
-
`${TOOL_INDENT}${glyph} ${formatRetryLine(entry, glyphs, Date.now())}`,
|
|
142
|
-
];
|
|
143
|
-
}
|
|
144
|
-
case 'fast': {
|
|
145
|
-
// Reviews are real spend and real advice, and an exported transcript that
|
|
146
|
-
// omitted them would be unaccountable for both — the argument the `team`
|
|
147
|
-
// and `retry` cases above each make in their own words.
|
|
148
|
-
const glyph = entry.status === 'failed' ? glyphs.toolError : glyphs.toolDone;
|
|
149
|
-
const duration = entry.durationMs === undefined ? '' : ` (${entry.durationMs}ms)`;
|
|
150
|
-
const head = `${TOOL_INDENT}${glyph} fast review #${entry.reviewIndex} ${entry.model} ` +
|
|
151
|
-
`turn ${entry.turn}${duration}`;
|
|
152
|
-
if (entry.status === 'advice' && entry.text) {
|
|
153
|
-
return [head, ...entry.text.split('\n').map((l) => `${TOOL_INDENT}${CONTINUATION_INDENT}${l}`)];
|
|
154
|
-
}
|
|
155
|
-
const detail = entry.detail ? `: ${entry.detail}` : '';
|
|
156
|
-
return [`${head} ${entry.status}${detail}`];
|
|
157
|
-
}
|
|
158
|
-
case 'compaction': {
|
|
159
|
-
// A compaction is real spend AND a real, permanent loss of history, and an
|
|
160
|
-
// exported transcript that omitted it would be unaccountable for both —
|
|
161
|
-
// the argument the `team`, `retry` and `fast` cases above each make in
|
|
162
|
-
// their own words. It matters most here: this is the one entry kind whose
|
|
163
|
-
// presence explains why the messages the reader is looking for are gone.
|
|
164
|
-
const glyph = entry.applied ? glyphs.compaction : glyphs.toolError;
|
|
165
|
-
const duration = entry.durationMs === undefined ? '' : ` (${entry.durationMs}ms)`;
|
|
166
|
-
if (!entry.applied) {
|
|
167
|
-
const why = entry.reason ? `: ${entry.reason}` : '';
|
|
168
|
-
return [`${TOOL_INDENT}${glyph} context not compacted #${entry.index}${why}`];
|
|
169
|
-
}
|
|
170
|
-
const head = `${TOOL_INDENT}${glyph} context compacted #${entry.index} ` +
|
|
171
|
-
`${entry.messagesBefore} ${glyphs.arrowRight} ${entry.messagesAfter} messages, ` +
|
|
172
|
-
`${entry.tokensBefore} ${glyphs.arrowRight} ${entry.tokensAfter} tokens ` +
|
|
173
|
-
`[${entry.mode}] ${entry.model}${duration}`;
|
|
174
|
-
if (!entry.summary)
|
|
175
|
-
return [head];
|
|
176
|
-
return [
|
|
177
|
-
head,
|
|
178
|
-
...entry.summary.split('\n').map((l) => `${TOOL_INDENT}${CONTINUATION_INDENT}${l}`),
|
|
179
|
-
];
|
|
180
|
-
}
|
|
181
|
-
case 'service': {
|
|
182
|
-
// A service the agent started is real work with a real outcome, and an
|
|
183
|
-
// exported transcript that omitted it would be unaccountable for both —
|
|
184
|
-
// the argument the `team`, `retry`, `fast` and `compaction` cases above
|
|
185
|
-
// each make in their own words. It matters more here than for any of them:
|
|
186
|
-
// this replay is the user's ONLY record once the alternate screen is torn
|
|
187
|
-
// down (`cli.tsx`'s exit snapshot), and a service card dropped from it
|
|
188
|
-
// takes the URL the agent reported with it. This file's
|
|
189
|
-
// `default: return []` means the addition is a CHOICE rather than a
|
|
190
|
-
// compile requirement, which is exactly why it is easy to leave out
|
|
191
|
-
// (P0-3).
|
|
192
|
-
const glyph = serviceTextGlyph(entry.status, entry.exitCode, glyphs);
|
|
193
|
-
const where = entry.url ? ` ${entry.url}` : '';
|
|
194
|
-
const code = entry.exitCode === null || entry.exitCode === undefined
|
|
195
|
-
? ''
|
|
196
|
-
: ` (exit code ${entry.exitCode})`;
|
|
197
|
-
return [
|
|
198
|
-
`${TOOL_INDENT}${glyph} service ${entry.serviceId} ${entry.command} ` +
|
|
199
|
-
`${entry.status}${where}${code}`.trimEnd(),
|
|
200
|
-
];
|
|
201
|
-
}
|
|
202
|
-
case 'governance': {
|
|
203
|
-
// A settlement card is the record of what a governed run decided and scored; an
|
|
204
|
-
// exported transcript that omitted it would be unaccountable for the run (the
|
|
205
|
-
// argument the `team`, `retry` and `fast` cases make in their own words). Same
|
|
206
|
-
// lines as the card, without colour.
|
|
207
|
-
const lines = governanceCardLines(entry.card, glyphs);
|
|
208
|
-
return lines.map((line, index) => `${TOOL_INDENT}${index === 0 ? glyphs.teamAgent : ' '} ${line}`.trimEnd());
|
|
209
|
-
}
|
|
210
|
-
case 'notice': {
|
|
211
|
-
const glyph = entry.level === 'error'
|
|
212
|
-
? glyphs.error
|
|
213
|
-
: entry.level === 'warn'
|
|
214
|
-
? glyphs.warn
|
|
215
|
-
: glyphs.info;
|
|
216
|
-
return block(`${TOOL_INDENT}${glyph}`, entry.text);
|
|
217
|
-
}
|
|
218
|
-
default:
|
|
219
|
-
return [];
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* The three figures every session summary carries: turns, tokens, cost.
|
|
224
|
-
*
|
|
225
|
-
* One implementation for the exit replay and the native-scroll exit summary
|
|
226
|
-
* (tui-native-terminal-scroll §4.8), so the two can never disagree.
|
|
227
|
-
*/
|
|
228
|
-
export function formatSessionStats(entries, usageTotal, g) {
|
|
229
|
-
const turns = entries.filter((e) => e.kind === 'user').length;
|
|
230
|
-
// THE SAME PROMPT-SIDE TOTAL THE STATUS BAR SHOWS (context-usage-gauge-accuracy
|
|
231
|
-
// §3.6). This line is what a user compares against the bar they were watching a
|
|
232
|
-
// second earlier, so a different unit here would look like the exit summary
|
|
233
|
-
// losing tokens.
|
|
234
|
-
const tokens = `${formatTokens(promptTokensOf(usageTotal))}${g.arrowUp} ${formatTokens(usageTotal.outputTokens)}${g.arrowDown}`;
|
|
235
|
-
return {
|
|
236
|
-
turns: `${turns} ${turns === 1 ? 'turn' : 'turns'}`,
|
|
237
|
-
tokens,
|
|
238
|
-
cost: formatCost(usageTotal.costUsd),
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
/** Render the whole session (summary line + entries) as plain text. */
|
|
242
|
-
export function renderTranscriptText(entries, opts) {
|
|
243
|
-
const g = opts.glyphs;
|
|
244
|
-
const stats = formatSessionStats(entries, opts.usageTotal, g);
|
|
245
|
-
const summary = [
|
|
246
|
-
'aragon',
|
|
247
|
-
`${opts.provider}:${opts.model}`,
|
|
248
|
-
stats.turns,
|
|
249
|
-
stats.tokens,
|
|
250
|
-
stats.cost,
|
|
251
|
-
formatDuration(Math.max(0, opts.elapsedMs)),
|
|
252
|
-
].join(` ${g.midDot} `);
|
|
253
|
-
const max = opts.maxEntries ?? DEFAULT_MAX_ENTRIES;
|
|
254
|
-
const lines = [summary];
|
|
255
|
-
const dropped = opts.droppedEntries ?? 0;
|
|
256
|
-
if (dropped > 0) {
|
|
257
|
-
lines.push(`${g.ellipsis} ${dropped} earlier ${dropped === 1 ? 'entry' : 'entries'} dropped by ` +
|
|
258
|
-
`transcriptRetain ${g.midDot} raise it or /save sooner`);
|
|
259
|
-
}
|
|
260
|
-
const historyCount = entries.filter((entry) => entry.kind !== 'queued').length;
|
|
261
|
-
const omitted = max > 1 ? Math.max(0, historyCount - max) : 0;
|
|
262
|
-
const head = Math.ceil(max / 2);
|
|
263
|
-
const tailStart = historyCount - (max - head);
|
|
264
|
-
let historyIndex = 0;
|
|
265
|
-
let reported = false;
|
|
266
|
-
for (const entry of entries) {
|
|
267
|
-
if (entry.kind === 'queued') {
|
|
268
|
-
lines.push(...renderEntry(entry, g));
|
|
269
|
-
continue;
|
|
270
|
-
}
|
|
271
|
-
const index = historyIndex++;
|
|
272
|
-
if (omitted > 0 && index >= head && index < tailStart) {
|
|
273
|
-
if (!reported) {
|
|
274
|
-
lines.push(`${g.ellipsis} ${omitted} entries omitted ${g.midDot} use /save before exiting`);
|
|
275
|
-
reported = true;
|
|
276
|
-
}
|
|
277
|
-
continue;
|
|
278
|
-
}
|
|
279
|
-
lines.push(...renderEntry(entry, g));
|
|
280
|
-
}
|
|
281
|
-
return `${lines.join('\n')}\n`;
|
|
282
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The transcript height cache (tui-render-performance L3).
|
|
3
|
-
*
|
|
4
|
-
* Virtualisation needs a height for entries it is NOT mounting. Measured
|
|
5
|
-
* heights are authoritative; entries that have never been on screen fall back to
|
|
6
|
-
* `estimateEntryRows`, and both are memoised on the same `heightKey` so a
|
|
7
|
-
* `cols` change or a content change invalidates them together (V-5).
|
|
8
|
-
*
|
|
9
|
-
* THE MAP LIVES IN A REF, NOT IN STATE, and the version counter is bumped at
|
|
10
|
-
* most once per frame through a microtask and ONLY when a value actually
|
|
11
|
-
* changed. K-2 is the failure this shape exists to prevent: a naive
|
|
12
|
-
* measure -> setState -> re-measure store never converges, and the symptom is a
|
|
13
|
-
* hung terminal rather than an error. In steady state — settled entries at a
|
|
14
|
-
* fixed width — this produces zero extra renders.
|
|
15
|
-
*/
|
|
16
|
-
import { type HeightKey } from './layout/virtual-window.js';
|
|
17
|
-
export interface HeightStoreStats {
|
|
18
|
-
measured: number;
|
|
19
|
-
estimated: number;
|
|
20
|
-
}
|
|
21
|
-
export interface HeightStore {
|
|
22
|
-
/** Bumped at most once per frame, and only when a measurement changed. */
|
|
23
|
-
version: number;
|
|
24
|
-
/** Measured rows, else the memoised estimate, computing it once if needed. */
|
|
25
|
-
resolve: (key: HeightKey, estimate: () => number) => number;
|
|
26
|
-
/** Called from `MeasuredEntry`'s layout effect. Idempotent per (key, value). */
|
|
27
|
-
report: (key: HeightKey, rows: number) => void;
|
|
28
|
-
stats: () => HeightStoreStats;
|
|
29
|
-
clear: () => void;
|
|
30
|
-
}
|
|
31
|
-
export declare function useHeightStore(): HeightStore;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The transcript height cache (tui-render-performance L3).
|
|
3
|
-
*
|
|
4
|
-
* Virtualisation needs a height for entries it is NOT mounting. Measured
|
|
5
|
-
* heights are authoritative; entries that have never been on screen fall back to
|
|
6
|
-
* `estimateEntryRows`, and both are memoised on the same `heightKey` so a
|
|
7
|
-
* `cols` change or a content change invalidates them together (V-5).
|
|
8
|
-
*
|
|
9
|
-
* THE MAP LIVES IN A REF, NOT IN STATE, and the version counter is bumped at
|
|
10
|
-
* most once per frame through a microtask and ONLY when a value actually
|
|
11
|
-
* changed. K-2 is the failure this shape exists to prevent: a naive
|
|
12
|
-
* measure -> setState -> re-measure store never converges, and the symptom is a
|
|
13
|
-
* hung terminal rather than an error. In steady state — settled entries at a
|
|
14
|
-
* fixed width — this produces zero extra renders.
|
|
15
|
-
*/
|
|
16
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
17
|
-
import { VIRTUAL_LIMITS } from './layout/virtual-window.js';
|
|
18
|
-
/** Drop the oldest keys once a map passes the ceiling (insertion-ordered LRU). */
|
|
19
|
-
function trim(map) {
|
|
20
|
-
while (map.size > VIRTUAL_LIMITS.heightEntries) {
|
|
21
|
-
const oldest = map.keys().next();
|
|
22
|
-
if (oldest.done)
|
|
23
|
-
break;
|
|
24
|
-
map.delete(oldest.value);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function useHeightStore() {
|
|
28
|
-
const measured = useRef(new Map());
|
|
29
|
-
const estimated = useRef(new Map());
|
|
30
|
-
const [version, setVersion] = useState(0);
|
|
31
|
-
const scheduled = useRef(false);
|
|
32
|
-
const mounted = useRef(true);
|
|
33
|
-
useEffect(() => () => {
|
|
34
|
-
mounted.current = false;
|
|
35
|
-
}, []);
|
|
36
|
-
const report = useCallback((key, rows) => {
|
|
37
|
-
const value = Number.isFinite(rows) && rows > 0 ? Math.floor(rows) : 0;
|
|
38
|
-
if (value <= 0)
|
|
39
|
-
return;
|
|
40
|
-
if (measured.current.get(key) === value)
|
|
41
|
-
return;
|
|
42
|
-
measured.current.set(key, value);
|
|
43
|
-
trim(measured.current);
|
|
44
|
-
// An estimate that has been superseded is dead weight; dropping it here is
|
|
45
|
-
// what keeps `stats()` honest for `/perf`.
|
|
46
|
-
estimated.current.delete(key);
|
|
47
|
-
if (scheduled.current)
|
|
48
|
-
return;
|
|
49
|
-
scheduled.current = true;
|
|
50
|
-
queueMicrotask(() => {
|
|
51
|
-
scheduled.current = false;
|
|
52
|
-
if (mounted.current)
|
|
53
|
-
setVersion((v) => v + 1);
|
|
54
|
-
});
|
|
55
|
-
}, []);
|
|
56
|
-
const resolve = useCallback((key, estimate) => {
|
|
57
|
-
const hit = measured.current.get(key);
|
|
58
|
-
if (hit !== undefined)
|
|
59
|
-
return hit;
|
|
60
|
-
const cached = estimated.current.get(key);
|
|
61
|
-
if (cached !== undefined)
|
|
62
|
-
return cached;
|
|
63
|
-
const value = Math.max(1, Math.floor(estimate()));
|
|
64
|
-
estimated.current.set(key, value);
|
|
65
|
-
trim(estimated.current);
|
|
66
|
-
return value;
|
|
67
|
-
}, []);
|
|
68
|
-
const stats = useCallback(() => ({ measured: measured.current.size, estimated: estimated.current.size }), []);
|
|
69
|
-
const clear = useCallback(() => {
|
|
70
|
-
measured.current.clear();
|
|
71
|
-
estimated.current.clear();
|
|
72
|
-
if (mounted.current)
|
|
73
|
-
setVersion((v) => v + 1);
|
|
74
|
-
}, []);
|
|
75
|
-
return { version, resolve, report, stats, clear };
|
|
76
|
-
}
|