@aragon-agent/cli 0.6.46 → 0.6.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +80 -12
- package/dist/agent/coalesce.d.ts +5 -1
- package/dist/agent/coalesce.js +13 -0
- package/dist/agent/controller.d.ts +41 -20
- package/dist/agent/controller.js +68 -15
- package/dist/agent/conversation-reset.d.ts +1 -1
- package/dist/agent/governance-wiring.d.ts +6 -6
- package/dist/agent/governance-wiring.js +4 -4
- package/dist/agent/headless.d.ts +5 -5
- package/dist/agent/headless.js +4 -4
- package/dist/agent/job-notices.d.ts +1 -1
- package/dist/agent/job-notices.js +1 -1
- package/dist/agent/kit-apply.d.ts +3 -3
- package/dist/agent/kit-apply.js +3 -3
- package/dist/agent/model-profile-settings.d.ts +2 -2
- package/dist/agent/model-profile-settings.js +6 -6
- package/dist/agent/prompt-options.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/user-attention.d.ts +17 -0
- package/dist/agent/user-attention.js +32 -0
- package/dist/{ui → app}/App.d.ts +9 -9
- package/dist/{ui → app}/App.js +113 -79
- package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
- package/dist/{ui → app}/use-startup-notices.js +2 -2
- package/dist/cli.js +31 -32
- package/dist/commands/agents-command.js +1 -1
- package/dist/commands/builtins.js +9 -9
- package/dist/commands/governance-command.js +2 -2
- package/dist/commands/governance-runs-table.js +1 -1
- package/dist/commands/kit-command.js +1 -1
- package/dist/commands/perf.d.ts +3 -3
- package/dist/commands/perf.js +1 -1
- package/dist/commands/registry.d.ts +8 -8
- package/dist/commands/skills.js +2 -2
- package/dist/commands/team-command.js +1 -1
- package/dist/compaction/archive.d.ts +1 -1
- package/dist/compaction/archive.js +1 -1
- package/dist/compaction/child.d.ts +3 -3
- package/dist/compaction/child.js +4 -4
- package/dist/compaction/command.js +5 -5
- package/dist/compaction/compactor.d.ts +6 -6
- package/dist/compaction/compactor.js +6 -6
- package/dist/compaction/context-command.js +1 -1
- package/dist/compaction/digest.js +1 -1
- package/dist/compaction/memory-input.js +1 -1
- package/dist/compaction/memory-validation.js +1 -1
- package/dist/compaction/memory.js +1 -1
- package/dist/compaction/summarize-call.js +1 -1
- package/dist/compaction/summary-prompt.js +1 -1
- package/dist/compaction/tail-budget.js +2 -2
- package/dist/compaction/wiring.d.ts +5 -5
- package/dist/compaction/wiring.js +2 -2
- package/dist/config/cli-commands.d.ts +1 -1
- package/dist/config/cli-commands.js +3 -3
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -4
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +10 -31
- package/dist/config/migrate-state-out-of-config.js +1 -1
- package/dist/config/model-profile-store.d.ts +4 -54
- package/dist/config/model-profile-store.js +3 -3
- package/dist/config/prompt-history.js +1 -1
- package/dist/config/store.d.ts +2 -2
- package/dist/config/store.js +3 -3
- package/dist/diagnostics/doctor.js +4 -4
- package/dist/exec/bridge/decisions.d.ts +1 -1
- package/dist/exec/bridge/human-answers.d.ts +1 -1
- package/dist/exec/bridge/human-answers.js +1 -1
- package/dist/exec/bridge/protocol.d.ts +1 -1
- package/dist/exec/bridge/server.js +1 -1
- package/dist/exec/events.d.ts +2 -2
- package/dist/exec/index.d.ts +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/exec/permission.js +1 -1
- package/dist/exec/runner.d.ts +3 -3
- package/dist/exec/runner.js +2 -2
- package/dist/exec/threads/runtime.js +1 -1
- package/dist/fast/digest.d.ts +1 -1
- package/dist/fast/digest.js +1 -1
- package/dist/fast/frames.d.ts +1 -1
- package/dist/fast/frames.js +1 -1
- package/dist/fast/prompt.d.ts +1 -1
- package/dist/fast/prompt.js +1 -1
- package/dist/fast/review-call.js +1 -1
- package/dist/fast/reviewer.d.ts +3 -3
- package/dist/fast/reviewer.js +1 -1
- package/dist/fast/summary-call.d.ts +3 -3
- package/dist/fast/summary-call.js +2 -2
- package/dist/fast/summary-prompt.d.ts +1 -1
- package/dist/fast/summary-prompt.js +1 -1
- package/dist/fast/wiring.d.ts +4 -4
- package/dist/fast/wiring.js +1 -1
- package/dist/governance/card-normalize.d.ts +1 -1
- package/dist/governance/copy.d.ts +1 -1
- package/dist/governance/copy.js +2 -2
- package/dist/governance/engine/artifact-persist.d.ts +1 -1
- package/dist/governance/engine/budget.d.ts +1 -1
- package/dist/governance/engine/budget.js +1 -1
- package/dist/governance/engine/cards.d.ts +1 -1
- package/dist/governance/engine/digest.js +1 -1
- package/dist/governance/engine/engine-core.d.ts +5 -5
- package/dist/governance/engine/engine-core.js +1 -1
- package/dist/governance/engine/engine.d.ts +1 -1
- package/dist/governance/engine/engine.js +1 -1
- package/dist/governance/engine/estimate.d.ts +1 -1
- package/dist/governance/engine/estimate.js +1 -1
- package/dist/governance/engine/inspector.js +2 -2
- package/dist/governance/engine/integration.d.ts +1 -1
- package/dist/governance/engine/lifecycle.d.ts +1 -1
- package/dist/governance/engine/lifecycle.js +1 -1
- package/dist/governance/engine/phase-members.d.ts +1 -1
- package/dist/governance/engine/phase-planner.d.ts +1 -1
- package/dist/governance/engine/phase-planner.js +1 -1
- package/dist/governance/engine/rebuild.d.ts +1 -1
- package/dist/governance/engine/report.d.ts +1 -1
- package/dist/governance/engine/report.js +1 -1
- package/dist/governance/engine/run-digest.d.ts +1 -1
- package/dist/governance/engine/spec-builder.d.ts +2 -2
- package/dist/governance/engine/spec-builder.js +2 -2
- package/dist/governance/engine/stage-runner.js +2 -2
- package/dist/governance/engine/start-input.d.ts +1 -1
- package/dist/governance/engine/start-input.js +1 -1
- package/dist/governance/engine/state-machine.d.ts +1 -1
- package/dist/governance/engine/state-machine.js +3 -3
- package/dist/governance/engine/submission-queries.d.ts +1 -1
- package/dist/governance/engine/submission-render.d.ts +1 -1
- package/dist/governance/engine/submissions.d.ts +1 -1
- package/dist/governance/engine/submissions.js +1 -1
- package/dist/governance/engine/visibility.d.ts +1 -1
- package/dist/governance/engine/visibility.js +1 -1
- package/dist/governance/posture-transition.d.ts +2 -2
- package/dist/governance/posture-transition.js +1 -1
- package/dist/governance/profiles.d.ts +1 -1
- package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
- package/dist/governance/prompts/orchestrator-block.js +2 -2
- package/dist/governance/prompts/plan-addendum.d.ts +1 -1
- package/dist/governance/prompts/plan-addendum.js +1 -1
- package/dist/governance/prompts/role-blocks.d.ts +2 -2
- package/dist/governance/prompts/role-blocks.js +1 -1
- package/dist/governance/report-reader.js +1 -1
- package/dist/governance/roles.d.ts +1 -1
- package/dist/governance/rules/claims.d.ts +1 -1
- package/dist/governance/rules/claims.js +1 -1
- package/dist/governance/rules/elimination.d.ts +1 -1
- package/dist/governance/rules/elimination.js +1 -1
- package/dist/governance/rules/failure-analysis.d.ts +2 -2
- package/dist/governance/rules/failure-analysis.js +1 -1
- package/dist/governance/rules/ledger-replay.d.ts +1 -1
- package/dist/governance/rules/ledger-state.d.ts +1 -1
- package/dist/governance/rules/ledger-state.js +1 -1
- package/dist/governance/rules/ledger.d.ts +2 -2
- package/dist/governance/rules/ledger.js +2 -2
- package/dist/governance/rules/rca.d.ts +1 -1
- package/dist/governance/rules/rca.js +1 -1
- package/dist/governance/rules/settlement.d.ts +2 -2
- package/dist/governance/rules/settlement.js +2 -2
- package/dist/governance/rules/suspicion.d.ts +1 -1
- package/dist/governance/store/artifacts.d.ts +1 -1
- package/dist/governance/store/artifacts.js +1 -1
- package/dist/governance/store/events-log.d.ts +1 -1
- package/dist/governance/store/run-store.d.ts +1 -1
- package/dist/governance/store/run-store.js +1 -1
- package/dist/governance/store/scoreboard-export.d.ts +1 -1
- package/dist/governance/tools/child-tools.d.ts +1 -1
- package/dist/governance/tools/guard.d.ts +1 -1
- package/dist/governance/tools/guard.js +1 -1
- package/dist/governance/tools/inspector-tools.d.ts +2 -2
- package/dist/governance/tools/inspector-tools.js +2 -2
- package/dist/governance/tools/lead-tools.d.ts +1 -1
- package/dist/governance/tools/lead-tools.js +1 -1
- package/dist/governance/tools/normalize-util.js +1 -1
- package/dist/governance/tools/scan-incomplete.js +1 -1
- package/dist/governance/tools/shared-tools.d.ts +1 -1
- package/dist/governance/tools/shared-tools.js +1 -1
- package/dist/governance/tools/submit-normalizers.d.ts +1 -1
- package/dist/governance/tools/submit-normalizers.js +1 -1
- package/dist/governance/tools/submit-tools.d.ts +1 -1
- package/dist/logging/cli-commands.js +1 -1
- package/dist/logging/install.d.ts +1 -1
- package/dist/logging/install.js +3 -3
- package/dist/logging/logger.d.ts +2 -2
- package/dist/logging/logger.js +31 -2
- package/dist/proc/kill-tree.js +1 -1
- package/dist/proc/log-mirror.js +1 -1
- package/dist/proc/log-ring.js +2 -2
- package/dist/proc/notices.d.ts +1 -1
- package/dist/proc/notices.js +2 -2
- package/dist/proc/prompt.d.ts +1 -1
- package/dist/proc/prompt.js +8 -5
- package/dist/proc/readiness.js +1 -1
- package/dist/proc/supervisor.d.ts +1 -1
- package/dist/proc/supervisor.js +10 -4
- package/dist/proc/wait-plan.d.ts +39 -0
- package/dist/proc/wait-plan.js +77 -0
- package/dist/proc/wait.d.ts +37 -4
- package/dist/proc/wait.js +68 -5
- package/dist/prompts/command.d.ts +1 -1
- package/dist/prompts/command.js +1 -1
- package/dist/prompts/normalize.d.ts +1 -1
- package/dist/prompts/normalize.js +1 -1
- package/dist/prompts/resolve.d.ts +1 -1
- package/dist/prompts/store.d.ts +2 -12
- package/dist/prompts/store.js +6 -60
- package/dist/session/checkpoint.d.ts +2 -2
- package/dist/session/checkpoint.js +2 -0
- package/dist/session/clear-archive.d.ts +2 -2
- package/dist/session/persist.d.ts +2 -2
- package/dist/session/persist.js +20 -3
- package/dist/session/startup-session.d.ts +2 -2
- package/dist/session/validate-session.js +6 -3
- package/dist/skills/service.d.ts +2 -2
- package/dist/team/bus.d.ts +1 -1
- package/dist/team/bus.js +1 -1
- package/dist/team/child-reviewer.d.ts +2 -2
- package/dist/team/child-reviewer.js +1 -1
- package/dist/team/comm-tools.js +1 -1
- package/dist/team/dispatch-gate.js +1 -1
- package/dist/team/forced-dispatch.js +1 -1
- package/dist/team/forced-mode.d.ts +1 -1
- package/dist/team/forced-prompt.d.ts +1 -1
- package/dist/team/forced-prompt.js +1 -1
- package/dist/team/normalize.d.ts +1 -1
- package/dist/team/normalize.js +1 -1
- package/dist/team/overseer.d.ts +3 -3
- package/dist/team/overseer.js +3 -3
- package/dist/team/prompt.d.ts +1 -1
- package/dist/team/prompt.js +1 -1
- package/dist/team/report.d.ts +2 -2
- package/dist/team/report.js +2 -2
- package/dist/team/retry.d.ts +1 -1
- package/dist/team/retry.js +1 -1
- package/dist/team/runtime.d.ts +4 -4
- package/dist/team/runtime.js +2 -2
- package/dist/team/settled.d.ts +2 -2
- package/dist/team/subagent.d.ts +4 -4
- package/dist/team/subagent.js +5 -5
- package/dist/team/task-tool.d.ts +1 -1
- package/dist/team/task-tool.js +1 -1
- package/dist/todo/normalize.d.ts +1 -1
- package/dist/todo/normalize.js +1 -1
- package/dist/todo/prompt.d.ts +1 -1
- package/dist/todo/prompt.js +1 -1
- package/dist/todo/store.d.ts +1 -1
- package/dist/todo/store.js +2 -2
- package/dist/todo/todo-tool.d.ts +1 -1
- package/dist/todo/todo-tool.js +2 -2
- package/dist/tools/bash-tool.d.ts +1 -1
- package/dist/tools/bash-tool.js +2 -2
- package/dist/tools/diff.d.ts +1 -1
- package/dist/tools/diff.js +1 -1
- package/dist/tools/file-change-store.d.ts +1 -1
- package/dist/tools/fs-tools.d.ts +2 -2
- package/dist/tools/fs-tools.js +1 -1
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +1 -1
- package/dist/tools/job-tools.d.ts +14 -3
- package/dist/tools/job-tools.js +158 -35
- package/dist/tools/plan-tools.d.ts +1 -1
- package/dist/tools/plan-tools.js +1 -1
- package/dist/tools/proc-tools.d.ts +1 -1
- package/dist/tools/proc-tools.js +2 -2
- package/dist/update/classify-failure.d.ts +1 -1
- package/dist/update/install-lock.js +1 -1
- package/dist/update/install-source.d.ts +1 -1
- package/dist/update/installer.js +2 -2
- package/dist/update/npm-view.d.ts +1 -1
- package/dist/update/npm-view.js +1 -1
- package/dist/update/registry.d.ts +1 -1
- package/dist/update/registry.js +1 -1
- package/dist/update/service.d.ts +2 -2
- package/dist/update/service.js +2 -2
- package/package.json +7 -7
- package/dist/agent/agent-mode.d.ts +0 -108
- package/dist/agent/agent-mode.js +0 -121
- package/dist/agent/entry-limits.d.ts +0 -65
- package/dist/agent/entry-limits.js +0 -133
- package/dist/agent/governance-view.d.ts +0 -40
- package/dist/agent/governance-view.js +0 -40
- package/dist/agent/invocation-card.d.ts +0 -77
- package/dist/agent/invocation-card.js +0 -169
- package/dist/agent/model-probe-limits.d.ts +0 -39
- package/dist/agent/model-probe-limits.js +0 -25
- package/dist/agent/model-probe.d.ts +0 -104
- package/dist/agent/model-probe.js +0 -391
- package/dist/agent/queued-messages.d.ts +0 -23
- package/dist/agent/queued-messages.js +0 -49
- package/dist/agent/reducer.d.ts +0 -837
- package/dist/agent/reducer.js +0 -1617
- package/dist/agent/retry-view.d.ts +0 -68
- package/dist/agent/retry-view.js +0 -95
- package/dist/agent/usage.d.ts +0 -47
- package/dist/agent/usage.js +0 -84
- package/dist/compaction/limits.d.ts +0 -61
- package/dist/compaction/limits.js +0 -64
- package/dist/compaction/meter.d.ts +0 -276
- package/dist/compaction/meter.js +0 -512
- package/dist/compaction/pressure.d.ts +0 -163
- package/dist/compaction/pressure.js +0 -199
- package/dist/compaction/reason-text.d.ts +0 -36
- package/dist/compaction/reason-text.js +0 -78
- package/dist/compaction/types.d.ts +0 -360
- package/dist/compaction/types.js +0 -22
- package/dist/config/governance-config.d.ts +0 -125
- package/dist/config/governance-config.js +0 -164
- package/dist/config/kit-resolution.d.ts +0 -93
- package/dist/config/kit-resolution.js +0 -226
- package/dist/config/model-kits.d.ts +0 -225
- package/dist/config/model-kits.js +0 -302
- package/dist/config/model-profile-resolution.d.ts +0 -28
- package/dist/config/model-profile-resolution.js +0 -88
- package/dist/config/model-profiles.d.ts +0 -103
- package/dist/config/model-profiles.js +0 -188
- package/dist/config/schema.d.ts +0 -1645
- package/dist/config/schema.js +0 -1377
- package/dist/fast/limits.d.ts +0 -152
- package/dist/fast/limits.js +0 -152
- package/dist/fast/resolve.d.ts +0 -44
- package/dist/fast/resolve.js +0 -107
- package/dist/fast/task-summary-types.d.ts +0 -66
- package/dist/fast/task-summary-types.js +0 -17
- package/dist/fast/types.d.ts +0 -141
- package/dist/fast/types.js +0 -14
- package/dist/governance/governed-dispatch.d.ts +0 -19
- package/dist/governance/governed-dispatch.js +0 -17
- package/dist/governance/limits.d.ts +0 -107
- package/dist/governance/limits.js +0 -131
- package/dist/governance/posture.d.ts +0 -35
- package/dist/governance/posture.js +0 -59
- package/dist/governance/rules/events-table.d.ts +0 -46
- package/dist/governance/rules/events-table.js +0 -94
- package/dist/governance/types.d.ts +0 -661
- package/dist/governance/types.js +0 -27
- package/dist/input/control-sequences.d.ts +0 -71
- package/dist/input/control-sequences.js +0 -222
- package/dist/input/csiu-keys.d.ts +0 -66
- package/dist/input/csiu-keys.js +0 -181
- package/dist/input/cursor-report.d.ts +0 -61
- package/dist/input/cursor-report.js +0 -97
- package/dist/input/enter-sequences.d.ts +0 -64
- package/dist/input/enter-sequences.js +0 -153
- package/dist/input/interrupt-gesture.d.ts +0 -18
- package/dist/input/interrupt-gesture.js +0 -19
- package/dist/input/keyboard-enhancement.d.ts +0 -42
- package/dist/input/keyboard-enhancement.js +0 -65
- package/dist/input/keymap.d.ts +0 -20
- package/dist/input/keymap.js +0 -99
- package/dist/input/limits.d.ts +0 -118
- package/dist/input/limits.js +0 -109
- package/dist/input/mouse-events.d.ts +0 -87
- package/dist/input/mouse-events.js +0 -212
- package/dist/input/paste-parse.d.ts +0 -83
- package/dist/input/paste-parse.js +0 -107
- package/dist/input/pointer-router.d.ts +0 -11
- package/dist/input/pointer-router.js +0 -14
- package/dist/input/stdin-filter.d.ts +0 -112
- package/dist/input/stdin-filter.js +0 -657
- package/dist/input/win32-input-mode.d.ts +0 -61
- package/dist/input/win32-input-mode.js +0 -269
- package/dist/logging/levels.d.ts +0 -40
- package/dist/logging/levels.js +0 -59
- package/dist/logging/secret-registry.d.ts +0 -32
- package/dist/logging/secret-registry.js +0 -73
- package/dist/proc/limits.d.ts +0 -200
- package/dist/proc/limits.js +0 -207
- package/dist/proc/progress.d.ts +0 -40
- package/dist/proc/progress.js +0 -135
- package/dist/proc/types.d.ts +0 -263
- package/dist/proc/types.js +0 -15
- package/dist/prompts/copy.d.ts +0 -89
- package/dist/prompts/copy.js +0 -131
- package/dist/prompts/fill.d.ts +0 -51
- package/dist/prompts/fill.js +0 -46
- package/dist/prompts/limits.d.ts +0 -53
- package/dist/prompts/limits.js +0 -53
- package/dist/prompts/search.d.ts +0 -58
- package/dist/prompts/search.js +0 -146
- package/dist/prompts/types.d.ts +0 -204
- package/dist/prompts/types.js +0 -13
- package/dist/team/activity.d.ts +0 -67
- package/dist/team/activity.js +0 -130
- package/dist/team/limits.d.ts +0 -308
- package/dist/team/limits.js +0 -330
- package/dist/team/model.d.ts +0 -104
- package/dist/team/model.js +0 -150
- package/dist/team/panel-rows.d.ts +0 -48
- package/dist/team/panel-rows.js +0 -75
- package/dist/team/timeline.d.ts +0 -74
- package/dist/team/timeline.js +0 -101
- package/dist/team/types.d.ts +0 -354
- package/dist/team/types.js +0 -13
- package/dist/todo/acceptance.d.ts +0 -120
- package/dist/todo/acceptance.js +0 -399
- package/dist/todo/follow-through.d.ts +0 -138
- package/dist/todo/follow-through.js +0 -248
- package/dist/todo/limits.d.ts +0 -152
- package/dist/todo/limits.js +0 -152
- package/dist/todo/panel-rows.d.ts +0 -45
- package/dist/todo/panel-rows.js +0 -70
- package/dist/todo/plan-sections.d.ts +0 -60
- package/dist/todo/plan-sections.js +0 -108
- package/dist/todo/row-window.d.ts +0 -51
- package/dist/todo/row-window.js +0 -107
- package/dist/todo/types.d.ts +0 -124
- package/dist/todo/types.js +0 -12
- package/dist/tools/human-input.d.ts +0 -212
- package/dist/tools/human-input.js +0 -265
- package/dist/tools/patch.d.ts +0 -115
- package/dist/tools/patch.js +0 -453
- package/dist/tools/terminal-output.d.ts +0 -115
- package/dist/tools/terminal-output.js +0 -201
- package/dist/tools/tool-output-store.d.ts +0 -68
- package/dist/tools/tool-output-store.js +0 -102
- package/dist/ui/ActivityLine.d.ts +0 -26
- package/dist/ui/ActivityLine.js +0 -48
- package/dist/ui/AutocompletePopup.d.ts +0 -23
- package/dist/ui/AutocompletePopup.js +0 -17
- package/dist/ui/BottomStatusRow.d.ts +0 -10
- package/dist/ui/BottomStatusRow.js +0 -9
- package/dist/ui/Composer.d.ts +0 -115
- package/dist/ui/Composer.js +0 -64
- package/dist/ui/GovernancePanel.d.ts +0 -50
- package/dist/ui/GovernancePanel.js +0 -77
- package/dist/ui/GovernanceRun.d.ts +0 -18
- package/dist/ui/GovernanceRun.js +0 -11
- package/dist/ui/Header.d.ts +0 -48
- package/dist/ui/Header.js +0 -27
- package/dist/ui/Logo.d.ts +0 -32
- package/dist/ui/Logo.js +0 -65
- package/dist/ui/Markdown.d.ts +0 -29
- package/dist/ui/Markdown.js +0 -116
- package/dist/ui/PromptCaret.d.ts +0 -11
- package/dist/ui/PromptCaret.js +0 -31
- package/dist/ui/PromptInput.d.ts +0 -192
- package/dist/ui/PromptInput.js +0 -689
- package/dist/ui/QueuePanel.d.ts +0 -8
- package/dist/ui/QueuePanel.js +0 -9
- package/dist/ui/QueueStatusRow.d.ts +0 -24
- package/dist/ui/QueueStatusRow.js +0 -51
- package/dist/ui/ScrollbackShell.d.ts +0 -132
- package/dist/ui/ScrollbackShell.js +0 -26
- package/dist/ui/SessionOpener.d.ts +0 -30
- package/dist/ui/SessionOpener.js +0 -12
- package/dist/ui/StatusBar.d.ts +0 -129
- package/dist/ui/StatusBar.js +0 -61
- package/dist/ui/TeamPanel.d.ts +0 -76
- package/dist/ui/TeamPanel.js +0 -103
- package/dist/ui/ToastStack.d.ts +0 -8
- package/dist/ui/ToastStack.js +0 -31
- package/dist/ui/TodoPanel.d.ts +0 -52
- package/dist/ui/TodoPanel.js +0 -214
- package/dist/ui/Transcript.d.ts +0 -105
- package/dist/ui/Transcript.js +0 -251
- package/dist/ui/UpdateLine.d.ts +0 -44
- package/dist/ui/UpdateLine.js +0 -129
- package/dist/ui/activity-phrases.d.ts +0 -33
- package/dist/ui/activity-phrases.js +0 -50
- package/dist/ui/capabilities.d.ts +0 -27
- package/dist/ui/capabilities.js +0 -65
- package/dist/ui/clipboard-task.d.ts +0 -29
- package/dist/ui/clipboard-task.js +0 -66
- package/dist/ui/clipboard.d.ts +0 -31
- package/dist/ui/clipboard.js +0 -157
- package/dist/ui/color-runtime.d.ts +0 -5
- package/dist/ui/color-runtime.js +0 -29
- package/dist/ui/composer-input.d.ts +0 -38
- package/dist/ui/composer-input.js +0 -79
- package/dist/ui/composer-limits.d.ts +0 -30
- package/dist/ui/composer-limits.js +0 -45
- package/dist/ui/composer-rows.d.ts +0 -73
- package/dist/ui/composer-rows.js +0 -129
- package/dist/ui/console-bridge.d.ts +0 -19
- package/dist/ui/console-bridge.js +0 -52
- package/dist/ui/density.d.ts +0 -26
- package/dist/ui/density.js +0 -34
- package/dist/ui/display-tab.d.ts +0 -51
- package/dist/ui/display-tab.js +0 -82
- package/dist/ui/editor-navigation.d.ts +0 -55
- package/dist/ui/editor-navigation.js +0 -96
- package/dist/ui/editor-reducer.d.ts +0 -108
- package/dist/ui/editor-reducer.js +0 -187
- package/dist/ui/enter-frames.d.ts +0 -47
- package/dist/ui/enter-frames.js +0 -117
- package/dist/ui/entries/AssistantEntry.d.ts +0 -37
- package/dist/ui/entries/AssistantEntry.js +0 -43
- package/dist/ui/entries/CompactionCard.d.ts +0 -88
- package/dist/ui/entries/CompactionCard.js +0 -222
- package/dist/ui/entries/DiffView.d.ts +0 -61
- package/dist/ui/entries/DiffView.js +0 -103
- package/dist/ui/entries/EntryFrame.d.ts +0 -23
- package/dist/ui/entries/EntryFrame.js +0 -6
- package/dist/ui/entries/FastCard.d.ts +0 -53
- package/dist/ui/entries/FastCard.js +0 -105
- package/dist/ui/entries/GovernanceCard.d.ts +0 -30
- package/dist/ui/entries/GovernanceCard.js +0 -32
- package/dist/ui/entries/InvocationCard.d.ts +0 -20
- package/dist/ui/entries/InvocationCard.js +0 -32
- package/dist/ui/entries/QueuedEntry.d.ts +0 -27
- package/dist/ui/entries/QueuedEntry.js +0 -33
- package/dist/ui/entries/RetryCard.d.ts +0 -56
- package/dist/ui/entries/RetryCard.js +0 -60
- package/dist/ui/entries/ServiceCard.d.ts +0 -82
- package/dist/ui/entries/ServiceCard.js +0 -151
- package/dist/ui/entries/TeamCard.d.ts +0 -55
- package/dist/ui/entries/TeamCard.js +0 -94
- package/dist/ui/entries/TodoCard.d.ts +0 -54
- package/dist/ui/entries/TodoCard.js +0 -98
- package/dist/ui/entries/ToolCard.d.ts +0 -81
- package/dist/ui/entries/ToolCard.js +0 -160
- package/dist/ui/entries/ToolPreview.d.ts +0 -59
- package/dist/ui/entries/ToolPreview.js +0 -208
- package/dist/ui/entries/UserEntry.d.ts +0 -36
- package/dist/ui/entries/UserEntry.js +0 -57
- package/dist/ui/exit-snapshot.d.ts +0 -43
- package/dist/ui/exit-snapshot.js +0 -26
- package/dist/ui/frame-differ.d.ts +0 -166
- package/dist/ui/frame-differ.js +0 -354
- package/dist/ui/frame-observer.d.ts +0 -17
- package/dist/ui/frame-observer.js +0 -94
- package/dist/ui/frame-parser.d.ts +0 -7
- package/dist/ui/frame-parser.js +0 -18
- package/dist/ui/gauge.d.ts +0 -39
- package/dist/ui/gauge.js +0 -55
- package/dist/ui/glyphs.d.ts +0 -178
- package/dist/ui/glyphs.js +0 -165
- package/dist/ui/governance-copy.d.ts +0 -69
- package/dist/ui/governance-copy.js +0 -104
- package/dist/ui/governance-status.d.ts +0 -145
- package/dist/ui/governance-status.js +0 -326
- package/dist/ui/gradient.d.ts +0 -11
- package/dist/ui/gradient.js +0 -50
- package/dist/ui/ink-runtime.d.ts +0 -4
- package/dist/ui/ink-runtime.js +0 -51
- package/dist/ui/interaction-copy.d.ts +0 -82
- package/dist/ui/interaction-copy.js +0 -38
- package/dist/ui/interaction-hints.d.ts +0 -44
- package/dist/ui/interaction-hints.js +0 -97
- package/dist/ui/layout/AppShell.d.ts +0 -17
- package/dist/ui/layout/AppShell.js +0 -6
- package/dist/ui/layout/Gutter.d.ts +0 -67
- package/dist/ui/layout/Gutter.js +0 -42
- package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
- package/dist/ui/layout/MeasuredEntry.js +0 -30
- package/dist/ui/layout/OverlayFrame.d.ts +0 -73
- package/dist/ui/layout/OverlayFrame.js +0 -110
- package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
- package/dist/ui/layout/ScrollIndicator.js +0 -22
- package/dist/ui/layout/ScrollViewport.d.ts +0 -40
- package/dist/ui/layout/ScrollViewport.js +0 -222
- package/dist/ui/layout/agents-board.d.ts +0 -102
- package/dist/ui/layout/agents-board.js +0 -389
- package/dist/ui/layout/autocomplete.d.ts +0 -18
- package/dist/ui/layout/autocomplete.js +0 -26
- package/dist/ui/layout/budget.d.ts +0 -43
- package/dist/ui/layout/budget.js +0 -52
- package/dist/ui/layout/cells.d.ts +0 -61
- package/dist/ui/layout/cells.js +0 -156
- package/dist/ui/layout/document-layout.d.ts +0 -13
- package/dist/ui/layout/document-layout.js +0 -10
- package/dist/ui/layout/follow-state.d.ts +0 -138
- package/dist/ui/layout/follow-state.js +0 -148
- package/dist/ui/layout/frame.d.ts +0 -36
- package/dist/ui/layout/frame.js +0 -39
- package/dist/ui/layout/governance-board.d.ts +0 -121
- package/dist/ui/layout/governance-board.js +0 -382
- package/dist/ui/layout/governance-card.d.ts +0 -53
- package/dist/ui/layout/governance-card.js +0 -134
- package/dist/ui/layout/governance-chip.d.ts +0 -38
- package/dist/ui/layout/governance-chip.js +0 -64
- package/dist/ui/layout/governance-panel.d.ts +0 -85
- package/dist/ui/layout/governance-panel.js +0 -358
- package/dist/ui/layout/governance-roster.d.ts +0 -65
- package/dist/ui/layout/governance-roster.js +0 -275
- package/dist/ui/layout/header-hints.d.ts +0 -90
- package/dist/ui/layout/header-hints.js +0 -110
- package/dist/ui/layout/header-left.d.ts +0 -115
- package/dist/ui/layout/header-left.js +0 -206
- package/dist/ui/layout/invocation-card.d.ts +0 -41
- package/dist/ui/layout/invocation-card.js +0 -91
- package/dist/ui/layout/kit-chip.d.ts +0 -50
- package/dist/ui/layout/kit-chip.js +0 -81
- package/dist/ui/layout/overlay-window.d.ts +0 -43
- package/dist/ui/layout/overlay-window.js +0 -51
- package/dist/ui/layout/queue-layout.d.ts +0 -19
- package/dist/ui/layout/queue-layout.js +0 -26
- package/dist/ui/layout/rail.d.ts +0 -7
- package/dist/ui/layout/rail.js +0 -16
- package/dist/ui/layout/scroll-indicator.d.ts +0 -27
- package/dist/ui/layout/scroll-indicator.js +0 -36
- package/dist/ui/layout/scroll.d.ts +0 -37
- package/dist/ui/layout/scroll.js +0 -99
- package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
- package/dist/ui/layout/scrollbar-geometry.js +0 -13
- package/dist/ui/layout/session-chip.d.ts +0 -52
- package/dist/ui/layout/session-chip.js +0 -64
- package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
- package/dist/ui/layout/shortcut-panel-layout.js +0 -321
- package/dist/ui/layout/status-detail-layout.d.ts +0 -9
- package/dist/ui/layout/status-detail-layout.js +0 -79
- package/dist/ui/layout/status-layout.d.ts +0 -139
- package/dist/ui/layout/status-layout.js +0 -253
- package/dist/ui/layout/task-summary-cell.d.ts +0 -61
- package/dist/ui/layout/task-summary-cell.js +0 -65
- package/dist/ui/layout/team-panel.d.ts +0 -18
- package/dist/ui/layout/team-panel.js +0 -25
- package/dist/ui/layout/team-row.d.ts +0 -139
- package/dist/ui/layout/team-row.js +0 -246
- package/dist/ui/layout/todo-layout.d.ts +0 -62
- package/dist/ui/layout/todo-layout.js +0 -102
- package/dist/ui/layout/useTerminalSize.d.ts +0 -13
- package/dist/ui/layout/useTerminalSize.js +0 -50
- package/dist/ui/layout/viewport-geometry.d.ts +0 -29
- package/dist/ui/layout/viewport-geometry.js +0 -28
- package/dist/ui/layout/virtual-window.d.ts +0 -112
- package/dist/ui/layout/virtual-window.js +0 -488
- package/dist/ui/layout/wrap-rows.d.ts +0 -26
- package/dist/ui/layout/wrap-rows.js +0 -88
- package/dist/ui/live-clamp.d.ts +0 -14
- package/dist/ui/live-clamp.js +0 -46
- package/dist/ui/markdown-blocks.d.ts +0 -107
- package/dist/ui/markdown-blocks.js +0 -240
- package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
- package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
- package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
- package/dist/ui/overlays/ConfirmDialog.js +0 -44
- package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
- package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
- package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
- package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
- package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
- package/dist/ui/overlays/HelpOverlay.js +0 -232
- package/dist/ui/overlays/KitEditor.d.ts +0 -23
- package/dist/ui/overlays/KitEditor.js +0 -101
- package/dist/ui/overlays/KitManager.d.ts +0 -23
- package/dist/ui/overlays/KitManager.js +0 -104
- package/dist/ui/overlays/KitPicker.d.ts +0 -49
- package/dist/ui/overlays/KitPicker.js +0 -58
- package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
- package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
- package/dist/ui/overlays/ModelPicker.d.ts +0 -26
- package/dist/ui/overlays/ModelPicker.js +0 -63
- package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
- package/dist/ui/overlays/ModelProfileEditor.js +0 -168
- package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
- package/dist/ui/overlays/ModelProfilePicker.js +0 -231
- package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
- package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
- package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
- package/dist/ui/overlays/PromptEditorPage.js +0 -227
- package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
- package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
- package/dist/ui/overlays/PromptPicker.d.ts +0 -36
- package/dist/ui/overlays/PromptPicker.js +0 -129
- package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
- package/dist/ui/overlays/PromptTextArea.js +0 -141
- package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
- package/dist/ui/overlays/QuestionOverlay.js +0 -258
- package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
- package/dist/ui/overlays/QueueOverlay.js +0 -79
- package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
- package/dist/ui/overlays/SettingsScreen.js +0 -1037
- package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
- package/dist/ui/overlays/ShortcutPanel.js +0 -106
- package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
- package/dist/ui/overlays/TeamFanoutPage.js +0 -90
- package/dist/ui/overlays/governance-settings.d.ts +0 -79
- package/dist/ui/overlays/governance-settings.js +0 -140
- package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
- package/dist/ui/overlays/kit-picker-state.js +0 -136
- package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
- package/dist/ui/overlays/kit-settings-state.js +0 -268
- package/dist/ui/overlays/model-probe-view.d.ts +0 -128
- package/dist/ui/overlays/model-probe-view.js +0 -225
- package/dist/ui/overlays/model-profile-state.d.ts +0 -177
- package/dist/ui/overlays/model-profile-state.js +0 -301
- package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
- package/dist/ui/overlays/prompt-library-state.js +0 -335
- package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
- package/dist/ui/overlays/prompt-picker-state.js +0 -98
- package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
- package/dist/ui/overlays/team-fanout-state.js +0 -155
- package/dist/ui/overlays/use-model-probe.d.ts +0 -30
- package/dist/ui/overlays/use-model-probe.js +0 -109
- package/dist/ui/palettes.d.ts +0 -112
- package/dist/ui/palettes.js +0 -130
- package/dist/ui/paste-frames.d.ts +0 -91
- package/dist/ui/paste-frames.js +0 -117
- package/dist/ui/paste-tokens.d.ts +0 -90
- package/dist/ui/paste-tokens.js +0 -147
- package/dist/ui/render-cache.d.ts +0 -81
- package/dist/ui/render-cache.js +0 -196
- package/dist/ui/render-governor.d.ts +0 -54
- package/dist/ui/render-governor.js +0 -78
- package/dist/ui/run-metrics.d.ts +0 -23
- package/dist/ui/run-metrics.js +0 -27
- package/dist/ui/run-status-row.d.ts +0 -61
- package/dist/ui/run-status-row.js +0 -54
- package/dist/ui/screen.d.ts +0 -107
- package/dist/ui/screen.js +0 -234
- package/dist/ui/scrollback/LiveTail.d.ts +0 -115
- package/dist/ui/scrollback/LiveTail.js +0 -48
- package/dist/ui/scrollback/band.d.ts +0 -114
- package/dist/ui/scrollback/band.js +0 -143
- package/dist/ui/scrollback/budget.d.ts +0 -90
- package/dist/ui/scrollback/budget.js +0 -100
- package/dist/ui/scrollback/canvas.d.ts +0 -100
- package/dist/ui/scrollback/canvas.js +0 -114
- package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
- package/dist/ui/scrollback/cursor-probe.js +0 -133
- package/dist/ui/scrollback/drain.d.ts +0 -32
- package/dist/ui/scrollback/drain.js +0 -64
- package/dist/ui/scrollback/exit-summary.d.ts +0 -23
- package/dist/ui/scrollback/exit-summary.js +0 -25
- package/dist/ui/scrollback/limits.d.ts +0 -98
- package/dist/ui/scrollback/limits.js +0 -98
- package/dist/ui/scrollback/live-preview.d.ts +0 -34
- package/dist/ui/scrollback/live-preview.js +0 -118
- package/dist/ui/scrollback/overflow-print.d.ts +0 -108
- package/dist/ui/scrollback/overflow-print.js +0 -120
- package/dist/ui/scrollback/renderer.d.ts +0 -48
- package/dist/ui/scrollback/renderer.js +0 -186
- package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
- package/dist/ui/scrollback/scrollback-writer.js +0 -648
- package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
- package/dist/ui/scrollback/settled-boundary.js +0 -109
- package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
- package/dist/ui/scrollback/tail-anchor.js +0 -79
- package/dist/ui/scrollback/tail-window.d.ts +0 -73
- package/dist/ui/scrollback/tail-window.js +0 -89
- package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
- package/dist/ui/scrollback/use-scrollback-view.js +0 -601
- package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
- package/dist/ui/scrollback/writer-shapes.js +0 -159
- package/dist/ui/scrollbar-controller.d.ts +0 -30
- package/dist/ui/scrollbar-controller.js +0 -124
- package/dist/ui/selection/highlight.d.ts +0 -39
- package/dist/ui/selection/highlight.js +0 -64
- package/dist/ui/selection/screen-mirror.d.ts +0 -24
- package/dist/ui/selection/screen-mirror.js +0 -35
- package/dist/ui/selection/selection-controller.d.ts +0 -104
- package/dist/ui/selection/selection-controller.js +0 -372
- package/dist/ui/selection/selection.d.ts +0 -90
- package/dist/ui/selection/selection.js +0 -223
- package/dist/ui/shortcuts.d.ts +0 -81
- package/dist/ui/shortcuts.js +0 -221
- package/dist/ui/status-feedback.d.ts +0 -35
- package/dist/ui/status-feedback.js +0 -38
- package/dist/ui/stdout-frame-writer.d.ts +0 -74
- package/dist/ui/stdout-frame-writer.js +0 -155
- package/dist/ui/team-status.d.ts +0 -166
- package/dist/ui/team-status.js +0 -252
- package/dist/ui/terminal-plan.d.ts +0 -52
- package/dist/ui/terminal-plan.js +0 -49
- package/dist/ui/theme.d.ts +0 -96
- package/dist/ui/theme.js +0 -130
- package/dist/ui/transcript-text.d.ts +0 -41
- package/dist/ui/transcript-text.js +0 -282
- package/dist/ui/use-height-store.d.ts +0 -31
- package/dist/ui/use-height-store.js +0 -76
- package/dist/ui/use-render-governor.d.ts +0 -39
- package/dist/ui/use-render-governor.js +0 -57
- package/dist/ui/use-wheel-routing.d.ts +0 -57
- package/dist/ui/use-wheel-routing.js +0 -152
- package/dist/ui/win-vt-force.d.ts +0 -136
- package/dist/ui/win-vt-force.js +0 -237
- package/dist/ui/win-vt-input.d.ts +0 -57
- package/dist/ui/win-vt-input.js +0 -62
- package/dist/update/limits.d.ts +0 -111
- package/dist/update/limits.js +0 -111
- package/dist/update/semver.d.ts +0 -89
- package/dist/update/semver.js +0 -295
- package/dist/update/types.d.ts +0 -169
- package/dist/update/types.js +0 -68
- /package/dist/{ui → app}/session-bridge.d.ts +0 -0
- /package/dist/{ui → app}/session-bridge.js +0 -0
package/dist/team/model.d.ts
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `resolveSubagentModel` — THE single authority on which model a team child
|
|
3
|
-
* runs (subagent-model-and-question-controls §3.3).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
|
|
6
|
-
*
|
|
7
|
-
* EVERY CONSUMER READS THE CHILD'S MODEL THROUGH THIS FUNCTION AND NOWHERE
|
|
8
|
-
* ELSE — `createSubagent`, the `task` report header and the settings root row —
|
|
9
|
-
* following the `resolveFastTier` precedent one directory over: three call
|
|
10
|
-
* sites each recomputing "which model do children run on?" from raw
|
|
11
|
-
* config keys is exactly how the report ends up naming a model the children
|
|
12
|
-
* silently fell back from.
|
|
13
|
-
*
|
|
14
|
-
* IT IS RE-RUN ON EVERY DISPATCH AND EVERY RENDER, NOT ONCE (rule 8 / RV-3 of
|
|
15
|
-
* the fast tier, inherited here): `team.model`, the fast tier and the profile
|
|
16
|
-
* library are all LIVE keys a settings save (the `Subagent model` row), `/fast
|
|
17
|
-
* off` or a kit can rewrite mid-session. A resolution captured at construction would be a
|
|
18
|
-
* resolution describing a session that no longer exists.
|
|
19
|
-
*
|
|
20
|
-
* A CHILD IS NEVER LEFT WITHOUT A MODEL (D-4). Every failure mode — fast tier
|
|
21
|
-
* off, profile deleted, profile key missing — degrades to the MAIN connection
|
|
22
|
-
* with a `fallbackReason`, so a dispatch cannot fail because its model setting
|
|
23
|
-
* went stale. The reason is disclosed, never swallowed: the report header and
|
|
24
|
-
* the settings summary line both render it.
|
|
25
|
-
*/
|
|
26
|
-
import type { ModelCost, ModelRef, ThinkingLevel, TokenUsage } from '@aragon-agent/core';
|
|
27
|
-
import type { ModelProfile, ModelRole } from '../config/model-profiles.js';
|
|
28
|
-
import type { CliConfig } from '../config/schema.js';
|
|
29
|
-
/** Which model children run on. `main` is the default and the historical behavior. */
|
|
30
|
-
export type SubagentModelMode = 'main' | 'fast' | 'profile';
|
|
31
|
-
/** Why a non-main request degraded to the main model (D-4 disclosure). */
|
|
32
|
-
export type SubagentFallbackReason =
|
|
33
|
-
/** `team.model='fast'` but `resolveFastTier` is not ok (off, unconfigured, no key). */
|
|
34
|
-
'fast_unavailable'
|
|
35
|
-
/** `modelProfileId` is absent from the library (deleted, or never existed). */
|
|
36
|
-
| 'profile_missing'
|
|
37
|
-
/** The entry exists but carries no key of its own and the shared layer has none. */
|
|
38
|
-
| 'profile_no_key';
|
|
39
|
-
/** In-memory resolution; recomputed per dispatch/render, never persisted (§6.3). */
|
|
40
|
-
export interface SubagentModelResolution {
|
|
41
|
-
/** The user's requested mode, verbatim from config (UI highlight reads this). */
|
|
42
|
-
mode: SubagentModelMode;
|
|
43
|
-
/** The mode actually in effect; `'main'` whenever a fallback fired. */
|
|
44
|
-
effective: SubagentModelMode;
|
|
45
|
-
/** The connection children will use. On fallback, exactly the main connection. */
|
|
46
|
-
ref: ModelRef;
|
|
47
|
-
/** main/profile take `config.thinkingLevel`; fast takes `config.fast.thinkingLevel`. */
|
|
48
|
-
thinkingLevel: ThinkingLevel;
|
|
49
|
-
/** The role controller key resolution uses: main/profile `'main'`, fast `'fast'`. */
|
|
50
|
-
keyRole: ModelRole;
|
|
51
|
-
/** The profile entry a `profile` request hit, dedicated key included; else null. */
|
|
52
|
-
profile: ModelProfile | null;
|
|
53
|
-
/** Present only when `effective !== mode`. */
|
|
54
|
-
fallbackReason?: SubagentFallbackReason;
|
|
55
|
-
}
|
|
56
|
-
/** What `priceTeamUsage` needs from the controller: the lead's table and the lookup. */
|
|
57
|
-
export interface TeamPriceBook {
|
|
58
|
-
/** The lead's own price table (`main` mode prices at exactly this). */
|
|
59
|
-
mainCost: ModelCost | undefined;
|
|
60
|
-
isPriced: (ref: ModelRef) => boolean;
|
|
61
|
-
costFor: (ref: ModelRef) => ModelCost | undefined;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* USD for one child `usage` event, at the model the children ACTUALLY ran.
|
|
65
|
-
*
|
|
66
|
-
* The status bar and the dispatch report must agree, so both price through the same
|
|
67
|
-
* resolution: under the default `main` mode this is the lead's table (byte parity),
|
|
68
|
-
* otherwise the fast / profile model's. A model no table prices contributes ZERO rather
|
|
69
|
-
* than a fabricated figure (C-11 / RV-4), where the report says `pricing unknown`.
|
|
70
|
-
*/
|
|
71
|
-
export declare function priceTeamUsage(resolution: SubagentModelResolution, usage: TokenUsage, book: TeamPriceBook): number;
|
|
72
|
-
/** The `AgentController.hasApiKey` shape, injected so there is one key resolver. */
|
|
73
|
-
export type HasApiKey = (providerId: string, role?: ModelRole) => boolean;
|
|
74
|
-
/** The lead-layer key resolver `resolveSubagentKey` falls back to. */
|
|
75
|
-
export type SharedKeyResolver = (providerId: string, role: ModelRole) => string | undefined;
|
|
76
|
-
/**
|
|
77
|
-
* Resolve the model every child of the NEXT dispatch will run on.
|
|
78
|
-
*
|
|
79
|
-
* Pure, synchronous, no IO — testable as a matrix over config fixtures.
|
|
80
|
-
*
|
|
81
|
-
* @param config The live effective config. Read fresh; never snapshot it.
|
|
82
|
-
* @param hasKey `AgentController.hasApiKey`, which already resolves the
|
|
83
|
-
* config-file key, the provider environment variable and the one-shot
|
|
84
|
-
* `--api-key` override. Injected rather than reimplemented for the reason
|
|
85
|
-
* `resolveFastTier` records: a second key resolver is a second answer to
|
|
86
|
-
* "why does it say no key?".
|
|
87
|
-
*/
|
|
88
|
-
export declare function resolveSubagentModel(config: CliConfig, hasKey: HasApiKey): SubagentModelResolution;
|
|
89
|
-
/**
|
|
90
|
-
* The key a CHILD resolves for a provider, profile-aware (§3.3 / I-4).
|
|
91
|
-
*
|
|
92
|
-
* A profile's dedicated key is visible ONLY here: it never reaches env,
|
|
93
|
-
* `config.apiKeys` or a log line. While the resolution's profile is bound and
|
|
94
|
-
* the provider matches it, the entry key takes priority over the shared layer;
|
|
95
|
-
* every other provider (and every non-profile mode) resolves through the
|
|
96
|
-
* lead's own resolver at `resolution.keyRole` — which is what keeps a `fast`
|
|
97
|
-
* child entitled to the fast-role key and a `main` child to the main one.
|
|
98
|
-
*
|
|
99
|
-
* @param config The live config (carried for parity with the resolver pair).
|
|
100
|
-
* @param resolution A fresh `resolveSubagentModel` output.
|
|
101
|
-
* @param providerId The provider the child needs a key for.
|
|
102
|
-
* @param shared The lead-layer resolver (`controller.resolveKey`).
|
|
103
|
-
*/
|
|
104
|
-
export declare function resolveSubagentKey(config: CliConfig, resolution: SubagentModelResolution, providerId: string, shared: SharedKeyResolver): string | undefined;
|
package/dist/team/model.js
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `resolveSubagentModel` — THE single authority on which model a team child
|
|
3
|
-
* runs (subagent-model-and-question-controls §3.3).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
|
|
6
|
-
*
|
|
7
|
-
* EVERY CONSUMER READS THE CHILD'S MODEL THROUGH THIS FUNCTION AND NOWHERE
|
|
8
|
-
* ELSE — `createSubagent`, the `task` report header and the settings root row —
|
|
9
|
-
* following the `resolveFastTier` precedent one directory over: three call
|
|
10
|
-
* sites each recomputing "which model do children run on?" from raw
|
|
11
|
-
* config keys is exactly how the report ends up naming a model the children
|
|
12
|
-
* silently fell back from.
|
|
13
|
-
*
|
|
14
|
-
* IT IS RE-RUN ON EVERY DISPATCH AND EVERY RENDER, NOT ONCE (rule 8 / RV-3 of
|
|
15
|
-
* the fast tier, inherited here): `team.model`, the fast tier and the profile
|
|
16
|
-
* library are all LIVE keys a settings save (the `Subagent model` row), `/fast
|
|
17
|
-
* off` or a kit can rewrite mid-session. A resolution captured at construction would be a
|
|
18
|
-
* resolution describing a session that no longer exists.
|
|
19
|
-
*
|
|
20
|
-
* A CHILD IS NEVER LEFT WITHOUT A MODEL (D-4). Every failure mode — fast tier
|
|
21
|
-
* off, profile deleted, profile key missing — degrades to the MAIN connection
|
|
22
|
-
* with a `fallbackReason`, so a dispatch cannot fail because its model setting
|
|
23
|
-
* went stale. The reason is disclosed, never swallowed: the report header and
|
|
24
|
-
* the settings summary line both render it.
|
|
25
|
-
*/
|
|
26
|
-
import { computeCost } from '../agent/usage.js';
|
|
27
|
-
import { resolveFastTier } from '../fast/resolve.js';
|
|
28
|
-
/**
|
|
29
|
-
* USD for one child `usage` event, at the model the children ACTUALLY ran.
|
|
30
|
-
*
|
|
31
|
-
* The status bar and the dispatch report must agree, so both price through the same
|
|
32
|
-
* resolution: under the default `main` mode this is the lead's table (byte parity),
|
|
33
|
-
* otherwise the fast / profile model's. A model no table prices contributes ZERO rather
|
|
34
|
-
* than a fabricated figure (C-11 / RV-4), where the report says `pricing unknown`.
|
|
35
|
-
*/
|
|
36
|
-
export function priceTeamUsage(resolution, usage, book) {
|
|
37
|
-
if (resolution.effective === 'main')
|
|
38
|
-
return computeCost(usage, book.mainCost);
|
|
39
|
-
return book.isPriced(resolution.ref) ? computeCost(usage, book.costFor(resolution.ref)) : 0;
|
|
40
|
-
}
|
|
41
|
-
function mainRef(config) {
|
|
42
|
-
return {
|
|
43
|
-
providerId: config.provider,
|
|
44
|
-
modelId: config.model,
|
|
45
|
-
...(config.baseUrl ? { baseUrl: config.baseUrl } : {}),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function fallbackToMain(config, mode, fallbackReason) {
|
|
49
|
-
// THE ALWAYS-USABLE ANSWER (D-4): whatever the user asked for that could not
|
|
50
|
-
// resolve, the caller still gets a working connection — the same provider,
|
|
51
|
-
// model, base URL and thinking level the lead itself runs on.
|
|
52
|
-
return {
|
|
53
|
-
mode,
|
|
54
|
-
effective: 'main',
|
|
55
|
-
ref: mainRef(config),
|
|
56
|
-
thinkingLevel: config.thinkingLevel,
|
|
57
|
-
keyRole: 'main',
|
|
58
|
-
profile: null,
|
|
59
|
-
fallbackReason,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolve the model every child of the NEXT dispatch will run on.
|
|
64
|
-
*
|
|
65
|
-
* Pure, synchronous, no IO — testable as a matrix over config fixtures.
|
|
66
|
-
*
|
|
67
|
-
* @param config The live effective config. Read fresh; never snapshot it.
|
|
68
|
-
* @param hasKey `AgentController.hasApiKey`, which already resolves the
|
|
69
|
-
* config-file key, the provider environment variable and the one-shot
|
|
70
|
-
* `--api-key` override. Injected rather than reimplemented for the reason
|
|
71
|
-
* `resolveFastTier` records: a second key resolver is a second answer to
|
|
72
|
-
* "why does it say no key?".
|
|
73
|
-
*/
|
|
74
|
-
export function resolveSubagentModel(config, hasKey) {
|
|
75
|
-
// `clampTeamConfig` guarantees the enum on every read and write path, so the
|
|
76
|
-
// default `'main'` here is belt-and-braces rather than a real branch.
|
|
77
|
-
const mode = config.team.model ?? 'main';
|
|
78
|
-
if (mode === 'fast') {
|
|
79
|
-
const tier = resolveFastTier(config, hasKey);
|
|
80
|
-
if (tier.ok) {
|
|
81
|
-
return {
|
|
82
|
-
mode,
|
|
83
|
-
effective: 'fast',
|
|
84
|
-
ref: tier.ref,
|
|
85
|
-
thinkingLevel: config.fast.thinkingLevel,
|
|
86
|
-
keyRole: 'fast',
|
|
87
|
-
profile: null,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
return fallbackToMain(config, mode, 'fast_unavailable');
|
|
91
|
-
}
|
|
92
|
-
if (mode === 'profile') {
|
|
93
|
-
// A missing library, a missing id and a dangling id are one outcome
|
|
94
|
-
// (D-4): degrade to main and say so. Reference EXISTENCE is deliberately
|
|
95
|
-
// not validated in `clampTeamConfig` — resolution is where it belongs.
|
|
96
|
-
const id = config.team.modelProfileId;
|
|
97
|
-
const entry = id
|
|
98
|
-
? config.modelProfiles?.entries.find((candidate) => candidate.id === id)
|
|
99
|
-
: undefined;
|
|
100
|
-
if (!entry)
|
|
101
|
-
return fallbackToMain(config, mode, 'profile_missing');
|
|
102
|
-
// The dedicated entry key wins; without one the shared layer must have a
|
|
103
|
-
// key for the entry's provider, or the child could not authenticate at all.
|
|
104
|
-
if (!entry.apiKey && !hasKey(entry.provider, 'main')) {
|
|
105
|
-
return fallbackToMain(config, mode, 'profile_no_key');
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
mode,
|
|
109
|
-
effective: 'profile',
|
|
110
|
-
ref: {
|
|
111
|
-
providerId: entry.provider,
|
|
112
|
-
modelId: entry.model,
|
|
113
|
-
...(entry.baseUrl ? { baseUrl: entry.baseUrl } : {}),
|
|
114
|
-
},
|
|
115
|
-
thinkingLevel: config.thinkingLevel,
|
|
116
|
-
keyRole: 'main',
|
|
117
|
-
profile: entry,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
return {
|
|
121
|
-
mode: 'main',
|
|
122
|
-
effective: 'main',
|
|
123
|
-
ref: mainRef(config),
|
|
124
|
-
thinkingLevel: config.thinkingLevel,
|
|
125
|
-
keyRole: 'main',
|
|
126
|
-
profile: null,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* The key a CHILD resolves for a provider, profile-aware (§3.3 / I-4).
|
|
131
|
-
*
|
|
132
|
-
* A profile's dedicated key is visible ONLY here: it never reaches env,
|
|
133
|
-
* `config.apiKeys` or a log line. While the resolution's profile is bound and
|
|
134
|
-
* the provider matches it, the entry key takes priority over the shared layer;
|
|
135
|
-
* every other provider (and every non-profile mode) resolves through the
|
|
136
|
-
* lead's own resolver at `resolution.keyRole` — which is what keeps a `fast`
|
|
137
|
-
* child entitled to the fast-role key and a `main` child to the main one.
|
|
138
|
-
*
|
|
139
|
-
* @param config The live config (carried for parity with the resolver pair).
|
|
140
|
-
* @param resolution A fresh `resolveSubagentModel` output.
|
|
141
|
-
* @param providerId The provider the child needs a key for.
|
|
142
|
-
* @param shared The lead-layer resolver (`controller.resolveKey`).
|
|
143
|
-
*/
|
|
144
|
-
export function resolveSubagentKey(config, resolution, providerId, shared) {
|
|
145
|
-
void config; // parity parameter: the pair reads one config, the key does not need it
|
|
146
|
-
if (resolution.profile && providerId === resolution.ref.providerId) {
|
|
147
|
-
return resolution.profile.apiKey ?? shared(providerId, 'main');
|
|
148
|
-
}
|
|
149
|
-
return shared(providerId, resolution.keyRole);
|
|
150
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `selectPanelRows` - which children the live roster shows (team-live-activity
|
|
3
|
-
* F-2).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
|
|
6
|
-
*
|
|
7
|
-
* THE DEFECT THIS REPLACES. `TeamPanel` took the first `panelMaxRows` runs by
|
|
8
|
-
* ARRAY INDEX, and the slot pool hands out indices from a shared cursor in
|
|
9
|
-
* order - so at `maxSubagents: 8, maxConcurrent: 3` the first five rows are the
|
|
10
|
-
* five that finished first and everything still working sits behind `+3 more`.
|
|
11
|
-
* The one thing the requirement asks the panel for - show that subagents are
|
|
12
|
-
* running - is the one thing it stopped doing at the fan-out widths the
|
|
13
|
-
* requirement explicitly permits.
|
|
14
|
-
*
|
|
15
|
-
* Pure: a function of a roster snapshot and a row cap, with no clock, no
|
|
16
|
-
* terminal and no `Agent` anywhere near it.
|
|
17
|
-
*/
|
|
18
|
-
import type { SubagentRun } from './types.js';
|
|
19
|
-
export interface PanelRows {
|
|
20
|
-
visible: SubagentRun[];
|
|
21
|
-
hiddenTotal: number;
|
|
22
|
-
hiddenRunning: number;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Rank the roster so that what is VISIBLE is what is HAPPENING.
|
|
26
|
-
*
|
|
27
|
-
* Ordering inside each group is chosen for ROW STABILITY, which is the real
|
|
28
|
-
* usability constraint here: the panel re-renders every 200 ms and a row that
|
|
29
|
-
* changes position on each tick is unreadable.
|
|
30
|
-
* - running: by `startedAt` ascending. `startedAt` changes exactly once in a
|
|
31
|
-
* run's life outside of its first assignment - on a cold-start retry (F-4),
|
|
32
|
-
* which re-stamps it (P2-4). A retried child therefore moves to the end of
|
|
33
|
-
* the running group, once, at the moment it visibly restarts. That is the
|
|
34
|
-
* correct reading of the ordering rule rather than an exception to it: the
|
|
35
|
-
* group is ordered by "how long has this been going", and a retry resets
|
|
36
|
-
* exactly that.
|
|
37
|
-
* - queued: original order; that IS the order the pool will start them in.
|
|
38
|
-
* - settled: most recently ended first, so the newest result is the one that
|
|
39
|
-
* stays on screen as others complete.
|
|
40
|
-
* A run changes position at most twice in its life - queued -> running ->
|
|
41
|
-
* settled - and each move carries real information.
|
|
42
|
-
*
|
|
43
|
-
* The final tiebreak is the original index. `Array.prototype.sort` is stable in
|
|
44
|
-
* every Node this package supports, so the tiebreak is not load-bearing; it is
|
|
45
|
-
* here so the ordering is total and the test can assert it without depending on
|
|
46
|
-
* that guarantee.
|
|
47
|
-
*/
|
|
48
|
-
export declare function selectPanelRows(runs: SubagentRun[], max: number): PanelRows;
|
package/dist/team/panel-rows.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `selectPanelRows` - which children the live roster shows (team-live-activity
|
|
3
|
-
* F-2).
|
|
4
|
-
*
|
|
5
|
-
* ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
|
|
6
|
-
*
|
|
7
|
-
* THE DEFECT THIS REPLACES. `TeamPanel` took the first `panelMaxRows` runs by
|
|
8
|
-
* ARRAY INDEX, and the slot pool hands out indices from a shared cursor in
|
|
9
|
-
* order - so at `maxSubagents: 8, maxConcurrent: 3` the first five rows are the
|
|
10
|
-
* five that finished first and everything still working sits behind `+3 more`.
|
|
11
|
-
* The one thing the requirement asks the panel for - show that subagents are
|
|
12
|
-
* running - is the one thing it stopped doing at the fan-out widths the
|
|
13
|
-
* requirement explicitly permits.
|
|
14
|
-
*
|
|
15
|
-
* Pure: a function of a roster snapshot and a row cap, with no clock, no
|
|
16
|
-
* terminal and no `Agent` anywhere near it.
|
|
17
|
-
*/
|
|
18
|
-
const RUNNING = new Set(['starting', 'thinking', 'tool', 'waiting']);
|
|
19
|
-
const SETTLED = new Set(['done', 'failed', 'aborted']);
|
|
20
|
-
/** 0 running, 1 queued, 2 settled. */
|
|
21
|
-
function group(run) {
|
|
22
|
-
if (RUNNING.has(run.phase))
|
|
23
|
-
return 0;
|
|
24
|
-
if (SETTLED.has(run.phase))
|
|
25
|
-
return 2;
|
|
26
|
-
return 1;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Rank the roster so that what is VISIBLE is what is HAPPENING.
|
|
30
|
-
*
|
|
31
|
-
* Ordering inside each group is chosen for ROW STABILITY, which is the real
|
|
32
|
-
* usability constraint here: the panel re-renders every 200 ms and a row that
|
|
33
|
-
* changes position on each tick is unreadable.
|
|
34
|
-
* - running: by `startedAt` ascending. `startedAt` changes exactly once in a
|
|
35
|
-
* run's life outside of its first assignment - on a cold-start retry (F-4),
|
|
36
|
-
* which re-stamps it (P2-4). A retried child therefore moves to the end of
|
|
37
|
-
* the running group, once, at the moment it visibly restarts. That is the
|
|
38
|
-
* correct reading of the ordering rule rather than an exception to it: the
|
|
39
|
-
* group is ordered by "how long has this been going", and a retry resets
|
|
40
|
-
* exactly that.
|
|
41
|
-
* - queued: original order; that IS the order the pool will start them in.
|
|
42
|
-
* - settled: most recently ended first, so the newest result is the one that
|
|
43
|
-
* stays on screen as others complete.
|
|
44
|
-
* A run changes position at most twice in its life - queued -> running ->
|
|
45
|
-
* settled - and each move carries real information.
|
|
46
|
-
*
|
|
47
|
-
* The final tiebreak is the original index. `Array.prototype.sort` is stable in
|
|
48
|
-
* every Node this package supports, so the tiebreak is not load-bearing; it is
|
|
49
|
-
* here so the ordering is total and the test can assert it without depending on
|
|
50
|
-
* that guarantee.
|
|
51
|
-
*/
|
|
52
|
-
export function selectPanelRows(runs, max) {
|
|
53
|
-
const ranked = runs
|
|
54
|
-
.map((run, index) => ({ run, index }))
|
|
55
|
-
.sort((a, b) => {
|
|
56
|
-
const ga = group(a.run);
|
|
57
|
-
const gb = group(b.run);
|
|
58
|
-
if (ga !== gb)
|
|
59
|
-
return ga - gb;
|
|
60
|
-
if (ga === 0)
|
|
61
|
-
return (a.run.startedAt ?? 0) - (b.run.startedAt ?? 0) || a.index - b.index;
|
|
62
|
-
if (ga === 2)
|
|
63
|
-
return (b.run.endedAt ?? 0) - (a.run.endedAt ?? 0) || a.index - b.index;
|
|
64
|
-
return a.index - b.index;
|
|
65
|
-
})
|
|
66
|
-
.map((e) => e.run);
|
|
67
|
-
const limit = Math.max(0, max);
|
|
68
|
-
const visible = ranked.slice(0, limit);
|
|
69
|
-
const hidden = ranked.slice(limit);
|
|
70
|
-
return {
|
|
71
|
-
visible,
|
|
72
|
-
hiddenTotal: hidden.length,
|
|
73
|
-
hiddenRunning: hidden.filter((r) => RUNNING.has(r.phase)).length,
|
|
74
|
-
};
|
|
75
|
-
}
|
package/dist/team/timeline.d.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The per-child event ring behind the Agents board's `timeline` section
|
|
3
|
-
* (tui-subagent-panel §4.5).
|
|
4
|
-
*
|
|
5
|
-
* WHY A RING ON THE RUN rather than a second store: a `SubagentRun` already IS "one
|
|
6
|
-
* child's projection", and every UI surface reads it through `publish()`. A separate
|
|
7
|
-
* store would be a second authority for the same subject and would have to be
|
|
8
|
-
* subscribed to separately - and the four collection points below are all single
|
|
9
|
-
* funnels that already exist (§4.5.2).
|
|
10
|
-
*
|
|
11
|
-
* FIVE KINDS, NOT EVERY TURN (D-12). A turn marker per turn would fill twenty-four
|
|
12
|
-
* slots in a long task and push out the tool calls, which are the part a reader cannot
|
|
13
|
-
* reconstruct from the report. Phase changes are visible in the board's `state` field
|
|
14
|
-
* in real time, so they do not need history.
|
|
15
|
-
*
|
|
16
|
-
* BOUNDED AND PURE. `appendTimeline` returns a NEW array (never mutates the old one),
|
|
17
|
-
* drops the oldest entry past `TEAM_LIMITS.timelineEntries`, and clamps every line to
|
|
18
|
-
* `TEAM_LIMITS.timelineTextChars`. Purity is what lets `publish()`'s shallow copy hold
|
|
19
|
-
* a stable snapshot without knowing this module exists (AC-25).
|
|
20
|
-
*
|
|
21
|
-
* ASCII ONLY: `src/team/**` is inside `glyphs.test.ts`'s static scan.
|
|
22
|
-
*
|
|
23
|
-
* THE TEXT IS ALWAYS BUILT FROM `describeToolActivity` / `sanitizeActivity`, never
|
|
24
|
-
* from raw tool arguments (D-11 / P1-4). That is the boundary that keeps a
|
|
25
|
-
* `write_file` body, a `bash` transcript or a child's prompt out of a surface that is
|
|
26
|
-
* one `JSON.stringify` from a log.
|
|
27
|
-
*/
|
|
28
|
-
import type { SubagentPhase, SubagentRun } from './types.js';
|
|
29
|
-
export type TimelineKind = 'tool' | 'retry' | 'compact' | 'overseer' | 'settle';
|
|
30
|
-
export interface TimelineEntry {
|
|
31
|
-
kind: TimelineKind;
|
|
32
|
-
/** Absolute epoch ms, the same units as `startedAt` / `endedAt` / `lastIntervention.at`. */
|
|
33
|
-
at: number;
|
|
34
|
-
/** Already sanitized + clamped: at most `TEAM_LIMITS.timelineTextChars` characters. */
|
|
35
|
-
text: string;
|
|
36
|
-
/** Whether the tool call succeeded (`tool` only). */
|
|
37
|
-
ok?: boolean;
|
|
38
|
-
/** How long the tool call took in ms (`tool` only). */
|
|
39
|
-
ms?: number;
|
|
40
|
-
}
|
|
41
|
-
export declare function isTerminalPhase(phase: SubagentPhase): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Append one event, returning a NEW array. The oldest entry is dropped once the ring
|
|
44
|
-
* is full, so the array's length is bounded by `max` for every possible input.
|
|
45
|
-
*/
|
|
46
|
-
export declare function appendTimeline(prev: readonly TimelineEntry[] | undefined, entry: TimelineEntry, max?: number): TimelineEntry[];
|
|
47
|
-
/**
|
|
48
|
-
* The terminal event for one ATTEMPT, or `null` when there is nothing to record yet.
|
|
49
|
-
*
|
|
50
|
-
* WHY THIS IS CALLED FROM `publish()` AND NOT FROM `settlePhase` (§4.5.2 / RV-P1-3):
|
|
51
|
-
* `settlePhase` covers the retry loop's exit only, and two paths set a terminal phase
|
|
52
|
-
* directly - the worker's "never started" abort and the cold-start backoff abort. Those
|
|
53
|
-
* are exactly the children whose explanation a reader needs most, and hanging the
|
|
54
|
-
* settle entry on `settlePhase` alone would leave them with no last event.
|
|
55
|
-
*
|
|
56
|
-
* IDEMPOTENCE IS KEYED ON THE ATTEMPT, not on "the last entry is a settle" (I-14): a
|
|
57
|
-
* retry re-stamps `startedAt`, so a new attempt legitimately earns a second terminal
|
|
58
|
-
* entry, while a repeated `publish()` of the same attempt adds nothing.
|
|
59
|
-
*/
|
|
60
|
-
export declare function settleTimelineEntry(run: SubagentRun, at: number): TimelineEntry | null;
|
|
61
|
-
/**
|
|
62
|
-
* The run as a reader should see it: unchanged, or with its attempt's terminal event
|
|
63
|
-
* appended once. Called from `publish()`, which is every state change's single exit
|
|
64
|
-
* (§4.5.2) and therefore covers the two paths that set a terminal phase directly.
|
|
65
|
-
*
|
|
66
|
-
* ADDED TO THE EMITTED SNAPSHOT, NEVER TO THE LIVE RUN (this is the part `publish()`
|
|
67
|
-
* makes subtle). `subagent.ts` calls `onUpdate` with a COPY of the run, so writing the
|
|
68
|
-
* entry onto the object `publish()` receives would be lost - and because
|
|
69
|
-
* `settleTimelineEntry` uses the live timeline as its idempotence key, a lost write
|
|
70
|
-
* means every later publish of the same settled child appends another `settle` row to
|
|
71
|
-
* the ring. Keeping the live run untouched makes the entry a property of the VIEW:
|
|
72
|
-
* exactly one terminal event per attempt, however many frames are published.
|
|
73
|
-
*/
|
|
74
|
-
export declare function withSettleEntry(run: SubagentRun, at: number): SubagentRun;
|
package/dist/team/timeline.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The per-child event ring behind the Agents board's `timeline` section
|
|
3
|
-
* (tui-subagent-panel §4.5).
|
|
4
|
-
*
|
|
5
|
-
* WHY A RING ON THE RUN rather than a second store: a `SubagentRun` already IS "one
|
|
6
|
-
* child's projection", and every UI surface reads it through `publish()`. A separate
|
|
7
|
-
* store would be a second authority for the same subject and would have to be
|
|
8
|
-
* subscribed to separately - and the four collection points below are all single
|
|
9
|
-
* funnels that already exist (§4.5.2).
|
|
10
|
-
*
|
|
11
|
-
* FIVE KINDS, NOT EVERY TURN (D-12). A turn marker per turn would fill twenty-four
|
|
12
|
-
* slots in a long task and push out the tool calls, which are the part a reader cannot
|
|
13
|
-
* reconstruct from the report. Phase changes are visible in the board's `state` field
|
|
14
|
-
* in real time, so they do not need history.
|
|
15
|
-
*
|
|
16
|
-
* BOUNDED AND PURE. `appendTimeline` returns a NEW array (never mutates the old one),
|
|
17
|
-
* drops the oldest entry past `TEAM_LIMITS.timelineEntries`, and clamps every line to
|
|
18
|
-
* `TEAM_LIMITS.timelineTextChars`. Purity is what lets `publish()`'s shallow copy hold
|
|
19
|
-
* a stable snapshot without knowing this module exists (AC-25).
|
|
20
|
-
*
|
|
21
|
-
* ASCII ONLY: `src/team/**` is inside `glyphs.test.ts`'s static scan.
|
|
22
|
-
*
|
|
23
|
-
* THE TEXT IS ALWAYS BUILT FROM `describeToolActivity` / `sanitizeActivity`, never
|
|
24
|
-
* from raw tool arguments (D-11 / P1-4). That is the boundary that keeps a
|
|
25
|
-
* `write_file` body, a `bash` transcript or a child's prompt out of a surface that is
|
|
26
|
-
* one `JSON.stringify` from a log.
|
|
27
|
-
*/
|
|
28
|
-
import { TEAM_LIMITS } from './limits.js';
|
|
29
|
-
/** The phases that end an attempt. Used by the settle-idempotence rule below. */
|
|
30
|
-
const TERMINAL_PHASES = new Set(['done', 'failed', 'aborted']);
|
|
31
|
-
export function isTerminalPhase(phase) {
|
|
32
|
-
return TERMINAL_PHASES.has(phase);
|
|
33
|
-
}
|
|
34
|
-
/** Clamp one line to the display budget. Collapses whitespace for the same reason. */
|
|
35
|
-
function clampText(text) {
|
|
36
|
-
const flat = text.replace(/\s+/g, ' ').trim();
|
|
37
|
-
if (flat.length <= TEAM_LIMITS.timelineTextChars)
|
|
38
|
-
return flat;
|
|
39
|
-
return `${flat.slice(0, TEAM_LIMITS.timelineTextChars - 3)}...`;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Append one event, returning a NEW array. The oldest entry is dropped once the ring
|
|
43
|
-
* is full, so the array's length is bounded by `max` for every possible input.
|
|
44
|
-
*/
|
|
45
|
-
export function appendTimeline(prev, entry, max = TEAM_LIMITS.timelineEntries) {
|
|
46
|
-
const limit = Number.isFinite(max) ? Math.max(1, Math.floor(max)) : TEAM_LIMITS.timelineEntries;
|
|
47
|
-
const next = [...(prev ?? []), { ...entry, text: clampText(entry.text) }];
|
|
48
|
-
return next.length > limit ? next.slice(next.length - limit) : next;
|
|
49
|
-
}
|
|
50
|
-
/** The first line of a multi-line answer, clamped - a timeline entry is one line. */
|
|
51
|
-
function head(text) {
|
|
52
|
-
if (text === undefined || text.length === 0)
|
|
53
|
-
return '';
|
|
54
|
-
return clampText(text);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* The terminal event for one ATTEMPT, or `null` when there is nothing to record yet.
|
|
58
|
-
*
|
|
59
|
-
* WHY THIS IS CALLED FROM `publish()` AND NOT FROM `settlePhase` (§4.5.2 / RV-P1-3):
|
|
60
|
-
* `settlePhase` covers the retry loop's exit only, and two paths set a terminal phase
|
|
61
|
-
* directly - the worker's "never started" abort and the cold-start backoff abort. Those
|
|
62
|
-
* are exactly the children whose explanation a reader needs most, and hanging the
|
|
63
|
-
* settle entry on `settlePhase` alone would leave them with no last event.
|
|
64
|
-
*
|
|
65
|
-
* IDEMPOTENCE IS KEYED ON THE ATTEMPT, not on "the last entry is a settle" (I-14): a
|
|
66
|
-
* retry re-stamps `startedAt`, so a new attempt legitimately earns a second terminal
|
|
67
|
-
* entry, while a repeated `publish()` of the same attempt adds nothing.
|
|
68
|
-
*/
|
|
69
|
-
export function settleTimelineEntry(run, at) {
|
|
70
|
-
if (!isTerminalPhase(run.phase))
|
|
71
|
-
return null;
|
|
72
|
-
const attemptStart = run.startedAt ?? 0;
|
|
73
|
-
const last = run.timeline?.[run.timeline.length - 1];
|
|
74
|
-
if (last?.kind === 'settle' && last.at >= attemptStart)
|
|
75
|
-
return null;
|
|
76
|
-
const text = run.phase === 'done'
|
|
77
|
-
? `done: ${head(run.summary)}`.trim()
|
|
78
|
-
: run.phase === 'failed'
|
|
79
|
-
? `failed: ${head(run.error)}`.trim()
|
|
80
|
-
: 'aborted';
|
|
81
|
-
return { kind: 'settle', at, text };
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* The run as a reader should see it: unchanged, or with its attempt's terminal event
|
|
85
|
-
* appended once. Called from `publish()`, which is every state change's single exit
|
|
86
|
-
* (§4.5.2) and therefore covers the two paths that set a terminal phase directly.
|
|
87
|
-
*
|
|
88
|
-
* ADDED TO THE EMITTED SNAPSHOT, NEVER TO THE LIVE RUN (this is the part `publish()`
|
|
89
|
-
* makes subtle). `subagent.ts` calls `onUpdate` with a COPY of the run, so writing the
|
|
90
|
-
* entry onto the object `publish()` receives would be lost - and because
|
|
91
|
-
* `settleTimelineEntry` uses the live timeline as its idempotence key, a lost write
|
|
92
|
-
* means every later publish of the same settled child appends another `settle` row to
|
|
93
|
-
* the ring. Keeping the live run untouched makes the entry a property of the VIEW:
|
|
94
|
-
* exactly one terminal event per attempt, however many frames are published.
|
|
95
|
-
*/
|
|
96
|
-
export function withSettleEntry(run, at) {
|
|
97
|
-
const settle = settleTimelineEntry(run, at);
|
|
98
|
-
if (settle === null)
|
|
99
|
-
return run;
|
|
100
|
-
return { ...run, timeline: appendTimeline(run.timeline, settle) };
|
|
101
|
-
}
|