@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/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,35 @@ were written.
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
- **Internal: the terminal interface moved to its own package, `@aragon-agent/tui`.** The Ink
|
|
12
|
+
components, terminal input handling, the scrollback renderer and the view model that `aragon`
|
|
13
|
+
draws from are no longer part of this package's source; they are published as
|
|
14
|
+
`@aragon-agent/tui`, which this package depends on at an exact version. **Nothing you can see or
|
|
15
|
+
type changed**: no command, flag, key, config key, file format, colour or layout differs, and
|
|
16
|
+
`aragon info` / `aragon doctor` print the same fields. Installing `@aragon-agent/cli` installs the
|
|
17
|
+
new package for you; `npx @aragon-agent/cli` and the self-updater need no change. One new
|
|
18
|
+
runtime download (`@aragon-agent/tui`) accompanies this release, and the three packages
|
|
19
|
+
(`core`, `tui`, `cli`) are now released together, in that order. If you import this package's
|
|
20
|
+
internals (they were never a supported API), imports of the moved modules must now name
|
|
21
|
+
`@aragon-agent/tui/<subpath>` instead.
|
|
22
|
+
|
|
10
23
|
### Added
|
|
24
|
+
- **Long waits: `job_wait` now waits up to 20 minutes, and the wait looks like it.**
|
|
25
|
+
`timeoutSeconds` takes any integer from 5 to 1200 (it used to stop at 60, and at 150 with the
|
|
26
|
+
default `toolTimeoutMs`, because the tool ceiling silently pulled it down). `job_wait` gets its own
|
|
27
|
+
executor ceiling (1230 s) and pauses the idle watchdog for the whole wait, so `toolTimeoutMs` no
|
|
28
|
+
longer limits it and `jobs.waitSeconds` accepts 5-1200. **Typing a message ends the wait at once**
|
|
29
|
+
(result line `[woke] ...`, the job keeps running, no `Esc` needed); reviewer notes and completion
|
|
30
|
+
notices do not. While waiting, the tool card is replaced by a fixed five-row card - a progress bar
|
|
31
|
+
(the job's own progress when it prints any, otherwise the wait window), both clocks, the job's
|
|
32
|
+
newest output with "N s ago", a calm "not a failure" note after `jobs.stallSeconds` of silence, and
|
|
33
|
+
a hint that a message ends the wait - and the status bar reads `Waiting on t3 4m12s/10m00s`. New:
|
|
34
|
+
`job: "any"` (return on the first job to end), a `[next]` suggestion with a `timeoutSeconds` (and the
|
|
35
|
+
job's ETA) so the model prefers one long wait to many short ones, and `[note]` when a request is
|
|
36
|
+
clamped to the ceiling. No new config keys; `jobs.enabled=false` is byte-identical to before.
|
|
37
|
+
Honest limit: while a wait runs the idle check is off, so a stuck wait is ended by its own 20-minute
|
|
38
|
+
bound, the executor backstop, or you.
|
|
11
39
|
- **Governance mode - a multi-agent "legion" collaboration posture.** `Shift+Tab` (and `Ctrl+N`)
|
|
12
40
|
now cycle `BUILD -> PLAN -> GOVERN -> PLAN+GOVERN -> BUILD`; `/gov` goes to any of them
|
|
13
41
|
directly. In `GOVERN` the main agent becomes an **Orchestrator** that cannot write files or run
|
package/README.md
CHANGED
|
@@ -57,10 +57,15 @@ aragon
|
|
|
57
57
|
npx @aragon-agent/cli
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
> **Release note (R3):** `npx @aragon-agent/cli` resolves `@aragon-agent/core`
|
|
61
|
-
> from the npm registry, so
|
|
62
|
-
>
|
|
63
|
-
> monorepo, npm workspaces link the local `packages/core`
|
|
60
|
+
> **Release note (R3):** `npx @aragon-agent/cli` resolves `@aragon-agent/core` and
|
|
61
|
+
> `@aragon-agent/tui` from the npm registry, so both must be published first (the
|
|
62
|
+
> release script publishes `core`, then `tui`, then `cli`). During local development
|
|
63
|
+
> inside this monorepo, npm workspaces link the local `packages/core` and
|
|
64
|
+
> `packages/tui` automatically.
|
|
65
|
+
|
|
66
|
+
The terminal interface itself lives in its own package,
|
|
67
|
+
[`@aragon-agent/tui`](../tui), which this package depends on at an **exact**
|
|
68
|
+
version; you never install it by hand. Installing `@aragon-agent/cli` installs all three.
|
|
64
69
|
|
|
65
70
|
## Quick start
|
|
66
71
|
|
|
@@ -2068,13 +2073,60 @@ longer reads "not ready yet, still coming up" for its first minute.
|
|
|
2068
2073
|
Two tools manage them:
|
|
2069
2074
|
|
|
2070
2075
|
- `job_wait({ job, timeoutSeconds?, since? })` — block up to a bound (default 30s,
|
|
2071
|
-
at most
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
+
**at most 20 minutes**: `timeoutSeconds` takes any integer from 5 to 1200) and
|
|
2077
|
+
return one status line, one progress line, at most six new output rows and a
|
|
2078
|
+
cursor. It returns immediately if the job already finished, and it also ends
|
|
2079
|
+
the moment **you send a message** (see below). `job` is an id, `"all"` (until
|
|
2080
|
+
every live job ends) or `"any"` (until the first one ends). This is the point
|
|
2081
|
+
of the feature: waiting 30 seconds used to cost six `bash_output` calls, six
|
|
2082
|
+
model turns and six 200-row tails; it now costs one call and about 150 tokens,
|
|
2083
|
+
and a 40-minute training run costs a handful of calls instead of dozens.
|
|
2076
2084
|
- `job_list()` — one line per job: id, kind, status, elapsed, progress.
|
|
2077
2085
|
|
|
2086
|
+
### Long waits
|
|
2087
|
+
|
|
2088
|
+
A wait can now last up to 20 minutes, so three things keep it safe and visible:
|
|
2089
|
+
|
|
2090
|
+
- **You can always interrupt it by typing.** Send a message while the agent is
|
|
2091
|
+
waiting and the wait ends at once; the result says `[woke] you sent a message...`,
|
|
2092
|
+
your message is delivered next, and the job keeps running. You do not need
|
|
2093
|
+
`Esc`, which would stop the whole run. (Automatic notes, such as a reviewer's
|
|
2094
|
+
or a completion notice, do not end a wait. If the agent had queued more tool
|
|
2095
|
+
calls in the same step, the engine skips them when your message arrives, as it
|
|
2096
|
+
does for any message sent mid-step.)
|
|
2097
|
+
- **The wait is drawn as a five-row card** instead of a bare "running":
|
|
2098
|
+
|
|
2099
|
+
```
|
|
2100
|
+
⠹ Waiting for t3 python train.py --epochs 10 4m12s of 10m00s
|
|
2101
|
+
│ ████████░░░░░░░░░░░░░░░░░░░░ 30% epoch 3/10 ETA 13m
|
|
2102
|
+
│ job running 42m04s · this wait ends in 5m48s, or sooner if the job finishes
|
|
2103
|
+
│ step 912/1000 loss 0.4098 3s ago
|
|
2104
|
+
│ Send a message to end the wait early · Esc x2 stops the whole run
|
|
2105
|
+
```
|
|
2106
|
+
|
|
2107
|
+
The bar shows the job's own progress when it prints any, and otherwise the
|
|
2108
|
+
wait window itself (the words say which). After `jobs.stallSeconds` of silence
|
|
2109
|
+
the output row becomes a calm
|
|
2110
|
+
`quiet for 6m02s - the job is still alive; this is not a failure`. The status
|
|
2111
|
+
bar and activity line carry the same clock (`Waiting on t3 4m12s/10m00s`).
|
|
2112
|
+
The card is always five rows, uses ASCII glyphs on terminals without Unicode,
|
|
2113
|
+
and keeps its numbers moving under reduced motion. It disappears when the wait
|
|
2114
|
+
ends and leaves the usual one-line history row.
|
|
2115
|
+
- **The idle watchdog is paused for the length of the wait**, and `toolTimeoutMs`
|
|
2116
|
+
no longer limits it: `job_wait` gets its own executor ceiling (20 minutes plus
|
|
2117
|
+
30 seconds). The honest cost is that a wait which is itself stuck is only
|
|
2118
|
+
caught by that ceiling and by you (`Esc x2`), not by the 3.5-minute idle check.
|
|
2119
|
+
|
|
2120
|
+
Results suggest the next wait: when the job reports an ETA or has been running for
|
|
2121
|
+
a while, the `[next]` line carries a `timeoutSeconds` worth using (for example
|
|
2122
|
+
`timeoutSeconds: 900 ... (ETA about 13m)`) so the agent prefers one long wait to
|
|
2123
|
+
many short ones. It is advice, never enforced. A request over 1200 seconds is
|
|
2124
|
+
clamped and says so (`[note] timeoutSeconds 3600 exceeds the 1200s ceiling`).
|
|
2125
|
+
|
|
2126
|
+
Cost note: a wait longer than your provider's prompt-cache lifetime (often five
|
|
2127
|
+
minutes) means the next request re-reads the context uncached. That is still far
|
|
2128
|
+
cheaper than the dozens of model turns short polling would have spent.
|
|
2129
|
+
|
|
2078
2130
|
Nothing else tells the model a job finished. When one ends while it is busy, a
|
|
2079
2131
|
`<job_notices>` block appears at the end of the next tool result:
|
|
2080
2132
|
|
|
@@ -2114,7 +2166,7 @@ to use it — `grep` and `read_file` already exist.
|
|
|
2114
2166
|
| Key | Default | Meaning |
|
|
2115
2167
|
|---|---|---|
|
|
2116
2168
|
| `jobs.enabled` | `true` | Register `job_wait`/`job_list`, splice the prompt block. `false` restores the pre-feature build byte for byte. |
|
|
2117
|
-
| `jobs.waitSeconds` | `30` | Default bound for one wait, 5–
|
|
2169
|
+
| `jobs.waitSeconds` | `30` | Default bound for one wait, 5–1200. No longer lowered by `toolTimeoutMs`. |
|
|
2118
2170
|
| `jobs.stallSeconds` | `300` | Silence before `[stalled]`, 30–3600. |
|
|
2119
2171
|
| `jobs.persistLog` | `true` | Mirror each job's output to disk. `false` creates no directory at all. |
|
|
2120
2172
|
| `jobs.noticeSteer` | `true` | Whether a completion notice may interrupt a running turn. `false` keeps the notice for the next tool result or the next user turn — it is **not** a notification off switch. |
|
|
@@ -3686,11 +3738,27 @@ merge. Raise both `--tool-timeout` / `--idle-timeout` for genuinely long jobs.
|
|
|
3686
3738
|
## Development
|
|
3687
3739
|
|
|
3688
3740
|
```bash
|
|
3689
|
-
npm run build -w packages/cli # tsc + shebang → dist/cli.js
|
|
3690
|
-
npm test -w packages/cli # vitest
|
|
3741
|
+
npm run build -w packages/cli # tsc + shebang → dist/cli.js (builds core and tui first via the root: npm run build)
|
|
3742
|
+
npm test -w packages/cli # vitest (rebuilds a stale core / tui first)
|
|
3691
3743
|
node packages/cli/dist/cli.js --version
|
|
3692
3744
|
```
|
|
3693
3745
|
|
|
3746
|
+
### Project structure
|
|
3747
|
+
|
|
3748
|
+
This package is the session container and the executable; the terminal runtime is
|
|
3749
|
+
[`@aragon-agent/tui`](../tui).
|
|
3750
|
+
|
|
3751
|
+
| Here (`packages/cli/src`) | In `@aragon-agent/tui` |
|
|
3752
|
+
| --- | --- |
|
|
3753
|
+
| `cli.tsx`, `launcher.ts`, `boot/` — the `aragon` binary and its boot guard | `ui/` — Ink components, layout, scrollback, selection, frame differ, overlays, theme |
|
|
3754
|
+
| `app/` — `App.tsx`, the startup notices hook and the session bridge: the one place that wires a live agent to the screen | `input/` — stdin filter, keyboard / mouse / paste protocols |
|
|
3755
|
+
| `agent/` (controller, headless), `commands/`, `config/` (load / store), `session/`, `skills/`, `team/`, `governance/engine`, `exec/`, `tools/`, `update/`, `logging/` | `model/` — the view model (`Entry`, `ViewState`, the reducer) and the pure helpers it draws on (`config/schema`, `todo/`, `team/` row models, `tools/patch`, `update/semver`, ...) |
|
|
3756
|
+
|
|
3757
|
+
Some directory names exist in both (`team/`, `todo/`, `config/`): the CLI side is the runtime,
|
|
3758
|
+
the TUI side (`model/<dir>`) is its representation on screen. A CLI module imports a TUI one
|
|
3759
|
+
as `@aragon-agent/tui/<subpath>` — no file extension, never a relative path. Rules and the
|
|
3760
|
+
checks that enforce them: `CLAUDE.md` ("Package layering") and `npm run verify:layering`.
|
|
3761
|
+
|
|
3694
3762
|
### Manual smoke checklist
|
|
3695
3763
|
|
|
3696
3764
|
- `npm run build -w packages/cli` produces an executable `dist/cli.js` with a
|
package/dist/agent/coalesce.d.ts
CHANGED
|
@@ -16,12 +16,16 @@
|
|
|
16
16
|
* concatenating, and a differing id starts a new pending action because merging
|
|
17
17
|
* across ids would paint one command's output onto another's card.
|
|
18
18
|
*
|
|
19
|
+
* A FOURTH ARRIVED WITH THE LONG WAIT (extended-job-wait RV-6): `waitUpdate`
|
|
20
|
+
* carries the WHOLE view, so it merges exactly like the tool tail - same
|
|
21
|
+
* `toolCallId` keeps the last, a different id or any other action flushes first.
|
|
22
|
+
*
|
|
19
23
|
* ONE PENDING SLOT, DISCRIMINATED, NEVER TWO (P1-5). A second, independent slot
|
|
20
24
|
* for the object-shaped payload would let a chunk overtake a token and reorder
|
|
21
25
|
* the two streams — exactly what I-L4-1 (`ui/render-governor.ts:14-19`) forbids:
|
|
22
26
|
* "the governor changes only HOW OFTEN the view updates. Never what is
|
|
23
27
|
* dispatched, never the order."
|
|
24
28
|
*/
|
|
25
|
-
import type { ViewAction } from '
|
|
29
|
+
import type { ViewAction } from '@aragon-agent/tui/model/agent/reducer';
|
|
26
30
|
/** Merge consecutive same-kind deltas; flush on kind change or a non-delta. */
|
|
27
31
|
export declare function mergeDeltas(actions: ViewAction[]): ViewAction[];
|
package/dist/agent/coalesce.js
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
* concatenating, and a differing id starts a new pending action because merging
|
|
17
17
|
* across ids would paint one command's output onto another's card.
|
|
18
18
|
*
|
|
19
|
+
* A FOURTH ARRIVED WITH THE LONG WAIT (extended-job-wait RV-6): `waitUpdate`
|
|
20
|
+
* carries the WHOLE view, so it merges exactly like the tool tail - same
|
|
21
|
+
* `toolCallId` keeps the last, a different id or any other action flushes first.
|
|
22
|
+
*
|
|
19
23
|
* ONE PENDING SLOT, DISCRIMINATED, NEVER TWO (P1-5). A second, independent slot
|
|
20
24
|
* for the object-shaped payload would let a chunk overtake a token and reorder
|
|
21
25
|
* the two streams — exactly what I-L4-1 (`ui/render-governor.ts:14-19`) forbids:
|
|
@@ -28,6 +32,9 @@ function isTextDelta(action) {
|
|
|
28
32
|
function isToolOutputDelta(action) {
|
|
29
33
|
return action.type === 'toolOutputDelta';
|
|
30
34
|
}
|
|
35
|
+
function isWaitUpdate(action) {
|
|
36
|
+
return action.type === 'waitUpdate';
|
|
37
|
+
}
|
|
31
38
|
/** Merge consecutive same-kind deltas; flush on kind change or a non-delta. */
|
|
32
39
|
export function mergeDeltas(actions) {
|
|
33
40
|
const out = [];
|
|
@@ -70,6 +77,12 @@ export function mergeDeltas(actions) {
|
|
|
70
77
|
// increment, so merging means replacing (D-30).
|
|
71
78
|
pending = { kind: 'tool', action };
|
|
72
79
|
}
|
|
80
|
+
else if (isWaitUpdate(action)) {
|
|
81
|
+
const merges = prev !== null && prev.kind === 'wait' && prev.action.toolCallId === action.toolCallId;
|
|
82
|
+
if (!merges)
|
|
83
|
+
flush();
|
|
84
|
+
pending = { kind: 'wait', action };
|
|
85
|
+
}
|
|
73
86
|
else {
|
|
74
87
|
flush();
|
|
75
88
|
out.push(action);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ModelSettingsSnapshot } from './model-profile-settings.js';
|
|
2
|
-
import { type ActiveKit } from '
|
|
3
|
-
import type { KitApplyResult } from '
|
|
2
|
+
import { type ActiveKit } from '@aragon-agent/tui/model/config/kit-resolution';
|
|
3
|
+
import type { KitApplyResult } from '@aragon-agent/tui/model/config/model-kits';
|
|
4
4
|
import type { ModelSettingsDraft, ModelSettingsPatch, ModelSettingsSaveResult } from '../config/model-profile-store.js';
|
|
5
5
|
import { type CompactionIdentity } from '../compaction/memory-identity.js';
|
|
6
6
|
/**
|
|
@@ -15,38 +15,39 @@ import { type CompactionIdentity } from '../compaction/memory-identity.js';
|
|
|
15
15
|
*/
|
|
16
16
|
import type { PromptOptions, PromptOutcome } from './prompt-options.js';
|
|
17
17
|
import { ModelRegistry, type AgentEvent, type AgentTool, type Message, type ModelInfo, type ModelRef, type ProviderRegistry, type ThinkingLevel } from '@aragon-agent/core';
|
|
18
|
-
import type { CliConfig, CompactionConfig, FastConfig, RetryConfig, TeamConfig, ThemeName, TodoConfig } from '
|
|
19
|
-
import type { ModelRole } from '
|
|
18
|
+
import type { CliConfig, CompactionConfig, FastConfig, RetryConfig, TeamConfig, ThemeName, TodoConfig } from '@aragon-agent/tui/model/config/schema';
|
|
19
|
+
import type { ModelRole } from '@aragon-agent/tui/model/config/model-profiles';
|
|
20
20
|
import { ModelWindows } from '../config/model-windows.js';
|
|
21
21
|
import { type ConfirmRequest } from '../tools/index.js';
|
|
22
22
|
import type { ToolGate } from '../tools/tool-gate.js';
|
|
23
23
|
import type { ToolHookRunner } from '../exec/hooks/tool-wrapper.js';
|
|
24
24
|
import type { ToolPermission } from '../exec/permission.js';
|
|
25
|
-
import { type ToolOutputListener } from '
|
|
26
|
-
import type { FilePatch } from '
|
|
27
|
-
import type { SubagentModelResolution } from '
|
|
25
|
+
import { type ToolOutputListener } from '@aragon-agent/tui/model/tools/tool-output-store';
|
|
26
|
+
import type { FilePatch } from '@aragon-agent/tui/model/tools/patch';
|
|
27
|
+
import type { SubagentModelResolution } from '@aragon-agent/tui/model/team/model';
|
|
28
28
|
import type { ForcedTeamState } from '../team/forced-mode.js';
|
|
29
|
-
import type { TeamEvent, TeamSnapshot } from '
|
|
29
|
+
import type { TeamEvent, TeamSnapshot } from '@aragon-agent/tui/model/team/types';
|
|
30
30
|
import { ProcSupervisor } from '../proc/supervisor.js';
|
|
31
|
-
import type {
|
|
31
|
+
import type { WaitEvent } from '@aragon-agent/tui/model/proc/wait-view';
|
|
32
|
+
import type { ProcEventListener, ServiceSnapshot } from '@aragon-agent/tui/model/proc/types';
|
|
32
33
|
import { type FastStatus } from '../fast/wiring.js';
|
|
33
|
-
import type { FastEventListener, FastSnapshot } from '
|
|
34
|
-
import type { TaskSummaryOutcome } from '
|
|
35
|
-
import { ContextMeter, type ContextUsageListener } from '
|
|
36
|
-
import type { CompactionEventListener, CompactionSnapshot, ContextUsageSnapshot } from '
|
|
37
|
-
import type { AcceptanceItem, TodoEventListener, TodoSnapshot } from '
|
|
34
|
+
import type { FastEventListener, FastSnapshot } from '@aragon-agent/tui/model/fast/types';
|
|
35
|
+
import type { TaskSummaryOutcome } from '@aragon-agent/tui/model/fast/task-summary-types';
|
|
36
|
+
import { ContextMeter, type ContextUsageListener } from '@aragon-agent/tui/model/compaction/meter';
|
|
37
|
+
import type { CompactionEventListener, CompactionSnapshot, ContextUsageSnapshot } from '@aragon-agent/tui/model/compaction/types';
|
|
38
|
+
import type { AcceptanceItem, TodoEventListener, TodoSnapshot } from '@aragon-agent/tui/model/todo/types';
|
|
38
39
|
import { GovernanceWiring } from './governance-wiring.js';
|
|
39
|
-
import { type GovernanceConfig } from '
|
|
40
|
-
import { type Posture } from '
|
|
40
|
+
import { type GovernanceConfig } from '@aragon-agent/tui/model/config/governance-config';
|
|
41
|
+
import { type Posture } from '@aragon-agent/tui/model/governance/posture';
|
|
41
42
|
import type { GovernanceAvailability } from '../governance/copy.js';
|
|
42
43
|
import type { PauseOutcome } from '../governance/engine/pause.js';
|
|
43
|
-
import type { GovernanceEventListener, GovernanceSnapshot } from '
|
|
44
|
-
import { type HumanInputGate } from '
|
|
44
|
+
import type { GovernanceEventListener, GovernanceSnapshot } from '@aragon-agent/tui/model/governance/types';
|
|
45
|
+
import { type HumanInputGate } from '@aragon-agent/tui/model/tools/human-input';
|
|
45
46
|
import { SkillService, type ApprovalGate } from '../skills/service.js';
|
|
46
47
|
import type { SkillRoutingReport } from '../skills/triage.js';
|
|
47
48
|
import { type ConversationResetOptions, type ConversationResetResult } from './conversation-reset.js';
|
|
48
|
-
import type { AgentMode } from '
|
|
49
|
-
import type { NoticeLevel } from '
|
|
49
|
+
import type { AgentMode } from '@aragon-agent/tui/model/agent/agent-mode';
|
|
50
|
+
import type { NoticeLevel } from '@aragon-agent/tui/model/agent/reducer';
|
|
50
51
|
/** Approval gate used whenever there is provably no human to ask (headless). */
|
|
51
52
|
export declare const DENY_ALL_APPROVAL: ApprovalGate;
|
|
52
53
|
export interface ControllerDeps {
|
|
@@ -350,6 +351,10 @@ export declare class AgentController {
|
|
|
350
351
|
*/
|
|
351
352
|
private readonly toolOutputs;
|
|
352
353
|
private readonly outputListeners;
|
|
354
|
+
/** `job_wait` live-view listeners (extended-job-wait); see `subscribeWait`. */
|
|
355
|
+
private readonly waitListeners;
|
|
356
|
+
/** "The user just spoke": ends a running `job_wait` early. */
|
|
357
|
+
private readonly userAttention;
|
|
353
358
|
private readonly fast;
|
|
354
359
|
private readonly compaction;
|
|
355
360
|
private settingsRevision;
|
|
@@ -768,6 +773,12 @@ export declare class AgentController {
|
|
|
768
773
|
* rather than a counter, so a nested call's `finally` re-arms the watchdog
|
|
769
774
|
* while the outer wait is still going. That is why a child's `--confirm`
|
|
770
775
|
* dialog does NOT route through this (see the constructor's `humanQueue`).
|
|
776
|
+
*
|
|
777
|
+
* `job_wait` ALSO DEPENDS ON THAT (extended-job-wait I-3): it holds the pause for
|
|
778
|
+
* up to 20 minutes and is safe only because the engine runs a batch's tools
|
|
779
|
+
* one at a time. If tool execution ever becomes parallel, make this a COUNTER
|
|
780
|
+
* first - otherwise the first tool to finish re-arms the watchdog under a
|
|
781
|
+
* still-waiting sibling, which then kills the run at the idle timeout.
|
|
771
782
|
*/
|
|
772
783
|
withPausedWatchdog<T>(fn: () => Promise<T>): Promise<T>;
|
|
773
784
|
/** @see withPausedWatchdog — the name the plan tools and `--confirm` use. */
|
|
@@ -1026,6 +1037,16 @@ export declare class AgentController {
|
|
|
1026
1037
|
* `warn` because a listener that throws once throws on every chunk.
|
|
1027
1038
|
*/
|
|
1028
1039
|
private emitToolOutput;
|
|
1040
|
+
/**
|
|
1041
|
+
* Subscribe to `job_wait`'s live view (`begin` / 1 Hz `update` / `end`).
|
|
1042
|
+
*
|
|
1043
|
+
* NOT GATED ON `liveToolOutput` (extended-job-wait D-9): that switch bounds a
|
|
1044
|
+
* high-frequency byte stream; this channel is capped at 1 Hz, and switching it
|
|
1045
|
+
* off would bring back the 20-minute black box.
|
|
1046
|
+
*/
|
|
1047
|
+
subscribeWait(listener: (event: WaitEvent) => void): () => void;
|
|
1048
|
+
/** Fan out one wait event; a throwing listener is logged and skipped (I-6). */
|
|
1049
|
+
private emitWait;
|
|
1029
1050
|
/**
|
|
1030
1051
|
* Subscribe to the CLI-local live tool-output stream (§3.1.3).
|
|
1031
1052
|
*
|
package/dist/agent/controller.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { createModelSettingsDraft, previewModelSettings, saveModelSettings, reloadModelSettings, } from './model-profile-settings.js';
|
|
2
2
|
import { applySessionKit as applySessionKitPort, clearSessionKit as clearSessionKitPort } from './kit-apply.js';
|
|
3
|
-
import { resolveActiveKit } from '
|
|
3
|
+
import { resolveActiveKit } from '@aragon-agent/tui/model/config/kit-resolution';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { verifyCompactionIdentity } from '../compaction/memory-identity.js';
|
|
7
|
-
import { COMPACTION_LIMITS } from '
|
|
7
|
+
import { COMPACTION_LIMITS } from '@aragon-agent/tui/model/compaction/limits';
|
|
8
8
|
import { Agent, initProviders, ModelRegistry, } from '@aragon-agent/core';
|
|
9
|
-
import { clampCompactionConfig, clampFastConfig, clampRetryConfig, clampTeamConfig, clampTodoConfig, isAdapterProvider, toRetryPolicy, } from '
|
|
10
|
-
import { resolveModelProfileState } from '
|
|
9
|
+
import { clampCompactionConfig, clampFastConfig, clampRetryConfig, clampTeamConfig, clampTodoConfig, isAdapterProvider, toRetryPolicy, } from '@aragon-agent/tui/model/config/schema';
|
|
10
|
+
import { resolveModelProfileState } from '@aragon-agent/tui/model/config/model-profile-resolution';
|
|
11
11
|
import { makeGetApiKey } from '../config/load.js';
|
|
12
12
|
import { updatePersistedConfig } from '../config/store.js';
|
|
13
13
|
import { ModelWindows } from '../config/model-windows.js';
|
|
14
14
|
import { createBuiltinTools, gatedToolTimeouts, } from '../tools/index.js';
|
|
15
15
|
import { createFileChangeStore } from '../tools/file-change-store.js';
|
|
16
|
-
import { createToolOutputStore, } from '
|
|
16
|
+
import { createToolOutputStore, } from '@aragon-agent/tui/model/tools/tool-output-store';
|
|
17
17
|
import { TeamRuntime } from '../team/runtime.js';
|
|
18
18
|
import { createChildReviewer } from '../team/child-reviewer.js';
|
|
19
19
|
import { TeamHumanQueue } from '../team/human-queue.js';
|
|
20
20
|
import { createFastOverseerProvider } from '../team/overseer.js';
|
|
21
21
|
import { createTaskTool } from '../team/task-tool.js';
|
|
22
|
-
import { resolveSubagentModel } from '
|
|
22
|
+
import { resolveSubagentModel } from '@aragon-agent/tui/model/team/model';
|
|
23
23
|
import { buildTeamBlock } from '../team/prompt.js';
|
|
24
24
|
// THE THIRD LAYER's prompt half (team-command-forced-dispatch §3.6): spliced
|
|
25
25
|
// after `<team_mode>` and before the subagent block, only while armed.
|
|
@@ -27,7 +27,8 @@ import { buildForcedTeamBlock } from '../team/forced-prompt.js';
|
|
|
27
27
|
import { buildFastBlock } from '../fast/prompt.js';
|
|
28
28
|
import { ProcSupervisor } from '../proc/supervisor.js';
|
|
29
29
|
import { buildBackgroundJobsBlock, buildBackgroundServicesBlock } from '../proc/prompt.js';
|
|
30
|
-
import { PROC_LIMITS } from '
|
|
30
|
+
import { JOB_WAIT_TOOL_CEILING_MS, PROC_LIMITS } from '@aragon-agent/tui/model/proc/limits';
|
|
31
|
+
import { createUserAttention } from './user-attention.js';
|
|
31
32
|
import { JobLogMirror } from '../proc/log-mirror.js';
|
|
32
33
|
import { JobNoticeQueue } from '../proc/notices.js';
|
|
33
34
|
import { makeBashKill, makeBashOutput } from '../tools/proc-tools.js';
|
|
@@ -35,7 +36,7 @@ import { makeJobList, makeJobWait } from '../tools/job-tools.js';
|
|
|
35
36
|
import { JobNoticeRelay } from './job-notices.js';
|
|
36
37
|
import { getHomeRoot } from '../config/app-paths.js';
|
|
37
38
|
import { addSignalHook } from '../logging/install.js';
|
|
38
|
-
import { describeFastTierProblem, fastProviderOf, resolveFastTier } from '
|
|
39
|
+
import { describeFastTierProblem, fastProviderOf, resolveFastTier } from '@aragon-agent/tui/model/fast/resolve';
|
|
39
40
|
import { FastWiring, offFastStatus } from '../fast/wiring.js';
|
|
40
41
|
// ONE-SHOT FAST CALLS (tui-shortcut-drawer-and-task-summary §6.1). The TYPES come
|
|
41
42
|
// from `fast/task-summary-types.ts` and only `fast/` produces them, so this module
|
|
@@ -43,18 +44,18 @@ import { FastWiring, offFastStatus } from '../fast/wiring.js';
|
|
|
43
44
|
// is the pair `runTaskSummaryCall` is forbidden to own (see its header).
|
|
44
45
|
import { createTaskSummaryDeps, runTaskSummaryCall } from '../fast/summary-call.js';
|
|
45
46
|
import { CompactionWiring, offCompactionSnapshot } from '../compaction/wiring.js';
|
|
46
|
-
import { ContextMeter } from '
|
|
47
|
+
import { ContextMeter } from '@aragon-agent/tui/model/compaction/meter';
|
|
47
48
|
import { TodoStore } from '../todo/store.js';
|
|
48
49
|
import { createTodoTool } from '../todo/todo-tool.js';
|
|
49
50
|
import { buildTodoBlock } from '../todo/prompt.js';
|
|
50
51
|
import { createPlanTools } from '../tools/plan-tools.js';
|
|
51
52
|
import { GovernanceWiring } from './governance-wiring.js';
|
|
52
|
-
import { clampGovernanceConfig } from '
|
|
53
|
+
import { clampGovernanceConfig } from '@aragon-agent/tui/model/config/governance-config';
|
|
53
54
|
import { decidePostureTransition } from '../governance/posture-transition.js';
|
|
54
|
-
import { composePosture, splitPosture } from '
|
|
55
|
+
import { composePosture, splitPosture } from '@aragon-agent/tui/model/governance/posture';
|
|
55
56
|
import { APPROVED_GOVERN_RESULT } from '../governance/prompts/refusals.js';
|
|
56
|
-
import { GOV_LEAD_TOOL_NAMES } from '
|
|
57
|
-
import { ASK_GUARD_LIMITS, DENY_ALL_HUMAN_INPUT, questionFingerprint, } from '
|
|
57
|
+
import { GOV_LEAD_TOOL_NAMES } from '@aragon-agent/tui/model/governance/limits';
|
|
58
|
+
import { ASK_GUARD_LIMITS, DENY_ALL_HUMAN_INPUT, questionFingerprint, } from '@aragon-agent/tui/model/tools/human-input';
|
|
58
59
|
import { getLogger } from '../logging/logger.js';
|
|
59
60
|
import { createNodeSkillHost } from '../skills/node-host.js';
|
|
60
61
|
import { SkillService } from '../skills/service.js';
|
|
@@ -261,6 +262,10 @@ export class AgentController {
|
|
|
261
262
|
*/
|
|
262
263
|
toolOutputs;
|
|
263
264
|
outputListeners = new Set();
|
|
265
|
+
/** `job_wait` live-view listeners (extended-job-wait); see `subscribeWait`. */
|
|
266
|
+
waitListeners = new Set();
|
|
267
|
+
/** "The user just spoke": ends a running `job_wait` early. */
|
|
268
|
+
userAttention = createUserAttention();
|
|
264
269
|
// -----------------------------------------------------------------------
|
|
265
270
|
// Fast model tier (fast-model-tier §3.1 / §3.3)
|
|
266
271
|
//
|
|
@@ -735,15 +740,19 @@ export class AgentController {
|
|
|
735
740
|
supervisor: this.procs,
|
|
736
741
|
waitSeconds: () => this.config.jobs.waitSeconds,
|
|
737
742
|
stallSeconds: () => this.config.jobs.stallSeconds,
|
|
738
|
-
toolTimeoutMs: () => this.config.toolTimeoutMs,
|
|
739
743
|
maxConsecutiveWaits: PROC_LIMITS.maxConsecutiveWaits,
|
|
740
744
|
terminalRecord: (id) => this.jobRelay?.terminalRecord(id),
|
|
745
|
+
// THE THREE LONG-WAIT PORTS (extended-job-wait). `holdWatchdog` wraps the
|
|
746
|
+
// WHOLE wait because tools run one at a time (I-3); `attention` is
|
|
747
|
+
// subscribe-only (RV-1); the view listener never throws back (I-6).
|
|
748
|
+
onWait: (event) => this.emitWait(event),
|
|
749
|
+
holdWatchdog: (fn) => this.withPausedWatchdog(fn),
|
|
750
|
+
attention: { subscribe: (listener) => this.userAttention.subscribe(listener) },
|
|
741
751
|
}),
|
|
742
752
|
makeJobList({
|
|
743
753
|
supervisor: this.procs,
|
|
744
754
|
waitSeconds: () => this.config.jobs.waitSeconds,
|
|
745
755
|
stallSeconds: () => this.config.jobs.stallSeconds,
|
|
746
|
-
toolTimeoutMs: () => this.config.toolTimeoutMs,
|
|
747
756
|
maxConsecutiveWaits: PROC_LIMITS.maxConsecutiveWaits,
|
|
748
757
|
terminalRecord: (id) => this.jobRelay?.terminalRecord(id),
|
|
749
758
|
}),
|
|
@@ -961,6 +970,13 @@ export class AgentController {
|
|
|
961
970
|
// outlived a mid-session `Settings > Team` switch to the supervisor
|
|
962
971
|
// and killed the dispatch the supervisor was meant to look after.
|
|
963
972
|
...(this.teamRegistered ? { task: 0 } : {}),
|
|
973
|
+
// THE EXECUTOR'S OWN CLOCK FOR A LONG WAIT (extended-job-wait I-2 / I-4').
|
|
974
|
+
// Without it `job_wait` falls onto `toolTimeoutMs` (180 s) and a 20-minute
|
|
975
|
+
// wait dies at three; with `0` the wait would have no independent backstop
|
|
976
|
+
// while the watchdog is paused. A finite value derived from the one
|
|
977
|
+
// authority, `PROC_LIMITS.waitMaxSeconds`, is both. `jobsRegistered` is
|
|
978
|
+
// assigned in the constructor before this table is built.
|
|
979
|
+
...(this.jobsRegistered ? { job_wait: JOB_WAIT_TOOL_CEILING_MS } : {}),
|
|
964
980
|
// P0 (governance-mode D-21 / RV-0): `gov_dispatch` runs a whole governed stage,
|
|
965
981
|
// routinely longer than `toolTimeoutMs`, and it listens to `ctx.signal` (it hands
|
|
966
982
|
// it to `TeamRuntime.dispatch`), which is what makes `0` safe. Registered in the SAME
|
|
@@ -1587,6 +1603,10 @@ export class AgentController {
|
|
|
1587
1603
|
this.pendingUserSteering.delete(id);
|
|
1588
1604
|
throw error;
|
|
1589
1605
|
}
|
|
1606
|
+
// AFTER a successful steer, and ONLY for user input (I-7): a reviewer or a job
|
|
1607
|
+
// notice must not cut short the wait the user chose.
|
|
1608
|
+
if (user)
|
|
1609
|
+
this.userAttention.notify();
|
|
1590
1610
|
return id;
|
|
1591
1611
|
}
|
|
1592
1612
|
followUp(text) {
|
|
@@ -1948,6 +1968,12 @@ export class AgentController {
|
|
|
1948
1968
|
* rather than a counter, so a nested call's `finally` re-arms the watchdog
|
|
1949
1969
|
* while the outer wait is still going. That is why a child's `--confirm`
|
|
1950
1970
|
* dialog does NOT route through this (see the constructor's `humanQueue`).
|
|
1971
|
+
*
|
|
1972
|
+
* `job_wait` ALSO DEPENDS ON THAT (extended-job-wait I-3): it holds the pause for
|
|
1973
|
+
* up to 20 minutes and is safe only because the engine runs a batch's tools
|
|
1974
|
+
* one at a time. If tool execution ever becomes parallel, make this a COUNTER
|
|
1975
|
+
* first - otherwise the first tool to finish re-arms the watchdog under a
|
|
1976
|
+
* still-waiting sibling, which then kills the run at the idle timeout.
|
|
1951
1977
|
*/
|
|
1952
1978
|
async withPausedWatchdog(fn) {
|
|
1953
1979
|
this.agent.pauseIdleWatchdog();
|
|
@@ -2501,6 +2527,33 @@ export class AgentController {
|
|
|
2501
2527
|
}
|
|
2502
2528
|
}
|
|
2503
2529
|
}
|
|
2530
|
+
/**
|
|
2531
|
+
* Subscribe to `job_wait`'s live view (`begin` / 1 Hz `update` / `end`).
|
|
2532
|
+
*
|
|
2533
|
+
* NOT GATED ON `liveToolOutput` (extended-job-wait D-9): that switch bounds a
|
|
2534
|
+
* high-frequency byte stream; this channel is capped at 1 Hz, and switching it
|
|
2535
|
+
* off would bring back the 20-minute black box.
|
|
2536
|
+
*/
|
|
2537
|
+
subscribeWait(listener) {
|
|
2538
|
+
this.waitListeners.add(listener);
|
|
2539
|
+
return () => {
|
|
2540
|
+
this.waitListeners.delete(listener);
|
|
2541
|
+
};
|
|
2542
|
+
}
|
|
2543
|
+
/** Fan out one wait event; a throwing listener is logged and skipped (I-6). */
|
|
2544
|
+
emitWait(event) {
|
|
2545
|
+
for (const listener of this.waitListeners) {
|
|
2546
|
+
try {
|
|
2547
|
+
listener(event);
|
|
2548
|
+
}
|
|
2549
|
+
catch (err) {
|
|
2550
|
+
getLogger().debug('tool', 'wait_listener_threw', {
|
|
2551
|
+
toolCallId: event.toolCallId,
|
|
2552
|
+
error: err instanceof Error ? err.message : String(err),
|
|
2553
|
+
});
|
|
2554
|
+
}
|
|
2555
|
+
}
|
|
2556
|
+
}
|
|
2504
2557
|
/**
|
|
2505
2558
|
* Subscribe to the CLI-local live tool-output stream (§3.1.3).
|
|
2506
2559
|
*
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* more than the existing `abort()` would be the exact kind of misleading name
|
|
23
23
|
* this feature exists to remove.
|
|
24
24
|
*/
|
|
25
|
-
import type { Entry } from '
|
|
25
|
+
import type { Entry } from '@aragon-agent/tui/model/agent/reducer';
|
|
26
26
|
/** The minimal host surface a reset needs. Supplied by `AgentController` alone. */
|
|
27
27
|
export interface ConversationResetPort {
|
|
28
28
|
/** Whether a run is in flight right now. */
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
* `doctor` and the key cycle ask.
|
|
22
22
|
*/
|
|
23
23
|
import type { AgentTool, ModelCost } from '@aragon-agent/core';
|
|
24
|
-
import type { CliConfig } from '
|
|
24
|
+
import type { CliConfig } from '@aragon-agent/tui/model/config/schema';
|
|
25
25
|
import { type GovernanceAvailability } from '../governance/copy.js';
|
|
26
26
|
import type { TeamRuntimeLike } from '../governance/engine/engine-core.js';
|
|
27
27
|
import type { PauseOutcome } from '../governance/engine/pause.js';
|
|
28
|
-
import { type Posture } from '
|
|
28
|
+
import { type Posture } from '@aragon-agent/tui/model/governance/posture';
|
|
29
29
|
import { type RunReportResult } from '../governance/report-reader.js';
|
|
30
30
|
import { type IndexEntry } from '../governance/store/run-store.js';
|
|
31
|
-
import type { GovernanceEventListener, GovernanceSnapshot, LedgerState, RunState } from '
|
|
32
|
-
import type { SubagentSpec } from '
|
|
33
|
-
import type { HumanInputGate, NormalizedPlan, NormalizedQuestion } from '
|
|
34
|
-
import type { AgentMode } from '
|
|
31
|
+
import type { GovernanceEventListener, GovernanceSnapshot, LedgerState, RunState } from '@aragon-agent/tui/model/governance/types';
|
|
32
|
+
import type { SubagentSpec } from '@aragon-agent/tui/model/team/types';
|
|
33
|
+
import type { HumanInputGate, NormalizedPlan, NormalizedQuestion } from '@aragon-agent/tui/model/tools/human-input';
|
|
34
|
+
import type { AgentMode } from '@aragon-agent/tui/model/agent/agent-mode';
|
|
35
35
|
export interface WiringDeps {
|
|
36
36
|
/** `config.team.enabled` at construction: whether `task` (and a TeamRuntime) exist. */
|
|
37
37
|
teamRegistered: boolean;
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
* `doctor` and the key cycle ask.
|
|
22
22
|
*/
|
|
23
23
|
import { join } from 'node:path';
|
|
24
|
-
import { clampGovernanceConfig, isGovernanceEnvDisabled, } from '
|
|
24
|
+
import { clampGovernanceConfig, isGovernanceEnvDisabled, } from '@aragon-agent/tui/model/config/governance-config';
|
|
25
25
|
import { getGovernanceDir } from '../config/app-paths.js';
|
|
26
26
|
import { RESTART_REQUIRED_TEXT, unavailableReasonText, } from '../governance/copy.js';
|
|
27
27
|
import { createGovernanceEngine } from '../governance/engine/engine.js';
|
|
28
28
|
import { estimateForRun } from '../governance/engine/estimate.js';
|
|
29
29
|
import { formatDispatchEstimate } from '../governance/copy.js';
|
|
30
|
-
import { GOV_CHILD_TOOL_NAMES, GOV_LEAD_TOOL_NAMES, GOV_LIMITS } from '
|
|
31
|
-
import { composePosture, isGovernancePosture, POSTURES_CLASSIC, POSTURES_FULL, } from '
|
|
30
|
+
import { GOV_CHILD_TOOL_NAMES, GOV_LEAD_TOOL_NAMES, GOV_LIMITS } from '@aragon-agent/tui/model/governance/limits';
|
|
31
|
+
import { composePosture, isGovernancePosture, POSTURES_CLASSIC, POSTURES_FULL, } from '@aragon-agent/tui/model/governance/posture';
|
|
32
32
|
import { buildPlanGovernAddendum } from '../governance/prompts/plan-addendum.js';
|
|
33
33
|
import { buildOrchestratorBlock } from '../governance/prompts/orchestrator-block.js';
|
|
34
34
|
import { PLAN_INTERVIEW_TOPICS, govAskRoundsRefusal } from '../governance/prompts/refusals.js';
|
|
@@ -39,7 +39,7 @@ import { RunStore } from '../governance/store/run-store.js';
|
|
|
39
39
|
import { buildChildTools } from '../governance/tools/child-tools.js';
|
|
40
40
|
import { applyInspectorToolPolicy, withGovernanceReadGuard } from '../governance/tools/guard.js';
|
|
41
41
|
import { makeGovDispatchTool, makeGovRunTool } from '../governance/tools/lead-tools.js';
|
|
42
|
-
import { TEAM_LIMITS } from '
|
|
42
|
+
import { TEAM_LIMITS } from '@aragon-agent/tui/model/team/limits';
|
|
43
43
|
/** Keyword probes that map an answered question onto the fixed interview topics. */
|
|
44
44
|
const TOPIC_PROBES = [
|
|
45
45
|
/goal|success|outcome|objective|criteria/i,
|
package/dist/agent/headless.d.ts
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
import type { PromptOutcome } from './prompt-options.js';
|
|
8
8
|
import type { AgentEvent, ModelInfo } from '@aragon-agent/core';
|
|
9
9
|
import type { PreflightResult } from './controller.js';
|
|
10
|
-
import type { TeamEvent } from '
|
|
11
|
-
import type { TodoEvent, TodoSnapshot } from '
|
|
12
|
-
import type { FastEvent } from '
|
|
13
|
-
import type { CompactionEvent } from '
|
|
14
|
-
import { type FollowThroughMode } from '
|
|
10
|
+
import type { TeamEvent } from '@aragon-agent/tui/model/team/types';
|
|
11
|
+
import type { TodoEvent, TodoSnapshot } from '@aragon-agent/tui/model/todo/types';
|
|
12
|
+
import type { FastEvent } from '@aragon-agent/tui/model/fast/types';
|
|
13
|
+
import type { CompactionEvent } from '@aragon-agent/tui/model/compaction/types';
|
|
14
|
+
import { type FollowThroughMode } from '@aragon-agent/tui/model/todo/follow-through';
|
|
15
15
|
/** The minimal controller surface headless mode needs (real or stubbed). */
|
|
16
16
|
export interface HeadlessController {
|
|
17
17
|
preflight(): PreflightResult;
|
package/dist/agent/headless.js
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* derived from the event stream (R2), not from the resolved promise:
|
|
5
5
|
* 0 = success, 1 = agent error (incl. a silently-swallowed throw), 2 = config.
|
|
6
6
|
*/
|
|
7
|
-
import { formatCost, formatTokens, formatDuration, computeCost } from '
|
|
8
|
-
import { formatStreamError } from '
|
|
7
|
+
import { formatCost, formatTokens, formatDuration, computeCost } from '@aragon-agent/tui/model/agent/usage';
|
|
8
|
+
import { formatStreamError } from '@aragon-agent/tui/model/agent/reducer';
|
|
9
9
|
import { runDurationMs } from '../team/report.js';
|
|
10
|
-
import { derivePlanPhase } from '
|
|
11
|
-
import { advanceBudget, decideFollowThrough, emptyBudget, } from '
|
|
10
|
+
import { derivePlanPhase } from '@aragon-agent/tui/model/todo/acceptance';
|
|
11
|
+
import { advanceBudget, decideFollowThrough, emptyBudget, } from '@aragon-agent/tui/model/todo/follow-through';
|
|
12
12
|
/** Run a single prompt headlessly and resolve with the process exit code. */
|
|
13
13
|
export async function runHeadless(controller, prompt, options = {}) {
|
|
14
14
|
const out = options.stdout ?? process.stdout;
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* re-checks the same condition so a future call site cannot forget it (I-5).
|
|
29
29
|
*/
|
|
30
30
|
import { type JobNotice, type JobNoticeQueue } from '../proc/notices.js';
|
|
31
|
-
import { type JobKind, type ProcEvent, type ServiceStatus } from '
|
|
31
|
+
import { type JobKind, type ProcEvent, type ServiceStatus } from '@aragon-agent/tui/model/proc/types';
|
|
32
32
|
export interface JobNoticeRelayDeps {
|
|
33
33
|
queue: JobNoticeQueue;
|
|
34
34
|
/** `enqueueSteering(text, false)` - the existing receipt-less path (§4.6). */
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* re-checks the same condition so a future call site cannot forget it (I-5).
|
|
29
29
|
*/
|
|
30
30
|
import { renderJobNotices } from '../proc/notices.js';
|
|
31
|
-
import { isTerminalStatus } from '
|
|
31
|
+
import { isTerminalStatus } from '@aragon-agent/tui/model/proc/types';
|
|
32
32
|
export class JobNoticeRelay {
|
|
33
33
|
deps;
|
|
34
34
|
/**
|