@aragon-agent/cli 0.6.46 → 0.6.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +80 -12
- package/dist/agent/coalesce.d.ts +5 -1
- package/dist/agent/coalesce.js +13 -0
- package/dist/agent/controller.d.ts +41 -20
- package/dist/agent/controller.js +68 -15
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/user-attention.d.ts +17 -0
- package/dist/agent/user-attention.js +32 -0
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +113 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +31 -32
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +10 -31
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +8 -5
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +10 -4
- package/dist/proc/wait-plan.d.ts +39 -0
- package/dist/proc/wait-plan.js +77 -0
- package/dist/proc/wait.d.ts +37 -4
- package/dist/proc/wait.js +68 -5
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/checkpoint.js +2 -0
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +20 -3
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +6 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +14 -3
- package/dist/tools/job-tools.js +158 -35
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -837
- package/dist/agent/reducer.js +0 -1617
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1377
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -200
- package/dist/proc/limits.js +0 -207
- package/dist/proc/progress.d.ts +0 -40
- package/dist/proc/progress.js +0 -135
- package/dist/proc/types.d.ts +0 -263
- package/dist/proc/types.js +0 -15
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -48
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -129
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -251
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -160
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -82
- package/dist/ui/interaction-copy.js +0 -38
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -139
- package/dist/ui/layout/status-layout.js +0 -253
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -488
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -61
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -118
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings > Team: the pure half of the page (subagent-fanout 3.4.2, extended by
|
|
3
|
-
* team-command-forced-dispatch §3.9).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
|
|
6
|
-
*
|
|
7
|
-
* THE PAGE WRITES FOUR KEYS AND CANNOT BE MADE TO WRITE A FIFTH (D-17 / R-P0-1).
|
|
8
|
-
* `TeamFanoutPatch` is `Pick<TeamConfig, 'enabled' | 'maxSubagents' |
|
|
9
|
-
* 'maxConcurrent' | 'overseer'>`, and `stepFanoutValue` returns
|
|
10
|
-
* `Partial<TeamFanoutPatch>`: a width adjustment therefore CANNOT carry `model`
|
|
11
|
-
* or `modelProfileId` into `draft.patch.team`. That matters because
|
|
12
|
-
* `releasedSlots` reads those two keys as "the user re-decided the subagent
|
|
13
|
-
* slot", so a page that returned the whole section would silently release the
|
|
14
|
-
* model a session kit had just installed - and no test would notice, because
|
|
15
|
-
* every value on screen would still be right.
|
|
16
|
-
*
|
|
17
|
-
* FOUR KEYS BECAUSE `enabled` MOVED HERE (team-command-forced-dispatch D-3): the
|
|
18
|
-
* team switch used to be reachable only as `/team on|off`, which also wrote
|
|
19
|
-
* `config.json`. The switch belongs on the same page as width, concurrency and
|
|
20
|
-
* supervision - they are four faces of one decision - and `/team` is now the ACT
|
|
21
|
-
* ("arm this session"), never a configuration write (I-4).
|
|
22
|
-
*
|
|
23
|
-
* EVERYTHING HERE IS A PURE FUNCTION over the draft. The page owns exactly one
|
|
24
|
-
* piece of state (its cursor); values come from the reducer, which is the same
|
|
25
|
-
* discipline the rest of this screen follows.
|
|
26
|
-
*/
|
|
27
|
-
import { clampTeamConfig, HARD_MAX_SUBAGENTS } from '../../config/schema.js';
|
|
28
|
-
function clampInt(value, min, max) {
|
|
29
|
-
return Math.max(min, Math.min(max, Math.floor(value)));
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* The CLAMPED team section this draft would save (R-P0-2), for display only.
|
|
33
|
-
*
|
|
34
|
-
* THE CLAMP IS NOT COSMETIC. Without it a patch carrying only
|
|
35
|
-
* `maxSubagents: 6` renders "6 per dispatch, 8 at once" on top of an 8-wide
|
|
36
|
-
* baseline, while `mergePersistedConfig` clamps the same patch to 6/6 on the way
|
|
37
|
-
* to disk - so the screen and the file disagree, and every arrow key makes the
|
|
38
|
-
* user reconcile them by hand.
|
|
39
|
-
*/
|
|
40
|
-
export function teamFanoutValues(draft) {
|
|
41
|
-
return clampTeamConfig({ ...draft.baseline.team, ...draft.patch.team });
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* The PATCH FRAGMENT for one arrow press, clamped exactly like `clampTeamConfig`.
|
|
45
|
-
*
|
|
46
|
-
* `current` must be the value the screen actually shows (`teamFanoutValues`), so
|
|
47
|
-
* a step always starts from a number the user can see.
|
|
48
|
-
*
|
|
49
|
-
* NO WRAPAROUND: a form control is not a ring, and `Left` at 1 jumping to 10
|
|
50
|
-
* would be a way to widen a dispatch while trying to narrow it.
|
|
51
|
-
*
|
|
52
|
-
* EVERY MEMBER IS HANDLED EXPLICITLY AND THE TAIL IS `never` (P0-1). The old
|
|
53
|
-
* body was three `if`s with the `maxSubagents` branch as the FALLTHROUGH, so
|
|
54
|
-
* adding `'enabled'` to the union compiled cleanly and made the new `Team mode`
|
|
55
|
-
* row adjust `Max subagents` instead - every number on screen self-consistent,
|
|
56
|
-
* no test red, and the user's intent to switch the team OFF arrived as a wider
|
|
57
|
-
* fan-out. The `never` assignment below turns that class of mistake into a
|
|
58
|
-
* compile error, which is the only place it can be caught cheaply.
|
|
59
|
-
*/
|
|
60
|
-
export function stepFanoutValue(current, field, delta) {
|
|
61
|
-
if (field === 'enabled') {
|
|
62
|
-
// Both arrows toggle: `Team mode` has two states, and a direction has no
|
|
63
|
-
// meaning beyond "the user pressed an arrow" (the `Supervisor` rule below).
|
|
64
|
-
return { enabled: !current.enabled };
|
|
65
|
-
}
|
|
66
|
-
if (field === 'overseer') {
|
|
67
|
-
return { overseer: !current.overseer };
|
|
68
|
-
}
|
|
69
|
-
if (field === 'maxConcurrent') {
|
|
70
|
-
const ceiling = Math.min(HARD_MAX_SUBAGENTS, current.maxSubagents);
|
|
71
|
-
return { maxConcurrent: clampInt(current.maxConcurrent + delta, 1, ceiling) };
|
|
72
|
-
}
|
|
73
|
-
if (field === 'maxSubagents') {
|
|
74
|
-
const next = clampInt(current.maxSubagents + delta, 1, HARD_MAX_SUBAGENTS);
|
|
75
|
-
// THE FOLLOW-DOWN IS WRITTEN INTO THE PATCH (R-P1-9), not just rendered: a
|
|
76
|
-
// narrower population cannot keep a wider pool, but a DISPLAY-only correction
|
|
77
|
-
// would snap back the moment the user widened again, so "the change I just
|
|
78
|
-
// made" would not stick - the exact complaint this design exists to answer.
|
|
79
|
-
return current.maxConcurrent > next
|
|
80
|
-
? { maxSubagents: next, maxConcurrent: next }
|
|
81
|
-
: { maxSubagents: next };
|
|
82
|
-
}
|
|
83
|
-
// THE EXHAUSTIVE GUARD IS THE POINT (P0-1): a new member of `TeamFanoutField`
|
|
84
|
-
// must fail to COMPILE here, not silently fall through to `maxSubagents`.
|
|
85
|
-
//
|
|
86
|
-
// IT SITS AFTER EVERY BRANCH RETURNS, not before the last one. §3.9's snippet
|
|
87
|
-
// shows it above the `maxSubagents` branch, where TypeScript rejects the file
|
|
88
|
-
// outright (`'maxSubagents' is not assignable to 'never'`) - the intent
|
|
89
|
-
// survives, the position does not.
|
|
90
|
-
const _exhaustive = field;
|
|
91
|
-
return _exhaustive;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* The page's four rows, in cursor order.
|
|
95
|
-
*
|
|
96
|
-
* `Team mode` IS FIRST because it is the premise of the other three: with `task`
|
|
97
|
-
* out of the tool list there is no width to configure and no supervisor to run,
|
|
98
|
-
* and a page that listed the numbers first would invite the user to tune a
|
|
99
|
-
* capability they had switched off.
|
|
100
|
-
*
|
|
101
|
-
* TWO HINTS CARRY A CONDITION THE DESIGN OWNS RATHER THAN DECORATION (R-1 / C-2):
|
|
102
|
-
* the default pool is 8, which is 8 simultaneous streams against one API key, and
|
|
103
|
-
* the honest mitigation for an HTTP 429 storm is "lower this number" - said HERE,
|
|
104
|
-
* where the number is, not only in a risk table nobody reads.
|
|
105
|
-
*
|
|
106
|
-
* `teamRegistered === false` (a `--no-team` session) changes TWO things on the
|
|
107
|
-
* `enabled` row and nothing else: `on (next launch)` because the tool array is
|
|
108
|
-
* immutable (I-7), and a hint that says why. Absent means "not disclosed",
|
|
109
|
-
* which every existing fixture relies on.
|
|
110
|
-
*/
|
|
111
|
-
export function fanoutRows(team, teamRegistered) {
|
|
112
|
-
const blocked = teamRegistered === false && team.enabled;
|
|
113
|
-
return [
|
|
114
|
-
{
|
|
115
|
-
field: 'enabled',
|
|
116
|
-
label: 'Team mode',
|
|
117
|
-
value: blocked ? 'on (next launch)' : team.enabled ? 'on' : 'off',
|
|
118
|
-
hint: blocked
|
|
119
|
-
? '--no-team session: the task tool cannot be added live'
|
|
120
|
-
: 'off: no task tool next launch; this session may lack it',
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
field: 'maxSubagents',
|
|
124
|
-
label: 'Max subagents',
|
|
125
|
-
value: String(team.maxSubagents),
|
|
126
|
-
hint: `children per dispatch; ${HARD_MAX_SUBAGENTS} is the hard ceiling`,
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
field: 'maxConcurrent',
|
|
130
|
-
label: 'Run at once',
|
|
131
|
-
value: String(team.maxConcurrent),
|
|
132
|
-
hint: 'provider limits: lower this if you see rate-limit errors',
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
field: 'overseer',
|
|
136
|
-
label: 'Supervisor',
|
|
137
|
-
value: team.overseer ? 'on' : 'off',
|
|
138
|
-
hint: 'checks stalled children; never kills them',
|
|
139
|
-
},
|
|
140
|
-
];
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* The one-line summary the settings root row prints for this page.
|
|
144
|
-
*
|
|
145
|
-
* `off - no subagents` rather than the numbers, because with the capability off
|
|
146
|
-
* the numbers describe nothing the user can spend. This replaced
|
|
147
|
-
* `fanoutSummary()` outright instead of living beside it: two summary functions
|
|
148
|
-
* over one page is two authorities for one line, and the root row would sooner or
|
|
149
|
-
* later disagree with the page it summarises.
|
|
150
|
-
*/
|
|
151
|
-
export function teamSummary(team) {
|
|
152
|
-
if (!team.enabled)
|
|
153
|
-
return 'off - no subagents';
|
|
154
|
-
return `${team.maxSubagents} per dispatch, ${team.maxConcurrent} at once`;
|
|
155
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The probe task hook (model-profile-connection-test §6.2).
|
|
3
|
-
*
|
|
4
|
-
* IT LIVES IN `SettingsScreen`, ONCE, AND NOWHERE ELSE. The editor unmounts whenever
|
|
5
|
-
* the page changes (`SettingsScreen` renders it only for `page === 'editor'`), so a
|
|
6
|
-
* hook inside the editor would abort its own discovery the moment `Discover models`
|
|
7
|
-
* switched to the list page - the feature cancelling itself.
|
|
8
|
-
*
|
|
9
|
-
* TWO SLOTS, ONE IN FLIGHT. A test verdict and a discovered list answer different
|
|
10
|
-
* questions, so they are stored separately: opening the list must not erase a verdict
|
|
11
|
-
* the user still wants to read when they press Esc back (AC-27). Starting either task
|
|
12
|
-
* aborts whatever is running - one request at a time.
|
|
13
|
-
*
|
|
14
|
-
* `test()` AND `discover()` NEVER REJECT. The only callers are Ink input handlers,
|
|
15
|
-
* which have nowhere to await a `catch`; the hook folds every exception into an
|
|
16
|
-
* `unknown` failure so no frame can be left on `testing` forever.
|
|
17
|
-
*
|
|
18
|
-
* ASCII ONLY (`ui/` is inside `glyphs.test.ts::inScope`).
|
|
19
|
-
*/
|
|
20
|
-
import type { ModelProbe, ProbeTarget } from '../../agent/model-probe.js';
|
|
21
|
-
import type { ProbeDiscoveryPhase, ProbeTestPhase } from './model-probe-view.js';
|
|
22
|
-
export interface ModelProbeTasks {
|
|
23
|
-
test: ProbeTestPhase;
|
|
24
|
-
discovery: ProbeDiscoveryPhase;
|
|
25
|
-
busy: boolean;
|
|
26
|
-
startTest(target: ProbeTarget): void;
|
|
27
|
-
startDiscovery(target: ProbeTarget): void;
|
|
28
|
-
cancel(): void;
|
|
29
|
-
}
|
|
30
|
-
export declare function useModelProbe(probe?: ModelProbe): ModelProbeTasks;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The probe task hook (model-profile-connection-test §6.2).
|
|
3
|
-
*
|
|
4
|
-
* IT LIVES IN `SettingsScreen`, ONCE, AND NOWHERE ELSE. The editor unmounts whenever
|
|
5
|
-
* the page changes (`SettingsScreen` renders it only for `page === 'editor'`), so a
|
|
6
|
-
* hook inside the editor would abort its own discovery the moment `Discover models`
|
|
7
|
-
* switched to the list page - the feature cancelling itself.
|
|
8
|
-
*
|
|
9
|
-
* TWO SLOTS, ONE IN FLIGHT. A test verdict and a discovered list answer different
|
|
10
|
-
* questions, so they are stored separately: opening the list must not erase a verdict
|
|
11
|
-
* the user still wants to read when they press Esc back (AC-27). Starting either task
|
|
12
|
-
* aborts whatever is running - one request at a time.
|
|
13
|
-
*
|
|
14
|
-
* `test()` AND `discover()` NEVER REJECT. The only callers are Ink input handlers,
|
|
15
|
-
* which have nowhere to await a `catch`; the hook folds every exception into an
|
|
16
|
-
* `unknown` failure so no frame can be left on `testing` forever.
|
|
17
|
-
*
|
|
18
|
-
* ASCII ONLY (`ui/` is inside `glyphs.test.ts::inScope`).
|
|
19
|
-
*/
|
|
20
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
21
|
-
const TEST_FAILED_DETAIL = 'The connection test could not run.';
|
|
22
|
-
const DISCOVERY_FAILED_DETAIL = 'The model list could not be fetched.';
|
|
23
|
-
function unknownTest(targetId) {
|
|
24
|
-
return { ok: false, targetId, latencyMs: 0, kind: 'unknown', detail: TEST_FAILED_DETAIL };
|
|
25
|
-
}
|
|
26
|
-
function unknownDiscovery(connectionId) {
|
|
27
|
-
return { ok: false, connectionId, kind: 'unknown', detail: DISCOVERY_FAILED_DETAIL,
|
|
28
|
-
models: [], truncated: false, total: 0 };
|
|
29
|
-
}
|
|
30
|
-
/** Run one probe, guaranteeing the promise settles and no rejection escapes. */
|
|
31
|
-
function settle(work, onValue, onFailure) {
|
|
32
|
-
let pending;
|
|
33
|
-
try {
|
|
34
|
-
pending = work();
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
onFailure();
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
void pending.then(onValue, onFailure);
|
|
41
|
-
}
|
|
42
|
-
export function useModelProbe(probe) {
|
|
43
|
-
const [test, setTest] = useState({ phase: 'idle' });
|
|
44
|
-
const [discovery, setDiscovery] = useState({ phase: 'idle' });
|
|
45
|
-
const controller = useRef(null);
|
|
46
|
-
const inFlight = useRef(null);
|
|
47
|
-
const abortCurrent = useCallback(() => {
|
|
48
|
-
controller.current?.abort();
|
|
49
|
-
controller.current = null;
|
|
50
|
-
inFlight.current = null;
|
|
51
|
-
}, []);
|
|
52
|
-
useEffect(() => abortCurrent, [abortCurrent]);
|
|
53
|
-
const begin = useCallback((kind) => {
|
|
54
|
-
abortCurrent();
|
|
55
|
-
const next = new AbortController();
|
|
56
|
-
controller.current = next;
|
|
57
|
-
inFlight.current = kind;
|
|
58
|
-
return next;
|
|
59
|
-
}, [abortCurrent]);
|
|
60
|
-
/**
|
|
61
|
-
* Land one run's result and drop the in-flight refs with it.
|
|
62
|
-
*
|
|
63
|
-
* Clearing them here is what keeps `cancel()` honest: it is the ONLY caller of
|
|
64
|
-
* `abortCurrent`, and an Escape on a settled slot (a frame where `busy` is stale)
|
|
65
|
-
* must not erase a verdict the user is still reading.
|
|
66
|
-
*/
|
|
67
|
-
const finish = useCallback((run, commit) => {
|
|
68
|
-
if (run.signal.aborted)
|
|
69
|
-
return;
|
|
70
|
-
controller.current = null;
|
|
71
|
-
inFlight.current = null;
|
|
72
|
-
commit();
|
|
73
|
-
}, []);
|
|
74
|
-
const startTest = useCallback((target) => {
|
|
75
|
-
if (!probe)
|
|
76
|
-
return;
|
|
77
|
-
const run = begin('test');
|
|
78
|
-
const targetId = probe.targetFingerprint(target);
|
|
79
|
-
setTest({ phase: 'testing', targetId });
|
|
80
|
-
settle(() => probe.test({ ...target, signal: run.signal }), (outcome) => {
|
|
81
|
-
finish(run, () => setTest({ phase: 'tested', outcome }));
|
|
82
|
-
}, () => {
|
|
83
|
-
finish(run, () => setTest({ phase: 'tested', outcome: unknownTest(targetId) }));
|
|
84
|
-
});
|
|
85
|
-
}, [probe, begin, finish]);
|
|
86
|
-
const startDiscovery = useCallback((target) => {
|
|
87
|
-
if (!probe)
|
|
88
|
-
return;
|
|
89
|
-
const run = begin('discovery');
|
|
90
|
-
const connectionId = probe.connectionFingerprint(target);
|
|
91
|
-
setDiscovery({ phase: 'discovering', connectionId });
|
|
92
|
-
settle(() => probe.discover({ ...target, signal: run.signal }), (outcome) => {
|
|
93
|
-
finish(run, () => setDiscovery({ phase: 'discovered', outcome }));
|
|
94
|
-
}, () => {
|
|
95
|
-
finish(run, () => setDiscovery({ phase: 'discovered',
|
|
96
|
-
outcome: unknownDiscovery(connectionId) }));
|
|
97
|
-
});
|
|
98
|
-
}, [probe, begin, finish]);
|
|
99
|
-
const cancel = useCallback(() => {
|
|
100
|
-
const kind = inFlight.current;
|
|
101
|
-
abortCurrent();
|
|
102
|
-
if (kind === 'test')
|
|
103
|
-
setTest({ phase: 'idle' });
|
|
104
|
-
if (kind === 'discovery')
|
|
105
|
-
setDiscovery({ phase: 'idle' });
|
|
106
|
-
}, [abortCurrent]);
|
|
107
|
-
const busy = test.phase === 'testing' || discovery.phase === 'discovering';
|
|
108
|
-
return { test, discovery, busy, startTest, startDiscovery, cancel };
|
|
109
|
-
}
|
package/dist/ui/palettes.d.ts
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Palettes (spec §4.5) — the raw hex data behind `getTheme()`, split out of
|
|
3
|
-
* `theme.ts` so the color decisions live in one readable place and can be
|
|
4
|
-
* contrast-tested without pulling in the degradation machinery.
|
|
5
|
-
*
|
|
6
|
-
* `WARM` is the new default. The old Tokyo-Night-derived palette survives under
|
|
7
|
-
* its accurate name `COOL` and stays reachable via `--theme cool`, so nobody's
|
|
8
|
-
* screen changes without them being able to change it back (R-4).
|
|
9
|
-
*
|
|
10
|
-
* Theme names describe COLOR TEMPERATURE on purpose. Naming a theme after
|
|
11
|
-
* another company's product would imply an affiliation or an asset licence that
|
|
12
|
-
* does not exist; `warm` / `cool` are accurate and carry no such claim.
|
|
13
|
-
*/
|
|
14
|
-
import type { ThemeName } from '../config/schema.js';
|
|
15
|
-
export interface Palette {
|
|
16
|
-
primary: string;
|
|
17
|
-
accent: string;
|
|
18
|
-
user: string;
|
|
19
|
-
assistant: string;
|
|
20
|
-
thinking: string;
|
|
21
|
-
toolPending: string;
|
|
22
|
-
toolRunning: string;
|
|
23
|
-
toolDone: string;
|
|
24
|
-
toolError: string;
|
|
25
|
-
noticeInfo: string;
|
|
26
|
-
noticeWarn: string;
|
|
27
|
-
noticeError: string;
|
|
28
|
-
muted: string;
|
|
29
|
-
border: string;
|
|
30
|
-
code: string;
|
|
31
|
-
focusBorder: string;
|
|
32
|
-
idleBorder: string;
|
|
33
|
-
hintFg: string;
|
|
34
|
-
logoShadow: string;
|
|
35
|
-
/**
|
|
36
|
-
* Drag-selection highlight (tui-selection-and-scroll-follow §4.4.4).
|
|
37
|
-
*
|
|
38
|
-
* A PAIR, not a background alone: the selected run has its inner SGR stripped
|
|
39
|
-
* before it is repainted, so whatever foreground the row had is gone by the
|
|
40
|
-
* time the highlight is applied and a background on its own would leave the
|
|
41
|
-
* text at the terminal's default colour over an arbitrary hue. The two are
|
|
42
|
-
* contrast-pinned against EACH OTHER in `palettes.test.ts` — the surface a
|
|
43
|
-
* selected glyph sits on is `selectionBg`, not `DARK_SURFACE`.
|
|
44
|
-
*
|
|
45
|
-
* Below ansi-256 these never reach the terminal at all: `highlight.ts` emits
|
|
46
|
-
* plain reverse video there, because `getTheme` has degraded them to chalk
|
|
47
|
-
* colour NAMES by then and a name is not an escape sequence.
|
|
48
|
-
*/
|
|
49
|
-
selectionBg: string;
|
|
50
|
-
selectionFg: string;
|
|
51
|
-
gradient: [string, string, string];
|
|
52
|
-
gauge: {
|
|
53
|
-
track: string;
|
|
54
|
-
low: string;
|
|
55
|
-
mid: string;
|
|
56
|
-
high: string;
|
|
57
|
-
};
|
|
58
|
-
diff: {
|
|
59
|
-
add: string;
|
|
60
|
-
remove: string;
|
|
61
|
-
meta: string;
|
|
62
|
-
context: string;
|
|
63
|
-
};
|
|
64
|
-
toast: {
|
|
65
|
-
info: string;
|
|
66
|
-
warn: string;
|
|
67
|
-
error: string;
|
|
68
|
-
success: string;
|
|
69
|
-
};
|
|
70
|
-
chip: {
|
|
71
|
-
fg: string;
|
|
72
|
-
bg: string;
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* The GOVERN / PLAN+GOVERN posture badge, the legion panel title and the status chip
|
|
76
|
-
* (governance-mode section 10.7).
|
|
77
|
-
*
|
|
78
|
-
* A hue of its own, pinned by `palettes.test.ts`: >= 4.5:1 against THIS palette's own
|
|
79
|
-
* surface and >= 30 degrees away from the six semantic hues it must never be confused
|
|
80
|
-
* with (`primary`, `accent`, `user`, `toolDone`, `noticeWarn`, `noticeError`) - the
|
|
81
|
-
* last four because governance score gains and losses are drawn in `toolDone` /
|
|
82
|
-
* `noticeError` right beside it. The numbers below are the measured starting points.
|
|
83
|
-
*/
|
|
84
|
-
governAccent: string;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* The reference dark background these palettes are contrast-checked against.
|
|
88
|
-
* `palettes.test.ts` (A-7) pins `assistant` / `muted` / `hintFg` at WCAG AA
|
|
89
|
-
* (>= 4.5:1) here so a later "just nudging the hue" cannot quietly make body
|
|
90
|
-
* text unreadable.
|
|
91
|
-
*/
|
|
92
|
-
export declare const DARK_SURFACE = "#1c1917";
|
|
93
|
-
/**
|
|
94
|
-
* The reference background of the `LIGHT` palette. `LIGHT` text is dark-on-light, so
|
|
95
|
-
* contrast-checking it against `DARK_SURFACE` would pass a pair that is unreadable in
|
|
96
|
-
* the only place it is ever used (the same trap `selectionBg` documents).
|
|
97
|
-
*/
|
|
98
|
-
export declare const LIGHT_SURFACE = "#ffffff";
|
|
99
|
-
/** Terracotta + amber over warm neutrals — the v0.4.0 default. */
|
|
100
|
-
export declare const WARM: Palette;
|
|
101
|
-
/** The v0.3.0 palette, renamed. Reachable via `--theme cool` / `theme: "dark"`. */
|
|
102
|
-
export declare const COOL: Palette;
|
|
103
|
-
export declare const LIGHT: Palette;
|
|
104
|
-
/**
|
|
105
|
-
* Resolve a theme name to its palette.
|
|
106
|
-
*
|
|
107
|
-
* `auto` never guesses light: terminals cannot reliably report their background
|
|
108
|
-
* colour, and guessing wrong makes the app unreadable. `dark` is accepted here
|
|
109
|
-
* as well as in `clampTheme` because a persisted config written by v0.3.0 can
|
|
110
|
-
* still be sitting on disk when this runs.
|
|
111
|
-
*/
|
|
112
|
-
export declare function resolvePalette(name: ThemeName | 'dark'): Palette;
|
package/dist/ui/palettes.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Palettes (spec §4.5) — the raw hex data behind `getTheme()`, split out of
|
|
3
|
-
* `theme.ts` so the color decisions live in one readable place and can be
|
|
4
|
-
* contrast-tested without pulling in the degradation machinery.
|
|
5
|
-
*
|
|
6
|
-
* `WARM` is the new default. The old Tokyo-Night-derived palette survives under
|
|
7
|
-
* its accurate name `COOL` and stays reachable via `--theme cool`, so nobody's
|
|
8
|
-
* screen changes without them being able to change it back (R-4).
|
|
9
|
-
*
|
|
10
|
-
* Theme names describe COLOR TEMPERATURE on purpose. Naming a theme after
|
|
11
|
-
* another company's product would imply an affiliation or an asset licence that
|
|
12
|
-
* does not exist; `warm` / `cool` are accurate and carry no such claim.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* The reference dark background these palettes are contrast-checked against.
|
|
16
|
-
* `palettes.test.ts` (A-7) pins `assistant` / `muted` / `hintFg` at WCAG AA
|
|
17
|
-
* (>= 4.5:1) here so a later "just nudging the hue" cannot quietly make body
|
|
18
|
-
* text unreadable.
|
|
19
|
-
*/
|
|
20
|
-
export const DARK_SURFACE = '#1c1917';
|
|
21
|
-
/**
|
|
22
|
-
* The reference background of the `LIGHT` palette. `LIGHT` text is dark-on-light, so
|
|
23
|
-
* contrast-checking it against `DARK_SURFACE` would pass a pair that is unreadable in
|
|
24
|
-
* the only place it is ever used (the same trap `selectionBg` documents).
|
|
25
|
-
*/
|
|
26
|
-
export const LIGHT_SURFACE = '#ffffff';
|
|
27
|
-
/** Terracotta + amber over warm neutrals — the v0.4.0 default. */
|
|
28
|
-
export const WARM = {
|
|
29
|
-
primary: '#d08c60',
|
|
30
|
-
accent: '#c9a227',
|
|
31
|
-
user: '#7fb08a',
|
|
32
|
-
assistant: '#e6ddd1',
|
|
33
|
-
thinking: '#a2968a',
|
|
34
|
-
toolPending: '#8a7f74',
|
|
35
|
-
toolRunning: '#c9a227',
|
|
36
|
-
toolDone: '#7fb08a',
|
|
37
|
-
toolError: '#cf6b5c',
|
|
38
|
-
noticeInfo: '#d08c60',
|
|
39
|
-
noticeWarn: '#c9a227',
|
|
40
|
-
noticeError: '#cf6b5c',
|
|
41
|
-
muted: '#a2968a',
|
|
42
|
-
border: '#4a423b',
|
|
43
|
-
code: '#c9a97a',
|
|
44
|
-
focusBorder: '#d08c60',
|
|
45
|
-
idleBorder: '#4a423b',
|
|
46
|
-
hintFg: '#9c9086',
|
|
47
|
-
logoShadow: '#4a423b',
|
|
48
|
-
selectionBg: '#e0b088',
|
|
49
|
-
selectionFg: '#1c1917',
|
|
50
|
-
gradient: ['#d08c60', '#c9a227', '#b0916a'],
|
|
51
|
-
gauge: { track: '#4a423b', low: '#7fb08a', mid: '#c9a227', high: '#cf6b5c' },
|
|
52
|
-
diff: { add: '#7fb08a', remove: '#cf6b5c', meta: '#d08c60', context: '#a2968a' },
|
|
53
|
-
toast: { info: '#d08c60', warn: '#c9a227', error: '#cf6b5c', success: '#7fb08a' },
|
|
54
|
-
chip: { fg: '#1c1917', bg: '#d08c60' },
|
|
55
|
-
governAccent: '#B79CED',
|
|
56
|
-
};
|
|
57
|
-
/** The v0.3.0 palette, renamed. Reachable via `--theme cool` / `theme: "dark"`. */
|
|
58
|
-
export const COOL = {
|
|
59
|
-
primary: '#7aa2f7',
|
|
60
|
-
accent: '#bb9af7',
|
|
61
|
-
user: '#7dcfff',
|
|
62
|
-
assistant: '#c0caf5',
|
|
63
|
-
thinking: '#7a86b8',
|
|
64
|
-
toolPending: '#565f89',
|
|
65
|
-
toolRunning: '#e0af68',
|
|
66
|
-
toolDone: '#9ece6a',
|
|
67
|
-
toolError: '#f7768e',
|
|
68
|
-
noticeInfo: '#7aa2f7',
|
|
69
|
-
noticeWarn: '#e0af68',
|
|
70
|
-
noticeError: '#f7768e',
|
|
71
|
-
muted: '#565f89',
|
|
72
|
-
border: '#3b4261',
|
|
73
|
-
code: '#9ece6a',
|
|
74
|
-
focusBorder: '#7aa2f7',
|
|
75
|
-
idleBorder: '#3b4261',
|
|
76
|
-
hintFg: '#565f89',
|
|
77
|
-
logoShadow: '#3b4261',
|
|
78
|
-
selectionBg: '#7aa2f7',
|
|
79
|
-
selectionFg: '#1a1b26',
|
|
80
|
-
gradient: ['#7aa2f7', '#bb9af7', '#7dcfff'],
|
|
81
|
-
gauge: { track: '#3b4261', low: '#9ece6a', mid: '#e0af68', high: '#f7768e' },
|
|
82
|
-
diff: { add: '#9ece6a', remove: '#f7768e', meta: '#7aa2f7', context: '#7a86b8' },
|
|
83
|
-
toast: { info: '#7aa2f7', warn: '#e0af68', error: '#f7768e', success: '#9ece6a' },
|
|
84
|
-
chip: { fg: '#1a1b26', bg: '#7aa2f7' },
|
|
85
|
-
governAccent: '#73DACA',
|
|
86
|
-
};
|
|
87
|
-
export const LIGHT = {
|
|
88
|
-
primary: '#2959aa',
|
|
89
|
-
accent: '#8c4bc9',
|
|
90
|
-
user: '#0f7490',
|
|
91
|
-
assistant: '#1f2430',
|
|
92
|
-
thinking: '#6b7280',
|
|
93
|
-
toolPending: '#9aa0ab',
|
|
94
|
-
toolRunning: '#b5730f',
|
|
95
|
-
toolDone: '#2e7d32',
|
|
96
|
-
toolError: '#c62828',
|
|
97
|
-
noticeInfo: '#2959aa',
|
|
98
|
-
noticeWarn: '#b5730f',
|
|
99
|
-
noticeError: '#c62828',
|
|
100
|
-
muted: '#6b7280',
|
|
101
|
-
border: '#c8cdd6',
|
|
102
|
-
code: '#3f7f2f',
|
|
103
|
-
focusBorder: '#2959aa',
|
|
104
|
-
idleBorder: '#c8cdd6',
|
|
105
|
-
hintFg: '#6b7280',
|
|
106
|
-
logoShadow: '#c8cdd6',
|
|
107
|
-
selectionBg: '#2959aa',
|
|
108
|
-
selectionFg: '#ffffff',
|
|
109
|
-
gradient: ['#2959aa', '#8c4bc9', '#0f7490'],
|
|
110
|
-
gauge: { track: '#c8cdd6', low: '#2e7d32', mid: '#b5730f', high: '#c62828' },
|
|
111
|
-
diff: { add: '#2e7d32', remove: '#c62828', meta: '#2959aa', context: '#6b7280' },
|
|
112
|
-
toast: { info: '#2959aa', warn: '#b5730f', error: '#c62828', success: '#2e7d32' },
|
|
113
|
-
chip: { fg: '#ffffff', bg: '#2959aa' },
|
|
114
|
-
governAccent: '#A8327A',
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Resolve a theme name to its palette.
|
|
118
|
-
*
|
|
119
|
-
* `auto` never guesses light: terminals cannot reliably report their background
|
|
120
|
-
* colour, and guessing wrong makes the app unreadable. `dark` is accepted here
|
|
121
|
-
* as well as in `clampTheme` because a persisted config written by v0.3.0 can
|
|
122
|
-
* still be sitting on disk when this runs.
|
|
123
|
-
*/
|
|
124
|
-
export function resolvePalette(name) {
|
|
125
|
-
if (name === 'light')
|
|
126
|
-
return LIGHT;
|
|
127
|
-
if (name === 'cool' || name === 'dark')
|
|
128
|
-
return COOL;
|
|
129
|
-
return WARM;
|
|
130
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reading paste frames back out of an Ink `input` string
|
|
3
|
-
* (tui-paste-handling section 5.4) -- pure.
|
|
4
|
-
*
|
|
5
|
-
* The stdin filter writes `PASTE_OPEN + payload + PASTE_CLOSE` inline, in stream
|
|
6
|
-
* order (I-5). This module is the only place that takes those markers apart.
|
|
7
|
-
*/
|
|
8
|
-
export interface FrameTextSegment {
|
|
9
|
-
readonly kind: 'text';
|
|
10
|
-
readonly text: string;
|
|
11
|
-
}
|
|
12
|
-
export interface FramePasteSegment {
|
|
13
|
-
readonly kind: 'paste';
|
|
14
|
-
readonly text: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* A run of one `input` string.
|
|
18
|
-
*
|
|
19
|
-
* NO `id` HERE. The paste id is allocated by `PromptInput` while it builds the
|
|
20
|
-
* reducer's action, never by this function and never by the reducer (P1-5), so
|
|
21
|
-
* the split stays a pure function of its argument and `paste-frames.test.ts` can
|
|
22
|
-
* assert on its output.
|
|
23
|
-
*/
|
|
24
|
-
export type FrameSegment = FrameTextSegment | FramePasteSegment;
|
|
25
|
-
/**
|
|
26
|
-
* Remove every C0 byte, DEL and C1 byte from text that arrived OUTSIDE a frame
|
|
27
|
-
* (I-14). NO CR -> LF conversion, and that omission is the point.
|
|
28
|
-
*
|
|
29
|
-
* WHY THIS IS NOT OPTIONAL. Ink drains its whole buffer in one size-less
|
|
30
|
-
* `read()` (`App.js:135`), so the `input` string carrying a frame can also carry
|
|
31
|
-
* the keystroke bytes that arrived beside it -- most often the `\r` of a user who
|
|
32
|
-
* pastes and immediately presses Enter, since Ink's 32 ms render throttle and a
|
|
33
|
-
* large transcript's Yoga pass both outlast the filter's 15 ms burst window.
|
|
34
|
-
* Splicing that run in verbatim puts a raw CR back into the draft and re-opens
|
|
35
|
-
* the corruption this whole feature exists to remove.
|
|
36
|
-
*
|
|
37
|
-
* Note what it does NOT do. It does not turn a coalesced `\r` into a newline and
|
|
38
|
-
* it does not submit: a keystroke that merged with a frame has already lost its
|
|
39
|
-
* identity as a key (`parseKeypress` saw the concatenation, not the key), so the
|
|
40
|
-
* only two honest options are "insert something wrong" and "drop it". Dropping is
|
|
41
|
-
* recoverable and benign -- the user presses Enter again -- while inserting a
|
|
42
|
-
* control byte is not. Printable characters survive untouched.
|
|
43
|
-
*/
|
|
44
|
-
export declare function sanitiseTyped(text: string): string;
|
|
45
|
-
/**
|
|
46
|
-
* Split an `input` string into ordered text runs and paste runs.
|
|
47
|
-
*
|
|
48
|
-
* Text runs are returned already through `sanitiseTyped` (I-14); paste runs are
|
|
49
|
-
* returned through `sanitisePaste`, which keeps TAB and `\n` because they are
|
|
50
|
-
* content inside a payload.
|
|
51
|
-
*
|
|
52
|
-
* RE-SANITISING THE PAYLOAD IS DEFENCE IN DEPTH, NOT A SECOND OPINION. The
|
|
53
|
-
* filter already ran `sanitisePaste` and it is idempotent, so the normal path is
|
|
54
|
-
* byte-identical. What it buys is that G2 ("no pasted byte is ever executed as a
|
|
55
|
-
* terminal control") becomes a property of the COMPOSER rather than a property
|
|
56
|
-
* of whoever produced the frame -- which matters for the branch below, where an
|
|
57
|
-
* unmatched `PASTE_OPEN` turns arbitrary trailing bytes into a paste segment.
|
|
58
|
-
*
|
|
59
|
-
* An unmatched `PASTE_OPEN` -- impossible from our own filter, but cheap to
|
|
60
|
-
* survive -- yields its remainder as a paste segment rather than leaking NULs.
|
|
61
|
-
*/
|
|
62
|
-
export declare function splitPasteFrames(input: string): FrameSegment[];
|
|
63
|
-
/** True when this `input` carries at least one frame -- the branch guard. */
|
|
64
|
-
export declare function hasPasteFrame(input: string): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Turn a possibly-framed `input` into plain text for a consumer that has no
|
|
67
|
-
* paste model of its own: unwrap the frames, keep the payload, drop the markers,
|
|
68
|
-
* and run BOTH halves through `sanitiseTyped`.
|
|
69
|
-
*
|
|
70
|
-
* ANY `useInput` CONSUMER THAT APPENDS `input` TO A STRING MUST CALL THIS (I-12),
|
|
71
|
-
* and the list is pinned by a source scan rather than by review discipline
|
|
72
|
-
* because the failure is invisible: NUL renders as nothing.
|
|
73
|
-
*
|
|
74
|
-
* `useInput` is a BROADCAST -- `use-input.js` re-emits every chunk to every
|
|
75
|
-
* mounted handler -- so `SettingsScreen` and `QuestionOverlay` see the frame the
|
|
76
|
-
* composer was sent. An API key is ~100 characters with no line break, which trips
|
|
77
|
-
* Tier 2's burst rule and gets framed; nothing downstream removes the NULs
|
|
78
|
-
* (`String.prototype.trim()` does not treat U+0000 as whitespace), the field is
|
|
79
|
-
* rendered through `maskDot` so the damage is invisible, and the value is handed
|
|
80
|
-
* to `registerSecret()` and `controller.setApiKey()`. The user is told the
|
|
81
|
-
* settings were saved and every request afterwards fails to authenticate with
|
|
82
|
-
* nothing on screen to explain it.
|
|
83
|
-
*
|
|
84
|
-
* This is strictly better than v0.6.3 for both consumers: a pasted key carrying a
|
|
85
|
-
* stray CR or an ANSI sequence is now cleaned rather than stored raw. The
|
|
86
|
-
* unframed branch strips escape SEQUENCES before the control sweep, because
|
|
87
|
-
* deleting only the introducer left `[0m` in the stored value -- and in a
|
|
88
|
-
* settings field that residue is invisible behind `maskDot` while the value
|
|
89
|
-
* handed to `registerSecret()` is silently wrong.
|
|
90
|
-
*/
|
|
91
|
-
export declare function stripPasteFrames(input: string): string;
|