@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,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The rail's two-section row allocation (todo-acceptance-criteria §6.9.2).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: `src/todo/**` is inside the glyph scanner's scope.
|
|
5
|
-
*
|
|
6
|
-
* ONE ROW IDENTITY, DEFINED BEFORE IT IS IMPLEMENTED, and it is the only
|
|
7
|
-
* bookkeeping this feature does:
|
|
8
|
-
*
|
|
9
|
-
* showGauge 1 row when the gauge rule fires (width >= 20, rows >= 8)
|
|
10
|
-
* + 1 the TODO header row
|
|
11
|
-
* + (compact ? 0 : 1) ONE blank row: the full rail has it, the compact rail does not
|
|
12
|
-
* + todoItemRows
|
|
13
|
-
* + Number(todoFooter)
|
|
14
|
-
* + (acc ? acc.headerRows + acc.itemRows : 0)
|
|
15
|
-
* <= rows
|
|
16
|
-
*
|
|
17
|
-
* `overhead = 3` appears only in the full rung with a `visible` second section:
|
|
18
|
-
* 1 TODO header + 1 blank row + 1 ACCEPT header. THAT BLANK ROW IS THE SAME ROW
|
|
19
|
-
* TWICE OVER - it is the breathing space under the TODO header AND the separator
|
|
20
|
-
* between the two sections - so counting it twice overflows the box by one row,
|
|
21
|
-
* and Ink's `overflow="hidden"` clips the overflow silently. The symptom a user
|
|
22
|
-
* reports is "the panel only shows 2 criteria", which is why this comment is at
|
|
23
|
-
* the top of the file rather than next to the arithmetic.
|
|
24
|
-
*
|
|
25
|
-
* PURE: no I/O, no timers, no imports from `ui/**`. The rail renders what this
|
|
26
|
-
* returns; `/perf` reports the `acceptance.reason` it returns; the status-bar chip
|
|
27
|
-
* asks it whether the rail is already reporting the count. One number, one owner.
|
|
28
|
-
*/
|
|
29
|
-
import type { PlanPhase } from './types.js';
|
|
30
|
-
export interface PlanSectionsInput {
|
|
31
|
-
/** The rail's whole row budget (`TodoPanel`'s `rows` prop). */
|
|
32
|
-
rows: number;
|
|
33
|
-
/** The rail's whole column budget, chrome included. */
|
|
34
|
-
width: number;
|
|
35
|
-
phase: PlanPhase;
|
|
36
|
-
todoCount: number;
|
|
37
|
-
/** 0 means "no acceptance section at all". */
|
|
38
|
-
acceptanceCount: number;
|
|
39
|
-
/** Decided by `TodoPanel` under the existing gauge rule (width >= 20, rows >= 8). */
|
|
40
|
-
showGauge: boolean;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* `visible` - header row plus item rows.
|
|
44
|
-
* `summary` - one row only (`AC 2/5`), no header, no items.
|
|
45
|
-
* `absent` - nothing at all; the count has to reach the status-bar chip (I-7).
|
|
46
|
-
*/
|
|
47
|
-
export type AcceptanceSectionReason = 'visible' | 'summary' | 'absent';
|
|
48
|
-
export interface PlanSections {
|
|
49
|
-
todoItemRows: number;
|
|
50
|
-
/** Whether the `-N +M` footer is drawn (the existing `compactFooter` semantics). */
|
|
51
|
-
todoFooter: boolean;
|
|
52
|
-
acceptance: {
|
|
53
|
-
reason: AcceptanceSectionReason;
|
|
54
|
-
/** 1 = header row drawn; 0 = summary row only. */
|
|
55
|
-
headerRows: number;
|
|
56
|
-
/** > 0 to draw item rows. */
|
|
57
|
-
itemRows: number;
|
|
58
|
-
} | null;
|
|
59
|
-
}
|
|
60
|
-
export declare function buildPlanSections(input: PlanSectionsInput): PlanSections;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The rail's two-section row allocation (todo-acceptance-criteria §6.9.2).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: `src/todo/**` is inside the glyph scanner's scope.
|
|
5
|
-
*
|
|
6
|
-
* ONE ROW IDENTITY, DEFINED BEFORE IT IS IMPLEMENTED, and it is the only
|
|
7
|
-
* bookkeeping this feature does:
|
|
8
|
-
*
|
|
9
|
-
* showGauge 1 row when the gauge rule fires (width >= 20, rows >= 8)
|
|
10
|
-
* + 1 the TODO header row
|
|
11
|
-
* + (compact ? 0 : 1) ONE blank row: the full rail has it, the compact rail does not
|
|
12
|
-
* + todoItemRows
|
|
13
|
-
* + Number(todoFooter)
|
|
14
|
-
* + (acc ? acc.headerRows + acc.itemRows : 0)
|
|
15
|
-
* <= rows
|
|
16
|
-
*
|
|
17
|
-
* `overhead = 3` appears only in the full rung with a `visible` second section:
|
|
18
|
-
* 1 TODO header + 1 blank row + 1 ACCEPT header. THAT BLANK ROW IS THE SAME ROW
|
|
19
|
-
* TWICE OVER - it is the breathing space under the TODO header AND the separator
|
|
20
|
-
* between the two sections - so counting it twice overflows the box by one row,
|
|
21
|
-
* and Ink's `overflow="hidden"` clips the overflow silently. The symptom a user
|
|
22
|
-
* reports is "the panel only shows 2 criteria", which is why this comment is at
|
|
23
|
-
* the top of the file rather than next to the arithmetic.
|
|
24
|
-
*
|
|
25
|
-
* PURE: no I/O, no timers, no imports from `ui/**`. The rail renders what this
|
|
26
|
-
* returns; `/perf` reports the `acceptance.reason` it returns; the status-bar chip
|
|
27
|
-
* asks it whether the rail is already reporting the count. One number, one owner.
|
|
28
|
-
*/
|
|
29
|
-
import { TODO_LIMITS } from './limits.js';
|
|
30
|
-
/**
|
|
31
|
-
* Clamp, and NEVER silently reverse: `clampRows` requires `lo <= hi` at the call
|
|
32
|
-
* site, which every branch below establishes before it calls (§6.9.2, P2-5).
|
|
33
|
-
* `clampRows(x, 1, 0)` would return 0 - a panel that draws no acceptance rows and
|
|
34
|
-
* says nothing about why.
|
|
35
|
-
*/
|
|
36
|
-
function clampRows(value, lo, hi) {
|
|
37
|
-
return Math.min(Math.max(value, lo), hi);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The share of the item budget a `work`/`done` rail gives the criteria: 0.3, so the
|
|
41
|
-
* two sections trade rows rather than one starving the other (§6.9.2 step 6). The
|
|
42
|
-
* `verify` phase does not use it - there the criteria take everything above one row.
|
|
43
|
-
*/
|
|
44
|
-
const ACCEPTANCE_SHARE = 0.3;
|
|
45
|
-
export function buildPlanSections(input) {
|
|
46
|
-
const rows = Math.max(0, Math.floor(input.rows));
|
|
47
|
-
const acceptanceCount = Math.max(0, Math.floor(input.acceptanceCount));
|
|
48
|
-
const todoCount = Math.max(0, Math.floor(input.todoCount));
|
|
49
|
-
// 1. The existing definition of "compact", unchanged.
|
|
50
|
-
const compact = rows < TODO_LIMITS.panelFullRows;
|
|
51
|
-
// 2. What is left after the gauge, unchanged.
|
|
52
|
-
const available = rows - Number(input.showGauge);
|
|
53
|
-
// 3. The existing footer rule, unchanged.
|
|
54
|
-
const todoFooter = compact && todoCount > rows - 1;
|
|
55
|
-
// 4. No criteria: BYTE-IDENTICAL to the pre-feature arithmetic (I-5).
|
|
56
|
-
if (acceptanceCount === 0) {
|
|
57
|
-
return {
|
|
58
|
-
todoItemRows: compact
|
|
59
|
-
? rows - 1 - Number(todoFooter)
|
|
60
|
-
: rows - 2 - Number(input.showGauge),
|
|
61
|
-
todoFooter,
|
|
62
|
-
acceptance: null,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
// 5. Compact rung: rows in {3,4,5}, the gauge never fires, available === rows.
|
|
66
|
-
if (compact) {
|
|
67
|
-
const base = rows - 1 - Number(todoFooter);
|
|
68
|
-
// Lend one row to the summary line, but never the TODO window's last row.
|
|
69
|
-
// `absent` is reachable ONLY at rows === 3 with a footer (base === 1), which
|
|
70
|
-
// is the one "panel is up, section is not" combination (AC-34).
|
|
71
|
-
if (base - 1 >= 1) {
|
|
72
|
-
return {
|
|
73
|
-
todoItemRows: base - 1,
|
|
74
|
-
todoFooter,
|
|
75
|
-
acceptance: { reason: 'summary', headerRows: 0, itemRows: 1 },
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
todoItemRows: base,
|
|
80
|
-
todoFooter,
|
|
81
|
-
acceptance: { reason: 'absent', headerRows: 0, itemRows: 0 },
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
// 6. Full rung: rows >= 6. Three rows of chrome for the second section.
|
|
85
|
-
const budget = available - 3;
|
|
86
|
-
if (input.phase === 'verify') {
|
|
87
|
-
// Every step is done, so the step list carries no information - one row says
|
|
88
|
-
// so and the rest goes to the criteria the eye is actually on (D-7).
|
|
89
|
-
return {
|
|
90
|
-
todoItemRows: 1,
|
|
91
|
-
todoFooter: false,
|
|
92
|
-
acceptance: {
|
|
93
|
-
reason: 'visible',
|
|
94
|
-
headerRows: 1,
|
|
95
|
-
itemRows: clampRows(budget - 1, 1, acceptanceCount),
|
|
96
|
-
},
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
// `work` AND `done` share this branch on purpose: a plan that just passed every
|
|
100
|
-
// criterion must keep showing the table it passed - that is the screen the user
|
|
101
|
-
// wants to read - rather than fold like `verify` does.
|
|
102
|
-
const accItemRows = clampRows(Math.round(budget * ACCEPTANCE_SHARE), 1, Math.min(acceptanceCount, budget - 1));
|
|
103
|
-
return {
|
|
104
|
-
todoItemRows: budget - accItemRows,
|
|
105
|
-
todoFooter: false,
|
|
106
|
-
acceptance: { reason: 'visible', headerRows: 1, itemRows: accItemRows },
|
|
107
|
-
};
|
|
108
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `selectRowsAround` — the generic anchored window (todo-acceptance-criteria §6.9.4).
|
|
3
|
-
|
|
4
|
-
ASCII ONLY: `src/todo/**` is inside the glyph scanner's scope.
|
|
5
|
-
|
|
6
|
-
PURE WINDOWING, NO OFFSET STATE ANYWHERE (non-goal 2 / R-10). Ink has no absolute
|
|
7
|
-
positioning and this codebase already owns one hand-rolled viewport
|
|
8
|
-
(`ScrollViewport`) whose invariants took a whole spec to pin down; a second
|
|
9
|
-
scrollable region with its own offset, its own intent nonce and its own wheel band
|
|
10
|
-
would be the largest source of new bugs in that feature by a wide margin. The rail
|
|
11
|
-
therefore never scrolls - it windows around the row being worked on and reports
|
|
12
|
-
what is off each end.
|
|
13
|
-
|
|
14
|
-
THE DIRECT DESCENDANT OF `selectPanelRows`'s F-2 LESSON: the team panel originally
|
|
15
|
-
took the first five children by ARRAY INDEX, which showed the five that finished
|
|
16
|
-
FIRST and hid everything still working. Here the equivalent mistake is
|
|
17
|
-
`slice(0, maxRows)`, which on a 20-row plan shows rows 1-8 - all completed - and
|
|
18
|
-
hides the one the user is actually watching.
|
|
19
|
-
|
|
20
|
-
GENERIC OVER THE ROW TYPE (todo-acceptance-criteria §6.9.4): the todo window and
|
|
21
|
-
the acceptance window are the same algorithm over two different item shapes, so
|
|
22
|
-
the anchored-window fixpoint lives here once and three thin wrappers expose it.
|
|
23
|
-
The wrappers' outputs are field-for-field identical to the original todo-only
|
|
24
|
-
implementation (AC-13).
|
|
25
|
-
*/
|
|
26
|
-
export interface RowWindow<T> {
|
|
27
|
-
visible: {
|
|
28
|
-
item: T;
|
|
29
|
-
index: number;
|
|
30
|
-
}[];
|
|
31
|
-
hiddenAbove: number;
|
|
32
|
-
hiddenBelow: number;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* The anchored contiguous window, WITHOUT reserving overflow-marker rows.
|
|
36
|
-
*
|
|
37
|
-
* `maxRows` is a row count; invalid or non-positive values return an empty window
|
|
38
|
-
* with every row counted below it, which is what makes a caller whose arithmetic
|
|
39
|
-
* produced 0 render nothing rather than render everything.
|
|
40
|
-
*/
|
|
41
|
-
export declare function selectCompactRowsAround<T>(items: readonly T[], maxRows: number, anchor: (items: readonly T[]) => number): RowWindow<T>;
|
|
42
|
-
/**
|
|
43
|
-
* The anchored window WITH the two overflow markers accounted for.
|
|
44
|
-
*
|
|
45
|
-
* THE ANCHOR IS ALWAYS VISIBLE, and that beats the row bound when the two
|
|
46
|
-
* conflict. They can only conflict below `maxRows` 3 with overflow on BOTH sides
|
|
47
|
-
* - one row plus two markers is three rows - where this returns the anchor and
|
|
48
|
-
* lets the caller's `overflow="hidden"` clip a marker. Hiding the one row the user
|
|
49
|
-
* is watching in order to keep a `+N above` would be the wrong trade.
|
|
50
|
-
*/
|
|
51
|
-
export declare function selectRowsAround<T>(items: readonly T[], maxRows: number, anchor: (items: readonly T[]) => number): RowWindow<T>;
|
package/dist/todo/row-window.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `selectRowsAround` — the generic anchored window (todo-acceptance-criteria §6.9.4).
|
|
3
|
-
|
|
4
|
-
ASCII ONLY: `src/todo/**` is inside the glyph scanner's scope.
|
|
5
|
-
|
|
6
|
-
PURE WINDOWING, NO OFFSET STATE ANYWHERE (non-goal 2 / R-10). Ink has no absolute
|
|
7
|
-
positioning and this codebase already owns one hand-rolled viewport
|
|
8
|
-
(`ScrollViewport`) whose invariants took a whole spec to pin down; a second
|
|
9
|
-
scrollable region with its own offset, its own intent nonce and its own wheel band
|
|
10
|
-
would be the largest source of new bugs in that feature by a wide margin. The rail
|
|
11
|
-
therefore never scrolls - it windows around the row being worked on and reports
|
|
12
|
-
what is off each end.
|
|
13
|
-
|
|
14
|
-
THE DIRECT DESCENDANT OF `selectPanelRows`'s F-2 LESSON: the team panel originally
|
|
15
|
-
took the first five children by ARRAY INDEX, which showed the five that finished
|
|
16
|
-
FIRST and hid everything still working. Here the equivalent mistake is
|
|
17
|
-
`slice(0, maxRows)`, which on a 20-row plan shows rows 1-8 - all completed - and
|
|
18
|
-
hides the one the user is actually watching.
|
|
19
|
-
|
|
20
|
-
GENERIC OVER THE ROW TYPE (todo-acceptance-criteria §6.9.4): the todo window and
|
|
21
|
-
the acceptance window are the same algorithm over two different item shapes, so
|
|
22
|
-
the anchored-window fixpoint lives here once and three thin wrappers expose it.
|
|
23
|
-
The wrappers' outputs are field-for-field identical to the original todo-only
|
|
24
|
-
implementation (AC-13).
|
|
25
|
-
*/
|
|
26
|
-
/**
|
|
27
|
-
* How much of the window sits ABOVE the anchor.
|
|
28
|
-
*
|
|
29
|
-
* A QUARTER, and the asymmetry is the point: completed context above the anchor
|
|
30
|
-
* is sacrificed before upcoming work below it, because the user's question is
|
|
31
|
-
* "what is next", not "what is behind me".
|
|
32
|
-
*/
|
|
33
|
-
const ABOVE_SHARE = 0.25;
|
|
34
|
-
function windowFor(count, anchor, slots) {
|
|
35
|
-
if (slots >= count)
|
|
36
|
-
return { start: 0, end: count };
|
|
37
|
-
const above = Math.min(anchor, Math.max(0, Math.floor((slots - 1) * ABOVE_SHARE)));
|
|
38
|
-
let start = anchor - above;
|
|
39
|
-
let end = start + slots;
|
|
40
|
-
if (end > count) {
|
|
41
|
-
end = count;
|
|
42
|
-
start = Math.max(0, end - slots);
|
|
43
|
-
}
|
|
44
|
-
return { start, end };
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* The anchored contiguous window, WITHOUT reserving overflow-marker rows.
|
|
48
|
-
*
|
|
49
|
-
* `maxRows` is a row count; invalid or non-positive values return an empty window
|
|
50
|
-
* with every row counted below it, which is what makes a caller whose arithmetic
|
|
51
|
-
* produced 0 render nothing rather than render everything.
|
|
52
|
-
*/
|
|
53
|
-
export function selectCompactRowsAround(items, maxRows, anchor) {
|
|
54
|
-
const slots = Number.isFinite(maxRows) ? Math.max(0, Math.floor(maxRows)) : 0;
|
|
55
|
-
if (slots === 0 || items.length === 0) {
|
|
56
|
-
return { visible: [], hiddenAbove: 0, hiddenBelow: items.length };
|
|
57
|
-
}
|
|
58
|
-
const { start, end } = windowFor(items.length, anchor(items), slots);
|
|
59
|
-
return {
|
|
60
|
-
visible: items.slice(start, end).map((item, offset) => ({ item, index: start + offset })),
|
|
61
|
-
hiddenAbove: start,
|
|
62
|
-
hiddenBelow: items.length - end,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* The anchored window WITH the two overflow markers accounted for.
|
|
67
|
-
*
|
|
68
|
-
* THE ANCHOR IS ALWAYS VISIBLE, and that beats the row bound when the two
|
|
69
|
-
* conflict. They can only conflict below `maxRows` 3 with overflow on BOTH sides
|
|
70
|
-
* - one row plus two markers is three rows - where this returns the anchor and
|
|
71
|
-
* lets the caller's `overflow="hidden"` clip a marker. Hiding the one row the user
|
|
72
|
-
* is watching in order to keep a `+N above` would be the wrong trade.
|
|
73
|
-
*/
|
|
74
|
-
export function selectRowsAround(items, maxRows, anchor) {
|
|
75
|
-
const count = items.length;
|
|
76
|
-
const anchorIndex = anchor(items);
|
|
77
|
-
if (count === 0)
|
|
78
|
-
return { visible: [], hiddenAbove: 0, hiddenBelow: 0 };
|
|
79
|
-
if (maxRows <= 0) {
|
|
80
|
-
return {
|
|
81
|
-
visible: [],
|
|
82
|
-
hiddenAbove: anchorIndex,
|
|
83
|
-
hiddenBelow: count - 1 - anchorIndex,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
// The marker rows and the window depend on each other: a `+N above` row costs a
|
|
87
|
-
// slot, which can shrink the window, which can create a `+N below`. Two passes
|
|
88
|
-
// reach the fixpoint for every input this can be handed; the loop bound is a
|
|
89
|
-
// backstop, not a live case.
|
|
90
|
-
let reserved = 0;
|
|
91
|
-
let start = 0;
|
|
92
|
-
let end = count;
|
|
93
|
-
for (let pass = 0; pass < 3; pass += 1) {
|
|
94
|
-
const slots = Math.max(1, maxRows - reserved);
|
|
95
|
-
const win = windowFor(count, anchorIndex, slots);
|
|
96
|
-
start = win.start;
|
|
97
|
-
end = win.end;
|
|
98
|
-
const need = (start > 0 ? 1 : 0) + (end < count ? 1 : 0);
|
|
99
|
-
if (need === reserved)
|
|
100
|
-
break;
|
|
101
|
-
reserved = need;
|
|
102
|
-
}
|
|
103
|
-
const visible = [];
|
|
104
|
-
for (let i = start; i < end; i += 1)
|
|
105
|
-
visible.push({ item: items[i], index: i });
|
|
106
|
-
return { visible, hiddenAbove: start, hiddenBelow: count - end };
|
|
107
|
-
}
|
package/dist/todo/types.d.ts
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime shapes for the todo subsystem (todo-plan-execution §5.1).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: `src/todo/**` is inside the glyph scanner's scope.
|
|
5
|
-
*
|
|
6
|
-
* `TodoEvent` is CLI-LOCAL and is deliberately NOT a member of core's
|
|
7
|
-
* `AgentEvent` union (D-11), exactly as `TeamEvent` is not: core freezes its
|
|
8
|
-
* runtime export list (`public-api.test.ts`) and forbids host coupling
|
|
9
|
-
* (`no-host-coupling.test.ts`), so a new event member would break the first and
|
|
10
|
-
* teach core about a host shape it has no business defining.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Re-exported so `config/schema.ts` can name the mode without importing the
|
|
14
|
-
* decision module (todo-plan-followthrough §3.1). TYPE-ONLY, so the apparent
|
|
15
|
-
* cycle `types -> follow-through -> types` is erased at compile time and there
|
|
16
|
-
* is no runtime import at all.
|
|
17
|
-
*/
|
|
18
|
-
export type { FollowThroughMode } from './follow-through.js';
|
|
19
|
-
export type TodoStatus = 'pending' | 'in_progress' | 'completed';
|
|
20
|
-
export interface TodoItem {
|
|
21
|
-
/** Imperative, sanitized, <= TODO_LIMITS.contentChars. */
|
|
22
|
-
content: string;
|
|
23
|
-
/** Present continuous, shown while in progress. Falls back to `content`. */
|
|
24
|
-
activeForm: string;
|
|
25
|
-
status: TodoStatus;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* The two settled states of a criterion, plus "not checked" and "being checked"
|
|
29
|
-
* (todo-acceptance-criteria §6.1). Mutually exclusive and exhaustive.
|
|
30
|
-
*
|
|
31
|
-
* `in_progress` IS A STORE-OWNED DERIVED STATE (v2, P0-1): the model cannot write
|
|
32
|
-
* it, the tool schema does not expose it, normalization always downgrades it to
|
|
33
|
-
* `pending`, and `TodoStore.write()` re-derives at most one after every commit.
|
|
34
|
-
* That is the same discipline `TodoItem`'s "exactly one in_progress" follows: one
|
|
35
|
-
* state has exactly one writer, otherwise the derived phase, the rail's anchor
|
|
36
|
-
* and the transcript card each read a different "criterion being checked".
|
|
37
|
-
*/
|
|
38
|
-
export type AcceptanceStatus = 'pending' | 'in_progress' | 'passed' | 'failed';
|
|
39
|
-
export interface AcceptanceItem {
|
|
40
|
-
/** One checkable statement, sanitized, <= ACCEPT_LIMITS.contentChars. */
|
|
41
|
-
content: string;
|
|
42
|
-
/** How it will be checked (command / file / observation), <= checkChars. */
|
|
43
|
-
check: string;
|
|
44
|
-
status: AcceptanceStatus;
|
|
45
|
-
/** Required for `passed` / `failed`; otherwise the verdict drops to `pending`. */
|
|
46
|
-
evidence: string;
|
|
47
|
-
/**
|
|
48
|
-
* Explicit re-open. Only honoured when the same criterion's normalized
|
|
49
|
-
* `content` is unchanged (§6.2.1 step 9). INPUT ONLY: never stored, consumed
|
|
50
|
-
* and discarded by `write()`.
|
|
51
|
-
*/
|
|
52
|
-
reopen?: boolean;
|
|
53
|
-
}
|
|
54
|
-
/** The immutable projection, isomorphic to `TodoSnapshot`. Rebuilt per commit. */
|
|
55
|
-
export interface AcceptanceSnapshot {
|
|
56
|
-
items: AcceptanceItem[];
|
|
57
|
-
total: number;
|
|
58
|
-
/** `passed` + `failed`. */
|
|
59
|
-
checkedCount: number;
|
|
60
|
-
passedCount: number;
|
|
61
|
-
failedCount: number;
|
|
62
|
-
/** Injected clock, for the same reason `TodoSnapshot.updatedAt` has one (P2-4). */
|
|
63
|
-
updatedAt: number;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* `work` - at least one step is not completed.
|
|
67
|
-
* `verify` - every step is completed and at least one criterion is unresolved.
|
|
68
|
-
* `done` - every step is completed and every criterion is settled (or there is
|
|
69
|
-
* no acceptance table at all).
|
|
70
|
-
*
|
|
71
|
-
* DERIVED, NEVER STORED (I-3): `derivePlanPhase` is the only judge.
|
|
72
|
-
*/
|
|
73
|
-
export type PlanPhase = 'work' | 'verify' | 'done';
|
|
74
|
-
/** The immutable projection the UI renders. Rebuilt on every write. */
|
|
75
|
-
export interface TodoSnapshot {
|
|
76
|
-
items: TodoItem[];
|
|
77
|
-
total: number;
|
|
78
|
-
doneCount: number;
|
|
79
|
-
/** Index of the single in_progress item, or -1 when everything is completed. */
|
|
80
|
-
activeIndex: number;
|
|
81
|
-
/**
|
|
82
|
-
* Stamped by an INJECTED clock (`TodoStore`'s constructor takes
|
|
83
|
-
* `now?: () => number`, defaulting to `Date.now`), for the reason `TeamPanel`
|
|
84
|
-
* takes a `now?` prop: a snapshot test that reads the wall clock is a test
|
|
85
|
-
* that fails on a slow machine and nowhere else (P2-4).
|
|
86
|
-
*/
|
|
87
|
-
updatedAt: number;
|
|
88
|
-
/**
|
|
89
|
-
* The acceptance projection; `null` when there are no criteria (or the
|
|
90
|
-
* capability is off).
|
|
91
|
-
*
|
|
92
|
-
* REQUIRED, NOT OPTIONAL (fail-closed, §6.1): `TodoStore` is the only writer and
|
|
93
|
-
* it always knows what belongs here. Optional would let one call site silently
|
|
94
|
-
* under-report an entire table. The cost is the 15 existing test fixtures that
|
|
95
|
-
* spell out a `TodoSnapshot` literal (§7.3) - a mechanical edit, done in the
|
|
96
|
-
* same step as this field.
|
|
97
|
-
*/
|
|
98
|
-
acceptance: AcceptanceSnapshot | null;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Why a list went away.
|
|
102
|
-
*
|
|
103
|
-
* `user` - `/todo clear`, or `/clear screen` (the screen-only form). Both are
|
|
104
|
-
* an explicit user instruction, which is I-2's standing exception;
|
|
105
|
-
* neither touches `messages`.
|
|
106
|
-
* `reset` - `/clear` (or its alias `/reset`) through `clearMessages()`, or a
|
|
107
|
-
* `/resume` whose file carried no list (§3.13).
|
|
108
|
-
* `turn` - a new TUI task started, or a legacy caller began a turn after
|
|
109
|
-
* every item was completed.
|
|
110
|
-
* `stale` - unfinished, and unwritten for more than `TODO_LIMITS.staleTurns`
|
|
111
|
-
* consecutive turns (§3.2 / P1-7).
|
|
112
|
-
*/
|
|
113
|
-
export type TodoClearReason = 'user' | 'reset' | 'turn' | 'stale';
|
|
114
|
-
export type TodoEvent = {
|
|
115
|
-
type: 'updated';
|
|
116
|
-
snapshot: TodoSnapshot;
|
|
117
|
-
} | {
|
|
118
|
-
type: 'rejected';
|
|
119
|
-
reason: string;
|
|
120
|
-
} | {
|
|
121
|
-
type: 'cleared';
|
|
122
|
-
reason: TodoClearReason;
|
|
123
|
-
};
|
|
124
|
-
export type TodoEventListener = (event: TodoEvent) => void;
|
package/dist/todo/types.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime shapes for the todo subsystem (todo-plan-execution §5.1).
|
|
3
|
-
*
|
|
4
|
-
* ASCII ONLY: `src/todo/**` is inside the glyph scanner's scope.
|
|
5
|
-
*
|
|
6
|
-
* `TodoEvent` is CLI-LOCAL and is deliberately NOT a member of core's
|
|
7
|
-
* `AgentEvent` union (D-11), exactly as `TeamEvent` is not: core freezes its
|
|
8
|
-
* runtime export list (`public-api.test.ts`) and forbids host coupling
|
|
9
|
-
* (`no-host-coupling.test.ts`), so a new event member would break the first and
|
|
10
|
-
* teach core about a host shape it has no business defining.
|
|
11
|
-
*/
|
|
12
|
-
export {};
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The human-input channel (plan-mode §3.5 / §5.1) — types, the fail-closed
|
|
3
|
-
* default gate, and the two pure normalizers that repair whatever the model
|
|
4
|
-
* actually sent.
|
|
5
|
-
*
|
|
6
|
-
* Everything here is pure except the type declarations: no Ink, no React, no
|
|
7
|
-
* `node:*`. `tools/` is inside the glyph scanner's scope, so every literal is
|
|
8
|
-
* ASCII.
|
|
9
|
-
*
|
|
10
|
-
* WHY THE NORMALIZERS ARE THE ONLY AUTHORITY ON THE LIMITS (P0-4). The
|
|
11
|
-
* model-facing schemas in `plan-tools.ts` declare SHAPE only — `type`,
|
|
12
|
-
* `required`, `default` — and put every bound in the `description`. They used to
|
|
13
|
-
* carry `minItems` / `maxItems` / `maxLength`, and that had two failure modes at
|
|
14
|
-
* once: `ToolExecutor` rejected a six-question call outright with `Invalid
|
|
15
|
-
* parameters: ...` before any repair could run, wasting a full research turn on
|
|
16
|
-
* a cosmetic defect; and `ajv` is an OPTIONAL dependency of core, so without it
|
|
17
|
-
* the fallback validator checks `required` plus primitive types only and the
|
|
18
|
-
* same call sailed through. One design, two behaviours, selected by whether an
|
|
19
|
-
* optional install step succeeded. Bounds live here instead, where they are
|
|
20
|
-
* deterministic and unit-tested.
|
|
21
|
-
*/
|
|
22
|
-
export interface NormalizedOption {
|
|
23
|
-
label: string;
|
|
24
|
-
/** `''` when the model supplied none. */
|
|
25
|
-
description: string;
|
|
26
|
-
/** Exactly one per question is true after repair. */
|
|
27
|
-
recommended: boolean;
|
|
28
|
-
/** The synthetic free-text option. */
|
|
29
|
-
isOther: boolean;
|
|
30
|
-
}
|
|
31
|
-
export interface NormalizedQuestion {
|
|
32
|
-
id: string;
|
|
33
|
-
/** <= 12 chars, truncated. Rendered as a chip above the question. */
|
|
34
|
-
header: string;
|
|
35
|
-
question: string;
|
|
36
|
-
/** 3..5 entries: the 2..4 the model gave, plus the synthetic `Other`. */
|
|
37
|
-
options: NormalizedOption[];
|
|
38
|
-
allowMultiple: boolean;
|
|
39
|
-
}
|
|
40
|
-
export interface Answer {
|
|
41
|
-
id: string;
|
|
42
|
-
question: string;
|
|
43
|
-
/** Option labels. Length 1 unless `allowMultiple`. */
|
|
44
|
-
selected: string[];
|
|
45
|
-
/** Set only when `Other` was chosen. */
|
|
46
|
-
custom: string | null;
|
|
47
|
-
}
|
|
48
|
-
export interface NormalizedPlan {
|
|
49
|
-
title: string;
|
|
50
|
-
summary: string;
|
|
51
|
-
steps: {
|
|
52
|
-
title: string;
|
|
53
|
-
detail: string;
|
|
54
|
-
}[];
|
|
55
|
-
filesTouched: string[];
|
|
56
|
-
risks: string[];
|
|
57
|
-
openQuestions: string[];
|
|
58
|
-
}
|
|
59
|
-
export type HumanRequest = {
|
|
60
|
-
kind: 'questions';
|
|
61
|
-
questions: NormalizedQuestion[];
|
|
62
|
-
} | {
|
|
63
|
-
kind: 'plan';
|
|
64
|
-
plan: NormalizedPlan;
|
|
65
|
-
};
|
|
66
|
-
export type HumanResponse = {
|
|
67
|
-
kind: 'answers';
|
|
68
|
-
answers: Answer[];
|
|
69
|
-
cancelled: boolean;
|
|
70
|
-
} | {
|
|
71
|
-
kind: 'planDecision';
|
|
72
|
-
decision: 'approved' | 'revise' | 'dismissed';
|
|
73
|
-
feedback: string;
|
|
74
|
-
};
|
|
75
|
-
export interface HumanInputGate {
|
|
76
|
-
/**
|
|
77
|
-
* STATIC property of the channel: `true` only for a gate that can never
|
|
78
|
-
* acquire a human at all. Set on `DENY_ALL_HUMAN_INPUT` and nowhere else.
|
|
79
|
-
*
|
|
80
|
-
* This — not `canPrompt()` — is what `createPlanTools()` keys registration
|
|
81
|
-
* off. `canPrompt()` is a LIVE probe and is legitimately `false` for the whole
|
|
82
|
-
* window between `makeController()` and the App's first effect, because the
|
|
83
|
-
* App attaches the bridge handler later. A registration decision taken from it
|
|
84
|
-
* would be "no plan tools", forever, in every interactive session, with no
|
|
85
|
-
* error anywhere. The two predicates answer different questions and must not
|
|
86
|
-
* be merged.
|
|
87
|
-
*/
|
|
88
|
-
readonly neverPrompts?: boolean;
|
|
89
|
-
/** True only while a TUI is mounted and able to render an overlay. */
|
|
90
|
-
canPrompt(): boolean;
|
|
91
|
-
/**
|
|
92
|
-
* Resolves with `null` when cancelled / unmounted / aborted. NEVER rejects.
|
|
93
|
-
*
|
|
94
|
-
* `signal` is the tool's `ctx.signal` and is REQUIRED in practice. It is the
|
|
95
|
-
* only ceiling the wait has: `ToolExecutor`'s timeout is cooperative — it
|
|
96
|
-
* aborts the context signal and keeps awaiting the tool's promise, with no
|
|
97
|
-
* `Promise.race` anywhere — and the idle watchdog is deliberately paused for
|
|
98
|
-
* the duration of the wait. Passing `undefined` therefore gives a wait with no
|
|
99
|
-
* ceiling of any kind, and the process wedges behind an overlay nobody is
|
|
100
|
-
* going to answer.
|
|
101
|
-
*/
|
|
102
|
-
request(req: HumanRequest, signal?: AbortSignal): Promise<HumanResponse | null>;
|
|
103
|
-
}
|
|
104
|
-
export interface HumanInputBridge {
|
|
105
|
-
handler: ((req: HumanRequest, signal?: AbortSignal) => Promise<HumanResponse | null>) | null;
|
|
106
|
-
/**
|
|
107
|
-
* Resolve every outstanding request with `null`.
|
|
108
|
-
*
|
|
109
|
-
* Called on App unmount AND when a run ends. `ConfirmBridge` nulls its handler
|
|
110
|
-
* on unmount but leaves any in-flight promise dangling forever; with a
|
|
111
|
-
* three-second `y/N` that never mattered, but a question wizard the user
|
|
112
|
-
* abandons with `Ctrl+C` twice would hang the tool until its ceiling.
|
|
113
|
-
*/
|
|
114
|
-
cancelPending(): void;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Fails CLOSED. The headless default — forgetting to pass a gate must refuse,
|
|
118
|
-
* never hang and never assume yes.
|
|
119
|
-
*/
|
|
120
|
-
export declare const DENY_ALL_HUMAN_INPUT: HumanInputGate;
|
|
121
|
-
export declare const QUESTION_LIMITS: {
|
|
122
|
-
readonly maxQuestions: 5;
|
|
123
|
-
readonly minOptions: 2;
|
|
124
|
-
readonly maxOptions: 4;
|
|
125
|
-
readonly headerChars: 12;
|
|
126
|
-
readonly questionChars: 300;
|
|
127
|
-
readonly labelChars: 60;
|
|
128
|
-
readonly optionDescriptionChars: 120;
|
|
129
|
-
};
|
|
130
|
-
export declare const PLAN_LIMITS: {
|
|
131
|
-
readonly titleChars: 80;
|
|
132
|
-
readonly summaryChars: 600;
|
|
133
|
-
readonly maxSteps: 20;
|
|
134
|
-
readonly stepTitleChars: 100;
|
|
135
|
-
readonly stepDetailChars: 400;
|
|
136
|
-
readonly maxFiles: 30;
|
|
137
|
-
readonly maxRisks: 10;
|
|
138
|
-
readonly maxOpenQuestions: 10;
|
|
139
|
-
};
|
|
140
|
-
/**
|
|
141
|
-
* The STORAGE bound of the `ask_user` de-duplication guard — NOT a refusal
|
|
142
|
-
* condition, and the distinction is the whole point.
|
|
143
|
-
*
|
|
144
|
-
* Storage is memory hygiene: a turn that asks a thousand DISTINCT question sets
|
|
145
|
-
* is pathological, but it is still the user's turn, and Esc interrupts it. The
|
|
146
|
-
* refusal rule is semantic: "never ask the same answered questions twice". Folding
|
|
147
|
-
* the bound into the refusal rule would restore the round cap this feature
|
|
148
|
-
* deletes, with a different number written on it.
|
|
149
|
-
*
|
|
150
|
-
* Owned here rather than in `plan-tools.ts` (the caller) or `controller.ts` (the
|
|
151
|
-
* state holder) because this file is already the single authority on the
|
|
152
|
-
* structural limits of human input, beside `QUESTION_LIMITS` / `PLAN_LIMITS`.
|
|
153
|
-
*/
|
|
154
|
-
export declare const ASK_GUARD_LIMITS: {
|
|
155
|
-
readonly maxRemembered: 128;
|
|
156
|
-
};
|
|
157
|
-
/**
|
|
158
|
-
* Trim to `max` characters, preferring a word boundary within the last
|
|
159
|
-
* `WORD_BOUNDARY_WINDOW` characters. Cutting a sentence mid-word reads as
|
|
160
|
-
* corruption; cutting it at a space reads as a summary.
|
|
161
|
-
*/
|
|
162
|
-
export declare function clampText(raw: unknown, max: number): string;
|
|
163
|
-
/**
|
|
164
|
-
* Repair whatever the model sent into something renderable.
|
|
165
|
-
*
|
|
166
|
-
* Returns `[]` when nothing survives, which the tool turns into the one hard
|
|
167
|
-
* failure this path has. Every rule below is reachable precisely BECAUSE the
|
|
168
|
-
* schema stopped declaring the bounds (P0-4); with `minItems` / `maxItems` in
|
|
169
|
-
* the schema, `ajv` rejected the call first and rules 1 and 4 were dead code.
|
|
170
|
-
*/
|
|
171
|
-
export declare function normalizeQuestions(raw: unknown): NormalizedQuestion[];
|
|
172
|
-
/**
|
|
173
|
-
* Repair a submitted plan. Returns `null` only when no step survives — the one
|
|
174
|
-
* hard failure, because there is then nothing left to review.
|
|
175
|
-
*
|
|
176
|
-
* A plan that is one step over the cap is still a plan, and rejecting it costs a
|
|
177
|
-
* full research turn to regain nothing. Truncation is silent to the model but
|
|
178
|
-
* VISIBLE to the user: the review overlay's position indicator counts the real
|
|
179
|
-
* rows, so a clipped plan cannot masquerade as complete.
|
|
180
|
-
*/
|
|
181
|
-
export declare function normalizePlan(raw: unknown): NormalizedPlan | null;
|
|
182
|
-
export interface AnswersResultShape {
|
|
183
|
-
answers: Answer[];
|
|
184
|
-
cancelled: boolean;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* A question SET's identity: the question texts, trimmed, lowercased, whitespace
|
|
188
|
-
* collapsed, sorted, joined.
|
|
189
|
-
*
|
|
190
|
-
* `id` and `header` are excluded on purpose — a model that re-asks the same thing
|
|
191
|
-
* under a new id is asking the same thing, and the ids are the model's own
|
|
192
|
-
* bookkeeping rather than part of what the user reads.
|
|
193
|
-
*
|
|
194
|
-
* The fingerprint is stable because `normalizeQuestions` already ran on the TOOL
|
|
195
|
-
* side: header truncation and option trimming cannot make the same question look
|
|
196
|
-
* different here. Worst case is 5 questions x 300 chars = 1,500 chars.
|
|
197
|
-
*/
|
|
198
|
-
export declare function questionFingerprint(questions: NormalizedQuestion[]): string;
|
|
199
|
-
/**
|
|
200
|
-
* Render the `ask_user` result: one human-readable line so the transcript
|
|
201
|
-
* preview is legible without parsing, then the JSON the model reads.
|
|
202
|
-
*
|
|
203
|
-
* CARRIES NO ROUND COUNTER, deliberately (D-4). The model used to be told
|
|
204
|
-
* `roundsUsed` / `roundsRemaining` on every call, which is a per-turn reminder
|
|
205
|
-
* that it is running out — and an agent that reads "you have 1 round left"
|
|
206
|
-
* behaves like one. There is no limit any more, so there is nothing to report.
|
|
207
|
-
*
|
|
208
|
-
* `asked` is passed separately rather than derived from `answers.length`
|
|
209
|
-
* because a cancelled wizard returns fewer answers than it asked for, and
|
|
210
|
-
* "answered 1 of 3" is the whole information content of that line.
|
|
211
|
-
*/
|
|
212
|
-
export declare function formatAnswersResult(shape: AnswersResultShape, asked: number): string;
|