@aragon-agent/cli 0.6.47 → 0.6.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +27 -6
- package/dist/agent/coalesce.d.ts +1 -1
- package/dist/agent/controller.d.ts +21 -21
- package/dist/agent/controller.js +13 -13
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +79 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +29 -29
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +6 -6
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +1 -1
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +3 -3
- package/dist/proc/wait.d.ts +1 -1
- package/dist/proc/wait.js +1 -1
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +1 -1
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +3 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +2 -2
- package/dist/tools/job-tools.js +4 -4
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -857
- package/dist/agent/reducer.js +0 -1646
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1383
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -214
- package/dist/proc/limits.js +0 -221
- package/dist/proc/progress.d.ts +0 -47
- package/dist/proc/progress.js +0 -163
- package/dist/proc/types.d.ts +0 -269
- package/dist/proc/types.js +0 -15
- package/dist/proc/wait-view.d.ts +0 -65
- package/dist/proc/wait-view.js +0 -66
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -51
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -130
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -258
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -169
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/entries/WaitCard.d.ts +0 -37
- package/dist/ui/entries/WaitCard.js +0 -92
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -84
- package/dist/ui/interaction-copy.js +0 -41
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -140
- package/dist/ui/layout/status-layout.js +0 -262
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -494
- package/dist/ui/layout/wait-bar.d.ts +0 -34
- package/dist/ui/layout/wait-bar.js +0 -48
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -63
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -130
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
3
|
-
import { Text, useInput } from 'ink';
|
|
4
|
-
import { PROBE_LIMITS } from '../../agent/model-probe-limits.js';
|
|
5
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
6
|
-
import { OverlayFrame } from '../layout/OverlayFrame.js';
|
|
7
|
-
import { stripPasteFrames } from '../paste-frames.js';
|
|
8
|
-
import { stripEnterFrames } from '../enter-frames.js';
|
|
9
|
-
import { clipProfileText, useProfileScroll } from './ModelProfilePicker.js';
|
|
10
|
-
import { rankCandidates, windowLabel, clipName, LIST_ID_CHARS } from './model-probe-view.js';
|
|
11
|
-
function matches(candidate, query) {
|
|
12
|
-
const needle = query.toLocaleLowerCase();
|
|
13
|
-
return candidate.id.toLocaleLowerCase().includes(needle)
|
|
14
|
-
|| candidate.name.toLocaleLowerCase().includes(needle);
|
|
15
|
-
}
|
|
16
|
-
/** One row: id column, name column, window right-aligned inside the frame budget. */
|
|
17
|
-
function listRowText(candidate, cols) {
|
|
18
|
-
const width = Math.max(20, cols - 8);
|
|
19
|
-
const label = windowLabel(candidate.contextWindow);
|
|
20
|
-
const idWidth = Math.max(10, Math.min(LIST_ID_CHARS, width - label.length - 14));
|
|
21
|
-
const nameWidth = Math.max(4, width - idWidth - label.length - 2);
|
|
22
|
-
const id = [...candidate.id].slice(0, idWidth).join('').padEnd(idWidth);
|
|
23
|
-
// `clipName` caps the NAME COLUMN itself, so a vendor that ships a paragraph in
|
|
24
|
-
// `name` cannot push the window label out of a wide frame either.
|
|
25
|
-
const name = [...clipName(candidate.name)].slice(0, nameWidth).join('').padEnd(nameWidth);
|
|
26
|
-
return clipProfileText(`${id} ${name} ${label}`, width);
|
|
27
|
-
}
|
|
28
|
-
/** What the page says when there is no row to select. */
|
|
29
|
-
function emptyLines(busy, provider, view) {
|
|
30
|
-
if (busy)
|
|
31
|
-
return [`Discovering ${provider} models...`];
|
|
32
|
-
if (view.kind === 'discovery' && !view.outcome.ok) {
|
|
33
|
-
return [view.outcome.detail ?? 'The model list could not be fetched.',
|
|
34
|
-
'Fix: check the base URL and key, then press r to retry.'];
|
|
35
|
-
}
|
|
36
|
-
if (view.kind === 'discovery') {
|
|
37
|
-
return ['No models returned. Press r to retry, Esc to go back.',
|
|
38
|
-
'Test the connection for a precise reason.'];
|
|
39
|
-
}
|
|
40
|
-
return ['No models discovered yet. Press r to retry, Esc to go back.'];
|
|
41
|
-
}
|
|
42
|
-
function buildRows(props, view, glyphs) {
|
|
43
|
-
const rows = [];
|
|
44
|
-
if (view.searchable) {
|
|
45
|
-
rows.push(_jsxs(Text, { wrap: "truncate", color: props.theme.primary, children: [view.searching ? `${glyphs.caret} ` : ' ', "Search: ", view.query || '(/ to search)'] }, "search"));
|
|
46
|
-
}
|
|
47
|
-
if (view.shown.length === 0) {
|
|
48
|
-
const lines = view.query.length > 0
|
|
49
|
-
? [`No model matches "${view.query}". Esc clears the search.`]
|
|
50
|
-
: emptyLines(props.busy, props.provider, props.view);
|
|
51
|
-
for (const line of lines) {
|
|
52
|
-
rows.push(_jsx(Text, { wrap: "truncate", color: props.theme.muted, children: line }, `empty-${rows.length}`));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
view.shown.forEach((candidate, at) => {
|
|
56
|
-
const focused = at === view.cursor && !view.searching;
|
|
57
|
-
rows.push(_jsxs(Text, { wrap: "truncate", color: at === view.cursor ? props.theme.accent : props.theme.muted, children: [focused ? `${glyphs.caret} ` : ' ', listRowText(candidate, props.cols)] }, candidate.id));
|
|
58
|
-
});
|
|
59
|
-
if (view.truncated) {
|
|
60
|
-
const total = props.view.kind === 'discovery'
|
|
61
|
-
? props.view.outcome.total ?? view.shown.length : view.shown.length;
|
|
62
|
-
rows.push(_jsx(Text, { wrap: "truncate", color: props.theme.muted, children: `Showing first ${PROBE_LIMITS.maxListedModels} of ${total}. Narrow with search.` }, "truncated"));
|
|
63
|
-
}
|
|
64
|
-
return rows;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* The discovered-model page (model-profile-connection-test §3.5).
|
|
68
|
-
*
|
|
69
|
-
* Pure display plus input: it receives the discovery outcome and three intents and
|
|
70
|
-
* issues no request itself. No spinner - the census of animated sites is a closed
|
|
71
|
-
* list, and this overlay can be open while a run is in flight.
|
|
72
|
-
*/
|
|
73
|
-
export function ModelDiscoveryList(props) {
|
|
74
|
-
const [index, setIndex] = useState(0);
|
|
75
|
-
const [query, setQuery] = useState('');
|
|
76
|
-
const [searching, setSearching] = useState(false);
|
|
77
|
-
const glyphs = pickGlyphs(props.caps);
|
|
78
|
-
const candidates = props.view.kind === 'discovery'
|
|
79
|
-
? props.view.outcome.models : [];
|
|
80
|
-
const ranked = rankCandidates(candidates, props.currentModel);
|
|
81
|
-
const shown = query.length > 0 ? ranked.filter((item) => matches(item, query)) : ranked;
|
|
82
|
-
const searchable = ranked.length > PROBE_LIMITS.searchThreshold;
|
|
83
|
-
const cursor = shown.length > 0 ? Math.min(index, shown.length - 1) : 0;
|
|
84
|
-
// The truncation notice is one row BELOW the last candidate, and `useProfileScroll`
|
|
85
|
-
// only guarantees the FOCUSED row is visible - the same blind spot that hid the
|
|
86
|
-
// editor's result rows (RV-P1-3). Standing on the last row therefore widens the
|
|
87
|
-
// window by one, or `Showing first 400 of ...` could never be read at all.
|
|
88
|
-
const truncatedNotice = props.view.kind === 'discovery' && props.view.outcome.truncated
|
|
89
|
-
&& shown.length > 0;
|
|
90
|
-
const revealNotice = truncatedNotice && cursor >= shown.length - 1;
|
|
91
|
-
const offset = useProfileScroll(props, cursor + (searchable ? 1 : 0) + (revealNotice ? 1 : 0));
|
|
92
|
-
// Arrival, not every render: when the outcome lands, put the cursor on the model the
|
|
93
|
-
// draft already names, so "which one am I on" is answerable without scrolling.
|
|
94
|
-
const arrival = props.view.kind === 'discovery'
|
|
95
|
-
? `${props.view.outcome.connectionId}|${ranked.length}` : 'none';
|
|
96
|
-
useEffect(() => {
|
|
97
|
-
const at = ranked.findIndex((item) => item.id === props.currentModel.trim());
|
|
98
|
-
setIndex(at > 0 ? at : 0);
|
|
99
|
-
}, [arrival]);
|
|
100
|
-
const move = (delta) => {
|
|
101
|
-
if (shown.length > 0)
|
|
102
|
-
setIndex((cursor + delta + shown.length) % shown.length);
|
|
103
|
-
};
|
|
104
|
-
useInput((input, key) => {
|
|
105
|
-
if (props.isActive === false)
|
|
106
|
-
return;
|
|
107
|
-
if (key.escape) {
|
|
108
|
-
if (searching) {
|
|
109
|
-
setSearching(false);
|
|
110
|
-
setQuery('');
|
|
111
|
-
setIndex(0);
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (props.busy) {
|
|
115
|
-
props.onCancelProbe?.();
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
props.onBack();
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (key.upArrow || (key.tab && key.shift)) {
|
|
122
|
-
move(-1);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
if (key.downArrow || key.tab) {
|
|
126
|
-
move(1);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
if (key.return) {
|
|
130
|
-
const picked = shown[cursor];
|
|
131
|
-
if (picked)
|
|
132
|
-
props.onChoose(picked.id);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (searching) {
|
|
136
|
-
if (key.backspace || key.delete) {
|
|
137
|
-
setQuery((value) => [...value].slice(0, -1).join(''));
|
|
138
|
-
setIndex(0);
|
|
139
|
-
}
|
|
140
|
-
else if (input && !key.ctrl && !key.meta) {
|
|
141
|
-
setQuery((value) => value + stripPasteFrames(stripEnterFrames(input)));
|
|
142
|
-
setIndex(0);
|
|
143
|
-
}
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
if (input === '/' && searchable) {
|
|
147
|
-
setSearching(true);
|
|
148
|
-
setIndex(0);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
// `r` retries ONLY outside the search state: sharing the key with the query would
|
|
152
|
-
// turn one typo into a network request (§3.5 / D-16).
|
|
153
|
-
if (!key.ctrl && !key.meta && input === 'r')
|
|
154
|
-
props.onRetry();
|
|
155
|
-
});
|
|
156
|
-
const hint = props.busy ? 'Esc cancel'
|
|
157
|
-
: searching ? 'Type search | Enter choose | Esc back'
|
|
158
|
-
: `Enter choose${searchable ? ' | / search' : ''} | r retry | Esc back`;
|
|
159
|
-
return _jsx(OverlayFrame, { ...props, scrollOffset: offset, hint: hint, rows: buildRows(props, { query, shown, cursor, searchable, searching,
|
|
160
|
-
truncated: truncatedNotice }, glyphs), title: `Models | ${props.provider} (${shown.length})` });
|
|
161
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model picker overlay. Sources its provider set from the adapter-backed
|
|
3
|
-
* providers only (R5) so it never offers a model whose provider would fail at
|
|
4
|
-
* run with `Unknown LLM provider`. Lists each provider's builtin models.
|
|
5
|
-
*
|
|
6
|
-
* Selection belongs to a model ID, independently of the visible row window.
|
|
7
|
-
* Resizing or hiding the overlay never resets it. Each item occupies one row;
|
|
8
|
-
* this component owns navigation while App owns Escape.
|
|
9
|
-
*/
|
|
10
|
-
import React from 'react';
|
|
11
|
-
import type { ModelRegistry } from '@aragon-agent/core';
|
|
12
|
-
import type { Theme } from '../theme.js';
|
|
13
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
14
|
-
interface ModelPickerProps {
|
|
15
|
-
isActive?: boolean;
|
|
16
|
-
registry: ModelRegistry;
|
|
17
|
-
currentProvider: string;
|
|
18
|
-
currentModel: string;
|
|
19
|
-
maxRows: number;
|
|
20
|
-
cols: number;
|
|
21
|
-
theme: Theme;
|
|
22
|
-
caps: TermCapabilities;
|
|
23
|
-
onSelect: (provider: string, model: string) => void;
|
|
24
|
-
}
|
|
25
|
-
export declare function ModelPicker({ isActive, registry, currentProvider, currentModel, maxRows, cols, theme, caps, onSelect, }: ModelPickerProps): React.ReactElement;
|
|
26
|
-
export {};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Model picker overlay. Sources its provider set from the adapter-backed
|
|
4
|
-
* providers only (R5) so it never offers a model whose provider would fail at
|
|
5
|
-
* run with `Unknown LLM provider`. Lists each provider's builtin models.
|
|
6
|
-
*
|
|
7
|
-
* Selection belongs to a model ID, independently of the visible row window.
|
|
8
|
-
* Resizing or hiding the overlay never resets it. Each item occupies one row;
|
|
9
|
-
* this component owns navigation while App owns Escape.
|
|
10
|
-
*/
|
|
11
|
-
import { useState } from 'react';
|
|
12
|
-
import { Text, useInput } from 'ink';
|
|
13
|
-
import { ADAPTER_PROVIDERS } from '../../config/schema.js';
|
|
14
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
15
|
-
import { OverlayFrame, overlayBodyRows } from '../layout/OverlayFrame.js';
|
|
16
|
-
export function ModelPicker({ isActive = true, registry, currentProvider, currentModel, maxRows, cols, theme, caps, onSelect, }) {
|
|
17
|
-
const glyphs = pickGlyphs(caps);
|
|
18
|
-
const items = [];
|
|
19
|
-
const seen = new Set();
|
|
20
|
-
for (const provider of ADAPTER_PROVIDERS) {
|
|
21
|
-
for (const model of registry.getModels(provider)) {
|
|
22
|
-
const value = `${provider}:${model.id}`;
|
|
23
|
-
if (seen.has(value))
|
|
24
|
-
continue;
|
|
25
|
-
seen.add(value);
|
|
26
|
-
const current = provider === currentProvider && model.id === currentModel ? ` ${glyphs.check}` : '';
|
|
27
|
-
items.push({
|
|
28
|
-
label: `${provider} ${glyphs.midDot} ${model.name} (${model.id})${current}`,
|
|
29
|
-
value,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const [selectedValue, setSelectedValue] = useState(`${currentProvider}:${currentModel}`);
|
|
34
|
-
const selectedIndex = Math.max(0, items.findIndex(item => item.value === selectedValue));
|
|
35
|
-
const visibleRows = overlayBodyRows(maxRows, cols);
|
|
36
|
-
const offset = Math.max(0, Math.min(selectedIndex - visibleRows + 1, items.length - visibleRows));
|
|
37
|
-
const choose = (item) => {
|
|
38
|
-
if (!item)
|
|
39
|
-
return;
|
|
40
|
-
const [provider, ...rest] = item.value.split(':');
|
|
41
|
-
onSelect(provider, rest.join(':'));
|
|
42
|
-
};
|
|
43
|
-
useInput((input, key) => {
|
|
44
|
-
// Consume hidden input without changing selection, including when this is
|
|
45
|
-
// the only mounted input handler; otherwise buffered keys can replay later.
|
|
46
|
-
if (!isActive || !items.length)
|
|
47
|
-
return;
|
|
48
|
-
if (key.upArrow || input === 'k') {
|
|
49
|
-
setSelectedValue(items[(selectedIndex - 1 + items.length) % items.length].value);
|
|
50
|
-
}
|
|
51
|
-
else if (key.downArrow || input === 'j') {
|
|
52
|
-
setSelectedValue(items[(selectedIndex + 1) % items.length].value);
|
|
53
|
-
}
|
|
54
|
-
else if (key.return)
|
|
55
|
-
choose(items[selectedIndex]);
|
|
56
|
-
else if (/^[1-9]$/.test(input)) {
|
|
57
|
-
const visibleIndex = Number(input) - 1;
|
|
58
|
-
if (visibleIndex < visibleRows)
|
|
59
|
-
choose(items[offset + visibleIndex]);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
return (_jsx(OverlayFrame, { title: "Select a model", hint: `Enter choose ${glyphs.midDot} Esc cancel`, maxRows: maxRows, cols: cols, theme: theme, caps: caps, scrollOffset: offset, rows: items.length ? items.map((item, index) => _jsxs(Text, { wrap: "truncate", color: index === selectedIndex ? theme.accent : theme.primary, children: [index === selectedIndex ? `${glyphs.caret} ` : ' ', item.label] }, item.value)) : [_jsx(Text, { wrap: "truncate", children: "No models available" }, "empty")] }));
|
|
63
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ProbeTarget } from '../../agent/model-probe.js';
|
|
3
|
-
import { type ProfileFrameProps } from './ModelProfilePicker.js';
|
|
4
|
-
import { type ProfileEditorDraft, type ModelProfileAction } from './model-profile-state.js';
|
|
5
|
-
import { type ProbeView } from './model-probe-view.js';
|
|
6
|
-
interface ModelProfileEditorProps extends ProfileFrameProps {
|
|
7
|
-
editor: ProfileEditorDraft;
|
|
8
|
-
users: string;
|
|
9
|
-
error?: string;
|
|
10
|
-
dispatch: React.Dispatch<ModelProfileAction>;
|
|
11
|
-
/**
|
|
12
|
-
* The rendered probe state and its three intents. ALL OPTIONAL: a standalone or
|
|
13
|
-
* embedded mount has no probe port, and the two action rows then read
|
|
14
|
-
* `(unavailable)` instead of pretending to work (§6.1 / AC-15).
|
|
15
|
-
*/
|
|
16
|
-
probeView?: ProbeView;
|
|
17
|
-
probeBusy?: boolean;
|
|
18
|
-
probeTarget?: ProbeTarget;
|
|
19
|
-
onTest?: () => void;
|
|
20
|
-
onDiscover?: () => void;
|
|
21
|
-
onCancelProbe?: () => void;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* The profile form. Row semantics come from `editorRows()` - never from index
|
|
25
|
-
* arithmetic - so `apiKey` stays at index 6 and the two probe actions sit at the end
|
|
26
|
-
* of the action block, after `retain` (P0-1 / I-4).
|
|
27
|
-
*/
|
|
28
|
-
export declare function ModelProfileEditor(props: ModelProfileEditorProps): React.ReactElement;
|
|
29
|
-
export {};
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import { Text, useInput } from 'ink';
|
|
4
|
-
import { ADAPTER_PROVIDERS } from '../../config/schema.js';
|
|
5
|
-
import { registerSecret } from '../../logging/secret-registry.js';
|
|
6
|
-
import { OverlayFrame } from '../layout/OverlayFrame.js';
|
|
7
|
-
import { stripPasteFrames } from '../paste-frames.js';
|
|
8
|
-
import { stripEnterFrames } from '../enter-frames.js';
|
|
9
|
-
import { pickGlyphs } from '../glyphs.js';
|
|
10
|
-
import { useProfileScroll } from './ModelProfilePicker.js';
|
|
11
|
-
import { finishProfileEditor } from './model-profile-state.js';
|
|
12
|
-
import { EDITOR_FIELDS, editorRows, editorProbeTarget, focusableRows, resultRowCount } from './model-probe-view.js';
|
|
13
|
-
function useEditorInput(props, focus) {
|
|
14
|
-
const { editor, dispatch } = props;
|
|
15
|
-
const { index, setIndex, count, focusable } = focus;
|
|
16
|
-
function commit() {
|
|
17
|
-
const result = finishProfileEditor(editor);
|
|
18
|
-
if (result.field) {
|
|
19
|
-
// Field rows are the first focusables, in `EDITOR_FIELDS` order, so the jump an
|
|
20
|
-
// invalid field asks for is a lookup rather than an offset guess.
|
|
21
|
-
const at = EDITOR_FIELDS.indexOf(result.field);
|
|
22
|
-
if (at >= 0)
|
|
23
|
-
setIndex(at);
|
|
24
|
-
}
|
|
25
|
-
dispatch({ type: 'merge-editor' });
|
|
26
|
-
}
|
|
27
|
-
function activate(row) {
|
|
28
|
-
if (!row)
|
|
29
|
-
return;
|
|
30
|
-
if (row.kind === 'field') {
|
|
31
|
-
commit();
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (row.kind !== 'action')
|
|
35
|
-
return;
|
|
36
|
-
if (row.action === 'retain')
|
|
37
|
-
dispatch({ type: 'retain-key' });
|
|
38
|
-
if (row.action === 'test')
|
|
39
|
-
props.onTest?.();
|
|
40
|
-
if (row.action === 'discover')
|
|
41
|
-
props.onDiscover?.();
|
|
42
|
-
if (row.action === 'apply')
|
|
43
|
-
commit();
|
|
44
|
-
if (row.action === 'cancel')
|
|
45
|
-
dispatch({ type: 'cancel-editor' });
|
|
46
|
-
}
|
|
47
|
-
function editField(row, input, key) {
|
|
48
|
-
if (row.kind !== 'field')
|
|
49
|
-
return;
|
|
50
|
-
const field = row.field;
|
|
51
|
-
if (field === 'provider' || field === 'credentialMode') {
|
|
52
|
-
if (!key.leftArrow && !key.rightArrow)
|
|
53
|
-
return;
|
|
54
|
-
const options = field === 'provider' ? ADAPTER_PROVIDERS
|
|
55
|
-
: editor.original.apiKey && !editor.endpointChanged ? ['keep', 'replace', 'shared']
|
|
56
|
-
: ['shared', 'replace'];
|
|
57
|
-
const current = options.indexOf(editor[field]);
|
|
58
|
-
dispatch({ type: 'editor-field', field,
|
|
59
|
-
value: options[(current + (key.leftArrow ? -1 : 1) + options.length) % options.length] });
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (field === 'apiKey' && editor.credentialMode !== 'replace')
|
|
63
|
-
return;
|
|
64
|
-
const text = stripPasteFrames(stripEnterFrames(input));
|
|
65
|
-
const value = key.backspace || key.delete ? [...editor[field]].slice(0, -1).join('')
|
|
66
|
-
: editor[field] + text;
|
|
67
|
-
if (field === 'apiKey')
|
|
68
|
-
registerSecret(value);
|
|
69
|
-
if (key.backspace || key.delete || text)
|
|
70
|
-
dispatch({ type: 'editor-field', field, value });
|
|
71
|
-
}
|
|
72
|
-
useInput((input, key) => {
|
|
73
|
-
if (props.isActive === false)
|
|
74
|
-
return;
|
|
75
|
-
// Accelerators work on EVERY row (§3.3): the action rows are the primary entry,
|
|
76
|
-
// these are only the shortcut. Both keys are unused by `App`'s global branch.
|
|
77
|
-
if (key.ctrl && input === 'r') {
|
|
78
|
-
props.onTest?.();
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
if (key.ctrl && input === 'f') {
|
|
82
|
-
props.onDiscover?.();
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (key.escape) {
|
|
86
|
-
// THREE-LEVEL Esc (§3.4): a probe in flight is cancelled first and the draft
|
|
87
|
-
// survives; only the second press discards the form.
|
|
88
|
-
if (props.probeBusy) {
|
|
89
|
-
props.onCancelProbe?.();
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
dispatch({ type: 'cancel-editor' });
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (key.upArrow || (key.tab && key.shift)) {
|
|
96
|
-
setIndex((index - 1 + count) % count);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
if (key.downArrow || key.tab) {
|
|
100
|
-
setIndex((index + 1) % count);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (key.return) {
|
|
104
|
-
activate(focusable[index]);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if (key.ctrl || key.meta)
|
|
108
|
-
return;
|
|
109
|
-
const row = focusable[index];
|
|
110
|
-
if (row)
|
|
111
|
-
editField(row, input, key);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
function rowColor(props, row) {
|
|
115
|
-
if (row.kind === 'result') {
|
|
116
|
-
return row.tone === 'ok' ? props.theme.toolDone
|
|
117
|
-
: row.tone === 'fail' ? props.theme.noticeError : props.theme.muted;
|
|
118
|
-
}
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
function buildRows(props, focus) {
|
|
122
|
-
const glyphs = pickGlyphs(props.caps);
|
|
123
|
-
const focused = focus.focusable[focus.index];
|
|
124
|
-
return focus.rows.map((row, at) => {
|
|
125
|
-
if (row.kind === 'note') {
|
|
126
|
-
return _jsx(Text, { wrap: "truncate", color: props.theme.muted, children: row.label }, at);
|
|
127
|
-
}
|
|
128
|
-
if (row.kind === 'result') {
|
|
129
|
-
return _jsx(Text, { wrap: "truncate", color: rowColor(props, row), children: row.label }, at);
|
|
130
|
-
}
|
|
131
|
-
const line = row.value.length > 0 ? `${row.label.padEnd(18)}${row.value}` : row.label;
|
|
132
|
-
const isFocused = row === focused;
|
|
133
|
-
return _jsxs(Text, { wrap: "truncate", color: isFocused ? props.theme.accent : props.theme.muted, children: [isFocused ? `${glyphs.caret} ` : ' ', line] }, at);
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
function editorHint(props) {
|
|
137
|
-
if (props.probeBusy)
|
|
138
|
-
return 'Esc cancel the probe | draft is kept';
|
|
139
|
-
return 'Enter apply to draft | Ctrl+R test | Ctrl+F discover | Esc cancel';
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* The profile form. Row semantics come from `editorRows()` - never from index
|
|
143
|
-
* arithmetic - so `apiKey` stays at index 6 and the two probe actions sit at the end
|
|
144
|
-
* of the action block, after `retain` (P0-1 / I-4).
|
|
145
|
-
*/
|
|
146
|
-
export function ModelProfileEditor(props) {
|
|
147
|
-
const [index, setIndex] = useState(0);
|
|
148
|
-
const editor = props.editor;
|
|
149
|
-
const retain = editor.endpointChanged && Boolean(editor.original.apiKey);
|
|
150
|
-
const probe = props.probeView ?? { kind: 'idle', reason: 'unavailable' };
|
|
151
|
-
const target = props.probeTarget ?? editorProbeTarget(editor, {});
|
|
152
|
-
const rows = editorRows({ editor, retain, probe, target, fastOnly: props.users === 'Fast' });
|
|
153
|
-
const focusable = focusableRows(rows);
|
|
154
|
-
const count = Math.max(1, focusable.length);
|
|
155
|
-
const clamped = Math.min(index, count - 1);
|
|
156
|
-
// The result rows sit BELOW the action block, so following the focused row alone
|
|
157
|
-
// would leave the verdict off-screen right after the user asked for it (§4.9 / AC-21).
|
|
158
|
-
// How many action rows there are comes from the row model, never from a constant: a
|
|
159
|
-
// sixth action would otherwise move this window boundary onto a FIELD row.
|
|
160
|
-
const actionRows = focusable.filter((row) => row.kind === 'action').length;
|
|
161
|
-
const results = resultRowCount(rows);
|
|
162
|
-
const inActions = clamped >= count - actionRows;
|
|
163
|
-
const viewFocus = results > 0 && inActions ? Math.max(clamped, rows.length - 1) : clamped;
|
|
164
|
-
const offset = useProfileScroll(props, viewFocus);
|
|
165
|
-
useEditorInput(props, { index: clamped, setIndex, count, rows, focusable });
|
|
166
|
-
return _jsx(OverlayFrame, { ...props, rows: buildRows(props, { index: clamped, setIndex, count,
|
|
167
|
-
rows, focusable }), scrollOffset: offset, title: props.error ?? `Edit profile${props.users ? ` | Used by ${props.users}` : ''}`, hint: editorHint(props) });
|
|
168
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ModelProfile, ModelProfilesConfig } from '../../config/model-profiles.js';
|
|
3
|
-
import type { Theme } from '../theme.js';
|
|
4
|
-
import type { TermCapabilities } from '../capabilities.js';
|
|
5
|
-
import { type ProfilePickerRole } from './model-profile-state.js';
|
|
6
|
-
export interface ProfileFrameProps {
|
|
7
|
-
isActive?: boolean;
|
|
8
|
-
theme: Theme;
|
|
9
|
-
caps: TermCapabilities;
|
|
10
|
-
cols: number;
|
|
11
|
-
maxRows: number;
|
|
12
|
-
scrollOffset: number;
|
|
13
|
-
onScrollClamp?: (offset: number) => void;
|
|
14
|
-
}
|
|
15
|
-
/** Move focus into view while accepting App's independent wheel/page scrolling. */
|
|
16
|
-
export declare function useProfileScroll(props: ProfileFrameProps, focus: number): number;
|
|
17
|
-
/** Cut by terminal columns, preserving surrogate pairs and wide names. */
|
|
18
|
-
export declare function clipProfileText(value: string, columns: number): string;
|
|
19
|
-
export declare function profileEndpointSummary(baseUrl: string | null): string;
|
|
20
|
-
interface ModelProfilePickerProps extends ProfileFrameProps {
|
|
21
|
-
profiles: ModelProfilesConfig;
|
|
22
|
-
savedProfiles?: ModelProfilesConfig;
|
|
23
|
-
/** Which role this page selects for; `'subagent'` swaps the built-in rows (D-5). */
|
|
24
|
-
role: ProfilePickerRole;
|
|
25
|
-
manager?: boolean;
|
|
26
|
-
error?: string;
|
|
27
|
-
apiKeys: Record<string, string | undefined>;
|
|
28
|
-
customProfile?: ModelProfile;
|
|
29
|
-
/**
|
|
30
|
-
* The selection id for a role the library has no `${role}Id` key for: the
|
|
31
|
-
* subagent projection (`Same as main` = null, fast = the sentinel, profile
|
|
32
|
-
* = its id). Takes precedence over the `${role}Id` lookup when present.
|
|
33
|
-
*/
|
|
34
|
-
selectedIdOverride?: string | null;
|
|
35
|
-
/** The subagent binding, for the reference suffix on profile labels (3.7). */
|
|
36
|
-
subagentProfileId?: string | null;
|
|
37
|
-
/** Whether to annotate the built-in `Fast tier model` row with `(fast tier off)`. */
|
|
38
|
-
fastTierOff?: boolean;
|
|
39
|
-
onSelect: (id: string | null) => void;
|
|
40
|
-
onCreate: () => void;
|
|
41
|
-
onEdit: (profile: ModelProfile) => void;
|
|
42
|
-
onDuplicate: (id: string) => void;
|
|
43
|
-
onDelete: (id: string) => void;
|
|
44
|
-
onCancel: () => void;
|
|
45
|
-
}
|
|
46
|
-
/** Profile selection and explicit management actions share one input owner. */
|
|
47
|
-
export declare function ModelProfilePicker(props: ModelProfilePickerProps): React.ReactElement;
|
|
48
|
-
export {};
|