@wrongstack/cli 0.296.4 → 0.298.0
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/dist/{acp-A5OSIU2P.js → acp-S4LZQB66.js} +91 -23
- package/dist/{auth-CJWQJVRH.js → auth-NLLGEYQR.js} +3 -3
- package/dist/boot/dispatch-webui.d.ts +7 -0
- package/dist/boot/governance-evidence-candidate.d.ts +3 -0
- package/dist/boot/governance-shadow-bridge.d.ts +19 -0
- package/dist/boot/governance-trace-context.d.ts +64 -0
- package/dist/boot/launch-banner.d.ts +22 -0
- package/dist/boot/tui-session-resume.d.ts +10 -1
- package/dist/chimera-leader-wake.d.ts +57 -0
- package/dist/chimera-reviewer-policy.d.ts +89 -1
- package/dist/chimera-subagent-ladder.d.ts +72 -0
- package/dist/{chunk-AZESNNIC.js → chunk-4HH3YGG4.js} +3 -3
- package/dist/{chunk-IHBYBYGA.js → chunk-A6Q5KGLV.js} +51 -18
- package/dist/{chunk-ABXK4VVY.js → chunk-ARWGQUB3.js} +2 -1
- package/dist/{chunk-OI7GWJDS.js → chunk-C5GH4YBL.js} +1389 -184
- package/dist/{chunk-TADVX644.js → chunk-GO3TJICK.js} +11 -2
- package/dist/{chunk-JBTFWWKV.js → chunk-I2BM6FK6.js} +9 -4
- package/dist/{chunk-AXVZMEWG.js → chunk-I5MEUFDI.js} +2 -2
- package/dist/{chunk-WY7KKOUK.js → chunk-JW75HY4F.js} +31 -10
- package/dist/chunk-U3SS4NRH.js +10 -0
- package/dist/{chunk-Z7YGASQP.js → chunk-V3XH6XBJ.js} +30 -26
- package/dist/{chunk-BQCAJ7FI.js → chunk-XTIXVJXP.js} +16 -3
- package/dist/{cli-main-TOAWVJDY.js → cli-main-TJEU4OUY.js} +25912 -25134
- package/dist/cli-main-helpers.d.ts +42 -2
- package/dist/{execution-O7I5DYE6.js → execution-INOV5P7N.js} +1264 -650
- package/dist/execution-chimera-cascade.d.ts +7 -1
- package/dist/execution-chimera-review.d.ts +35 -0
- package/dist/fleet/host-types.d.ts +6 -1
- package/dist/fleet-statusline.d.ts +1 -0
- package/dist/goal-host.d.ts +1 -1
- package/dist/governance-V2Z42RBE.js +65 -0
- package/dist/governance-hq-telemetry.d.ts +17 -0
- package/dist/{hq-JUYKUNJX.js → hq-WO6CLUSI.js} +2 -2
- package/dist/hq-publisher.d.ts +3 -2
- package/dist/hq-server/auth.d.ts +33 -2
- package/dist/hq-server/login-attempt-store.d.ts +73 -0
- package/dist/hq-server/routes/auth-handlers.d.ts +73 -5
- package/dist/hq-server/routes.d.ts +5 -5
- package/dist/hq-server/types.d.ts +44 -2
- package/dist/hq-server/utils.d.ts +51 -6
- package/dist/hq-server/ws.d.ts +61 -2
- package/dist/{hq-server-6AQ3BXZA.js → hq-server-6TSAORAC.js} +2 -2
- package/dist/hq-server.d.ts +10 -0
- package/dist/index.js +337 -42
- package/dist/kanban-hq-sync.d.ts +13 -1
- package/dist/live-settings-input.d.ts +10 -1
- package/dist/{mailbox-serve-2UWHEN3M.js → mailbox-serve-DBOOOOWZ.js} +50 -8
- package/dist/{sdd-runtime-JG4EEKL6.js → sdd-runtime-AIJCJGWC.js} +2 -2
- package/dist/services/sdd/state.d.ts +3 -3
- package/dist/settings-menu.d.ts +1 -1
- package/dist/slash-commands/command-context.d.ts +2 -0
- package/dist/slash-commands/fallback.d.ts +2 -0
- package/dist/slash-commands/goal-refiner.d.ts +1 -1
- package/dist/slash-commands/goal.d.ts +1 -1
- package/dist/subcommands/handlers/acp-connection-gate.d.ts +20 -0
- package/dist/subcommands/handlers/governance.d.ts +8 -0
- package/dist/{update-YC4TYW2Y.js → update-MV6TUACD.js} +3 -3
- package/dist/utils/win32-cmd.d.ts +9 -6
- package/dist/{version-help-DROHZRW6.js → version-help-ASKQYXDJ.js} +2 -2
- package/dist/webui-server/kanban-host-adapter.d.ts +1 -1
- package/dist/webui-server/session-start-payload.d.ts +4 -0
- package/dist/{webui-server-ZF5KVGC5.js → webui-server-PCLSXX6L.js} +164 -134
- package/dist/webui-server-options.d.ts +7 -0
- package/dist/wiring/brain-and-orchestration.d.ts +2 -0
- package/dist/wiring/hq-telemetry.d.ts +4 -3
- package/dist/wiring/lifecycle-plugins.d.ts +5 -8
- package/dist/wiring/metrics.d.ts +1 -1
- package/dist/wiring/provider-runtime-setup.d.ts +2 -2
- package/package.json +23 -22
- package/dist/acp-A5OSIU2P.js.map +0 -7
- package/dist/acp-registry-cache.d.ts.map +0 -1
- package/dist/acp-server-agent.d.ts.map +0 -1
- package/dist/arg-parser.d.ts.map +0 -1
- package/dist/audit-2ZSFGNIF.js.map +0 -7
- package/dist/auth-CJWQJVRH.js.map +0 -7
- package/dist/auth-menu/add-provider.d.ts.map +0 -1
- package/dist/auth-menu/anthropic-oauth.d.ts.map +0 -1
- package/dist/auth-menu/auth-menu-audit.d.ts.map +0 -1
- package/dist/auth-menu/direct.d.ts.map +0 -1
- package/dist/auth-menu/github-copilot-oauth.d.ts.map +0 -1
- package/dist/auth-menu/helpers.d.ts.map +0 -1
- package/dist/auth-menu/index.d.ts.map +0 -1
- package/dist/auth-menu/local-presets.d.ts.map +0 -1
- package/dist/auth-menu/local.d.ts.map +0 -1
- package/dist/auth-menu/loopback-server.d.ts.map +0 -1
- package/dist/auth-menu/oauth-menu.d.ts.map +0 -1
- package/dist/auth-menu/openai-codex-oauth.d.ts.map +0 -1
- package/dist/auth-menu/panel-service.d.ts.map +0 -1
- package/dist/auth-menu/provider-menu.d.ts.map +0 -1
- package/dist/auth-menu/shared.d.ts.map +0 -1
- package/dist/auth-menu/top-menu.d.ts.map +0 -1
- package/dist/auth-menu/types.d.ts.map +0 -1
- package/dist/auth-menu.d.ts.map +0 -1
- package/dist/bench-7ZDWSNEF.js.map +0 -7
- package/dist/boot/auto-discover-providers.d.ts.map +0 -1
- package/dist/boot/brain-decision-log.d.ts.map +0 -1
- package/dist/boot/config-backup-recovery.d.ts.map +0 -1
- package/dist/boot/container-wiring.d.ts.map +0 -1
- package/dist/boot/dispatch-singleshot.d.ts.map +0 -1
- package/dist/boot/dispatch-tui.d.ts.map +0 -1
- package/dist/boot/dispatch-webui.d.ts.map +0 -1
- package/dist/boot/event-wiring.d.ts.map +0 -1
- package/dist/boot/execution-mode.d.ts.map +0 -1
- package/dist/boot/launch-menu.d.ts.map +0 -1
- package/dist/boot/short-circuit-desktop.d.ts.map +0 -1
- package/dist/boot/short-circuit-flags.d.ts.map +0 -1
- package/dist/boot/short-circuit-hq.d.ts.map +0 -1
- package/dist/boot/simpleui-full-auto.d.ts.map +0 -1
- package/dist/boot/system-prompt-builder.d.ts.map +0 -1
- package/dist/boot/system-prompt.d.ts.map +0 -1
- package/dist/boot/tool-registry.d.ts.map +0 -1
- package/dist/boot/tui-coordinator-callbacks.d.ts.map +0 -1
- package/dist/boot/tui-coordinator-setup.d.ts.map +0 -1
- package/dist/boot/tui-debug-stream.d.ts.map +0 -1
- package/dist/boot/tui-goal-wiring.d.ts.map +0 -1
- package/dist/boot/tui-live-sessions.d.ts.map +0 -1
- package/dist/boot/tui-project-picker-callback.d.ts.map +0 -1
- package/dist/boot/tui-project-spawn.d.ts.map +0 -1
- package/dist/boot/tui-project-switch.d.ts.map +0 -1
- package/dist/boot/tui-runtime-state.d.ts.map +0 -1
- package/dist/boot/tui-sdd-callback.d.ts.map +0 -1
- package/dist/boot/tui-session-resume.d.ts.map +0 -1
- package/dist/boot/tui-settings-adapter.d.ts.map +0 -1
- package/dist/boot-config.d.ts.map +0 -1
- package/dist/boot.d.ts.map +0 -1
- package/dist/brain-menu/panel-service.d.ts.map +0 -1
- package/dist/chimera-review-task.d.ts.map +0 -1
- package/dist/chimera-reviewer-policy.d.ts.map +0 -1
- package/dist/chronicle-QQEQFSSE.js.map +0 -7
- package/dist/chunk-5N34EWJR.js.map +0 -7
- package/dist/chunk-66T43Q4Y.js.map +0 -7
- package/dist/chunk-7OCVIDC7.js.map +0 -7
- package/dist/chunk-ABXK4VVY.js.map +0 -7
- package/dist/chunk-AXVZMEWG.js.map +0 -7
- package/dist/chunk-AZESNNIC.js.map +0 -7
- package/dist/chunk-BGFM3PD7.js.map +0 -7
- package/dist/chunk-BQCAJ7FI.js.map +0 -7
- package/dist/chunk-DPJZQCVP.js.map +0 -7
- package/dist/chunk-F4PEGAJZ.js.map +0 -7
- package/dist/chunk-IHBYBYGA.js.map +0 -7
- package/dist/chunk-JBSQ7ONN.js.map +0 -7
- package/dist/chunk-JBTFWWKV.js.map +0 -7
- package/dist/chunk-JUHRI6OV.js.map +0 -7
- package/dist/chunk-OI7GWJDS.js.map +0 -7
- package/dist/chunk-OP47B3IX.js.map +0 -7
- package/dist/chunk-PJHET45A.js.map +0 -7
- package/dist/chunk-Q5GTM25S.js.map +0 -7
- package/dist/chunk-QD544J2B.js.map +0 -7
- package/dist/chunk-QUNHS6O3.js.map +0 -7
- package/dist/chunk-TADVX644.js.map +0 -7
- package/dist/chunk-TGDHN4LM.js.map +0 -7
- package/dist/chunk-TYO2OVAD.js.map +0 -7
- package/dist/chunk-VCYZ3WZV.js.map +0 -7
- package/dist/chunk-VJUEZZYB.js +0 -29
- package/dist/chunk-VJUEZZYB.js.map +0 -7
- package/dist/chunk-WHOIR577.js.map +0 -7
- package/dist/chunk-WY7KKOUK.js.map +0 -7
- package/dist/chunk-XJXDOF63.js.map +0 -7
- package/dist/chunk-XWEGWYDU.js.map +0 -7
- package/dist/chunk-YWUPHRGB.js.map +0 -7
- package/dist/chunk-Z7YGASQP.js.map +0 -7
- package/dist/cli-bundled-prompts.d.ts.map +0 -1
- package/dist/cli-bundled-skills.d.ts.map +0 -1
- package/dist/cli-context.d.ts.map +0 -1
- package/dist/cli-entry-main.d.ts.map +0 -1
- package/dist/cli-entry-point.d.ts.map +0 -1
- package/dist/cli-eternal-flag.d.ts.map +0 -1
- package/dist/cli-main-TOAWVJDY.js.map +0 -7
- package/dist/cli-main-helpers.d.ts.map +0 -1
- package/dist/cli-main.d.ts.map +0 -1
- package/dist/cli-update-notice.d.ts.map +0 -1
- package/dist/config-doctor.d.ts.map +0 -1
- package/dist/config-history.d.ts.map +0 -1
- package/dist/context-limit.d.ts.map +0 -1
- package/dist/context-overflow-diagnostic.d.ts.map +0 -1
- package/dist/diag-doctor-OQ3AA63O.js.map +0 -7
- package/dist/diff-renderer.d.ts.map +0 -1
- package/dist/execute-deps.d.ts.map +0 -1
- package/dist/execution-O7I5DYE6.js.map +0 -7
- package/dist/execution-chimera-ask.d.ts.map +0 -1
- package/dist/execution-chimera-cascade.d.ts.map +0 -1
- package/dist/execution-cleanup.d.ts.map +0 -1
- package/dist/execution-kanban-dispatch.d.ts.map +0 -1
- package/dist/execution-repl-fleet-callbacks.d.ts.map +0 -1
- package/dist/execution-storage-observability.d.ts.map +0 -1
- package/dist/execution-tui-next-step-callbacks.d.ts.map +0 -1
- package/dist/execution.d.ts.map +0 -1
- package/dist/export-TPORYVRZ.js.map +0 -7
- package/dist/fleet/host-acp-runner-cache.d.ts.map +0 -1
- package/dist/fleet/host-acp.d.ts.map +0 -1
- package/dist/fleet/host-concurrency.d.ts.map +0 -1
- package/dist/fleet/host-context.d.ts.map +0 -1
- package/dist/fleet/host-director-builder.d.ts.map +0 -1
- package/dist/fleet/host-director-event-bridges.d.ts.map +0 -1
- package/dist/fleet/host-director-services.d.ts.map +0 -1
- package/dist/fleet/host-event-bridge.d.ts.map +0 -1
- package/dist/fleet/host-helpers.d.ts.map +0 -1
- package/dist/fleet/host-learning-tracker.d.ts.map +0 -1
- package/dist/fleet/host-learning.d.ts.map +0 -1
- package/dist/fleet/host-lifecycle-events.d.ts.map +0 -1
- package/dist/fleet/host-paths.d.ts.map +0 -1
- package/dist/fleet/host-provider.d.ts.map +0 -1
- package/dist/fleet/host-session-writer.d.ts.map +0 -1
- package/dist/fleet/host-shadow-pass.d.ts.map +0 -1
- package/dist/fleet/host-spawn-types.d.ts.map +0 -1
- package/dist/fleet/host-status.d.ts.map +0 -1
- package/dist/fleet/host-subagent-factory.d.ts.map +0 -1
- package/dist/fleet/host-supervisor.d.ts.map +0 -1
- package/dist/fleet/host-task-result-report.d.ts.map +0 -1
- package/dist/fleet/host-types.d.ts.map +0 -1
- package/dist/fleet/host.d.ts.map +0 -1
- package/dist/fleet/routing.d.ts.map +0 -1
- package/dist/fleet/status-broadcast.d.ts.map +0 -1
- package/dist/fleet/supervisor-registry.d.ts.map +0 -1
- package/dist/fleet-statusline.d.ts.map +0 -1
- package/dist/goal-host.d.ts.map +0 -1
- package/dist/hooks-wiring.d.ts.map +0 -1
- package/dist/hq-JUYKUNJX.js.map +0 -7
- package/dist/hq-command-controller.d.ts.map +0 -1
- package/dist/hq-publisher.d.ts.map +0 -1
- package/dist/hq-recovery-html.d.ts.map +0 -1
- package/dist/hq-server/audit-actor.d.ts.map +0 -1
- package/dist/hq-server/auth-state.d.ts.map +0 -1
- package/dist/hq-server/auth.d.ts.map +0 -1
- package/dist/hq-server/preflight.d.ts.map +0 -1
- package/dist/hq-server/project-root.d.ts.map +0 -1
- package/dist/hq-server/routes/auth-handlers.d.ts.map +0 -1
- package/dist/hq-server/routes/session-handlers.d.ts.map +0 -1
- package/dist/hq-server/routes/system-handlers.d.ts.map +0 -1
- package/dist/hq-server/routes.d.ts.map +0 -1
- package/dist/hq-server/snapshot.d.ts.map +0 -1
- package/dist/hq-server/startup.d.ts.map +0 -1
- package/dist/hq-server/trust-boundary.d.ts.map +0 -1
- package/dist/hq-server/types.d.ts.map +0 -1
- package/dist/hq-server/utils.d.ts.map +0 -1
- package/dist/hq-server/ws.d.ts.map +0 -1
- package/dist/hq-server-6AQ3BXZA.js.map +0 -7
- package/dist/hq-server.d.ts.map +0 -1
- package/dist/hq-static-serve.d.ts.map +0 -1
- package/dist/hq-ttl-U2FAYFAT.js.map +0 -7
- package/dist/hq-tunnel-RFKGC4HI.js.map +0 -7
- package/dist/hq-tunnel.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -7
- package/dist/init-E2NDDOHI.js.map +0 -7
- package/dist/input-reader.d.ts.map +0 -1
- package/dist/kanban-dispatch-route.d.ts.map +0 -1
- package/dist/kanban-hq-sync.d.ts.map +0 -1
- package/dist/kanban-run-mirror-EKVNGXWW.js.map +0 -7
- package/dist/launch-hints.d.ts.map +0 -1
- package/dist/live-settings-input.d.ts.map +0 -1
- package/dist/mailbox-bridge-bootstrap.d.ts.map +0 -1
- package/dist/mailbox-serve-2UWHEN3M.js.map +0 -7
- package/dist/mcp-CYLPUEHC.js.map +0 -7
- package/dist/mcp-serve.d.ts.map +0 -1
- package/dist/modeldiag-HENYJ4N7.js.map +0 -7
- package/dist/multi-agent.d.ts.map +0 -1
- package/dist/next-task-predictor.d.ts.map +0 -1
- package/dist/permission-prompt.d.ts.map +0 -1
- package/dist/permissions-FNYLZIL4.js.map +0 -7
- package/dist/picker-key-state.d.ts.map +0 -1
- package/dist/picker-model-picker.d.ts.map +0 -1
- package/dist/picker-ui.d.ts.map +0 -1
- package/dist/picker.d.ts.map +0 -1
- package/dist/plugin-api-factory.d.ts.map +0 -1
- package/dist/plugin-management.d.ts.map +0 -1
- package/dist/plugin-usage-OU6X6LM3.js.map +0 -7
- package/dist/plugins-4LJ5IUBI.js.map +0 -7
- package/dist/pre-launch/launch-prompts.d.ts.map +0 -1
- package/dist/pre-launch/project-check.d.ts.map +0 -1
- package/dist/pre-launch.d.ts.map +0 -1
- package/dist/preflight.d.ts.map +0 -1
- package/dist/profile-config-path.d.ts.map +0 -1
- package/dist/project-BLQ3ALVL.js.map +0 -7
- package/dist/project-manifest-GE25PW4S.js.map +0 -7
- package/dist/project-picker-BOCWHBXP.js.map +0 -7
- package/dist/project-picker.d.ts.map +0 -1
- package/dist/projects-XE76NFNZ.js.map +0 -7
- package/dist/provider-config-utils.d.ts.map +0 -1
- package/dist/provider-helpers.d.ts.map +0 -1
- package/dist/provider-id.d.ts.map +0 -1
- package/dist/providers-models-GDELBHZK.js.map +0 -7
- package/dist/quick-VIO2BEHS.js.map +0 -7
- package/dist/renderer.d.ts.map +0 -1
- package/dist/repl-auto-proceed.d.ts.map +0 -1
- package/dist/repl-client-registration.d.ts.map +0 -1
- package/dist/repl-input.d.ts.map +0 -1
- package/dist/repl-options.d.ts.map +0 -1
- package/dist/repl-rendering.d.ts.map +0 -1
- package/dist/repl-suggestions.d.ts.map +0 -1
- package/dist/repl.d.ts.map +0 -1
- package/dist/replay-KCTXNMZQ.js.map +0 -7
- package/dist/rewind-EJMVFVLS.js.map +0 -7
- package/dist/sdd-runtime-JG4EEKL6.js.map +0 -7
- package/dist/services/autonomy-mode.d.ts.map +0 -1
- package/dist/services/commit-message.d.ts.map +0 -1
- package/dist/services/dispatch-classifier.d.ts.map +0 -1
- package/dist/services/mcp-management.d.ts.map +0 -1
- package/dist/services/project-facts.d.ts.map +0 -1
- package/dist/services/project-manifest.d.ts.map +0 -1
- package/dist/services/sdd/project-context.d.ts.map +0 -1
- package/dist/services/sdd/spec-detection.d.ts.map +0 -1
- package/dist/services/sdd/state.d.ts.map +0 -1
- package/dist/services/sdd/task-manager.d.ts.map +0 -1
- package/dist/services/sdd-runtime.d.ts.map +0 -1
- package/dist/services/statusline-config.d.ts.map +0 -1
- package/dist/services/suggestion-store.d.ts.map +0 -1
- package/dist/session-event-wiring.d.ts.map +0 -1
- package/dist/session-stats.d.ts.map +0 -1
- package/dist/sessions-config-NLCMK3BY.js.map +0 -7
- package/dist/settings-menu.d.ts.map +0 -1
- package/dist/shutdown-cleanup.d.ts.map +0 -1
- package/dist/simpleui-dist-JIFGUJO7.js.map +0 -7
- package/dist/simpleui-dist.d.ts.map +0 -1
- package/dist/slash-commands/acp.d.ts.map +0 -1
- package/dist/slash-commands/agent-improve.d.ts.map +0 -1
- package/dist/slash-commands/agents.d.ts.map +0 -1
- package/dist/slash-commands/audit.d.ts.map +0 -1
- package/dist/slash-commands/auth.d.ts.map +0 -1
- package/dist/slash-commands/autonomy.d.ts.map +0 -1
- package/dist/slash-commands/brain.d.ts.map +0 -1
- package/dist/slash-commands/btw.d.ts.map +0 -1
- package/dist/slash-commands/clear.d.ts.map +0 -1
- package/dist/slash-commands/codebase-reindex.d.ts.map +0 -1
- package/dist/slash-commands/collab.d.ts.map +0 -1
- package/dist/slash-commands/command-context.d.ts.map +0 -1
- package/dist/slash-commands/commit-llm.d.ts.map +0 -1
- package/dist/slash-commands/compact.d.ts.map +0 -1
- package/dist/slash-commands/context.d.ts.map +0 -1
- package/dist/slash-commands/coordinator.d.ts.map +0 -1
- package/dist/slash-commands/delegate.d.ts.map +0 -1
- package/dist/slash-commands/design.d.ts.map +0 -1
- package/dist/slash-commands/dev.d.ts.map +0 -1
- package/dist/slash-commands/diag-stats.d.ts.map +0 -1
- package/dist/slash-commands/dispatch-llm.d.ts.map +0 -1
- package/dist/slash-commands/doctor.d.ts.map +0 -1
- package/dist/slash-commands/enhance.d.ts.map +0 -1
- package/dist/slash-commands/ensemble.d.ts.map +0 -1
- package/dist/slash-commands/f-keys.d.ts.map +0 -1
- package/dist/slash-commands/fallback.d.ts.map +0 -1
- package/dist/slash-commands/fix-classifier.d.ts.map +0 -1
- package/dist/slash-commands/fix.d.ts.map +0 -1
- package/dist/slash-commands/fleet.d.ts.map +0 -1
- package/dist/slash-commands/git.d.ts.map +0 -1
- package/dist/slash-commands/gitid.d.ts.map +0 -1
- package/dist/slash-commands/goal-refiner.d.ts.map +0 -1
- package/dist/slash-commands/goal.d.ts.map +0 -1
- package/dist/slash-commands/health.d.ts.map +0 -1
- package/dist/slash-commands/help.d.ts.map +0 -1
- package/dist/slash-commands/helpers.d.ts.map +0 -1
- package/dist/slash-commands/hq.d.ts.map +0 -1
- package/dist/slash-commands/index.d.ts.map +0 -1
- package/dist/slash-commands/init.d.ts.map +0 -1
- package/dist/slash-commands/interrupt.d.ts.map +0 -1
- package/dist/slash-commands/kanban-agent-helpers.d.ts.map +0 -1
- package/dist/slash-commands/kanban-format.d.ts.map +0 -1
- package/dist/slash-commands/kanban-help.d.ts.map +0 -1
- package/dist/slash-commands/kanban.d.ts.map +0 -1
- package/dist/slash-commands/mailbox-demo.d.ts.map +0 -1
- package/dist/slash-commands/mailbox-serve.d.ts.map +0 -1
- package/dist/slash-commands/mailbox.d.ts.map +0 -1
- package/dist/slash-commands/mcp-utils.d.ts.map +0 -1
- package/dist/slash-commands/mcp.d.ts.map +0 -1
- package/dist/slash-commands/memory-compact.d.ts.map +0 -1
- package/dist/slash-commands/memory-flags.d.ts.map +0 -1
- package/dist/slash-commands/memory-formatters.d.ts.map +0 -1
- package/dist/slash-commands/memory.d.ts.map +0 -1
- package/dist/slash-commands/metrics.d.ts.map +0 -1
- package/dist/slash-commands/mode.d.ts.map +0 -1
- package/dist/slash-commands/modelcaps.d.ts.map +0 -1
- package/dist/slash-commands/models.d.ts.map +0 -1
- package/dist/slash-commands/mouse.d.ts.map +0 -1
- package/dist/slash-commands/next.d.ts.map +0 -1
- package/dist/slash-commands/plan.d.ts.map +0 -1
- package/dist/slash-commands/plugin.d.ts.map +0 -1
- package/dist/slash-commands/profile.d.ts.map +0 -1
- package/dist/slash-commands/project-utils.d.ts.map +0 -1
- package/dist/slash-commands/project.d.ts.map +0 -1
- package/dist/slash-commands/provider-status.d.ts.map +0 -1
- package/dist/slash-commands/prune.d.ts.map +0 -1
- package/dist/slash-commands/refiner.d.ts.map +0 -1
- package/dist/slash-commands/review.d.ts.map +0 -1
- package/dist/slash-commands/sdd/rendering.d.ts.map +0 -1
- package/dist/slash-commands/sdd-command-helpers.d.ts.map +0 -1
- package/dist/slash-commands/sdd-format.d.ts.map +0 -1
- package/dist/slash-commands/sdd.d.ts.map +0 -1
- package/dist/slash-commands/security.d.ts.map +0 -1
- package/dist/slash-commands/session.d.ts.map +0 -1
- package/dist/slash-commands/setmodel.d.ts.map +0 -1
- package/dist/slash-commands/settings.d.ts.map +0 -1
- package/dist/slash-commands/shadow.d.ts.map +0 -1
- package/dist/slash-commands/slash-deep-help.d.ts.map +0 -1
- package/dist/slash-commands/spawn-agents.d.ts.map +0 -1
- package/dist/slash-commands/statusline.d.ts.map +0 -1
- package/dist/slash-commands/suggest.d.ts.map +0 -1
- package/dist/slash-commands/suggestion-store.d.ts.map +0 -1
- package/dist/slash-commands/supervisor.d.ts.map +0 -1
- package/dist/slash-commands/surfaces.d.ts.map +0 -1
- package/dist/slash-commands/tasks.d.ts.map +0 -1
- package/dist/slash-commands/techstack.d.ts.map +0 -1
- package/dist/slash-commands/telegram-pairing.d.ts.map +0 -1
- package/dist/slash-commands/telegram-settings.d.ts.map +0 -1
- package/dist/slash-commands/telegram-setup.d.ts.map +0 -1
- package/dist/slash-commands/todos.d.ts.map +0 -1
- package/dist/slash-commands/tool.d.ts.map +0 -1
- package/dist/slash-commands/tools.d.ts.map +0 -1
- package/dist/slash-commands/tuneup.d.ts.map +0 -1
- package/dist/slash-commands/working-dir.d.ts.map +0 -1
- package/dist/slash-commands/worktree.d.ts.map +0 -1
- package/dist/slash-commands/yolo.d.ts.map +0 -1
- package/dist/spinner.d.ts.map +0 -1
- package/dist/subcommands/contracts.d.ts.map +0 -1
- package/dist/subcommands/handlers/acp.d.ts.map +0 -1
- package/dist/subcommands/handlers/audit.d.ts.map +0 -1
- package/dist/subcommands/handlers/auth-local-help.d.ts.map +0 -1
- package/dist/subcommands/handlers/auth.d.ts.map +0 -1
- package/dist/subcommands/handlers/bench-run-help.d.ts.map +0 -1
- package/dist/subcommands/handlers/bench.d.ts.map +0 -1
- package/dist/subcommands/handlers/chronicle.d.ts.map +0 -1
- package/dist/subcommands/handlers/config-history.d.ts.map +0 -1
- package/dist/subcommands/handlers/diag-doctor.d.ts.map +0 -1
- package/dist/subcommands/handlers/export.d.ts.map +0 -1
- package/dist/subcommands/handlers/helpers.d.ts.map +0 -1
- package/dist/subcommands/handlers/hq.d.ts.map +0 -1
- package/dist/subcommands/handlers/init.d.ts.map +0 -1
- package/dist/subcommands/handlers/mailbox-serve.d.ts.map +0 -1
- package/dist/subcommands/handlers/mcp.d.ts.map +0 -1
- package/dist/subcommands/handlers/model-smoke-test.d.ts.map +0 -1
- package/dist/subcommands/handlers/modeldiag-profiles.d.ts.map +0 -1
- package/dist/subcommands/handlers/modeldiag.d.ts.map +0 -1
- package/dist/subcommands/handlers/models-add-help.d.ts.map +0 -1
- package/dist/subcommands/handlers/per-subcommand-deep-help-table.d.ts.map +0 -1
- package/dist/subcommands/handlers/per-subcommand-help-data.d.ts.map +0 -1
- package/dist/subcommands/handlers/per-subcommand-help-table.d.ts.map +0 -1
- package/dist/subcommands/handlers/per-subcommand-help-types.d.ts.map +0 -1
- package/dist/subcommands/handlers/per-subcommand-help.d.ts.map +0 -1
- package/dist/subcommands/handlers/permissions.d.ts.map +0 -1
- package/dist/subcommands/handlers/plugin-usage.d.ts.map +0 -1
- package/dist/subcommands/handlers/project.d.ts.map +0 -1
- package/dist/subcommands/handlers/projects.d.ts.map +0 -1
- package/dist/subcommands/handlers/providers-models.d.ts.map +0 -1
- package/dist/subcommands/handlers/quick.d.ts.map +0 -1
- package/dist/subcommands/handlers/replay.d.ts.map +0 -1
- package/dist/subcommands/handlers/rewind.d.ts.map +0 -1
- package/dist/subcommands/handlers/sessions-config.d.ts.map +0 -1
- package/dist/subcommands/handlers/sessions-fleet.d.ts.map +0 -1
- package/dist/subcommands/handlers/tools-skills.d.ts.map +0 -1
- package/dist/subcommands/handlers/update.d.ts.map +0 -1
- package/dist/subcommands/handlers/version-help.d.ts.map +0 -1
- package/dist/subcommands/index.d.ts.map +0 -1
- package/dist/theme.d.ts.map +0 -1
- package/dist/tools-skills-UNKLOB7M.js.map +0 -7
- package/dist/tui-thinking-word.d.ts.map +0 -1
- package/dist/tuneup.d.ts.map +0 -1
- package/dist/update-YC4TYW2Y.js.map +0 -7
- package/dist/update-check-UMYTOH7Z.js.map +0 -7
- package/dist/update-check.d.ts.map +0 -1
- package/dist/utils/delay-format.d.ts.map +0 -1
- package/dist/utils/hq-ttl.d.ts.map +0 -1
- package/dist/utils/win32-cmd.d.ts.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/version-help-DROHZRW6.js.map +0 -7
- package/dist/version.d.ts.map +0 -1
- package/dist/webui-server/client-registration.d.ts.map +0 -1
- package/dist/webui-server/connection-handler.d.ts.map +0 -1
- package/dist/webui-server/context-breakdown.d.ts.map +0 -1
- package/dist/webui-server/contracts.d.ts.map +0 -1
- package/dist/webui-server/cost-helpers.d.ts.map +0 -1
- package/dist/webui-server/kanban-host-adapter.d.ts.map +0 -1
- package/dist/webui-server/kanban-run-mirror.d.ts.map +0 -1
- package/dist/webui-server/kanban-supervisor.d.ts.map +0 -1
- package/dist/webui-server/lifecycle.d.ts.map +0 -1
- package/dist/webui-server/listen-helpers.d.ts.map +0 -1
- package/dist/webui-server/logger-shim.d.ts.map +0 -1
- package/dist/webui-server/node-pty-loader.d.ts.map +0 -1
- package/dist/webui-server/prefs-seeding.d.ts.map +0 -1
- package/dist/webui-server/privileged-actions.d.ts.map +0 -1
- package/dist/webui-server/provider-config.d.ts.map +0 -1
- package/dist/webui-server/session-start-payload.d.ts.map +0 -1
- package/dist/webui-server/setup-events.d.ts.map +0 -1
- package/dist/webui-server/static-serve.d.ts.map +0 -1
- package/dist/webui-server/stream-coalescer.d.ts.map +0 -1
- package/dist/webui-server/terminal-log-view.d.ts.map +0 -1
- package/dist/webui-server-ZF5KVGC5.js.map +0 -7
- package/dist/webui-server-options.d.ts.map +0 -1
- package/dist/webui-server.d.ts.map +0 -1
- package/dist/wiring/brain-and-orchestration.d.ts.map +0 -1
- package/dist/wiring/codebase-index.d.ts.map +0 -1
- package/dist/wiring/command-host-adapters.d.ts.map +0 -1
- package/dist/wiring/command-host-state.d.ts.map +0 -1
- package/dist/wiring/controllers.d.ts.map +0 -1
- package/dist/wiring/dep-watcher-bridge.d.ts.map +0 -1
- package/dist/wiring/dep-watcher.d.ts.map +0 -1
- package/dist/wiring/design-studio.d.ts.map +0 -1
- package/dist/wiring/director-setup.d.ts.map +0 -1
- package/dist/wiring/eternal-command-handlers.d.ts.map +0 -1
- package/dist/wiring/fleet-command-handlers.d.ts.map +0 -1
- package/dist/wiring/hq-telemetry.d.ts.map +0 -1
- package/dist/wiring/lifecycle-plugins.d.ts.map +0 -1
- package/dist/wiring/mailbox-bridge-bootstrap.d.ts.map +0 -1
- package/dist/wiring/management-tools.d.ts.map +0 -1
- package/dist/wiring/metrics.d.ts.map +0 -1
- package/dist/wiring/pipeline.d.ts.map +0 -1
- package/dist/wiring/plugins.d.ts.map +0 -1
- package/dist/wiring/provider-runtime-setup.d.ts.map +0 -1
- package/dist/wiring/provider-runtime.d.ts.map +0 -1
- package/dist/wiring/provider-status.d.ts.map +0 -1
- package/dist/wiring/provider-utility-tools.d.ts.map +0 -1
- package/dist/wiring/provider.d.ts.map +0 -1
- package/dist/wiring/replay.d.ts.map +0 -1
- package/dist/wiring/runtime-controller-deps.d.ts.map +0 -1
- package/dist/wiring/runtime-dispatch-state.d.ts.map +0 -1
- package/dist/wiring/runtime-lifecycle-deps.d.ts.map +0 -1
- package/dist/wiring/runtime-picker-deps.d.ts.map +0 -1
- package/dist/wiring/sage.d.ts.map +0 -1
- package/dist/wiring/sdd-handlers.d.ts.map +0 -1
- package/dist/wiring/security-command.d.ts.map +0 -1
- package/dist/wiring/session-command-handlers.d.ts.map +0 -1
- package/dist/wiring/session-registry.d.ts.map +0 -1
- package/dist/wiring/session.d.ts.map +0 -1
- package/dist/wiring/slash-commands.d.ts.map +0 -1
- package/dist/wiring/to-execute-deps.d.ts.map +0 -1
- package/dist/wiring/tools.d.ts.map +0 -1
package/dist/hq-server/ws.d.ts
CHANGED
|
@@ -3,10 +3,69 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module hq-server/ws
|
|
5
5
|
*/
|
|
6
|
-
import type { HqCommandAuditLog, HqEventEnvelope, HqPersistence, HqRedactionPolicy, HqToken, HqTranscriptEntry } from '@wrongstack/core/hq';
|
|
6
|
+
import type { HqClientResumeMessage, HqCommandAuditLog, HqEventEnvelope, HqPeerRehydrateReason, HqPersistence, HqRedactionPolicy, HqToken, HqTranscriptEntry } from '@wrongstack/core/hq';
|
|
7
7
|
import { WebSocket } from 'ws';
|
|
8
8
|
import type { ConnectedClient, HqSnapshotBroadcaster, TranscriptRing } from './types.js';
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Detect leader loss and emit the appropriate envelope. Currently wired
|
|
11
|
+
* on `client.closed` (graceful close) and the two heartbeat-timeout sites
|
|
12
|
+
* in `hq-server.ts`. An `auth-revoked` call site is a planned follow-up;
|
|
13
|
+
* the `reason` parameter already accepts it.
|
|
14
|
+
*
|
|
15
|
+
* Returns `true` when a leader-loss event was actually emitted. Note:
|
|
16
|
+
* the dedup gate (`PEER_DEDUP_WINDOW_MS`) suppresses re-emit for the same
|
|
17
|
+
* `(projectId, previousLeaderHandle)` and is intentionally NOT considered
|
|
18
|
+
* a "not the leader" outcome — the lost client is still the leader; the
|
|
19
|
+
* function returns `false` purely because there is nothing new to broadcast.
|
|
20
|
+
* Callers that need to log the loss should consult `lostClient.isLeader`
|
|
21
|
+
* separately.
|
|
22
|
+
*
|
|
23
|
+
* Dedup: a `peer.rehydrate` for the same `(projectId, previousLeaderHandle)`
|
|
24
|
+
* is suppressed if one was emitted within `PEER_DEDUP_WINDOW_MS` (1 h).
|
|
25
|
+
* `peer.lost` is not deduped — a project losing its last surviving client
|
|
26
|
+
* is significant enough to emit every time the topology changes.
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectLeaderLoss(lostClient: ConnectedClient, clients: Map<WebSocket, ConnectedClient>, browsers: Set<WebSocket>, reason: HqPeerRehydrateReason, eventSink?: {
|
|
29
|
+
eventLog: HqEventEnvelope[];
|
|
30
|
+
persistence?: HqPersistence | undefined;
|
|
31
|
+
}): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Server-side fanout of a `hq.kanban_snapshot` envelope after a merge.
|
|
34
|
+
*
|
|
35
|
+
* C2 — broadcasts the post-merge `delta` payload to:
|
|
36
|
+
* - every client whose `projectId` matches `projectId`, and
|
|
37
|
+
* - every browser in `browsers` (browsers are not project-scoped at the
|
|
38
|
+
* WS level; the browser-side projection filters by project when it
|
|
39
|
+
* applies the snapshot).
|
|
40
|
+
*
|
|
41
|
+
* The `delta` payload is the same touched-only payload the merge handler
|
|
42
|
+
* builds (full-set broadcasts drive V8 heap exhaustion on long-lived
|
|
43
|
+
* boards — see the merge handler's comment).
|
|
44
|
+
*
|
|
45
|
+
* Exported for direct unit testing in `tests/hq-kanban-fanout.test.ts`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function fanoutKanbanDelta(message: string, clients: Map<WebSocket, ConnectedClient>, browsers: Set<WebSocket>, projectId: string): {
|
|
48
|
+
clientsNotified: number;
|
|
49
|
+
browsersNotified: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Server-side handler for `client.resume` frames.
|
|
53
|
+
*
|
|
54
|
+
* Wired from `handleClient` (line 511) when the client frame type is
|
|
55
|
+
* `client.resume`. The handler:
|
|
56
|
+
* - Validates identity (clientId/projectId match against the WS).
|
|
57
|
+
* - Updates `client.lastSeenAt`.
|
|
58
|
+
* - Computes the cursor (what the client has received).
|
|
59
|
+
* - Filters `eventLog` for envelopes with `clientId === client.clientId && env.seq > cursor`.
|
|
60
|
+
* - Checks the log cannot serve the gap (log_unavailable).
|
|
61
|
+
* - Checks the gap is fresh (last_seen_too_old).
|
|
62
|
+
* - Checks the gap is not too large (gap_too_large).
|
|
63
|
+
* - Sends `hq.resume_gap` on success.
|
|
64
|
+
*
|
|
65
|
+
* Exported for direct unit testing in `tests/hq-resume-handler.test.ts`.
|
|
66
|
+
*/
|
|
67
|
+
export declare function handleClientResume(ws: WebSocket, clients: Map<WebSocket, ConnectedClient>, eventLog: HqEventEnvelope[], frame: HqClientResumeMessage, snapshotBroadcaster?: HqSnapshotBroadcaster): void;
|
|
68
|
+
export declare function handleBrowser(ws: WebSocket, snapshotBroadcaster: HqSnapshotBroadcaster, browsers: Set<WebSocket>, eventLog: HqEventEnvelope[]): void;
|
|
10
69
|
export declare function handleClient(ws: WebSocket, clients: Map<WebSocket, ConnectedClient>, browsers: Set<WebSocket>, eventLog: HqEventEnvelope[], auth: {
|
|
11
70
|
token?: HqToken | undefined;
|
|
12
71
|
getOperatorPolicy: () => Partial<HqRedactionPolicy> | undefined;
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
readLocalSubagentTranscript,
|
|
16
16
|
sanitizeApiError,
|
|
17
17
|
startHqServer
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-C5GH4YBL.js";
|
|
19
19
|
import "./chunk-Q5GTM25S.js";
|
|
20
20
|
import "./chunk-7OCVIDC7.js";
|
|
21
21
|
export {
|
|
@@ -36,4 +36,4 @@ export {
|
|
|
36
36
|
sanitizeApiError,
|
|
37
37
|
startHqServer
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=hq-server-
|
|
39
|
+
//# sourceMappingURL=hq-server-6TSAORAC.js.map
|
package/dist/hq-server.d.ts
CHANGED
|
@@ -39,6 +39,16 @@ export interface HqServerOptions {
|
|
|
39
39
|
allowInsecureOpen?: boolean;
|
|
40
40
|
secureCookies?: boolean;
|
|
41
41
|
requireBrowserAuth?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Trust `Origin: file://` on the HTTP and WebSocket surfaces, for serving the
|
|
44
|
+
* HQ dashboard from a local file in air-gapped use. Default false.
|
|
45
|
+
*
|
|
46
|
+
* Off by default because the Host check does not contain a `file:` page — it
|
|
47
|
+
* can aim at the real HQ authority — so trusting it unconditionally let any
|
|
48
|
+
* locally-opened HTML file clear HQ's only cross-origin control (WS-081).
|
|
49
|
+
* Enable only when you actually serve the dashboard that way.
|
|
50
|
+
*/
|
|
51
|
+
allowFileOrigin?: boolean;
|
|
42
52
|
/**
|
|
43
53
|
* Optional time-to-live (milliseconds) stamped on the first-run browser
|
|
44
54
|
* and client tokens minted on a brand-new HQ data directory. Existing
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
makePromptDelegate,
|
|
7
7
|
renderAgentsTemplate,
|
|
8
8
|
renderDiff
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-A6Q5KGLV.js";
|
|
10
10
|
import {
|
|
11
11
|
theme
|
|
12
12
|
} from "./chunk-QD544J2B.js";
|
|
@@ -16,21 +16,21 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
helpCmd,
|
|
18
18
|
versionCmd
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ARWGQUB3.js";
|
|
20
20
|
import {
|
|
21
21
|
discoverAndMergeProviders
|
|
22
22
|
} from "./chunk-TGDHN4LM.js";
|
|
23
23
|
import {
|
|
24
24
|
DEFAULT_PORT
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-C5GH4YBL.js";
|
|
26
26
|
import "./chunk-Q5GTM25S.js";
|
|
27
27
|
import {
|
|
28
28
|
CLI_VERSION
|
|
29
29
|
} from "./chunk-XJXDOF63.js";
|
|
30
30
|
import {
|
|
31
31
|
runUpdateCommand
|
|
32
|
-
} from "./chunk-
|
|
33
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-I5MEUFDI.js";
|
|
33
|
+
import "./chunk-U3SS4NRH.js";
|
|
34
34
|
import "./chunk-F4PEGAJZ.js";
|
|
35
35
|
import {
|
|
36
36
|
parseArgs,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
import "./chunk-7OCVIDC7.js";
|
|
55
55
|
|
|
56
56
|
// src/cli-entry-point.ts
|
|
57
|
-
import { writeErr } from "@wrongstack/core/utils";
|
|
57
|
+
import { installCrashShield, writeErr } from "@wrongstack/core/utils";
|
|
58
58
|
var SQLITE_WARNING_RE = /sqlite is an experimental feature/i;
|
|
59
59
|
function installSqliteWarningFilter() {
|
|
60
60
|
const originalEmit = process.emitWarning.bind(process);
|
|
@@ -91,6 +91,7 @@ function installBrokenPipeHandlers(options = {}) {
|
|
|
91
91
|
function runAsMain(mainFn) {
|
|
92
92
|
if (!isMain) return;
|
|
93
93
|
installBrokenPipeHandlers();
|
|
94
|
+
installCrashShield();
|
|
94
95
|
mainFn(process.argv.slice(2)).then(
|
|
95
96
|
(c) => {
|
|
96
97
|
process.exitCode = c;
|
|
@@ -1494,10 +1495,10 @@ function compactSingleLine(text) {
|
|
|
1494
1495
|
|
|
1495
1496
|
// src/subcommands/index.ts
|
|
1496
1497
|
var loaders = {
|
|
1497
|
-
acp: async () => (await import("./acp-
|
|
1498
|
+
acp: async () => (await import("./acp-S4LZQB66.js")).acpCmd,
|
|
1498
1499
|
init: async () => (await import("./init-E2NDDOHI.js")).initCmd,
|
|
1499
|
-
auth: async () => (await import("./auth-
|
|
1500
|
-
update: async () => (await import("./update-
|
|
1500
|
+
auth: async () => (await import("./auth-NLLGEYQR.js")).authCmd,
|
|
1501
|
+
update: async () => (await import("./update-MV6TUACD.js")).updateCmd,
|
|
1501
1502
|
sessions: async () => (await import("./sessions-config-NLCMK3BY.js")).sessionsCmd,
|
|
1502
1503
|
config: async () => (await import("./sessions-config-NLCMK3BY.js")).configCmd,
|
|
1503
1504
|
rewind: async () => (await import("./rewind-EJMVFVLS.js")).rewindCmd,
|
|
@@ -1514,17 +1515,18 @@ var loaders = {
|
|
|
1514
1515
|
doctor: async () => (await import("./diag-doctor-OQ3AA63O.js")).doctorCmd,
|
|
1515
1516
|
export: async () => (await import("./export-TPORYVRZ.js")).exportCmd,
|
|
1516
1517
|
usage: async () => (await import("./plugin-usage-OU6X6LM3.js")).usageCmd,
|
|
1517
|
-
version: async () => (await import("./version-help-
|
|
1518
|
-
help: async () => (await import("./version-help-
|
|
1518
|
+
version: async () => (await import("./version-help-ASKQYXDJ.js")).versionCmd,
|
|
1519
|
+
help: async () => (await import("./version-help-ASKQYXDJ.js")).helpCmd,
|
|
1519
1520
|
projects: async () => (await import("./projects-XE76NFNZ.js")).projectsCmd,
|
|
1520
1521
|
modeldiag: async () => (await import("./modeldiag-HENYJ4N7.js")).modeldiagCmd,
|
|
1521
1522
|
quick: async () => (await import("./quick-VIO2BEHS.js")).quickCmd,
|
|
1522
1523
|
bench: async () => (await import("./bench-7ZDWSNEF.js")).benchCmd,
|
|
1523
1524
|
chronicle: async () => (await import("./chronicle-QQEQFSSE.js")).chronicleCmd,
|
|
1524
|
-
hq: async () => (await import("./hq-
|
|
1525
|
-
mailbox: async () => (await import("./mailbox-serve-
|
|
1525
|
+
hq: async () => (await import("./hq-WO6CLUSI.js")).hqCmd,
|
|
1526
|
+
mailbox: async () => (await import("./mailbox-serve-DBOOOOWZ.js")).mailboxServeCmd,
|
|
1526
1527
|
permissions: async () => (await import("./permissions-FNYLZIL4.js")).permissionsCmd,
|
|
1527
|
-
project: async () => (await import("./project-BLQ3ALVL.js")).projectCmd
|
|
1528
|
+
project: async () => (await import("./project-BLQ3ALVL.js")).projectCmd,
|
|
1529
|
+
governance: async () => (await import("./governance-V2Z42RBE.js")).governanceCmd
|
|
1528
1530
|
};
|
|
1529
1531
|
var subcommands = Object.fromEntries(
|
|
1530
1532
|
Object.entries(loaders).map(([name, load]) => [
|
|
@@ -2157,7 +2159,7 @@ async function isPortInUse(host, port) {
|
|
|
2157
2159
|
}
|
|
2158
2160
|
async function handleHqShortCircuit(flags) {
|
|
2159
2161
|
if (flags["hq"] !== true) return null;
|
|
2160
|
-
const { startHqServer } = await import("./hq-server-
|
|
2162
|
+
const { startHqServer } = await import("./hq-server-6TSAORAC.js");
|
|
2161
2163
|
const tunnelRequested = flags["tunnel"] === true;
|
|
2162
2164
|
const host = typeof flags["host"] === "string" ? flags["host"] : tunnelRequested ? "127.0.0.1" : HQ_CLI_DEFAULT_HOST;
|
|
2163
2165
|
if (tunnelRequested && !isLoopbackHost(host)) {
|
|
@@ -2316,9 +2318,122 @@ ${color8.green("Cloudflare Quick Tunnel ready:")} ${browserUrl}
|
|
|
2316
2318
|
}
|
|
2317
2319
|
|
|
2318
2320
|
// src/boot/launch-menu.ts
|
|
2319
|
-
import { atomicWrite as atomicWrite3, color as color9, isStdinTTY as isStdinTTY2 } from "@wrongstack/core/utils";
|
|
2320
|
-
import { HQ_CLI_DEFAULT_HOST as HQ_CLI_DEFAULT_HOST2 } from "@wrongstack/core/hq";
|
|
2321
2321
|
import * as fs8 from "node:fs/promises";
|
|
2322
|
+
import { HQ_CLI_DEFAULT_HOST as HQ_CLI_DEFAULT_HOST2 } from "@wrongstack/core/hq";
|
|
2323
|
+
import { atomicWrite as atomicWrite3, color as color9, isStdinTTY as isStdinTTY2, setRawMode as setRawMode2 } from "@wrongstack/core/utils";
|
|
2324
|
+
|
|
2325
|
+
// src/boot/launch-banner.ts
|
|
2326
|
+
var STACK_ORANGE = { r: 253, g: 159, b: 2 };
|
|
2327
|
+
var SIGNAL_PINK = { r: 254, g: 46, b: 95 };
|
|
2328
|
+
function mixRgb(a, b, t) {
|
|
2329
|
+
const clamped = Math.min(1, Math.max(0, t));
|
|
2330
|
+
return {
|
|
2331
|
+
r: Math.round(a.r + (b.r - a.r) * clamped),
|
|
2332
|
+
g: Math.round(a.g + (b.g - a.g) * clamped),
|
|
2333
|
+
b: Math.round(a.b + (b.b - a.b) * clamped)
|
|
2334
|
+
};
|
|
2335
|
+
}
|
|
2336
|
+
function fg(c) {
|
|
2337
|
+
return `\x1B[38;2;${c.r};${c.g};${c.b}m`;
|
|
2338
|
+
}
|
|
2339
|
+
function colorsEnabled() {
|
|
2340
|
+
const flag = (value) => value !== void 0 && value.trim() !== "" && !/^(0|false|no|off)$/i.test(value.trim());
|
|
2341
|
+
if (flag(process.env.NO_COLOR)) return false;
|
|
2342
|
+
if (flag(process.env.FORCE_COLOR)) return true;
|
|
2343
|
+
return process.stdout.isTTY === true;
|
|
2344
|
+
}
|
|
2345
|
+
var WORDMARK_GLYPH_BITS = Object.freeze({
|
|
2346
|
+
W: Object.freeze(["10001", "10001", "10001", "10101", "10101", "10101", "01010"]),
|
|
2347
|
+
R: Object.freeze(["11110", "10001", "10001", "11110", "10100", "10010", "10001"]),
|
|
2348
|
+
O: Object.freeze(["01110", "10001", "10001", "10001", "10001", "10001", "01110"]),
|
|
2349
|
+
N: Object.freeze(["10001", "11001", "11001", "10101", "10011", "10011", "10001"]),
|
|
2350
|
+
G: Object.freeze(["01110", "10001", "10000", "10111", "10001", "10001", "01110"]),
|
|
2351
|
+
S: Object.freeze(["01111", "10000", "10000", "01110", "00001", "00001", "11110"]),
|
|
2352
|
+
T: Object.freeze(["11111", "00100", "00100", "00100", "00100", "00100", "00100"]),
|
|
2353
|
+
A: Object.freeze(["01110", "10001", "10001", "11111", "10001", "10001", "10001"]),
|
|
2354
|
+
C: Object.freeze(["01111", "10000", "10000", "10000", "10000", "10000", "01111"]),
|
|
2355
|
+
K: Object.freeze(["10001", "10010", "10100", "11000", "10100", "10010", "10001"])
|
|
2356
|
+
});
|
|
2357
|
+
var WORDMARK = "WRONGSTACK";
|
|
2358
|
+
var WORDMARK_PIXEL_ROWS = 7;
|
|
2359
|
+
var WORDMARK_ROWS = Math.ceil(WORDMARK_PIXEL_ROWS / 2);
|
|
2360
|
+
var GLYPH_WIDTH = 5;
|
|
2361
|
+
var WORDMARK_WIDTH = WORDMARK.length * GLYPH_WIDTH + WORDMARK.length - 1;
|
|
2362
|
+
function packedCell(top, bottom) {
|
|
2363
|
+
if (top === "1" && bottom === "1") return "\u2588";
|
|
2364
|
+
if (top === "1") return "\u2580";
|
|
2365
|
+
if (bottom === "1") return "\u2584";
|
|
2366
|
+
return " ";
|
|
2367
|
+
}
|
|
2368
|
+
function packedGlyphRow(glyph, row) {
|
|
2369
|
+
const top = glyph[row * 2] ?? "";
|
|
2370
|
+
const bottom = glyph[row * 2 + 1] ?? "";
|
|
2371
|
+
return Array.from(
|
|
2372
|
+
{ length: GLYPH_WIDTH },
|
|
2373
|
+
(_, column) => packedCell(top[column], bottom[column])
|
|
2374
|
+
).join("");
|
|
2375
|
+
}
|
|
2376
|
+
var WORDMARK_LINES = Object.freeze(
|
|
2377
|
+
Array.from(
|
|
2378
|
+
{ length: WORDMARK_ROWS },
|
|
2379
|
+
(_, row) => [...WORDMARK].map((letter) => {
|
|
2380
|
+
const glyph = WORDMARK_GLYPH_BITS[letter];
|
|
2381
|
+
return glyph ? packedGlyphRow(glyph, row) : " ".repeat(GLYPH_WIDTH);
|
|
2382
|
+
}).join(" ")
|
|
2383
|
+
)
|
|
2384
|
+
);
|
|
2385
|
+
function gradientLine(text, colorOn) {
|
|
2386
|
+
if (!colorOn) return text;
|
|
2387
|
+
const length = text.length;
|
|
2388
|
+
let out = "\x1B[1m";
|
|
2389
|
+
for (let i = 0; i < length; i++) {
|
|
2390
|
+
const ch = text[i];
|
|
2391
|
+
if (ch === " ") {
|
|
2392
|
+
out += ch;
|
|
2393
|
+
continue;
|
|
2394
|
+
}
|
|
2395
|
+
const t = length > 1 ? i / (length - 1) : 0.5;
|
|
2396
|
+
out += `${fg(mixRgb(STACK_ORANGE, SIGNAL_PINK, t))}${ch}`;
|
|
2397
|
+
}
|
|
2398
|
+
return `${out}\x1B[0m`;
|
|
2399
|
+
}
|
|
2400
|
+
function dimLine(text, colorOn) {
|
|
2401
|
+
return colorOn ? `\x1B[2m${text}\x1B[22m` : text;
|
|
2402
|
+
}
|
|
2403
|
+
var MARK_COLS = 5;
|
|
2404
|
+
var PINK_HOME = 1;
|
|
2405
|
+
var MARK_WIDTH = MARK_COLS * 2 + (MARK_COLS - 1);
|
|
2406
|
+
function buildMarkLines(colorOn) {
|
|
2407
|
+
const orange = colorOn ? fg(STACK_ORANGE) : "";
|
|
2408
|
+
const pink = colorOn ? fg(SIGNAL_PINK) : "";
|
|
2409
|
+
const reset = colorOn ? "\x1B[0m" : "";
|
|
2410
|
+
return Array.from({ length: 3 }, (_, row) => {
|
|
2411
|
+
const cells = Array.from({ length: MARK_COLS }, (_2, column) => {
|
|
2412
|
+
if (column === PINK_HOME && (row === 1 || row === 2)) return `${pink}\u2588\u2588${reset}`;
|
|
2413
|
+
if (row < 2 && column !== PINK_HOME) return `${orange}\u2588\u2588${reset}`;
|
|
2414
|
+
return " ";
|
|
2415
|
+
});
|
|
2416
|
+
return cells.join(" ").trimEnd();
|
|
2417
|
+
});
|
|
2418
|
+
}
|
|
2419
|
+
function launchBannerLines(columns, version) {
|
|
2420
|
+
const colorOn = colorsEnabled();
|
|
2421
|
+
const tagline = version ? `v${version} \xB7 the wrong stack for all the right reasons` : "the wrong stack for all the right reasons";
|
|
2422
|
+
if (columns < WORDMARK_WIDTH + 4) {
|
|
2423
|
+
const compact = "\u2590\u2588\u258C W R O N G S T A C K";
|
|
2424
|
+
return [gradientLine(compact, colorOn), dimLine(tagline, colorOn)];
|
|
2425
|
+
}
|
|
2426
|
+
const markPad = " ".repeat(Math.max(0, Math.floor((WORDMARK_WIDTH - MARK_WIDTH) / 2)));
|
|
2427
|
+
const tagPad = " ".repeat(Math.max(0, Math.floor((WORDMARK_WIDTH - tagline.length) / 2)));
|
|
2428
|
+
return [
|
|
2429
|
+
...buildMarkLines(colorOn).map((line) => markPad + line),
|
|
2430
|
+
"",
|
|
2431
|
+
...WORDMARK_LINES.map((line) => gradientLine(line, colorOn)),
|
|
2432
|
+
tagPad + dimLine(tagline, colorOn)
|
|
2433
|
+
];
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
// src/boot/launch-menu.ts
|
|
2322
2437
|
var DEFAULT_PORTS = {
|
|
2323
2438
|
webui: 3456,
|
|
2324
2439
|
simpleui: 3466,
|
|
@@ -2330,10 +2445,34 @@ function defaultHostFor(mode) {
|
|
|
2330
2445
|
return mode === "hq" ? HQ_DEFAULT_HOST : DEFAULT_HOST;
|
|
2331
2446
|
}
|
|
2332
2447
|
var MODE_OPTIONS = [
|
|
2333
|
-
{
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2448
|
+
{
|
|
2449
|
+
key: 1,
|
|
2450
|
+
mode: "tui-repl",
|
|
2451
|
+
label: "TUI / REPL",
|
|
2452
|
+
hint: "interactive terminal (default)",
|
|
2453
|
+
icon: "\u2328"
|
|
2454
|
+
},
|
|
2455
|
+
{
|
|
2456
|
+
key: 2,
|
|
2457
|
+
mode: "webui",
|
|
2458
|
+
label: "WebUI",
|
|
2459
|
+
hint: `browser-based project UI (port ${DEFAULT_PORTS.webui})`,
|
|
2460
|
+
icon: "\u{1F310}"
|
|
2461
|
+
},
|
|
2462
|
+
{
|
|
2463
|
+
key: 3,
|
|
2464
|
+
mode: "simpleui",
|
|
2465
|
+
label: "SimpleUI",
|
|
2466
|
+
hint: `lightweight browser UI (port ${DEFAULT_PORTS.simpleui})`,
|
|
2467
|
+
icon: "\u{1F4C4}"
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
key: 4,
|
|
2471
|
+
mode: "hq",
|
|
2472
|
+
label: "HQ",
|
|
2473
|
+
hint: `project-independent dashboard (port ${DEFAULT_PORT})`,
|
|
2474
|
+
icon: "\u{1F4CA}"
|
|
2475
|
+
}
|
|
2337
2476
|
];
|
|
2338
2477
|
var MENU_TIMEOUT_MS = 8e3;
|
|
2339
2478
|
var SUMMARY_TIMEOUT_MS = 5e3;
|
|
@@ -2365,6 +2504,7 @@ var KNOWN_SUBCOMMANDS = /* @__PURE__ */ new Set([
|
|
|
2365
2504
|
"help",
|
|
2366
2505
|
"provider",
|
|
2367
2506
|
"project",
|
|
2507
|
+
"governance",
|
|
2368
2508
|
"session",
|
|
2369
2509
|
"sessions",
|
|
2370
2510
|
"replay",
|
|
@@ -2389,6 +2529,7 @@ async function runLaunchMenu(deps) {
|
|
|
2389
2529
|
}
|
|
2390
2530
|
const { renderer, reader, lastChoice } = deps;
|
|
2391
2531
|
const ports = { ...DEFAULT_PORTS, ...deps.defaultPorts ?? {} };
|
|
2532
|
+
writeBanner(renderer);
|
|
2392
2533
|
if (lastChoice) {
|
|
2393
2534
|
const accept = await promptSummaryGate(deps);
|
|
2394
2535
|
if (accept === "use-last") {
|
|
@@ -2399,32 +2540,37 @@ async function runLaunchMenu(deps) {
|
|
|
2399
2540
|
}
|
|
2400
2541
|
}
|
|
2401
2542
|
renderer.write(`
|
|
2402
|
-
${color9.
|
|
2403
|
-
`);
|
|
2404
|
-
renderer.write(` ${color9.dim("\u2500".repeat(48))}
|
|
2405
|
-
`);
|
|
2406
|
-
renderer.write(` ${color9.amber("?")} Choose how to run WrongStack:
|
|
2543
|
+
${color9.amber("?")} Choose how to run WrongStack:
|
|
2407
2544
|
|
|
2408
2545
|
`);
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2546
|
+
const arrowPick = await promptModeArrow(deps);
|
|
2547
|
+
let choice;
|
|
2548
|
+
if (arrowPick) {
|
|
2549
|
+
if (arrowPick.cancelled) {
|
|
2550
|
+
return { mode: "tui-repl", cancelled: true };
|
|
2551
|
+
}
|
|
2552
|
+
choice = { mode: arrowPick.mode };
|
|
2553
|
+
} else {
|
|
2554
|
+
for (const opt of MODE_OPTIONS) {
|
|
2555
|
+
renderer.write(
|
|
2556
|
+
` ${color9.bold(String(opt.key))}) ${opt.icon} ${color9.bold(opt.label)} ${color9.dim(opt.hint)}
|
|
2412
2557
|
`
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2558
|
+
);
|
|
2559
|
+
}
|
|
2560
|
+
renderer.write(`
|
|
2416
2561
|
${color9.dim("\u2500".repeat(48))}
|
|
2417
2562
|
`);
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2563
|
+
const answer = (await reader.readLine(
|
|
2564
|
+
` ${color9.amber("?")} Mode ${color9.dim("[1-4, q to quit]")} ${color9.dim(`(auto 1 in ${MENU_TIMEOUT_MS / 1e3}s)`)} `,
|
|
2565
|
+
{ timeoutMs: MENU_TIMEOUT_MS, defaultAnswer: "1" }
|
|
2566
|
+
)).trim().toLowerCase();
|
|
2567
|
+
if (answer === "q" || answer === "quit") {
|
|
2568
|
+
renderer.write(color9.dim(" Goodbye!\n"));
|
|
2569
|
+
return { mode: "tui-repl", cancelled: true };
|
|
2570
|
+
}
|
|
2571
|
+
const picked = MODE_OPTIONS.find((o) => String(o.key) === answer || o.mode === answer);
|
|
2572
|
+
choice = picked ? { mode: picked.mode } : { mode: "tui-repl" };
|
|
2425
2573
|
}
|
|
2426
|
-
const picked = MODE_OPTIONS.find((o) => String(o.key) === answer || o.mode === answer);
|
|
2427
|
-
const choice = picked ? { mode: picked.mode } : { mode: "tui-repl" };
|
|
2428
2574
|
if (choice.mode !== "tui-repl") {
|
|
2429
2575
|
const port = await promptPort(deps, ports[choice.mode]);
|
|
2430
2576
|
choice.port = port;
|
|
@@ -2434,6 +2580,155 @@ async function runLaunchMenu(deps) {
|
|
|
2434
2580
|
}
|
|
2435
2581
|
return finalize(choice, ports);
|
|
2436
2582
|
}
|
|
2583
|
+
function writeBanner(renderer) {
|
|
2584
|
+
const columns = process.stdout.columns ?? 80;
|
|
2585
|
+
renderer.write("\n");
|
|
2586
|
+
for (const line of launchBannerLines(columns, CLI_VERSION)) {
|
|
2587
|
+
renderer.write(` ${line}
|
|
2588
|
+
`);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
function canUseArrowMenu() {
|
|
2592
|
+
if (process.env.VITEST || process.env.NODE_ENV === "test") return false;
|
|
2593
|
+
const stdin = process.stdin;
|
|
2594
|
+
return isStdinTTY2() && process.stdout.isTTY === true && typeof stdin.setRawMode === "function";
|
|
2595
|
+
}
|
|
2596
|
+
async function promptModeArrow(deps) {
|
|
2597
|
+
if (!canUseArrowMenu()) return null;
|
|
2598
|
+
const { renderer } = deps;
|
|
2599
|
+
const stdin = process.stdin;
|
|
2600
|
+
const out = (s) => renderer.write(s);
|
|
2601
|
+
return await new Promise((resolve2) => {
|
|
2602
|
+
let index = 0;
|
|
2603
|
+
let drawn = 0;
|
|
2604
|
+
let remaining = Math.round(MENU_TIMEOUT_MS / 1e3);
|
|
2605
|
+
let countdown = true;
|
|
2606
|
+
let settled = false;
|
|
2607
|
+
let interval;
|
|
2608
|
+
const wasRaw = stdin.isRaw === true;
|
|
2609
|
+
const wasPaused = stdin.isPaused();
|
|
2610
|
+
const rows = () => {
|
|
2611
|
+
const lines = [];
|
|
2612
|
+
for (let i = 0; i < MODE_OPTIONS.length; i++) {
|
|
2613
|
+
const opt = MODE_OPTIONS[i];
|
|
2614
|
+
const selected = i === index;
|
|
2615
|
+
const pointer = selected ? color9.pink("\u276F") : " ";
|
|
2616
|
+
const label = selected ? color9.amber(color9.bold(opt.label)) : color9.bold(opt.label);
|
|
2617
|
+
lines.push(
|
|
2618
|
+
` ${pointer} ${color9.dim(String(opt.key))} ${opt.icon} ${label} ${color9.dim(opt.hint)}`
|
|
2619
|
+
);
|
|
2620
|
+
}
|
|
2621
|
+
lines.push("");
|
|
2622
|
+
const auto = countdown ? color9.dim(` \xB7 auto-launches ${MODE_OPTIONS[index].label} in ${remaining}s`) : "";
|
|
2623
|
+
lines.push(` ${color9.dim("\u2191\u2193 move \xB7 Enter launch \xB7 1-4 jump \xB7 q quit")}${auto}`);
|
|
2624
|
+
return lines;
|
|
2625
|
+
};
|
|
2626
|
+
const paint = () => {
|
|
2627
|
+
const lines = rows();
|
|
2628
|
+
let frame = drawn > 0 ? `\x1B[${drawn}A` : "";
|
|
2629
|
+
frame += `${lines.map((line) => `\x1B[2K${line}`).join("\n")}
|
|
2630
|
+
`;
|
|
2631
|
+
out(frame);
|
|
2632
|
+
drawn = lines.length;
|
|
2633
|
+
};
|
|
2634
|
+
const stopInput = () => {
|
|
2635
|
+
if (interval) {
|
|
2636
|
+
clearInterval(interval);
|
|
2637
|
+
interval = void 0;
|
|
2638
|
+
}
|
|
2639
|
+
stdin.off("data", onData);
|
|
2640
|
+
stdin.off("close", onClose);
|
|
2641
|
+
try {
|
|
2642
|
+
setRawMode2(stdin, wasRaw);
|
|
2643
|
+
} catch {
|
|
2644
|
+
}
|
|
2645
|
+
if (wasPaused) stdin.pause();
|
|
2646
|
+
};
|
|
2647
|
+
const settle = (result, finalLine) => {
|
|
2648
|
+
if (settled) return;
|
|
2649
|
+
settled = true;
|
|
2650
|
+
stopCountdown();
|
|
2651
|
+
stopInput();
|
|
2652
|
+
if (drawn > 0) out(`\x1B[${drawn}A`);
|
|
2653
|
+
out("\x1B[0J");
|
|
2654
|
+
out(finalLine);
|
|
2655
|
+
out("\x1B[?25h");
|
|
2656
|
+
resolve2(result);
|
|
2657
|
+
};
|
|
2658
|
+
const pick = () => {
|
|
2659
|
+
const opt = MODE_OPTIONS[index];
|
|
2660
|
+
settle(
|
|
2661
|
+
{ cancelled: false, mode: opt.mode },
|
|
2662
|
+
` ${color9.green("\u2714")} ${opt.icon} ${color9.bold(opt.label)} ${color9.dim(opt.hint)}
|
|
2663
|
+
`
|
|
2664
|
+
);
|
|
2665
|
+
};
|
|
2666
|
+
const cancel = () => {
|
|
2667
|
+
settle({ cancelled: true, mode: "tui-repl" }, color9.dim(" Goodbye!\n"));
|
|
2668
|
+
};
|
|
2669
|
+
const stopCountdown = () => {
|
|
2670
|
+
if (!countdown) return;
|
|
2671
|
+
countdown = false;
|
|
2672
|
+
if (interval) {
|
|
2673
|
+
clearInterval(interval);
|
|
2674
|
+
interval = void 0;
|
|
2675
|
+
}
|
|
2676
|
+
};
|
|
2677
|
+
const onData = (buf) => {
|
|
2678
|
+
const key = buf.toString("utf8");
|
|
2679
|
+
stopCountdown();
|
|
2680
|
+
if (key === "" || key === "q" || key === "Q" || key === "\x1B") {
|
|
2681
|
+
cancel();
|
|
2682
|
+
return;
|
|
2683
|
+
}
|
|
2684
|
+
if (key === "\r" || key === "\n") {
|
|
2685
|
+
pick();
|
|
2686
|
+
return;
|
|
2687
|
+
}
|
|
2688
|
+
if (key === "\x1B[A" || key === "\x1BOA" || key === "k") {
|
|
2689
|
+
index = (index + MODE_OPTIONS.length - 1) % MODE_OPTIONS.length;
|
|
2690
|
+
paint();
|
|
2691
|
+
return;
|
|
2692
|
+
}
|
|
2693
|
+
if (key === "\x1B[B" || key === "\x1BOB" || key === "j") {
|
|
2694
|
+
index = (index + 1) % MODE_OPTIONS.length;
|
|
2695
|
+
paint();
|
|
2696
|
+
return;
|
|
2697
|
+
}
|
|
2698
|
+
if (/^[0-9]$/.test(key)) {
|
|
2699
|
+
const digit = Number.parseInt(key, 10);
|
|
2700
|
+
if (digit >= 1 && digit <= MODE_OPTIONS.length) {
|
|
2701
|
+
index = digit - 1;
|
|
2702
|
+
pick();
|
|
2703
|
+
return;
|
|
2704
|
+
}
|
|
2705
|
+
}
|
|
2706
|
+
paint();
|
|
2707
|
+
};
|
|
2708
|
+
const onClose = () => {
|
|
2709
|
+
settle({ cancelled: true, mode: "tui-repl" }, "");
|
|
2710
|
+
};
|
|
2711
|
+
try {
|
|
2712
|
+
setRawMode2(stdin, true);
|
|
2713
|
+
stdin.resume();
|
|
2714
|
+
} catch {
|
|
2715
|
+
resolve2(null);
|
|
2716
|
+
return;
|
|
2717
|
+
}
|
|
2718
|
+
out("\x1B[?25l");
|
|
2719
|
+
paint();
|
|
2720
|
+
stdin.on("data", onData);
|
|
2721
|
+
stdin.once("close", onClose);
|
|
2722
|
+
interval = setInterval(() => {
|
|
2723
|
+
remaining -= 1;
|
|
2724
|
+
if (remaining <= 0) {
|
|
2725
|
+
pick();
|
|
2726
|
+
return;
|
|
2727
|
+
}
|
|
2728
|
+
paint();
|
|
2729
|
+
}, 1e3);
|
|
2730
|
+
});
|
|
2731
|
+
}
|
|
2437
2732
|
async function promptSummaryGate(deps) {
|
|
2438
2733
|
const { renderer, reader, lastChoice } = deps;
|
|
2439
2734
|
if (!lastChoice) return "re-prompt";
|
|
@@ -2854,7 +3149,7 @@ async function initializeCli(argv) {
|
|
|
2854
3149
|
async function main(argv) {
|
|
2855
3150
|
const cliCtx = await initializeCli(argv);
|
|
2856
3151
|
if (typeof cliCtx === "number") return cliCtx;
|
|
2857
|
-
const { runInteractive } = await import("./cli-main-
|
|
3152
|
+
const { runInteractive } = await import("./cli-main-TJEU4OUY.js");
|
|
2858
3153
|
return runInteractive(cliCtx);
|
|
2859
3154
|
}
|
|
2860
3155
|
|
package/dist/kanban-hq-sync.d.ts
CHANGED
|
@@ -4,7 +4,19 @@ export interface KanbanHqSync {
|
|
|
4
4
|
handleRemote(snapshot: HqKanbanSnapshotPayload): Promise<void>;
|
|
5
5
|
/** Explicit refresh seam for hosts/tests; daemon events call the same path. */
|
|
6
6
|
refresh(boardId?: string): void;
|
|
7
|
+
getStats(): KanbanHqSyncStats;
|
|
7
8
|
stop(): void;
|
|
8
9
|
}
|
|
9
|
-
export
|
|
10
|
+
export interface KanbanHqSyncStats {
|
|
11
|
+
localPublishActive: boolean;
|
|
12
|
+
pendingBoardIds: number;
|
|
13
|
+
fullRescanPending: boolean;
|
|
14
|
+
remoteApplyQueued: boolean;
|
|
15
|
+
pendingRemoteBoards: number;
|
|
16
|
+
localPublishRuns: number;
|
|
17
|
+
coalescedLocalRefreshes: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function createKanbanHqSync(projectRoot: string, projectId?: string, testHooks?: {
|
|
20
|
+
beforeLocalPublish?: (() => Promise<void>) | undefined;
|
|
21
|
+
}): KanbanHqSync;
|
|
10
22
|
//# sourceMappingURL=kanban-hq-sync.d.ts.map
|
|
@@ -47,7 +47,7 @@ export interface LiveSettingsInput {
|
|
|
47
47
|
breakerEnabled?: boolean | undefined;
|
|
48
48
|
/** Auto kill/reset delay (ms) when the breaker trips. 0 = manual recovery. */
|
|
49
49
|
breakerAutoKillResetMs?: number | undefined;
|
|
50
|
-
/** TUI statusline density. Defaults to
|
|
50
|
+
/** TUI statusline density. Defaults to minimum when unset. */
|
|
51
51
|
statuslineMode?: 'minimum' | 'detailed' | undefined;
|
|
52
52
|
/** Single word shown in the TUI rainbow working-state chip. */
|
|
53
53
|
thinkingWord?: string | undefined;
|
|
@@ -65,5 +65,14 @@ export interface LiveSettingsInput {
|
|
|
65
65
|
showModelReasoning?: boolean | undefined;
|
|
66
66
|
/** Optionally show the persistent AGENT SWARM and todo mission queue panel; defaults to true at the storage layer. */
|
|
67
67
|
showAgentSwarmPanel?: boolean | undefined;
|
|
68
|
+
/** Show SAGE Memory Inject blocks in tool results. Default: false. */
|
|
69
|
+
showSageMemoryInject?: boolean | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* When true, the read tool includes codebase-index symbols alongside
|
|
72
|
+
* file content. Persisted as `autonomy.readAdvancedMode`.
|
|
73
|
+
*/
|
|
74
|
+
readSymbols?: boolean | undefined;
|
|
75
|
+
/** Minimum relation strength for SAGE memory injection. Default: 0.85. */
|
|
76
|
+
sageMemoryInjectThreshold?: number | undefined;
|
|
68
77
|
}
|
|
69
78
|
//# sourceMappingURL=live-settings-input.d.ts.map
|