@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,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Win32-input-mode translation (win32 keyboard-enhancement section of the
|
|
3
|
-
* Shift+Enter newline fix).
|
|
4
|
-
*
|
|
5
|
-
* WHY THIS EXISTS. With `CSI ? 9001 h` the Windows console (conhost inside
|
|
6
|
-
* ConPTY included -- verified byte-level on both conhost and Windows Terminal
|
|
7
|
-
* 1.24, see docs/diagnoses/shift-enter-newline-dead-by-default) reports EVERY
|
|
8
|
-
* key as `ESC [ vk ; scan ; char ; keyDown ; mods ; repeat _`. That is the
|
|
9
|
-
* only Windows-side encoding in which Shift+Enter is distinguishable from
|
|
10
|
-
* Enter: mods carries SHIFT_PRESSED (0x10) on the record. Nothing else
|
|
11
|
-
* survives ConPTY: kitty `CSI > 1 u` is swallowed (a `CSI ? u` query never
|
|
12
|
-
* answers) and modifyOtherKeys is a no-op.
|
|
13
|
-
*
|
|
14
|
-
* THE CONTRACT. `splitWin32KeySequences` recognises the records in a chunk;
|
|
15
|
-
* `translateWin32Key` rewrites each one to the LEGACY bytes the same keypress
|
|
16
|
-
* would have produced with the mode off -- except the modified-Enter family,
|
|
17
|
-
* which becomes `ENTER_NEWLINE_FRAME` exactly like `enter-sequences.ts` maps
|
|
18
|
-
* its CSI-u cousins. Ink therefore sees the stream it has always seen. Key-up
|
|
19
|
-
* records are dropped (every press arrives as a down/up pair in one chunk).
|
|
20
|
-
*
|
|
21
|
-
* Pure: no node/React imports, callable from any test environment.
|
|
22
|
-
*/
|
|
23
|
-
/** Enable / disable win32-input-mode (private mode 9001). */
|
|
24
|
-
export declare const WIN32_INPUT_ENABLE = "\u001B[?9001h";
|
|
25
|
-
export declare const WIN32_INPUT_DISABLE = "\u001B[?9001l";
|
|
26
|
-
/** One decoded `ESC [ vk ; sc ; char ; down ; mods ; rep _` record. */
|
|
27
|
-
export interface Win32KeyRecord {
|
|
28
|
-
readonly vk: number;
|
|
29
|
-
readonly scan: number;
|
|
30
|
-
readonly char: number;
|
|
31
|
-
readonly down: boolean;
|
|
32
|
-
readonly mods: number;
|
|
33
|
-
readonly repeat: number;
|
|
34
|
-
}
|
|
35
|
-
export type Win32Segment = {
|
|
36
|
-
kind: 'text';
|
|
37
|
-
text: string;
|
|
38
|
-
} | {
|
|
39
|
-
kind: 'key';
|
|
40
|
-
record: Win32KeyRecord;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Split a chunk into text spans and win32-input-mode records.
|
|
44
|
-
*
|
|
45
|
-
* MATCHES ONLY `ESC [ <digits/semicolons> _`: mouse reports need `<`, paste
|
|
46
|
-
* markers end in `~`, CSI-u ends in `u`, DECRPM replies start with `?`. A
|
|
47
|
-
* `_`-terminated all-numeric-parameter sequence is therefore unambiguous in
|
|
48
|
-
* the stream this filter ever sees.
|
|
49
|
-
*/
|
|
50
|
-
export declare function splitWin32KeySequences(text: string): Win32Segment[];
|
|
51
|
-
/**
|
|
52
|
-
* Translate one record to the legacy bytes the same keypress would have
|
|
53
|
-
* produced with win32-input-mode off (Enter family excepted: a modified Enter
|
|
54
|
-
* becomes the newline frame, mirroring `ENTER_SEQUENCES`).
|
|
55
|
-
*/
|
|
56
|
-
export declare function translateWin32Key(record: Win32KeyRecord): string;
|
|
57
|
-
/**
|
|
58
|
-
* Length of the trailing run of `text` that could still complete into a
|
|
59
|
-
* win32-input-mode record, or 0. Longest match, mirroring the other families.
|
|
60
|
-
*/
|
|
61
|
-
export declare function trailingWin32PrefixLength(text: string): number;
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Win32-input-mode translation (win32 keyboard-enhancement section of the
|
|
3
|
-
* Shift+Enter newline fix).
|
|
4
|
-
*
|
|
5
|
-
* WHY THIS EXISTS. With `CSI ? 9001 h` the Windows console (conhost inside
|
|
6
|
-
* ConPTY included -- verified byte-level on both conhost and Windows Terminal
|
|
7
|
-
* 1.24, see docs/diagnoses/shift-enter-newline-dead-by-default) reports EVERY
|
|
8
|
-
* key as `ESC [ vk ; scan ; char ; keyDown ; mods ; repeat _`. That is the
|
|
9
|
-
* only Windows-side encoding in which Shift+Enter is distinguishable from
|
|
10
|
-
* Enter: mods carries SHIFT_PRESSED (0x10) on the record. Nothing else
|
|
11
|
-
* survives ConPTY: kitty `CSI > 1 u` is swallowed (a `CSI ? u` query never
|
|
12
|
-
* answers) and modifyOtherKeys is a no-op.
|
|
13
|
-
*
|
|
14
|
-
* THE CONTRACT. `splitWin32KeySequences` recognises the records in a chunk;
|
|
15
|
-
* `translateWin32Key` rewrites each one to the LEGACY bytes the same keypress
|
|
16
|
-
* would have produced with the mode off -- except the modified-Enter family,
|
|
17
|
-
* which becomes `ENTER_NEWLINE_FRAME` exactly like `enter-sequences.ts` maps
|
|
18
|
-
* its CSI-u cousins. Ink therefore sees the stream it has always seen. Key-up
|
|
19
|
-
* records are dropped (every press arrives as a down/up pair in one chunk).
|
|
20
|
-
*
|
|
21
|
-
* Pure: no node/React imports, callable from any test environment.
|
|
22
|
-
*/
|
|
23
|
-
import { ENTER_NEWLINE_FRAME, INDEX_KEY_FRAME } from './limits.js';
|
|
24
|
-
/** Enable / disable win32-input-mode (private mode 9001). */
|
|
25
|
-
export const WIN32_INPUT_ENABLE = '\x1b[?9001h';
|
|
26
|
-
export const WIN32_INPUT_DISABLE = '\x1b[?9001l';
|
|
27
|
-
/** Windows console `dwControlKeyState` modifier bits this module cares about. */
|
|
28
|
-
const RIGHT_ALT = 0x1;
|
|
29
|
-
const LEFT_ALT = 0x2;
|
|
30
|
-
const RIGHT_CTRL = 0x4;
|
|
31
|
-
const LEFT_CTRL = 0x8;
|
|
32
|
-
const SHIFT = 0x10;
|
|
33
|
-
/** Lock states, ENHANCED_KEY and friends must never look like modifiers. */
|
|
34
|
-
const MODIFIER_MASK = SHIFT | LEFT_CTRL | RIGHT_CTRL | LEFT_ALT | RIGHT_ALT;
|
|
35
|
-
/** Virtual-key codes the translator names explicitly. */
|
|
36
|
-
const VK_BACK = 0x08;
|
|
37
|
-
const VK_TAB = 0x09;
|
|
38
|
-
const VK_ENTER = 0x0d;
|
|
39
|
-
const VK_ESCAPE = 0x1b;
|
|
40
|
-
const VK_PACKET = 0xe7;
|
|
41
|
-
/**
|
|
42
|
-
* Parse one candidate body (`digits and semicolons`, the `_` excluded).
|
|
43
|
-
* Returns null when the field count is impossible for a real record -- that
|
|
44
|
-
* is what keeps a random `ESC [ 1 ; 2 3 _`-shaped paste from being eaten.
|
|
45
|
-
*/
|
|
46
|
-
function parseRecord(body) {
|
|
47
|
-
const fields = body.split(';');
|
|
48
|
-
if (fields.length !== 6)
|
|
49
|
-
return null;
|
|
50
|
-
const nums = fields.map(Number);
|
|
51
|
-
if (nums.some((n) => !Number.isInteger(n) || n < 0 || n > 0x10ffff))
|
|
52
|
-
return null;
|
|
53
|
-
const [vk, , char, down, mods, repeat] = nums;
|
|
54
|
-
if (vk === undefined || char === undefined || down === undefined)
|
|
55
|
-
return null;
|
|
56
|
-
if (mods === undefined || repeat === undefined)
|
|
57
|
-
return null;
|
|
58
|
-
if (vk > 0xff)
|
|
59
|
-
return null;
|
|
60
|
-
return { vk, scan: nums[1] ?? 0, char, down: down === 1, mods, repeat };
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Split a chunk into text spans and win32-input-mode records.
|
|
64
|
-
*
|
|
65
|
-
* MATCHES ONLY `ESC [ <digits/semicolons> _`: mouse reports need `<`, paste
|
|
66
|
-
* markers end in `~`, CSI-u ends in `u`, DECRPM replies start with `?`. A
|
|
67
|
-
* `_`-terminated all-numeric-parameter sequence is therefore unambiguous in
|
|
68
|
-
* the stream this filter ever sees.
|
|
69
|
-
*/
|
|
70
|
-
export function splitWin32KeySequences(text) {
|
|
71
|
-
const segments = [];
|
|
72
|
-
let start = 0;
|
|
73
|
-
let index = 0;
|
|
74
|
-
while (index < text.length) {
|
|
75
|
-
if (text[index] !== '\x1b' || text[index + 1] !== '[') {
|
|
76
|
-
index += 1;
|
|
77
|
-
continue;
|
|
78
|
-
}
|
|
79
|
-
let end = index + 2;
|
|
80
|
-
while (end < text.length && text[end] !== '_') {
|
|
81
|
-
const c = text[end];
|
|
82
|
-
if (c < '0' || c > '9') {
|
|
83
|
-
if (c !== ';') {
|
|
84
|
-
end = -1;
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
end += 1;
|
|
89
|
-
}
|
|
90
|
-
if (end === -1 || end >= text.length) {
|
|
91
|
-
index += 1;
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
const record = parseRecord(text.slice(index + 2, end));
|
|
95
|
-
if (!record) {
|
|
96
|
-
index += 1;
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
if (index > start)
|
|
100
|
-
segments.push({ kind: 'text', text: text.slice(start, index) });
|
|
101
|
-
segments.push({ kind: 'key', record });
|
|
102
|
-
index = end + 1;
|
|
103
|
-
start = index;
|
|
104
|
-
}
|
|
105
|
-
if (start < text.length)
|
|
106
|
-
segments.push({ kind: 'text', text: text.slice(start) });
|
|
107
|
-
return segments;
|
|
108
|
-
}
|
|
109
|
-
/** Legacy modifier parameter (xterm): 1 + shift + 2*alt + 4*ctrl. */
|
|
110
|
-
function legacyModifierParam(m) {
|
|
111
|
-
let p = 1;
|
|
112
|
-
if (m & SHIFT)
|
|
113
|
-
p += 1;
|
|
114
|
-
if (m & (LEFT_ALT | RIGHT_ALT))
|
|
115
|
-
p += 2;
|
|
116
|
-
if (m & (LEFT_CTRL | RIGHT_CTRL))
|
|
117
|
-
p += 4;
|
|
118
|
-
return p;
|
|
119
|
-
}
|
|
120
|
-
/** Functional keys named by vk, as (letter | tilde-code) legacy shapes. */
|
|
121
|
-
const FUNCTIONAL_KEYS = new Map([
|
|
122
|
-
[0x21, { code: 5 }], // PgUp
|
|
123
|
-
[0x22, { code: 6 }], // PgDn
|
|
124
|
-
[0x23, { letter: 'F' }], // End
|
|
125
|
-
[0x24, { letter: 'H' }], // Home
|
|
126
|
-
[0x25, { letter: 'D' }], // Left
|
|
127
|
-
[0x26, { letter: 'A' }], // Up
|
|
128
|
-
[0x27, { letter: 'C' }], // Right
|
|
129
|
-
[0x28, { letter: 'B' }], // Down
|
|
130
|
-
[0x2d, { code: 2 }], // Insert
|
|
131
|
-
[0x2e, { code: 3 }], // Delete
|
|
132
|
-
[0x70, { letter: 'P' }], // F1
|
|
133
|
-
[0x71, { letter: 'Q' }], // F2
|
|
134
|
-
[0x72, { letter: 'R' }], // F3
|
|
135
|
-
[0x73, { letter: 'S' }], // F4
|
|
136
|
-
[0x74, { code: 15 }], // F5
|
|
137
|
-
[0x75, { code: 17 }], // F6
|
|
138
|
-
[0x76, { code: 18 }], // F7
|
|
139
|
-
[0x77, { code: 19 }], // F8
|
|
140
|
-
[0x78, { code: 20 }], // F9
|
|
141
|
-
[0x79, { code: 21 }], // F10
|
|
142
|
-
[0x7a, { code: 23 }], // F11
|
|
143
|
-
[0x7b, { code: 24 }], // F12
|
|
144
|
-
]);
|
|
145
|
-
/** Emit the legacy form of a functional key under `m` modifiers. */
|
|
146
|
-
function functionalLegacy(vk, m) {
|
|
147
|
-
const key = FUNCTIONAL_KEYS.get(vk);
|
|
148
|
-
if (!key)
|
|
149
|
-
return '';
|
|
150
|
-
if (m === 0) {
|
|
151
|
-
return 'letter' in key
|
|
152
|
-
? (key.letter === 'P' || key.letter === 'Q' || key.letter === 'R' || key.letter === 'S'
|
|
153
|
-
? `\x1bO${key.letter}`
|
|
154
|
-
: `\x1b[${key.letter}`)
|
|
155
|
-
: `\x1b[${key.code}~`;
|
|
156
|
-
}
|
|
157
|
-
const p = legacyModifierParam(m);
|
|
158
|
-
return 'letter' in key ? `\x1b[1;${p}${key.letter}` : `\x1b[${key.code};${p}~`;
|
|
159
|
-
}
|
|
160
|
-
/** Control code for Ctrl+letter, or the char itself when not a letter. */
|
|
161
|
-
function ctrlByte(char) {
|
|
162
|
-
if (char >= 97 && char <= 122)
|
|
163
|
-
return char - 96; // a-z -> 1-26
|
|
164
|
-
if (char >= 65 && char <= 90)
|
|
165
|
-
return char - 64; // A-Z -> 1-26
|
|
166
|
-
return char;
|
|
167
|
-
}
|
|
168
|
-
const isPrintable = (char) => char >= 0x20 && char !== 0x7f;
|
|
169
|
-
/**
|
|
170
|
-
* Translate one record to the legacy bytes the same keypress would have
|
|
171
|
-
* produced with win32-input-mode off (Enter family excepted: a modified Enter
|
|
172
|
-
* becomes the newline frame, mirroring `ENTER_SEQUENCES`).
|
|
173
|
-
*/
|
|
174
|
-
export function translateWin32Key(record) {
|
|
175
|
-
if (!record.down)
|
|
176
|
-
return '';
|
|
177
|
-
const m = record.mods & MODIFIER_MASK;
|
|
178
|
-
const ctrl = (m & (LEFT_CTRL | RIGHT_CTRL)) !== 0;
|
|
179
|
-
const alt = (m & (LEFT_ALT | RIGHT_ALT)) !== 0;
|
|
180
|
-
const shift = (m & SHIFT) !== 0;
|
|
181
|
-
const char = record.char === 0 ? '' : String.fromCodePoint(record.char);
|
|
182
|
-
// AltGr arrives as RightCtrl|RightAlt (or lone RightAlt) WITH the composed
|
|
183
|
-
// character already in `char`; prefixing ESC or control-translating it would
|
|
184
|
-
// break every non-US layout. Plain typing first, exotic combos never.
|
|
185
|
-
if (isPrintable(record.char) && (m === RIGHT_CTRL + RIGHT_ALT || m === RIGHT_ALT)) {
|
|
186
|
-
return char;
|
|
187
|
-
}
|
|
188
|
-
switch (record.vk) {
|
|
189
|
-
case VK_ENTER:
|
|
190
|
-
// A modified Enter NEVER submits -- same rule as `ENTER_SEQUENCES`.
|
|
191
|
-
return m === 0 ? '\r' : ENTER_NEWLINE_FRAME;
|
|
192
|
-
case VK_TAB:
|
|
193
|
-
// Ctrl+I is the project-indexer trigger, and the ONLY place the two are
|
|
194
|
-
// tell-apart is right here: legacy encoding collapses it to the Tab
|
|
195
|
-
// byte. Shift keeps ESC [ Z (Shift+Tab) so the mode toggle stays intact,
|
|
196
|
-
// and Ctrl+Shift+I stays on that Shift branch.
|
|
197
|
-
if (ctrl && !shift && !alt)
|
|
198
|
-
return INDEX_KEY_FRAME;
|
|
199
|
-
return shift ? '\x1b[Z' : '\t';
|
|
200
|
-
case VK_ESCAPE:
|
|
201
|
-
return alt ? '\x1b\x1b' : '\x1b';
|
|
202
|
-
case VK_BACK:
|
|
203
|
-
// POST-normalisation bytes: `handleText` rewrites DEL (0x7f) to BS
|
|
204
|
-
// (0x08) for Ink, and translated records bypass that walk -- emitting
|
|
205
|
-
// the final form keeps the stream byte-identical to the baseline.
|
|
206
|
-
if (alt)
|
|
207
|
-
return '\x1b\x08';
|
|
208
|
-
return '\x08';
|
|
209
|
-
default:
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
if (record.char !== 0 && record.char < 0x20 && record.vk !== VK_PACKET) {
|
|
213
|
-
// Ctrl combos: Windows already resolves the control character (Ctrl+C is
|
|
214
|
-
// 0x03). Alt keeps the ESC prefix; Ctrl+Alt prefixes ESC over the code.
|
|
215
|
-
if (!ctrl && !alt && !shift)
|
|
216
|
-
return char;
|
|
217
|
-
if (!ctrl && alt)
|
|
218
|
-
return `\x1b${char}`;
|
|
219
|
-
// Ctrl+I, letter-vk shape: a physical Ctrl+I keeps the LETTER vk
|
|
220
|
-
// (0x49, the same Ctrl+letter probe rule that reports Ctrl+A as 65
|
|
221
|
-
// and Ctrl+J as 74) while `char` is already the Tab byte, so the
|
|
222
|
-
// VK_TAB switch above never sees the record. 0x09 is both the Tab
|
|
223
|
-
// byte and VK_TAB, so the tell-apart from plain Tab is ctrl alone,
|
|
224
|
-
// and Shift keeps ESC [ Z exactly like that switch: the mode toggle
|
|
225
|
-
// stays intact and Ctrl+Shift+I stays on the Shift branch.
|
|
226
|
-
if (ctrl && record.char === VK_TAB) {
|
|
227
|
-
if (!shift && !alt)
|
|
228
|
-
return INDEX_KEY_FRAME;
|
|
229
|
-
return shift ? '\x1b[Z' : '\t';
|
|
230
|
-
}
|
|
231
|
-
return ctrl ? `${alt ? '\x1b' : ''}${char}` : char;
|
|
232
|
-
}
|
|
233
|
-
if (isPrintable(record.char)) {
|
|
234
|
-
if (ctrl) {
|
|
235
|
-
const code = ctrlByte(record.char);
|
|
236
|
-
return `${alt ? '\x1b' : ''}${code === record.char ? char : String.fromCharCode(code)}`;
|
|
237
|
-
}
|
|
238
|
-
if (alt)
|
|
239
|
-
return `\x1b${char}`;
|
|
240
|
-
return char;
|
|
241
|
-
}
|
|
242
|
-
return functionalLegacy(record.vk, m);
|
|
243
|
-
}
|
|
244
|
-
/** True when `s` is a PROPER prefix of some win32-input-mode record. */
|
|
245
|
-
function isWin32Prefix(s) {
|
|
246
|
-
// A bare ESC (or ESC + anything else) belongs to the Enter/mouse/paste
|
|
247
|
-
// families' hold; this family only ever extends `\x1b[` with digits and
|
|
248
|
-
// semicolons, up to but never including the `_`.
|
|
249
|
-
if (s.length < 3 || s[0] !== '\x1b' || s[1] !== '[')
|
|
250
|
-
return false;
|
|
251
|
-
for (let i = 2; i < s.length; i += 1) {
|
|
252
|
-
const c = s[i];
|
|
253
|
-
if ((c < '0' || c > '9') && c !== ';')
|
|
254
|
-
return false;
|
|
255
|
-
}
|
|
256
|
-
return true;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Length of the trailing run of `text` that could still complete into a
|
|
260
|
-
* win32-input-mode record, or 0. Longest match, mirroring the other families.
|
|
261
|
-
*/
|
|
262
|
-
export function trailingWin32PrefixLength(text) {
|
|
263
|
-
const max = Math.min(text.length, 32);
|
|
264
|
-
for (let k = max; k >= 1; k -= 1) {
|
|
265
|
-
if (isWin32Prefix(text.slice(text.length - k)))
|
|
266
|
-
return k;
|
|
267
|
-
}
|
|
268
|
-
return 0;
|
|
269
|
-
}
|
package/dist/logging/levels.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log levels — the ordering, the names, and the two coercion helpers.
|
|
3
|
-
*
|
|
4
|
-
* Kept in its own module because it is the one piece of the logging subsystem
|
|
5
|
-
* the config layer (`schema.ts`) and the settings screen need, and neither
|
|
6
|
-
* should have to pull in a file sink to learn what "debug" is called.
|
|
7
|
-
*
|
|
8
|
-
* PRIVACY IS PART OF THE LADDER, not a side effect of it:
|
|
9
|
-
*
|
|
10
|
-
* error crashes, failed requests, config write/parse failures
|
|
11
|
-
* warn degraded migrations, clamped values, dropped records
|
|
12
|
-
* info lifecycle, config writes, turn boundaries + token counts, tool
|
|
13
|
-
* names and durations — NO conversation content at all
|
|
14
|
-
* debug the above plus prompts / replies / tool args truncated to
|
|
15
|
-
* `previewChars`
|
|
16
|
-
* trace full message bodies, full tool arguments and output
|
|
17
|
-
*
|
|
18
|
-
* `info` is the default precisely so that "send me your log" is a safe thing to
|
|
19
|
-
* ask a user. `debug` and above are not, and the README says so.
|
|
20
|
-
*/
|
|
21
|
-
export declare const LOG_LEVELS: {
|
|
22
|
-
readonly silent: 0;
|
|
23
|
-
readonly error: 10;
|
|
24
|
-
readonly warn: 20;
|
|
25
|
-
readonly info: 30;
|
|
26
|
-
readonly debug: 40;
|
|
27
|
-
readonly trace: 50;
|
|
28
|
-
};
|
|
29
|
-
export type LogLevelName = keyof typeof LOG_LEVELS;
|
|
30
|
-
export declare const LOG_LEVEL_NAMES: readonly LogLevelName[];
|
|
31
|
-
export declare function isLogLevel(v: unknown): v is LogLevelName;
|
|
32
|
-
/**
|
|
33
|
-
* Coerce anything into a level, falling back rather than throwing.
|
|
34
|
-
*
|
|
35
|
-
* Same discipline as `clampTheme` / `clampThinkingLevel`: a nonsense value in
|
|
36
|
-
* the config file must not stop the CLI from starting.
|
|
37
|
-
*/
|
|
38
|
-
export declare function clampLogLevel(v: unknown, fallback: LogLevelName): LogLevelName;
|
|
39
|
-
/** True when a record at `level` should be emitted under `threshold`. */
|
|
40
|
-
export declare function isLevelEnabled(level: LogLevelName, threshold: LogLevelName): boolean;
|
package/dist/logging/levels.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log levels — the ordering, the names, and the two coercion helpers.
|
|
3
|
-
*
|
|
4
|
-
* Kept in its own module because it is the one piece of the logging subsystem
|
|
5
|
-
* the config layer (`schema.ts`) and the settings screen need, and neither
|
|
6
|
-
* should have to pull in a file sink to learn what "debug" is called.
|
|
7
|
-
*
|
|
8
|
-
* PRIVACY IS PART OF THE LADDER, not a side effect of it:
|
|
9
|
-
*
|
|
10
|
-
* error crashes, failed requests, config write/parse failures
|
|
11
|
-
* warn degraded migrations, clamped values, dropped records
|
|
12
|
-
* info lifecycle, config writes, turn boundaries + token counts, tool
|
|
13
|
-
* names and durations — NO conversation content at all
|
|
14
|
-
* debug the above plus prompts / replies / tool args truncated to
|
|
15
|
-
* `previewChars`
|
|
16
|
-
* trace full message bodies, full tool arguments and output
|
|
17
|
-
*
|
|
18
|
-
* `info` is the default precisely so that "send me your log" is a safe thing to
|
|
19
|
-
* ask a user. `debug` and above are not, and the README says so.
|
|
20
|
-
*/
|
|
21
|
-
export const LOG_LEVELS = {
|
|
22
|
-
silent: 0,
|
|
23
|
-
error: 10,
|
|
24
|
-
warn: 20,
|
|
25
|
-
info: 30,
|
|
26
|
-
debug: 40,
|
|
27
|
-
trace: 50,
|
|
28
|
-
};
|
|
29
|
-
export const LOG_LEVEL_NAMES = [
|
|
30
|
-
'silent',
|
|
31
|
-
'error',
|
|
32
|
-
'warn',
|
|
33
|
-
'info',
|
|
34
|
-
'debug',
|
|
35
|
-
'trace',
|
|
36
|
-
];
|
|
37
|
-
export function isLogLevel(v) {
|
|
38
|
-
return typeof v === 'string' && Object.prototype.hasOwnProperty.call(LOG_LEVELS, v);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Coerce anything into a level, falling back rather than throwing.
|
|
42
|
-
*
|
|
43
|
-
* Same discipline as `clampTheme` / `clampThinkingLevel`: a nonsense value in
|
|
44
|
-
* the config file must not stop the CLI from starting.
|
|
45
|
-
*/
|
|
46
|
-
export function clampLogLevel(v, fallback) {
|
|
47
|
-
if (isLogLevel(v))
|
|
48
|
-
return v;
|
|
49
|
-
if (typeof v === 'string' && isLogLevel(v.trim().toLowerCase())) {
|
|
50
|
-
return v.trim().toLowerCase();
|
|
51
|
-
}
|
|
52
|
-
return fallback;
|
|
53
|
-
}
|
|
54
|
-
/** True when a record at `level` should be emitted under `threshold`. */
|
|
55
|
-
export function isLevelEnabled(level, threshold) {
|
|
56
|
-
if (threshold === 'silent')
|
|
57
|
-
return false;
|
|
58
|
-
return LOG_LEVELS[level] <= LOG_LEVELS[threshold];
|
|
59
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The live set of secret literals the redactor must never let reach disk.
|
|
3
|
-
*
|
|
4
|
-
* WHY A REGISTRY AND NOT A SNAPSHOT (aragon-home-config-and-logging P0-3):
|
|
5
|
-
*
|
|
6
|
-
* The format regexes in `redact.ts` catch the three vendors we know about. This
|
|
7
|
-
* registry is the backstop for everything else — a custom endpoint whose key
|
|
8
|
-
* looks like nothing in particular. That backstop only works if it holds the
|
|
9
|
-
* keys we ACTUALLY have, which is a moving target: `installLogging()` runs
|
|
10
|
-
* before commander has parsed `--api-key`, and a key the user types into the
|
|
11
|
-
* settings screen mid-session arrives later still. A set captured at startup
|
|
12
|
-
* would miss the single most common path by which a key enters the process, and
|
|
13
|
-
* would miss it silently, because the vendor regexes happen to cover the keys
|
|
14
|
-
* we test with.
|
|
15
|
-
*
|
|
16
|
-
* Process-lifetime, append-only, never serialised, never written anywhere.
|
|
17
|
-
*/
|
|
18
|
-
export declare function registerSecret(value: string | undefined | null): void;
|
|
19
|
-
/** Convenience for the `apiKeys` maps every registration site happens to hold. */
|
|
20
|
-
export declare function registerSecretsFrom(keys: Record<string, string | null | undefined> | undefined): void;
|
|
21
|
-
/** Register dedicated credentials in untrusted parsed config before schema validation. */
|
|
22
|
-
export declare function registerProfileSecrets(value: unknown): void;
|
|
23
|
-
/**
|
|
24
|
-
* Every known secret, LONGEST FIRST.
|
|
25
|
-
*
|
|
26
|
-
* Order matters: when one key is a prefix of another, replacing the short one
|
|
27
|
-
* first leaves the remainder of the long one in the file — a partial key is
|
|
28
|
-
* still a leak, and a more convincing one for being partial.
|
|
29
|
-
*/
|
|
30
|
-
export declare function getSecrets(): readonly string[];
|
|
31
|
-
/** Tests only. Production code has no reason to forget a secret. */
|
|
32
|
-
export declare function clearSecretsForTest(): void;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The live set of secret literals the redactor must never let reach disk.
|
|
3
|
-
*
|
|
4
|
-
* WHY A REGISTRY AND NOT A SNAPSHOT (aragon-home-config-and-logging P0-3):
|
|
5
|
-
*
|
|
6
|
-
* The format regexes in `redact.ts` catch the three vendors we know about. This
|
|
7
|
-
* registry is the backstop for everything else — a custom endpoint whose key
|
|
8
|
-
* looks like nothing in particular. That backstop only works if it holds the
|
|
9
|
-
* keys we ACTUALLY have, which is a moving target: `installLogging()` runs
|
|
10
|
-
* before commander has parsed `--api-key`, and a key the user types into the
|
|
11
|
-
* settings screen mid-session arrives later still. A set captured at startup
|
|
12
|
-
* would miss the single most common path by which a key enters the process, and
|
|
13
|
-
* would miss it silently, because the vendor regexes happen to cover the keys
|
|
14
|
-
* we test with.
|
|
15
|
-
*
|
|
16
|
-
* Process-lifetime, append-only, never serialised, never written anywhere.
|
|
17
|
-
*/
|
|
18
|
-
const secrets = new Set();
|
|
19
|
-
/**
|
|
20
|
-
* Minimum length for a value to count as a secret.
|
|
21
|
-
*
|
|
22
|
-
* Registering `"1"` or `"off"` would blank out every occurrence of that
|
|
23
|
-
* substring in ordinary log text, which destroys the log's usefulness while
|
|
24
|
-
* protecting nothing.
|
|
25
|
-
*/
|
|
26
|
-
const MIN_SECRET_LENGTH = 8;
|
|
27
|
-
export function registerSecret(value) {
|
|
28
|
-
if (typeof value !== 'string')
|
|
29
|
-
return;
|
|
30
|
-
const trimmed = value.trim();
|
|
31
|
-
if (trimmed.length < MIN_SECRET_LENGTH)
|
|
32
|
-
return;
|
|
33
|
-
secrets.add(trimmed);
|
|
34
|
-
}
|
|
35
|
-
/** Convenience for the `apiKeys` maps every registration site happens to hold. */
|
|
36
|
-
export function registerSecretsFrom(keys) {
|
|
37
|
-
if (!keys)
|
|
38
|
-
return;
|
|
39
|
-
for (const value of Object.values(keys))
|
|
40
|
-
registerSecret(value);
|
|
41
|
-
}
|
|
42
|
-
/** Register dedicated credentials in untrusted parsed config before schema validation. */
|
|
43
|
-
export function registerProfileSecrets(value) {
|
|
44
|
-
if (!value || typeof value !== 'object')
|
|
45
|
-
return;
|
|
46
|
-
const profiles = value.modelProfiles;
|
|
47
|
-
if (!profiles || typeof profiles !== 'object')
|
|
48
|
-
return;
|
|
49
|
-
const entries = profiles.entries;
|
|
50
|
-
if (!Array.isArray(entries))
|
|
51
|
-
return;
|
|
52
|
-
for (const entry of entries) {
|
|
53
|
-
if (!entry || typeof entry !== 'object')
|
|
54
|
-
continue;
|
|
55
|
-
const key = entry.apiKey;
|
|
56
|
-
if (typeof key === 'string')
|
|
57
|
-
registerSecret(key);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Every known secret, LONGEST FIRST.
|
|
62
|
-
*
|
|
63
|
-
* Order matters: when one key is a prefix of another, replacing the short one
|
|
64
|
-
* first leaves the remainder of the long one in the file — a partial key is
|
|
65
|
-
* still a leak, and a more convincing one for being partial.
|
|
66
|
-
*/
|
|
67
|
-
export function getSecrets() {
|
|
68
|
-
return [...secrets].sort((a, b) => b.length - a.length);
|
|
69
|
-
}
|
|
70
|
-
/** Tests only. Production code has no reason to forget a secret. */
|
|
71
|
-
export function clearSecretsForTest() {
|
|
72
|
-
secrets.clear();
|
|
73
|
-
}
|