@wrongstack/cli 0.295.0 → 0.296.2
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/data/providers.json +0 -24
- package/dist/acp-A5OSIU2P.js +824 -0
- package/dist/acp-A5OSIU2P.js.map +7 -0
- package/dist/acp-server-agent.d.ts.map +1 -1
- package/dist/arg-parser.d.ts.map +1 -1
- package/dist/audit-2ZSFGNIF.js +102 -0
- package/dist/audit-2ZSFGNIF.js.map +7 -0
- package/dist/auth-CJWQJVRH.js +504 -0
- package/dist/auth-CJWQJVRH.js.map +7 -0
- package/dist/auth-menu/auth-menu-audit.d.ts +1 -5
- package/dist/auth-menu/auth-menu-audit.d.ts.map +1 -1
- package/dist/auth-menu/local.d.ts +1 -1
- package/dist/auth-menu/local.d.ts.map +1 -1
- package/dist/auth-menu/shared.d.ts +1 -1
- package/dist/auth-menu/shared.d.ts.map +1 -1
- package/dist/bench-7ZDWSNEF.js +278 -0
- package/dist/bench-7ZDWSNEF.js.map +7 -0
- package/dist/boot/brain-decision-log.d.ts +7 -5
- package/dist/boot/brain-decision-log.d.ts.map +1 -1
- package/dist/boot/dispatch-webui.d.ts +4 -8
- package/dist/boot/dispatch-webui.d.ts.map +1 -1
- package/dist/boot/launch-menu.d.ts +1 -1
- package/dist/boot/launch-menu.d.ts.map +1 -1
- package/dist/boot/system-prompt-builder.d.ts +4 -1
- package/dist/boot/system-prompt-builder.d.ts.map +1 -1
- package/dist/boot/tui-coordinator-callbacks.d.ts +45 -0
- package/dist/boot/tui-coordinator-callbacks.d.ts.map +1 -0
- package/dist/boot/tui-coordinator-setup.d.ts +2 -2
- package/dist/boot/tui-coordinator-setup.d.ts.map +1 -1
- package/dist/boot/tui-project-picker-callback.d.ts +1 -1
- package/dist/boot/tui-project-picker-callback.d.ts.map +1 -1
- package/dist/boot/tui-project-switch.d.ts +3 -4
- package/dist/boot/tui-project-switch.d.ts.map +1 -1
- package/dist/boot/tui-runtime-state.d.ts +5 -6
- package/dist/boot/tui-runtime-state.d.ts.map +1 -1
- package/dist/boot/tui-session-resume.d.ts.map +1 -1
- package/dist/boot/tui-settings-adapter.d.ts +2 -3
- package/dist/boot/tui-settings-adapter.d.ts.map +1 -1
- package/dist/boot-config.d.ts +2 -2
- package/dist/boot-config.d.ts.map +1 -1
- package/dist/boot.d.ts +1 -1
- package/dist/boot.d.ts.map +1 -1
- package/dist/brain-menu/panel-service.d.ts.map +1 -1
- package/dist/chimera-review-task.d.ts +6 -0
- package/dist/chimera-review-task.d.ts.map +1 -0
- package/dist/chimera-reviewer-policy.d.ts +34 -0
- package/dist/chimera-reviewer-policy.d.ts.map +1 -0
- package/dist/chronicle-QQEQFSSE.js +256 -0
- package/dist/chronicle-QQEQFSSE.js.map +7 -0
- package/dist/chunk-5N34EWJR.js +418 -0
- package/dist/chunk-5N34EWJR.js.map +7 -0
- package/dist/chunk-66T43Q4Y.js +90 -0
- package/dist/chunk-66T43Q4Y.js.map +7 -0
- package/dist/chunk-7OCVIDC7.js +11 -0
- package/dist/chunk-7OCVIDC7.js.map +7 -0
- package/dist/chunk-ABXK4VVY.js +84 -0
- package/dist/chunk-ABXK4VVY.js.map +7 -0
- package/dist/chunk-AXVZMEWG.js +306 -0
- package/dist/chunk-AXVZMEWG.js.map +7 -0
- package/dist/chunk-AZESNNIC.js +216 -0
- package/dist/chunk-AZESNNIC.js.map +7 -0
- package/dist/chunk-BGFM3PD7.js +41 -0
- package/dist/chunk-BGFM3PD7.js.map +7 -0
- package/dist/chunk-DPJZQCVP.js +13 -0
- package/dist/chunk-DPJZQCVP.js.map +7 -0
- package/dist/chunk-F4PEGAJZ.js +176 -0
- package/dist/chunk-F4PEGAJZ.js.map +7 -0
- package/dist/chunk-IHBYBYGA.js +443 -0
- package/dist/chunk-IHBYBYGA.js.map +7 -0
- package/dist/chunk-IN4GXGYW.js +425 -0
- package/dist/chunk-IN4GXGYW.js.map +7 -0
- package/dist/chunk-JBSQ7ONN.js +1023 -0
- package/dist/chunk-JBSQ7ONN.js.map +7 -0
- package/dist/chunk-JBTFWWKV.js +1325 -0
- package/dist/chunk-JBTFWWKV.js.map +7 -0
- package/dist/chunk-JUHRI6OV.js +100 -0
- package/dist/chunk-JUHRI6OV.js.map +7 -0
- package/dist/chunk-OP47B3IX.js +142 -0
- package/dist/chunk-OP47B3IX.js.map +7 -0
- package/dist/chunk-PJHET45A.js +158 -0
- package/dist/chunk-PJHET45A.js.map +7 -0
- package/dist/chunk-Q5GTM25S.js +17 -0
- package/dist/chunk-Q5GTM25S.js.map +7 -0
- package/dist/chunk-QD544J2B.js +19 -0
- package/dist/chunk-QD544J2B.js.map +7 -0
- package/dist/chunk-QUNHS6O3.js +258 -0
- package/dist/chunk-QUNHS6O3.js.map +7 -0
- package/dist/chunk-TADVX644.js +480 -0
- package/dist/chunk-TADVX644.js.map +7 -0
- package/dist/chunk-TGDHN4LM.js +81 -0
- package/dist/chunk-TGDHN4LM.js.map +7 -0
- package/dist/chunk-TYO2OVAD.js +50 -0
- package/dist/chunk-TYO2OVAD.js.map +7 -0
- package/dist/chunk-VCYZ3WZV.js +14 -0
- package/dist/chunk-VCYZ3WZV.js.map +7 -0
- package/dist/chunk-VJUEZZYB.js +29 -0
- package/dist/chunk-VJUEZZYB.js.map +7 -0
- package/dist/chunk-WHOIR577.js +1 -0
- package/dist/chunk-WHOIR577.js.map +7 -0
- package/dist/chunk-WY7KKOUK.js +460 -0
- package/dist/chunk-WY7KKOUK.js.map +7 -0
- package/dist/chunk-X5DQTPXT.js +3059 -0
- package/dist/chunk-X5DQTPXT.js.map +7 -0
- package/dist/chunk-XJXDOF63.js +28 -0
- package/dist/chunk-XJXDOF63.js.map +7 -0
- package/dist/chunk-XWEGWYDU.js +560 -0
- package/dist/chunk-XWEGWYDU.js.map +7 -0
- package/dist/chunk-YWUPHRGB.js +346 -0
- package/dist/chunk-YWUPHRGB.js.map +7 -0
- package/dist/chunk-Z7YGASQP.js +313 -0
- package/dist/chunk-Z7YGASQP.js.map +7 -0
- package/dist/cli-entry-main.d.ts +2 -0
- package/dist/cli-entry-main.d.ts.map +1 -0
- package/dist/cli-entry-point.d.ts +3 -3
- package/dist/cli-entry-point.d.ts.map +1 -1
- package/dist/cli-eternal-flag.d.ts +2 -2
- package/dist/cli-eternal-flag.d.ts.map +1 -1
- package/dist/cli-main-6AU6E4XZ.js +29126 -0
- package/dist/cli-main-6AU6E4XZ.js.map +7 -0
- package/dist/cli-main-helpers.d.ts +21 -0
- package/dist/cli-main-helpers.d.ts.map +1 -0
- package/dist/cli-main.d.ts +25 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/context-limit.d.ts +48 -0
- package/dist/context-limit.d.ts.map +1 -1
- package/dist/diag-doctor-OQ3AA63O.js +170 -0
- package/dist/diag-doctor-OQ3AA63O.js.map +7 -0
- package/dist/execute-deps.d.ts +10 -12
- package/dist/execute-deps.d.ts.map +1 -1
- package/dist/execution-V26SE52F.js +4656 -0
- package/dist/execution-V26SE52F.js.map +7 -0
- package/dist/execution-chimera-ask.d.ts +10 -0
- package/dist/execution-chimera-ask.d.ts.map +1 -0
- package/dist/execution-chimera-cascade.d.ts +15 -0
- package/dist/execution-chimera-cascade.d.ts.map +1 -0
- package/dist/execution-cleanup.d.ts +23 -0
- package/dist/execution-cleanup.d.ts.map +1 -0
- package/dist/execution-kanban-dispatch.d.ts +10 -0
- package/dist/execution-kanban-dispatch.d.ts.map +1 -0
- package/dist/execution-repl-fleet-callbacks.d.ts +11 -0
- package/dist/execution-repl-fleet-callbacks.d.ts.map +1 -0
- package/dist/execution-storage-observability.d.ts +3 -0
- package/dist/execution-storage-observability.d.ts.map +1 -0
- package/dist/execution-tui-next-step-callbacks.d.ts +20 -0
- package/dist/execution-tui-next-step-callbacks.d.ts.map +1 -0
- package/dist/execution.d.ts +2 -139
- package/dist/execution.d.ts.map +1 -1
- package/dist/export-TPORYVRZ.js +64 -0
- package/dist/export-TPORYVRZ.js.map +7 -0
- package/dist/fleet/host-acp-runner-cache.d.ts +9 -0
- package/dist/fleet/host-acp-runner-cache.d.ts.map +1 -0
- package/dist/fleet/host-acp.d.ts +3 -0
- package/dist/fleet/host-acp.d.ts.map +1 -0
- package/dist/fleet/host-concurrency.d.ts +2 -0
- package/dist/fleet/host-concurrency.d.ts.map +1 -0
- package/dist/fleet/host-context.d.ts +5 -0
- package/dist/fleet/host-context.d.ts.map +1 -0
- package/dist/fleet/host-director-builder.d.ts +24 -0
- package/dist/fleet/host-director-builder.d.ts.map +1 -0
- package/dist/fleet/host-director-event-bridges.d.ts +37 -0
- package/dist/fleet/host-director-event-bridges.d.ts.map +1 -0
- package/dist/fleet/host-director-services.d.ts +20 -0
- package/dist/fleet/host-director-services.d.ts.map +1 -0
- package/dist/fleet/host-event-bridge.d.ts +17 -0
- package/dist/fleet/host-event-bridge.d.ts.map +1 -0
- package/dist/fleet/host-helpers.d.ts +22 -0
- package/dist/fleet/host-helpers.d.ts.map +1 -0
- package/dist/fleet/host-learning-tracker.d.ts +11 -0
- package/dist/fleet/host-learning-tracker.d.ts.map +1 -0
- package/dist/fleet/host-learning.d.ts +4 -0
- package/dist/fleet/host-learning.d.ts.map +1 -0
- package/dist/fleet/host-lifecycle-events.d.ts +4 -0
- package/dist/fleet/host-lifecycle-events.d.ts.map +1 -0
- package/dist/fleet/host-paths.d.ts +3 -0
- package/dist/fleet/host-paths.d.ts.map +1 -0
- package/dist/fleet/host-provider.d.ts +22 -0
- package/dist/fleet/host-provider.d.ts.map +1 -0
- package/dist/fleet/host-session-writer.d.ts +3 -0
- package/dist/fleet/host-session-writer.d.ts.map +1 -0
- package/dist/fleet/host-shadow-pass.d.ts +21 -0
- package/dist/fleet/host-shadow-pass.d.ts.map +1 -0
- package/dist/fleet/host-spawn-types.d.ts +25 -0
- package/dist/fleet/host-spawn-types.d.ts.map +1 -0
- package/dist/fleet/host-status.d.ts +48 -0
- package/dist/fleet/host-status.d.ts.map +1 -0
- package/dist/fleet/host-subagent-factory.d.ts +16 -0
- package/dist/fleet/host-subagent-factory.d.ts.map +1 -0
- package/dist/fleet/host-supervisor.d.ts +16 -0
- package/dist/fleet/host-supervisor.d.ts.map +1 -0
- package/dist/fleet/host-task-result-report.d.ts +11 -0
- package/dist/fleet/host-task-result-report.d.ts.map +1 -0
- package/dist/fleet/host-types.d.ts +89 -0
- package/dist/fleet/host-types.d.ts.map +1 -0
- package/dist/fleet/host.d.ts +10 -357
- package/dist/fleet/host.d.ts.map +1 -1
- package/dist/fleet/routing.d.ts +1 -1
- package/dist/fleet/routing.d.ts.map +1 -1
- package/dist/fleet/status-broadcast.d.ts.map +1 -1
- package/dist/goal-host.d.ts +2 -2
- package/dist/goal-host.d.ts.map +1 -1
- package/dist/hq-BECGICEZ.js +547 -0
- package/dist/hq-BECGICEZ.js.map +7 -0
- package/dist/hq-command-controller.d.ts +2 -2
- package/dist/hq-command-controller.d.ts.map +1 -1
- package/dist/hq-publisher.d.ts +2 -2
- package/dist/hq-publisher.d.ts.map +1 -1
- package/dist/hq-server/auth-state.d.ts +1 -1
- package/dist/hq-server/auth-state.d.ts.map +1 -1
- package/dist/hq-server/project-root.d.ts +5 -0
- package/dist/hq-server/project-root.d.ts.map +1 -0
- package/dist/hq-server/routes/auth-handlers.d.ts +32 -0
- package/dist/hq-server/routes/auth-handlers.d.ts.map +1 -0
- package/dist/hq-server/routes/session-handlers.d.ts +8 -0
- package/dist/hq-server/routes/session-handlers.d.ts.map +1 -0
- package/dist/hq-server/routes/system-handlers.d.ts +16 -0
- package/dist/hq-server/routes/system-handlers.d.ts.map +1 -0
- package/dist/hq-server/routes.d.ts +6 -6
- package/dist/hq-server/routes.d.ts.map +1 -1
- package/dist/hq-server/ws.d.ts +1 -1
- package/dist/hq-server/ws.d.ts.map +1 -1
- package/dist/hq-server-FJOVOERO.js +39 -0
- package/dist/hq-server-FJOVOERO.js.map +7 -0
- package/dist/hq-server.d.ts.map +1 -1
- package/dist/hq-ttl-U2FAYFAT.js +8 -0
- package/dist/hq-ttl-U2FAYFAT.js.map +7 -0
- package/dist/hq-tunnel-YZLRONPV.js +111 -0
- package/dist/hq-tunnel-YZLRONPV.js.map +7 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2507 -52632
- package/dist/index.js.map +4 -4
- package/dist/init-E2NDDOHI.js +27 -0
- package/dist/init-E2NDDOHI.js.map +7 -0
- package/dist/input-reader.d.ts +1 -1
- package/dist/input-reader.d.ts.map +1 -1
- package/dist/kanban-dispatch-route.d.ts +14 -0
- package/dist/kanban-dispatch-route.d.ts.map +1 -0
- package/dist/kanban-hq-sync.d.ts +2 -0
- package/dist/kanban-hq-sync.d.ts.map +1 -1
- package/dist/kanban-run-mirror-EKVNGXWW.js +12 -0
- package/dist/kanban-run-mirror-EKVNGXWW.js.map +7 -0
- package/dist/live-settings-input.d.ts +69 -0
- package/dist/live-settings-input.d.ts.map +1 -0
- package/dist/mailbox-serve-2UWHEN3M.js +302 -0
- package/dist/mailbox-serve-2UWHEN3M.js.map +7 -0
- package/dist/mcp-CYLPUEHC.js +413 -0
- package/dist/mcp-CYLPUEHC.js.map +7 -0
- package/dist/mcp-serve.d.ts +1 -1
- package/dist/mcp-serve.d.ts.map +1 -1
- package/dist/modeldiag-HENYJ4N7.js +1290 -0
- package/dist/modeldiag-HENYJ4N7.js.map +7 -0
- package/dist/next-task-predictor.d.ts +1 -1
- package/dist/next-task-predictor.d.ts.map +1 -1
- package/dist/permissions-FNYLZIL4.js +115 -0
- package/dist/permissions-FNYLZIL4.js.map +7 -0
- package/dist/picker-key-state.d.ts +7 -0
- package/dist/picker-key-state.d.ts.map +1 -0
- package/dist/picker-model-picker.d.ts +6 -0
- package/dist/picker-model-picker.d.ts.map +1 -0
- package/dist/picker-ui.d.ts +17 -0
- package/dist/picker-ui.d.ts.map +1 -0
- package/dist/picker.d.ts +4 -37
- package/dist/picker.d.ts.map +1 -1
- package/dist/plugin-management.d.ts +1 -1
- package/dist/plugin-management.d.ts.map +1 -1
- package/dist/plugin-usage-OU6X6LM3.js +40 -0
- package/dist/plugin-usage-OU6X6LM3.js.map +7 -0
- package/dist/plugins-4LJ5IUBI.js +24 -0
- package/dist/plugins-4LJ5IUBI.js.map +7 -0
- package/dist/pre-launch.d.ts +0 -1
- package/dist/pre-launch.d.ts.map +1 -1
- package/dist/project-BLQ3ALVL.js +76 -0
- package/dist/project-BLQ3ALVL.js.map +7 -0
- package/dist/project-manifest-GE25PW4S.js +18 -0
- package/dist/project-manifest-GE25PW4S.js.map +7 -0
- package/dist/project-picker-BOCWHBXP.js +17 -0
- package/dist/project-picker-BOCWHBXP.js.map +7 -0
- package/dist/projects-XE76NFNZ.js +38 -0
- package/dist/projects-XE76NFNZ.js.map +7 -0
- package/dist/provider-helpers.d.ts +22 -6
- package/dist/provider-helpers.d.ts.map +1 -1
- package/dist/providers-models-GDELBHZK.js +589 -0
- package/dist/providers-models-GDELBHZK.js.map +7 -0
- package/dist/quick-VIO2BEHS.js +10 -0
- package/dist/quick-VIO2BEHS.js.map +7 -0
- package/dist/repl-auto-proceed.d.ts +19 -0
- package/dist/repl-auto-proceed.d.ts.map +1 -0
- package/dist/repl-client-registration.d.ts +7 -0
- package/dist/repl-client-registration.d.ts.map +1 -0
- package/dist/repl-input.d.ts +11 -0
- package/dist/repl-input.d.ts.map +1 -0
- package/dist/repl-options.d.ts +54 -0
- package/dist/repl-options.d.ts.map +1 -0
- package/dist/repl-rendering.d.ts +4 -0
- package/dist/repl-rendering.d.ts.map +1 -0
- package/dist/repl-suggestions.d.ts +21 -0
- package/dist/repl-suggestions.d.ts.map +1 -0
- package/dist/repl.d.ts +3 -162
- package/dist/repl.d.ts.map +1 -1
- package/dist/replay-KCTXNMZQ.js +75 -0
- package/dist/replay-KCTXNMZQ.js.map +7 -0
- package/dist/rewind-EJMVFVLS.js +185 -0
- package/dist/rewind-EJMVFVLS.js.map +7 -0
- package/dist/sdd-runtime-IKPROVV2.js +54 -0
- package/dist/sdd-runtime-IKPROVV2.js.map +7 -0
- package/dist/services/dispatch-classifier.d.ts +1 -1
- package/dist/services/dispatch-classifier.d.ts.map +1 -1
- package/dist/services/project-facts.d.ts.map +1 -1
- package/dist/services/sdd/project-context.d.ts +1 -1
- package/dist/services/sdd/project-context.d.ts.map +1 -1
- package/dist/services/sdd/task-manager.d.ts +1 -1
- package/dist/services/sdd/task-manager.d.ts.map +1 -1
- package/dist/services/statusline-config.d.ts +1 -1
- package/dist/services/statusline-config.d.ts.map +1 -1
- package/dist/session-event-wiring.d.ts +5 -2
- package/dist/session-event-wiring.d.ts.map +1 -1
- package/dist/sessions-config-NLCMK3BY.js +409 -0
- package/dist/sessions-config-NLCMK3BY.js.map +7 -0
- package/dist/settings-menu.d.ts +4 -19
- package/dist/settings-menu.d.ts.map +1 -1
- package/dist/simpleui-dist-JIFGUJO7.js +93 -0
- package/dist/simpleui-dist-JIFGUJO7.js.map +7 -0
- package/dist/slash-commands/agent-improve.d.ts +6 -5
- package/dist/slash-commands/agent-improve.d.ts.map +1 -1
- package/dist/slash-commands/brain.d.ts.map +1 -1
- package/dist/slash-commands/btw.d.ts +1 -1
- package/dist/slash-commands/btw.d.ts.map +1 -1
- package/dist/slash-commands/clear.d.ts +1 -1
- package/dist/slash-commands/clear.d.ts.map +1 -1
- package/dist/slash-commands/fallback.d.ts.map +1 -1
- package/dist/slash-commands/goal-refiner.d.ts +2 -2
- package/dist/slash-commands/goal-refiner.d.ts.map +1 -1
- package/dist/slash-commands/interrupt.d.ts +1 -1
- package/dist/slash-commands/interrupt.d.ts.map +1 -1
- package/dist/slash-commands/kanban-agent-helpers.d.ts +18 -0
- package/dist/slash-commands/kanban-agent-helpers.d.ts.map +1 -0
- package/dist/slash-commands/kanban-format.d.ts +16 -0
- package/dist/slash-commands/kanban-format.d.ts.map +1 -0
- package/dist/slash-commands/kanban-help.d.ts +2 -0
- package/dist/slash-commands/kanban-help.d.ts.map +1 -0
- package/dist/slash-commands/kanban.d.ts +1 -1
- package/dist/slash-commands/kanban.d.ts.map +1 -1
- package/dist/slash-commands/mailbox-demo.d.ts.map +1 -1
- package/dist/slash-commands/mailbox.d.ts +3 -2
- package/dist/slash-commands/mailbox.d.ts.map +1 -1
- package/dist/slash-commands/memory-compact.d.ts +5 -0
- package/dist/slash-commands/memory-compact.d.ts.map +1 -0
- package/dist/slash-commands/memory-flags.d.ts +36 -0
- package/dist/slash-commands/memory-flags.d.ts.map +1 -0
- package/dist/slash-commands/memory-formatters.d.ts +16 -0
- package/dist/slash-commands/memory-formatters.d.ts.map +1 -0
- package/dist/slash-commands/memory.d.ts.map +1 -1
- package/dist/slash-commands/mouse.d.ts +2 -2
- package/dist/slash-commands/refiner.d.ts +1 -1
- package/dist/slash-commands/refiner.d.ts.map +1 -1
- package/dist/slash-commands/review.d.ts.map +1 -1
- package/dist/slash-commands/sdd-command-helpers.d.ts +23 -0
- package/dist/slash-commands/sdd-command-helpers.d.ts.map +1 -0
- package/dist/slash-commands/sdd-format.d.ts +32 -0
- package/dist/slash-commands/sdd-format.d.ts.map +1 -0
- package/dist/slash-commands/sdd.d.ts +1 -1
- package/dist/slash-commands/sdd.d.ts.map +1 -1
- package/dist/slash-commands/tool.d.ts +1 -1
- package/dist/slash-commands/tool.d.ts.map +1 -1
- package/dist/slash-commands/working-dir.d.ts +1 -1
- package/dist/slash-commands/working-dir.d.ts.map +1 -1
- package/dist/subcommands/handlers/chronicle.d.ts.map +1 -1
- package/dist/subcommands/handlers/mailbox-serve.d.ts.map +1 -1
- package/dist/subcommands/handlers/model-smoke-test.d.ts +51 -0
- package/dist/subcommands/handlers/model-smoke-test.d.ts.map +1 -0
- package/dist/subcommands/handlers/modeldiag-profiles.d.ts +64 -0
- package/dist/subcommands/handlers/modeldiag-profiles.d.ts.map +1 -0
- package/dist/subcommands/handlers/modeldiag.d.ts.map +1 -1
- package/dist/subcommands/handlers/per-subcommand-deep-help-table.d.ts +3 -0
- package/dist/subcommands/handlers/per-subcommand-deep-help-table.d.ts.map +1 -0
- package/dist/subcommands/handlers/per-subcommand-help-data.d.ts +3 -0
- package/dist/subcommands/handlers/per-subcommand-help-data.d.ts.map +1 -0
- package/dist/subcommands/handlers/per-subcommand-help-table.d.ts +36 -0
- package/dist/subcommands/handlers/per-subcommand-help-table.d.ts.map +1 -0
- package/dist/subcommands/handlers/per-subcommand-help-types.d.ts +18 -0
- package/dist/subcommands/handlers/per-subcommand-help-types.d.ts.map +1 -0
- package/dist/subcommands/handlers/per-subcommand-help.d.ts +2 -80
- package/dist/subcommands/handlers/per-subcommand-help.d.ts.map +1 -1
- package/dist/subcommands/handlers/rewind.d.ts.map +1 -1
- package/dist/subcommands/index.d.ts +7 -0
- package/dist/subcommands/index.d.ts.map +1 -1
- package/dist/tools-skills-UNKLOB7M.js +29 -0
- package/dist/tools-skills-UNKLOB7M.js.map +7 -0
- package/dist/update-YC4TYW2Y.js +16 -0
- package/dist/update-YC4TYW2Y.js.map +7 -0
- package/dist/update-check-UMYTOH7Z.js +18 -0
- package/dist/update-check-UMYTOH7Z.js.map +7 -0
- package/dist/version-help-DROHZRW6.js +11 -0
- package/dist/version-help-DROHZRW6.js.map +7 -0
- package/dist/webui-server/connection-handler.d.ts +2 -1
- package/dist/webui-server/connection-handler.d.ts.map +1 -1
- package/dist/webui-server/kanban-host-adapter.d.ts +9 -5
- package/dist/webui-server/kanban-host-adapter.d.ts.map +1 -1
- package/dist/webui-server/listen-helpers.d.ts +18 -0
- package/dist/webui-server/listen-helpers.d.ts.map +1 -0
- package/dist/webui-server/node-pty-loader.d.ts +6 -0
- package/dist/webui-server/node-pty-loader.d.ts.map +1 -0
- package/dist/webui-server/prefs-seeding.d.ts.map +1 -1
- package/dist/webui-server/terminal-log-view.d.ts +30 -0
- package/dist/webui-server/terminal-log-view.d.ts.map +1 -0
- package/dist/webui-server-G3TISUIY.js +1459 -0
- package/dist/webui-server-G3TISUIY.js.map +7 -0
- package/dist/webui-server-options.d.ts +189 -0
- package/dist/webui-server-options.d.ts.map +1 -0
- package/dist/webui-server.d.ts +2 -178
- package/dist/webui-server.d.ts.map +1 -1
- package/dist/wiring/brain-and-orchestration.d.ts +2 -2
- package/dist/wiring/brain-and-orchestration.d.ts.map +1 -1
- package/dist/wiring/codebase-index.d.ts.map +1 -1
- package/dist/wiring/command-host-adapters.d.ts +2 -2
- package/dist/wiring/command-host-adapters.d.ts.map +1 -1
- package/dist/wiring/command-host-state.d.ts +7 -7
- package/dist/wiring/command-host-state.d.ts.map +1 -1
- package/dist/wiring/dep-watcher-bridge.d.ts +23 -0
- package/dist/wiring/dep-watcher-bridge.d.ts.map +1 -0
- package/dist/wiring/dep-watcher.d.ts +1 -1
- package/dist/wiring/dep-watcher.d.ts.map +1 -1
- package/dist/wiring/director-setup.d.ts +4 -4
- package/dist/wiring/director-setup.d.ts.map +1 -1
- package/dist/wiring/eternal-command-handlers.d.ts +5 -5
- package/dist/wiring/eternal-command-handlers.d.ts.map +1 -1
- package/dist/wiring/fleet-command-handlers.d.ts +2 -2
- package/dist/wiring/fleet-command-handlers.d.ts.map +1 -1
- package/dist/wiring/hq-telemetry.d.ts +5 -5
- package/dist/wiring/hq-telemetry.d.ts.map +1 -1
- package/dist/wiring/lifecycle-plugins.d.ts +9 -8
- package/dist/wiring/lifecycle-plugins.d.ts.map +1 -1
- package/dist/wiring/mailbox-bridge-bootstrap.d.ts +1 -1
- package/dist/wiring/management-tools.d.ts +15 -0
- package/dist/wiring/management-tools.d.ts.map +1 -0
- package/dist/wiring/pipeline.d.ts +4 -3
- package/dist/wiring/pipeline.d.ts.map +1 -1
- package/dist/wiring/plugins.d.ts +1 -1
- package/dist/wiring/plugins.d.ts.map +1 -1
- package/dist/wiring/provider-runtime-setup.d.ts +18 -5
- package/dist/wiring/provider-runtime-setup.d.ts.map +1 -1
- package/dist/wiring/provider-status.d.ts +3 -3
- package/dist/wiring/provider-status.d.ts.map +1 -1
- package/dist/wiring/provider-utility-tools.d.ts +4 -4
- package/dist/wiring/provider-utility-tools.d.ts.map +1 -1
- package/dist/wiring/provider.d.ts.map +1 -1
- package/dist/wiring/replay.d.ts +2 -2
- package/dist/wiring/replay.d.ts.map +1 -1
- package/dist/wiring/runtime-controller-deps.d.ts +4 -4
- package/dist/wiring/runtime-controller-deps.d.ts.map +1 -1
- package/dist/wiring/runtime-dispatch-state.d.ts +5 -5
- package/dist/wiring/runtime-dispatch-state.d.ts.map +1 -1
- package/dist/wiring/runtime-picker-deps.d.ts +3 -3
- package/dist/wiring/runtime-picker-deps.d.ts.map +1 -1
- package/dist/wiring/sage.d.ts.map +1 -1
- package/dist/wiring/sdd-handlers.d.ts.map +1 -1
- package/dist/wiring/session-command-handlers.d.ts +5 -5
- package/dist/wiring/session-command-handlers.d.ts.map +1 -1
- package/dist/wiring/session-registry.d.ts +38 -0
- package/dist/wiring/session-registry.d.ts.map +1 -0
- package/dist/wiring/session.d.ts +7 -5
- package/dist/wiring/session.d.ts.map +1 -1
- package/dist/wiring/tools.d.ts +2 -2
- package/dist/wiring/tools.d.ts.map +1 -1
- package/package.json +22 -22
- package/dist/cli-recovery-prompt.d.ts +0 -19
- package/dist/cli-recovery-prompt.d.ts.map +0 -1
- package/dist/first-run-auth-gate.d.ts +0 -20
- package/dist/first-run-auth-gate.d.ts.map +0 -1
- package/dist/pre-launch/indexing-question.d.ts +0 -28
- package/dist/pre-launch/indexing-question.d.ts.map +0 -1
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CLI_VERSION
|
|
3
|
+
} from "./chunk-XJXDOF63.js";
|
|
4
|
+
import "./chunk-7OCVIDC7.js";
|
|
5
|
+
|
|
6
|
+
// src/subcommands/handlers/bench.ts
|
|
7
|
+
import * as fs from "node:fs/promises";
|
|
8
|
+
import { createRequire } from "node:module";
|
|
9
|
+
import * as path from "node:path";
|
|
10
|
+
import { toErrorMessage } from "@wrongstack/core/utils";
|
|
11
|
+
import {
|
|
12
|
+
collectCellPredictions,
|
|
13
|
+
computeToolManifestHash,
|
|
14
|
+
createLocalManifestSuite,
|
|
15
|
+
createPolyglotSuite,
|
|
16
|
+
createSwebenchSuite,
|
|
17
|
+
gradeLocalManifest,
|
|
18
|
+
gradePolyglot,
|
|
19
|
+
gradeSwebench,
|
|
20
|
+
loadBenchConfig,
|
|
21
|
+
mineTranscript,
|
|
22
|
+
readSummary,
|
|
23
|
+
renderMarkdownReport,
|
|
24
|
+
reportHeaderLine,
|
|
25
|
+
runBenchmark,
|
|
26
|
+
writeJsonArtifacts,
|
|
27
|
+
writePredictionsJsonl
|
|
28
|
+
} from "@wrongstack/bench";
|
|
29
|
+
import { color } from "@wrongstack/core/utils";
|
|
30
|
+
var benchCmd = async (args, deps) => {
|
|
31
|
+
const sub = args[0];
|
|
32
|
+
const rest = args.slice(1);
|
|
33
|
+
switch (sub) {
|
|
34
|
+
case "run":
|
|
35
|
+
return benchRun(rest, deps);
|
|
36
|
+
case "report":
|
|
37
|
+
return benchReport(rest, deps);
|
|
38
|
+
case "list":
|
|
39
|
+
return benchList(rest, deps);
|
|
40
|
+
case "mine":
|
|
41
|
+
return benchMine(rest, deps);
|
|
42
|
+
default:
|
|
43
|
+
printUsage(deps);
|
|
44
|
+
return sub === void 0 ? 0 : 1;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
function printUsage(deps) {
|
|
48
|
+
deps.renderer.write(
|
|
49
|
+
[
|
|
50
|
+
color.bold("wstack bench") + " \u2014 model-independent agentic benchmarks",
|
|
51
|
+
"",
|
|
52
|
+
" run Run a suite across a model matrix and write a report",
|
|
53
|
+
" mine Copy a real session transcript and draft trace-eval cases",
|
|
54
|
+
" report Re-render report.md from a finished run directory",
|
|
55
|
+
" list Show available suites and configured model cells",
|
|
56
|
+
"",
|
|
57
|
+
color.dim("Examples:"),
|
|
58
|
+
color.dim(
|
|
59
|
+
" wstack bench run --suite polyglot --polyglot-dir ./polyglot --models bench.config.json --limit 5"
|
|
60
|
+
),
|
|
61
|
+
color.dim(
|
|
62
|
+
" wstack bench run --suite local --suite-dir ./evals --models bench.config.json"
|
|
63
|
+
),
|
|
64
|
+
color.dim(" wstack bench mine --transcript ./session.jsonl --out ./evals"),
|
|
65
|
+
color.dim(" wstack bench report ./bench-results/2026-06-14T10-00-00"),
|
|
66
|
+
""
|
|
67
|
+
].join("\n") + "\n"
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
function flagStr(deps, name) {
|
|
71
|
+
const v = deps.flags?.[name];
|
|
72
|
+
return typeof v === "string" ? v : void 0;
|
|
73
|
+
}
|
|
74
|
+
function flagBool(deps, name) {
|
|
75
|
+
const v = deps.flags?.[name];
|
|
76
|
+
return v === true || v === "true";
|
|
77
|
+
}
|
|
78
|
+
async function resolveWstackEntry() {
|
|
79
|
+
try {
|
|
80
|
+
const req = createRequire(import.meta.url);
|
|
81
|
+
const pkgPath = req.resolve("@wrongstack/cli/package.json");
|
|
82
|
+
const entry = path.join(path.dirname(pkgPath), "dist", "index.js");
|
|
83
|
+
await fs.access(entry);
|
|
84
|
+
return entry;
|
|
85
|
+
} catch {
|
|
86
|
+
return process.argv[1] ?? "";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function benchRun(_args, deps) {
|
|
90
|
+
const suiteId = flagStr(deps, "suite") ?? "polyglot";
|
|
91
|
+
const modelsPath = flagStr(deps, "models") ?? "bench.config.json";
|
|
92
|
+
const limitRaw = flagStr(deps, "limit");
|
|
93
|
+
const limit = limitRaw ? Math.max(1, Number.parseInt(limitRaw, 10)) : void 0;
|
|
94
|
+
const outBase = flagStr(deps, "out") ?? "bench-results";
|
|
95
|
+
let config;
|
|
96
|
+
try {
|
|
97
|
+
config = await loadBenchConfig(path.resolve(deps.cwd, modelsPath));
|
|
98
|
+
} catch (err) {
|
|
99
|
+
deps.renderer.writeError(toErrorMessage(err));
|
|
100
|
+
return 1;
|
|
101
|
+
}
|
|
102
|
+
const concurrencyRaw = flagStr(deps, "concurrency");
|
|
103
|
+
if (concurrencyRaw) {
|
|
104
|
+
const c = Number.parseInt(concurrencyRaw, 10);
|
|
105
|
+
if (c > 0) config.concurrency = c;
|
|
106
|
+
}
|
|
107
|
+
const stamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
108
|
+
const outDir = path.resolve(deps.cwd, outBase, stamp);
|
|
109
|
+
const predictionsDir = path.join(outDir, "predictions");
|
|
110
|
+
let suite;
|
|
111
|
+
let grade;
|
|
112
|
+
let isSwebench = false;
|
|
113
|
+
if (suiteId === "polyglot") {
|
|
114
|
+
const polyglotDir = flagStr(deps, "polyglot-dir");
|
|
115
|
+
if (!polyglotDir) {
|
|
116
|
+
deps.renderer.writeError("--polyglot-dir <path> is required for the polyglot suite.");
|
|
117
|
+
return 1;
|
|
118
|
+
}
|
|
119
|
+
const languagesRaw = flagStr(deps, "languages");
|
|
120
|
+
const languages = languagesRaw ? languagesRaw.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
|
|
121
|
+
suite = createPolyglotSuite({ polyglotDir: path.resolve(deps.cwd, polyglotDir), languages });
|
|
122
|
+
grade = (a) => gradePolyglot(a);
|
|
123
|
+
} else if (suiteId === "swebench") {
|
|
124
|
+
isSwebench = true;
|
|
125
|
+
const datasetDir = flagStr(deps, "dataset-dir");
|
|
126
|
+
const docker = flagBool(deps, "docker");
|
|
127
|
+
suite = createSwebenchSuite({
|
|
128
|
+
datasetDir: datasetDir ? path.resolve(deps.cwd, datasetDir) : void 0,
|
|
129
|
+
docker
|
|
130
|
+
});
|
|
131
|
+
grade = (a) => gradeSwebench({ ...a, predictionsDir });
|
|
132
|
+
} else if (suiteId === "local" || suiteId === "manifest") {
|
|
133
|
+
const suiteDirRaw = flagStr(deps, "suite-dir");
|
|
134
|
+
const manifestRaw = flagStr(deps, "manifest");
|
|
135
|
+
if (!suiteDirRaw && !manifestRaw) {
|
|
136
|
+
deps.renderer.writeError(
|
|
137
|
+
"--suite-dir <path> or --manifest <file> is required for the local suite."
|
|
138
|
+
);
|
|
139
|
+
return 1;
|
|
140
|
+
}
|
|
141
|
+
const manifestFile = manifestRaw ? path.resolve(deps.cwd, manifestRaw) : void 0;
|
|
142
|
+
const suiteDir = suiteDirRaw ? path.resolve(deps.cwd, suiteDirRaw) : path.dirname(manifestFile);
|
|
143
|
+
suite = createLocalManifestSuite({ suiteDir, manifestFile });
|
|
144
|
+
grade = (a) => gradeLocalManifest(a);
|
|
145
|
+
} else {
|
|
146
|
+
deps.renderer.writeError(`unknown suite "${suiteId}" (expected: polyglot | swebench | local)`);
|
|
147
|
+
return 1;
|
|
148
|
+
}
|
|
149
|
+
const tools = deps.toolRegistry?.list() ?? [];
|
|
150
|
+
const toolNames = tools.map((t) => t.name);
|
|
151
|
+
const toolManifestHash = computeToolManifestHash(tools);
|
|
152
|
+
const wstackEntry = await resolveWstackEntry();
|
|
153
|
+
deps.renderer.writeInfo(`Running ${suiteId} across ${config.cells.length} model(s)\u2026`);
|
|
154
|
+
let report;
|
|
155
|
+
try {
|
|
156
|
+
report = await runBenchmark({
|
|
157
|
+
suite,
|
|
158
|
+
grade,
|
|
159
|
+
config,
|
|
160
|
+
cliVersion: CLI_VERSION,
|
|
161
|
+
toolNames,
|
|
162
|
+
toolManifestHash,
|
|
163
|
+
nodeBin: process.execPath,
|
|
164
|
+
wstackEntry,
|
|
165
|
+
limit,
|
|
166
|
+
onProgress: (msg) => deps.renderer.write(color.dim(msg) + "\n")
|
|
167
|
+
});
|
|
168
|
+
} catch (err) {
|
|
169
|
+
deps.renderer.writeError(toErrorMessage(err));
|
|
170
|
+
return 1;
|
|
171
|
+
}
|
|
172
|
+
await writeJsonArtifacts(outDir, report);
|
|
173
|
+
const md = renderMarkdownReport(report);
|
|
174
|
+
await fs.writeFile(path.join(outDir, "report.md"), md, "utf8");
|
|
175
|
+
deps.renderer.write("\n" + md + "\n");
|
|
176
|
+
if (isSwebench) {
|
|
177
|
+
for (const cell of config.cells) {
|
|
178
|
+
const preds = await collectCellPredictions(predictionsDir, cell.label);
|
|
179
|
+
if (preds.length === 0) continue;
|
|
180
|
+
const file = await writePredictionsJsonl(outDir, cell.label, preds);
|
|
181
|
+
deps.renderer.writeInfo(`Predictions for "${cell.label}" \u2192 ${file}`);
|
|
182
|
+
}
|
|
183
|
+
deps.renderer.writeInfo(
|
|
184
|
+
"Grade with the official SWE-bench harness: python -m swebench.harness.run_evaluation --predictions_path <file> --run_id <id>"
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
deps.renderer.writeInfo(`Report written to ${path.join(outDir, "report.md")}`);
|
|
188
|
+
return 0;
|
|
189
|
+
}
|
|
190
|
+
async function benchReport(args, deps) {
|
|
191
|
+
const dir = args.find((a) => !a.startsWith("-"));
|
|
192
|
+
if (!dir) {
|
|
193
|
+
deps.renderer.writeError("Usage: wstack bench report <run-directory>");
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
const outDir = path.resolve(deps.cwd, dir);
|
|
197
|
+
let summary;
|
|
198
|
+
try {
|
|
199
|
+
summary = await readSummary(outDir);
|
|
200
|
+
} catch (err) {
|
|
201
|
+
deps.renderer.writeError(
|
|
202
|
+
`cannot read summary.json in ${outDir}: ${toErrorMessage(err)}`
|
|
203
|
+
);
|
|
204
|
+
return 1;
|
|
205
|
+
}
|
|
206
|
+
const md = renderMarkdownReport(summary);
|
|
207
|
+
await fs.writeFile(path.join(outDir, "report.md"), md, "utf8");
|
|
208
|
+
deps.renderer.write("\n" + md + "\n");
|
|
209
|
+
return 0;
|
|
210
|
+
}
|
|
211
|
+
async function benchMine(args, deps) {
|
|
212
|
+
const transcriptRaw = flagStr(deps, "transcript") ?? args.find((arg) => !arg.startsWith("-"));
|
|
213
|
+
if (!transcriptRaw) {
|
|
214
|
+
deps.renderer.writeError("Usage: wstack bench mine --transcript <session.jsonl> [--out <eval-dir>]");
|
|
215
|
+
return 1;
|
|
216
|
+
}
|
|
217
|
+
const outRaw = flagStr(deps, "out") ?? "evals";
|
|
218
|
+
try {
|
|
219
|
+
const mined = await mineTranscript({
|
|
220
|
+
transcriptPath: path.resolve(deps.cwd, transcriptRaw),
|
|
221
|
+
outDir: path.resolve(deps.cwd, outRaw)
|
|
222
|
+
});
|
|
223
|
+
deps.renderer.writeInfo(`Mined ${mined.candidates.length} edit attempt(s) from ${mined.sessionId}.`);
|
|
224
|
+
deps.renderer.writeInfo(`Pinned transcript \u2192 ${mined.copiedTranscriptPath}`);
|
|
225
|
+
deps.renderer.writeInfo(`Curator drafts \u2192 ${mined.draftsPath}`);
|
|
226
|
+
deps.renderer.writeInfo(
|
|
227
|
+
"Add a frozen pre-edit fixture and deterministic grader before copying a draft into bench.local.json."
|
|
228
|
+
);
|
|
229
|
+
return 0;
|
|
230
|
+
} catch (err) {
|
|
231
|
+
deps.renderer.writeError(toErrorMessage(err));
|
|
232
|
+
return 1;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
async function benchList(_args, deps) {
|
|
236
|
+
deps.renderer.write(color.bold("Suites\n"));
|
|
237
|
+
deps.renderer.write(
|
|
238
|
+
" polyglot " + color.dim("Aider polyglot (edit accuracy) \u2014 Phase 1, Docker-free\n")
|
|
239
|
+
);
|
|
240
|
+
deps.renderer.write(
|
|
241
|
+
" swebench " + color.dim("SWE-bench Verified (end-to-end) \u2014 Phase 2, Docker-gated\n")
|
|
242
|
+
);
|
|
243
|
+
deps.renderer.write(
|
|
244
|
+
" local " + color.dim("Project-defined manifest tasks with command/file graders\n")
|
|
245
|
+
);
|
|
246
|
+
const modelsPath = flagStr(deps, "models");
|
|
247
|
+
if (modelsPath) {
|
|
248
|
+
try {
|
|
249
|
+
const config = await loadBenchConfig(path.resolve(deps.cwd, modelsPath));
|
|
250
|
+
deps.renderer.write("\n" + color.bold("Model cells\n"));
|
|
251
|
+
for (const cell of config.cells) {
|
|
252
|
+
deps.renderer.write(
|
|
253
|
+
` ${cell.label.padEnd(16)} ${color.dim(`${cell.provider}/${cell.model}`)}
|
|
254
|
+
`
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
const tools = deps.toolRegistry?.list() ?? [];
|
|
258
|
+
const fp = reportHeaderLine({
|
|
259
|
+
cliVersion: CLI_VERSION,
|
|
260
|
+
toolNames: tools.map((t) => t.name),
|
|
261
|
+
maxIterations: config.maxIterations,
|
|
262
|
+
yolo: true,
|
|
263
|
+
subsetId: "(computed at run time)",
|
|
264
|
+
toolManifestHash: computeToolManifestHash(tools),
|
|
265
|
+
hash: "(computed at run time)"
|
|
266
|
+
});
|
|
267
|
+
deps.renderer.write("\n" + color.dim(`Harness: ${fp}`) + "\n");
|
|
268
|
+
} catch (err) {
|
|
269
|
+
deps.renderer.writeError(toErrorMessage(err));
|
|
270
|
+
return 1;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return 0;
|
|
274
|
+
}
|
|
275
|
+
export {
|
|
276
|
+
benchCmd
|
|
277
|
+
};
|
|
278
|
+
//# sourceMappingURL=bench-7ZDWSNEF.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/subcommands/handlers/bench.ts"],
|
|
4
|
+
"sourcesContent": ["import * as fs from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport * as path from 'node:path';\nimport { toErrorMessage } from '@wrongstack/core/utils';\nimport {\n type BenchReport,\n type BenchSuite,\n collectCellPredictions,\n computeToolManifestHash,\n createLocalManifestSuite,\n createPolyglotSuite,\n createSwebenchSuite,\n type BenchTask,\n type GradeResult,\n type ModelCell,\n gradeLocalManifest,\n gradePolyglot,\n gradeSwebench,\n loadBenchConfig,\n mineTranscript,\n readSummary,\n renderMarkdownReport,\n reportHeaderLine,\n runBenchmark,\n writeJsonArtifacts,\n writePredictionsJsonl,\n} from '@wrongstack/bench';\nimport { color } from '@wrongstack/core/utils';\nimport { CLI_VERSION } from '../../version.js';\nimport type { SubcommandDeps, SubcommandHandler } from '../index.js';\n\n/**\n * `wstack bench` \u2014 run model-independent agentic benchmarks (local manifests,\n * Aider polyglot, SWE-bench Verified) with deterministic graders and a harness\n * fingerprint.\n *\n * wstack bench run --suite <id> --models <config> [...]\n * wstack bench mine --transcript <session.jsonl> [--out <eval-dir>]\n * wstack bench report <dir>\n * wstack bench list [--models <config>]\n */\nexport const benchCmd: SubcommandHandler = async (args, deps) => {\n const sub = args[0];\n const rest = args.slice(1);\n switch (sub) {\n case 'run':\n return benchRun(rest, deps);\n case 'report':\n return benchReport(rest, deps);\n case 'list':\n return benchList(rest, deps);\n case 'mine':\n return benchMine(rest, deps);\n default:\n printUsage(deps);\n return sub === undefined ? 0 : 1;\n }\n};\n\nfunction printUsage(deps: SubcommandDeps): void {\n deps.renderer.write(\n [\n color.bold('wstack bench') + ' \u2014 model-independent agentic benchmarks',\n '',\n ' run Run a suite across a model matrix and write a report',\n ' mine Copy a real session transcript and draft trace-eval cases',\n ' report Re-render report.md from a finished run directory',\n ' list Show available suites and configured model cells',\n '',\n color.dim('Examples:'),\n color.dim(\n ' wstack bench run --suite polyglot --polyglot-dir ./polyglot --models bench.config.json --limit 5',\n ),\n color.dim(\n ' wstack bench run --suite local --suite-dir ./evals --models bench.config.json',\n ),\n color.dim(' wstack bench mine --transcript ./session.jsonl --out ./evals'),\n color.dim(' wstack bench report ./bench-results/2026-06-14T10-00-00'),\n '',\n ].join('\\n') + '\\n',\n );\n}\n\n// Flags arrive already-parsed in `deps.flags` (the top-level CLI parser strips\n// `--name value` pairs out of the positional args before the subcommand runs).\n// `args` therefore holds only positionals (the `run`/`report`/`list` verb and,\n// for `report`, the run directory).\nfunction flagStr(deps: SubcommandDeps, name: string): string | undefined {\n const v = deps.flags?.[name];\n return typeof v === 'string' ? v : undefined;\n}\nfunction flagBool(deps: SubcommandDeps, name: string): boolean {\n const v = deps.flags?.[name];\n return v === true || v === 'true';\n}\n\n/** Resolve the wstack CLI entry the runner spawns. */\nasync function resolveWstackEntry(): Promise<string> {\n try {\n const req = createRequire(import.meta.url);\n const pkgPath = req.resolve('@wrongstack/cli/package.json');\n const entry = path.join(path.dirname(pkgPath), 'dist', 'index.js');\n await fs.access(entry);\n return entry;\n } catch {\n return process.argv[1] ?? '';\n }\n}\n\nasync function benchRun(_args: string[], deps: SubcommandDeps): Promise<number> {\n const suiteId = flagStr(deps, 'suite') ?? 'polyglot';\n const modelsPath = flagStr(deps, 'models') ?? 'bench.config.json';\n const limitRaw = flagStr(deps, 'limit');\n const limit = limitRaw ? Math.max(1, Number.parseInt(limitRaw, 10)) : undefined;\n const outBase = flagStr(deps, 'out') ?? 'bench-results';\n\n let config: Awaited<ReturnType<typeof loadBenchConfig>>;\n try {\n config = await loadBenchConfig(path.resolve(deps.cwd, modelsPath));\n } catch (err) {\n deps.renderer.writeError(toErrorMessage(err));\n return 1;\n }\n const concurrencyRaw = flagStr(deps, 'concurrency');\n if (concurrencyRaw) {\n const c = Number.parseInt(concurrencyRaw, 10);\n if (c > 0) config.concurrency = c;\n }\n\n // The output directory is computed up front: the SWE-bench grader writes\n // per-instance predictions under it during the run.\n const stamp = new Date().toISOString().replace(/[:.]/g, '-');\n const outDir = path.resolve(deps.cwd, outBase, stamp);\n const predictionsDir = path.join(outDir, 'predictions');\n\n // Build suite + grader.\n let suite: BenchSuite;\n let grade: (a: {\n workdir: string;\n task: BenchTask;\n cell: ModelCell;\n timeoutMs: number;\n }) => Promise<GradeResult>;\n let isSwebench = false;\n if (suiteId === 'polyglot') {\n const polyglotDir = flagStr(deps, 'polyglot-dir');\n if (!polyglotDir) {\n deps.renderer.writeError('--polyglot-dir <path> is required for the polyglot suite.');\n return 1;\n }\n const languagesRaw = flagStr(deps, 'languages');\n const languages = languagesRaw\n ? languagesRaw\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n : undefined;\n suite = createPolyglotSuite({ polyglotDir: path.resolve(deps.cwd, polyglotDir), languages });\n grade = (a) => gradePolyglot(a);\n } else if (suiteId === 'swebench') {\n isSwebench = true;\n const datasetDir = flagStr(deps, 'dataset-dir');\n const docker = flagBool(deps, 'docker');\n suite = createSwebenchSuite({\n datasetDir: datasetDir ? path.resolve(deps.cwd, datasetDir) : undefined,\n docker,\n });\n // Inline Docker grading is not bundled (the official harness owns it); we\n // export conformant predictions. Pass an `externalGrade` here to grade live.\n grade = (a) => gradeSwebench({ ...a, predictionsDir });\n } else if (suiteId === 'local' || suiteId === 'manifest') {\n const suiteDirRaw = flagStr(deps, 'suite-dir');\n const manifestRaw = flagStr(deps, 'manifest');\n if (!suiteDirRaw && !manifestRaw) {\n deps.renderer.writeError(\n '--suite-dir <path> or --manifest <file> is required for the local suite.',\n );\n return 1;\n }\n const manifestFile = manifestRaw ? path.resolve(deps.cwd, manifestRaw) : undefined;\n const suiteDir = suiteDirRaw\n ? path.resolve(deps.cwd, suiteDirRaw)\n : path.dirname(manifestFile!);\n suite = createLocalManifestSuite({ suiteDir, manifestFile });\n grade = (a) => gradeLocalManifest(a);\n } else {\n deps.renderer.writeError(`unknown suite \"${suiteId}\" (expected: polyglot | swebench | local)`);\n return 1;\n }\n\n const tools = deps.toolRegistry?.list() ?? [];\n const toolNames = tools.map((t) => t.name);\n const toolManifestHash = computeToolManifestHash(tools);\n const wstackEntry = await resolveWstackEntry();\n\n deps.renderer.writeInfo(`Running ${suiteId} across ${config.cells.length} model(s)\u2026`);\n\n let report: BenchReport;\n try {\n report = await runBenchmark({\n suite,\n grade,\n config,\n cliVersion: CLI_VERSION,\n toolNames,\n toolManifestHash,\n nodeBin: process.execPath,\n wstackEntry,\n limit,\n onProgress: (msg) => deps.renderer.write(color.dim(msg) + '\\n'),\n });\n } catch (err) {\n deps.renderer.writeError(toErrorMessage(err));\n return 1;\n }\n\n await writeJsonArtifacts(outDir, report);\n const md = renderMarkdownReport(report);\n await fs.writeFile(path.join(outDir, 'report.md'), md, 'utf8');\n\n deps.renderer.write('\\n' + md + '\\n');\n\n // SWE-bench: merge the per-instance prediction files into one conformant\n // predictions.jsonl per cell, ready for the official harness.\n if (isSwebench) {\n for (const cell of config.cells) {\n const preds = await collectCellPredictions(predictionsDir, cell.label);\n if (preds.length === 0) continue;\n const file = await writePredictionsJsonl(outDir, cell.label, preds);\n deps.renderer.writeInfo(`Predictions for \"${cell.label}\" \u2192 ${file}`);\n }\n deps.renderer.writeInfo(\n 'Grade with the official SWE-bench harness: ' +\n 'python -m swebench.harness.run_evaluation --predictions_path <file> --run_id <id>',\n );\n }\n\n deps.renderer.writeInfo(`Report written to ${path.join(outDir, 'report.md')}`);\n return 0;\n}\n\nasync function benchReport(args: string[], deps: SubcommandDeps): Promise<number> {\n const dir = args.find((a) => !a.startsWith('-'));\n if (!dir) {\n deps.renderer.writeError('Usage: wstack bench report <run-directory>');\n return 1;\n }\n const outDir = path.resolve(deps.cwd, dir);\n let summary: Awaited<ReturnType<typeof readSummary>>;\n try {\n summary = await readSummary(outDir);\n } catch (err) {\n deps.renderer.writeError(\n `cannot read summary.json in ${outDir}: ${toErrorMessage(err)}`,\n );\n return 1;\n }\n const md = renderMarkdownReport(summary);\n await fs.writeFile(path.join(outDir, 'report.md'), md, 'utf8');\n deps.renderer.write('\\n' + md + '\\n');\n return 0;\n}\n\nasync function benchMine(args: string[], deps: SubcommandDeps): Promise<number> {\n const transcriptRaw = flagStr(deps, 'transcript') ?? args.find((arg) => !arg.startsWith('-'));\n if (!transcriptRaw) {\n deps.renderer.writeError('Usage: wstack bench mine --transcript <session.jsonl> [--out <eval-dir>]');\n return 1;\n }\n const outRaw = flagStr(deps, 'out') ?? 'evals';\n try {\n const mined = await mineTranscript({\n transcriptPath: path.resolve(deps.cwd, transcriptRaw),\n outDir: path.resolve(deps.cwd, outRaw),\n });\n deps.renderer.writeInfo(`Mined ${mined.candidates.length} edit attempt(s) from ${mined.sessionId}.`);\n deps.renderer.writeInfo(`Pinned transcript \u2192 ${mined.copiedTranscriptPath}`);\n deps.renderer.writeInfo(`Curator drafts \u2192 ${mined.draftsPath}`);\n deps.renderer.writeInfo(\n 'Add a frozen pre-edit fixture and deterministic grader before copying a draft into bench.local.json.',\n );\n return 0;\n } catch (err) {\n deps.renderer.writeError(toErrorMessage(err));\n return 1;\n }\n}\n\nasync function benchList(_args: string[], deps: SubcommandDeps): Promise<number> {\n deps.renderer.write(color.bold('Suites\\n'));\n deps.renderer.write(\n ' polyglot ' + color.dim('Aider polyglot (edit accuracy) \u2014 Phase 1, Docker-free\\n'),\n );\n deps.renderer.write(\n ' swebench ' + color.dim('SWE-bench Verified (end-to-end) \u2014 Phase 2, Docker-gated\\n'),\n );\n deps.renderer.write(\n ' local ' + color.dim('Project-defined manifest tasks with command/file graders\\n'),\n );\n\n const modelsPath = flagStr(deps, 'models');\n if (modelsPath) {\n try {\n const config = await loadBenchConfig(path.resolve(deps.cwd, modelsPath));\n deps.renderer.write('\\n' + color.bold('Model cells\\n'));\n for (const cell of config.cells) {\n deps.renderer.write(\n ` ${cell.label.padEnd(16)} ${color.dim(`${cell.provider}/${cell.model}`)}\\n`,\n );\n }\n const tools = deps.toolRegistry?.list() ?? [];\n const fp = reportHeaderLine({\n cliVersion: CLI_VERSION,\n toolNames: tools.map((t) => t.name),\n maxIterations: config.maxIterations,\n yolo: true,\n subsetId: '(computed at run time)',\n toolManifestHash: computeToolManifestHash(tools),\n hash: '(computed at run time)',\n });\n deps.renderer.write('\\n' + color.dim(`Harness: ${fp}`) + '\\n');\n } catch (err) {\n deps.renderer.writeError(toErrorMessage(err));\n return 1;\n }\n }\n return 0;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
* brain-decision-log — last-N decision log subscription for /brain status.
|
|
3
3
|
*
|
|
4
4
|
* Pulled out of cli-main.ts as part of PR 8 (Stage 1 of the cli-main split
|
|
5
|
-
* refactor; see `next-1.md`).
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* refactor; see `next-1.md`). This module owns the rolling 20-entry buffer
|
|
6
|
+
* that `/brain` reads from to render a compact status line. It subscribes to
|
|
7
|
+
* the four decision events (`brain.decision_answered`,
|
|
8
|
+
* `brain.decision_ask_human`, `brain.decision_denied`, `brain.intervention`)
|
|
9
|
+
* plus `brain.council_resolved`, from which only WARNED resolutions are
|
|
10
|
+
* recorded — panel-integrity signals, not decisions.
|
|
9
11
|
*
|
|
10
12
|
* The host wires this up once at boot and retains a reference to `brainLog`
|
|
11
13
|
* (and indirectly `pushBrainLog`) for the duration of the session.
|
|
12
14
|
*/
|
|
13
|
-
export type BrainDecisionKind = 'answered' | 'ask_human' | 'denied' | 'intervention';
|
|
15
|
+
export type BrainDecisionKind = 'answered' | 'ask_human' | 'denied' | 'intervention' | 'council_warn';
|
|
14
16
|
export interface BrainDecisionEntry {
|
|
15
17
|
at: number;
|
|
16
18
|
kind: BrainDecisionKind;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-decision-log.d.ts","sourceRoot":"","sources":["../../src/boot/brain-decision-log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"brain-decision-log.d.ts","sourceRoot":"","sources":["../../src/boot/brain-decision-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,WAAW,GACX,QAAQ,GACR,cAAc,GACd,cAAc,CAAC;AAEnB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAEvC,MAAM,EAAE,GAAG,GACV;IACD,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,YAAY,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAyGA"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* constructs a `runWebUI` options object from already-available deps,
|
|
8
8
|
* wires SIGINT handling, and returns an exit code. Extracting it
|
|
9
9
|
* first lets `execute()` shrink by ~100 lines and isolates the
|
|
10
|
-
* WebUI-specific wiring (port resolution, browser banner
|
|
11
|
-
*
|
|
10
|
+
* WebUI-specific wiring (port resolution, browser banner and autonomy
|
|
11
|
+
* forwarding) in a single named module.
|
|
12
12
|
*
|
|
13
13
|
* The TUI branch (~1,388 lines) and the single-shot branch are left
|
|
14
14
|
* inline — they are too deeply coupled to local mutable state for a
|
|
@@ -16,10 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { Agent } from '@wrongstack/core/agent';
|
|
18
18
|
import type { BrainArbiter } from '@wrongstack/core/coordination';
|
|
19
|
-
import type { Config, MemoryPort, ModelsRegistry, ModeStore, SkillLoader } from '@wrongstack/core/types';
|
|
20
19
|
import type { JournalEntry } from '@wrongstack/core/goal';
|
|
21
20
|
import type { EventBus } from '@wrongstack/core/kernel';
|
|
22
|
-
import type { SessionStore, SessionWriter } from '@wrongstack/core/types';
|
|
21
|
+
import type { Config, MemoryPort, ModelsRegistry, ModeStore, SessionStore, SessionWriter, SkillLoader } from '@wrongstack/core/types';
|
|
23
22
|
import type { MCPRegistry } from '@wrongstack/mcp';
|
|
24
23
|
import type { TerminalRenderer } from '../renderer.js';
|
|
25
24
|
import type { AutonomyMode } from '../services/autonomy-mode.js';
|
|
@@ -66,10 +65,7 @@ export interface WebUIDispatchContext {
|
|
|
66
65
|
yolo?: boolean;
|
|
67
66
|
}) => void) | undefined;
|
|
68
67
|
onModelContextResolved?: ((providerId: string, modelId: string, maxContext: number) => void) | undefined;
|
|
69
|
-
|
|
70
|
-
clear: () => Promise<void>;
|
|
71
|
-
write: (sessionId: string) => Promise<void>;
|
|
72
|
-
};
|
|
68
|
+
activateSessionIdentity?: ((sessionId: string, target?: import('../wiring/session-registry.js').SessionIdentityTarget) => Promise<void>) | undefined;
|
|
73
69
|
/** Read-only worker transcript snapshot used for browser refresh replay. */
|
|
74
70
|
agentTranscripts?: {
|
|
75
71
|
getAllSessions(): import('@wrongstack/core/coordination').AgentVirtualSession[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-webui.d.ts","sourceRoot":"","sources":["../../src/boot/dispatch-webui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"dispatch-webui.d.ts","sourceRoot":"","sources":["../../src/boot/dispatch-webui.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* `boot()`. It deliberately does NOT take any DI container, agent,
|
|
28
28
|
* or session — those are owned by the post-boot phase.
|
|
29
29
|
*/
|
|
30
|
-
import {
|
|
30
|
+
import type { LaunchMenuChoice } from '@wrongstack/core/types';
|
|
31
31
|
import type { ReadlineInputReader } from '../input-reader.js';
|
|
32
32
|
import type { TerminalRenderer } from '../renderer.js';
|
|
33
33
|
/** Top-level surfaces the user can launch from the menu. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-menu.d.ts","sourceRoot":"","sources":["../../src/boot/launch-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"launch-menu.d.ts","sourceRoot":"","sources":["../../src/boot/launch-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,4DAA4D;AAC5D,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEtD,yEAAyE;AACzE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAKD,QAAA,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,CAItE,CAAC;AAsBF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAuBT;AAuCD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAAG,SAAS,CAAC;CAC1D;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4D7F;AA6ID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,gBAAgB,GACvB,MAAM,EAAE,CA2BV;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,GAAG,SAAS,CAe9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type SystemInstructionVariant } from '@wrongstack/core/agent';
|
|
2
|
+
import type { TokenSavingTier } from '@wrongstack/core/types';
|
|
2
3
|
import type { AutonomyMode } from '../services/autonomy-mode.js';
|
|
3
4
|
export interface MutableRef<T> {
|
|
4
5
|
current: T | undefined;
|
|
@@ -70,6 +71,8 @@ interface BindSystemPromptBuilderDeps {
|
|
|
70
71
|
skillEagerMaxChars?: number | undefined;
|
|
71
72
|
/** `config.features.tokenSavingMode` — forwarded so prompt guidance matches tool tiering. */
|
|
72
73
|
tokenSavingMode?: TokenSavingTier | boolean | undefined;
|
|
74
|
+
/** `config.systemPrompt.variant` — selects system.md, system-lite.md, or system-pro.md. */
|
|
75
|
+
systemPromptVariant?: SystemInstructionVariant | undefined;
|
|
73
76
|
paths: SystemPromptBuilderPaths;
|
|
74
77
|
/** `path.join`-shaped helper from the runtime. */
|
|
75
78
|
pathJoiner: PathJoiner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/boot/system-prompt-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/boot/system-prompt-builder.ts"],"names":[],"mappings":"AAoDA,OAAO,EAA8B,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;GAGG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,UAAU,2BAA2B;IACnC;;;;;OAKG;IACH,SAAS,EAAE;QACT,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;KACpD,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB;;;gEAG4D;IAC5D,UAAU,EAAE,UAAU,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IACnD;;;;8CAI0C;IAC1C,eAAe,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EACb;QACE,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,GACD,CAAC,MACG;QACE,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,GACD,SAAS,CAAC,GACd,SAAS,CAAC;IACd;wCACoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,0HAA0H;IAC1H,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;IAChD,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,6FAA6F;IAC7F,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,2FAA2F;IAC3F,mBAAmB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC3D,KAAK,EAAE,wBAAwB,CAAC;IAChC,kDAAkD;IAClD,UAAU,EAAE,UAAU,CAAC;IACvB;;qBAEiB;IACjB,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAsD/E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Context } from '@wrongstack/core/agent';
|
|
2
|
+
import type { AutonomousCoordinator, CoordinatorEvent } from '@wrongstack/core/coordination';
|
|
3
|
+
import type { TuiRuntimeState } from './tui-runtime-state.js';
|
|
4
|
+
export interface TuiCoordinatorCallbacksContext {
|
|
5
|
+
state: TuiRuntimeState;
|
|
6
|
+
context: Context;
|
|
7
|
+
coordinatorEvents: Set<(event: CoordinatorEvent) => void>;
|
|
8
|
+
ensureAutonomousCoordinator: () => AutonomousCoordinator | null;
|
|
9
|
+
}
|
|
10
|
+
export declare function createTuiCoordinatorCallbacks({ state, context, coordinatorEvents, ensureAutonomousCoordinator, }: TuiCoordinatorCallbacksContext): {
|
|
11
|
+
getAutonomousCoordinator: () => AutonomousCoordinator | null;
|
|
12
|
+
subscribeCoordinatorEvents: (fn: (event: CoordinatorEvent) => void) => () => void;
|
|
13
|
+
onCoordinatorStart: (goal?: string) => void;
|
|
14
|
+
onCoordinatorStop: () => void;
|
|
15
|
+
onCoordinatorTasks: () => Promise<{
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
priority: import("@wrongstack/core/coordination").GoalPriority;
|
|
19
|
+
tags: string[];
|
|
20
|
+
}[] | null>;
|
|
21
|
+
onCoordinatorClaim: (taskId: string) => Promise<string | {
|
|
22
|
+
description: string;
|
|
23
|
+
}>;
|
|
24
|
+
onCoordinatorComplete: (taskId: string, result?: string) => Promise<string | null>;
|
|
25
|
+
onCoordinatorFail: (taskId: string, error: string) => Promise<string | null>;
|
|
26
|
+
onCoordinatorStatus: () => Promise<{
|
|
27
|
+
goals: {
|
|
28
|
+
total: number;
|
|
29
|
+
done: number;
|
|
30
|
+
pending: number;
|
|
31
|
+
failed: number;
|
|
32
|
+
};
|
|
33
|
+
dag: {
|
|
34
|
+
running: number;
|
|
35
|
+
ready: number;
|
|
36
|
+
done: number;
|
|
37
|
+
failed: number;
|
|
38
|
+
};
|
|
39
|
+
auction: {
|
|
40
|
+
pending: number;
|
|
41
|
+
inProgress: number;
|
|
42
|
+
};
|
|
43
|
+
} | null>;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=tui-coordinator-callbacks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-coordinator-callbacks.d.ts","sourceRoot":"","sources":["../../src/boot/tui-coordinator-callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;IAC1D,2BAA2B,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;CACjE;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,2BAA2B,GAC5B,EAAE,8BAA8B;IAE7B,wBAAwB;IACxB,0BAA0B,OAAO,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI;IAMlE,kBAAkB,UAAU,MAAM;IA+BlC,iBAAiB;IAGjB,kBAAkB;;;;;;IAWlB,kBAAkB,WAAiB,MAAM;;;IAuBzC,qBAAqB,WAAiB,MAAM,WAAW,MAAM;IAmB7D,iBAAiB,WAAiB,MAAM,SAAS,MAAM;IAgBvD,mBAAmB;;YAOb,KAAK;YACL,IAAI;YACJ,OAAO;YACP,MAAM;;;YAGN,OAAO;YACP,KAAK;YACL,IAAI;YACJ,MAAM;;;YAGN,OAAO;YACP,UAAU;;;EAKnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AutonomousCoordinator, type Director } from '@wrongstack/core/coordination';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { Context } from '@wrongstack/core/agent';
|
|
3
|
+
import type { EventBus } from '@wrongstack/core/kernel';
|
|
4
4
|
import type { WstackPaths } from '@wrongstack/core/utils';
|
|
5
5
|
import type { TuiRuntimeState } from './tui-runtime-state.js';
|
|
6
6
|
export interface CoordinatorSetupContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-coordinator-setup.d.ts","sourceRoot":"","sources":["../../src/boot/tui-coordinator-setup.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,qBAAqB,EAAE,KAAK,QAAQ,EAAgB,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tui-coordinator-setup.d.ts","sourceRoot":"","sources":["../../src/boot/tui-coordinator-setup.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,qBAAqB,EAAE,KAAK,QAAQ,EAAgB,MAAM,+BAA+B,CAAC;AACnG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,KAAK,EAAE,eAAe,CAAC;IACvB,gEAAgE;IAChE,MAAM,EAAE,QAAQ,CAAC;IACjB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,MAAM,EAAE,WAAW,CAAC;IACpB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,qDAAqD;IACrD,WAAW,EAAE,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC7D,+DAA+D;IAC/D,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC3D,gFAAgF;IAChF,uBAAuB,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,MAAM,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IAC3C,wEAAwE;IACxE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,uBAAuB,GAC3B,sBAAsB,CA4KxB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Director } from '@wrongstack/core/coordination';
|
|
2
2
|
import type { TerminalRenderer } from '../renderer.js';
|
|
3
3
|
import type { TuiRuntimeState } from './tui-runtime-state.js';
|
|
4
4
|
import type { ProjectSwitchContext } from './tui-project-switch.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-project-picker-callback.d.ts","sourceRoot":"","sources":["../../src/boot/tui-project-picker-callback.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tui-project-picker-callback.d.ts","sourceRoot":"","sources":["../../src/boot/tui-project-picker-callback.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,gBAAgB,EAAE,CAAC,MAAM;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACtE,iBAAiB,EAAE,CAAC,MAAM;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACvE,SAAS,EAAE,oBAAoB,CAAC;IAChC,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC3F;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,oBAAoB,wDAMpE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,oBAAoB,EACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,GAAG,QAAQ,GACzB,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { SkillLoader } from '@wrongstack/core/types';
|
|
2
1
|
import { type Agent, type Context } from '@wrongstack/core/agent';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import type { EventBus } from '@wrongstack/core/kernel';
|
|
3
|
+
import type { Config, MemoryPort, ModeStore, SkillLoader } from '@wrongstack/core/types';
|
|
5
4
|
import type { TuiRuntimeState } from './tui-runtime-state.js';
|
|
6
5
|
export interface ProjectSwitchContext {
|
|
7
6
|
state: TuiRuntimeState;
|
|
@@ -22,7 +21,7 @@ export interface ProjectSwitchContext {
|
|
|
22
21
|
*
|
|
23
22
|
* Returns `null` on success, or an error message string on failure.
|
|
24
23
|
* Mutates `state.*` (projectRoot, wpaths, activeSessionStore,
|
|
25
|
-
*
|
|
24
|
+
* detachActiveTodosCheckpoint).
|
|
26
25
|
*/
|
|
27
26
|
export declare function switchProjectInPlace(ctx: ProjectSwitchContext, targetRoot: string, displayName: string): Promise<string | null>;
|
|
28
27
|
//# sourceMappingURL=tui-project-switch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-project-switch.d.ts","sourceRoot":"","sources":["../../src/boot/tui-project-switch.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tui-project-switch.d.ts","sourceRoot":"","sources":["../../src/boot/tui-project-switch.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,OAAO,EAGb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,wBAAwB,EAAE,YAAY,CAAC;IAC5D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,oDAAoD;IACpD,qBAAqB,EAAE,CACrB,KAAK,EAAE,OAAO,wBAAwB,EAAE,iBAAiB,EACzD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,KACxB,MAAM,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,oBAAoB,EACzB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuJxB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* contains ~1,200 lines of closures that read and write mutable local
|
|
6
6
|
* variables declared at the top of `execute()`:
|
|
7
7
|
*
|
|
8
|
-
* `projectRoot`, `wpaths`, `activeSessionStore`,
|
|
8
|
+
* `projectRoot`, `wpaths`, `activeSessionStore`,
|
|
9
9
|
* `detachActiveTodosCheckpoint` (in the outer scope)
|
|
10
10
|
* `pendingProjectSwitch`, `autonomousCoordinator`, `coordinatorRun`,
|
|
11
11
|
* `coordinatorEvents` (in the TUI branch scope)
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
* projectRoot,
|
|
30
30
|
* wpaths,
|
|
31
31
|
* activeSessionStore,
|
|
32
|
-
* activeRecoveryLock,
|
|
33
32
|
* detachActiveTodosCheckpoint,
|
|
34
33
|
* pendingProjectSwitch: null,
|
|
35
34
|
* autonomousCoordinator: null,
|
|
@@ -52,9 +51,9 @@
|
|
|
52
51
|
* pattern (`.field = x`) is cleaner than `.field.current = x`.
|
|
53
52
|
*/
|
|
54
53
|
import type { AutonomousCoordinator, CoordinatorEvent } from '@wrongstack/core/coordination';
|
|
55
|
-
import type { RecoveryLock } from '@wrongstack/core/storage';
|
|
56
|
-
import type { WstackPaths } from '@wrongstack/core/utils';
|
|
57
54
|
import type { SessionStore } from '@wrongstack/core/types';
|
|
55
|
+
import type { WstackPaths } from '@wrongstack/core/utils';
|
|
56
|
+
import type { SessionIdentityTarget } from '../wiring/session-registry.js';
|
|
58
57
|
import type { PendingProjectSwitch } from './tui-project-spawn.js';
|
|
59
58
|
/**
|
|
60
59
|
* The shared mutable runtime state for the TUI dispatch branch.
|
|
@@ -70,8 +69,8 @@ export interface TuiRuntimeState {
|
|
|
70
69
|
wpaths: WstackPaths;
|
|
71
70
|
/** Active session store. Mutated by switchProjectInPlace. */
|
|
72
71
|
activeSessionStore: SessionStore | undefined;
|
|
73
|
-
/**
|
|
74
|
-
|
|
72
|
+
/** Move this process's cross-process ownership after an explicit resume. */
|
|
73
|
+
activateSessionIdentity?: ((sessionId: string, target?: SessionIdentityTarget) => Promise<void>) | undefined;
|
|
75
74
|
/** Todos checkpoint detach function. Mutated by switchProjectInPlace. */
|
|
76
75
|
detachActiveTodosCheckpoint: (() => void | Promise<void>) | undefined;
|
|
77
76
|
/** Pending project switch (F1 picker / F10 sessions). Set by onProjectSelect/onSwitchToSession. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-runtime-state.d.ts","sourceRoot":"","sources":["../../src/boot/tui-runtime-state.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tui-runtime-state.d.ts","sourceRoot":"","sources":["../../src/boot/tui-runtime-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAG9B,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,MAAM,EAAE,WAAW,CAAC;IACpB,6DAA6D;IAC7D,kBAAkB,EAAE,YAAY,GAAG,SAAS,CAAC;IAC7C,4EAA4E;IAC5E,uBAAuB,CAAC,EACpB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GACtE,SAAS,CAAC;IACd,yEAAyE;IACzE,2BAA2B,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAItE,mGAAmG;IACnG,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,sEAAsE;IACtE,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpD,4EAA4E;IAC5E,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,4EAA4E;IAC5E,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;CAC3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-session-resume.d.ts","sourceRoot":"","sources":["../../src/boot/tui-session-resume.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tui-session-resume.d.ts","sourceRoot":"","sources":["../../src/boot/tui-session-resume.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB,EAClB,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAClF,SAAS,CAAC;IACd,wFAAwF;IACxF,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,oBAAoB,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA0PrC"}
|