@wrongstack/cli 1.1.5 → 1.1.7

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.
Files changed (36) hide show
  1. package/dist/{acp-NKUEYJDZ.js → acp-DJWUTU5J.js} +6 -6
  2. package/dist/acp-leader/acp-leader-host.d.ts +7 -0
  3. package/dist/acp-leader/acp-leader-provider.d.ts +10 -0
  4. package/dist/acp-leader/acp-leader-skills.d.ts +5 -0
  5. package/dist/acp-leader/acp-leader-stream.d.ts +8 -0
  6. package/dist/{auth-2ZG5DBHS.js → auth-XOJIPFFX.js} +2 -2
  7. package/dist/{chunk-UROB7MK5.js → chunk-BQ5OMSZG.js} +3 -2
  8. package/dist/{chunk-M7PSENGF.js → chunk-CL3BU45P.js} +5 -4
  9. package/dist/{chunk-M7FNHCE3.js → chunk-EAATL6FL.js} +110 -30
  10. package/dist/{chunk-JFYQGMMM.js → chunk-FWUIKCCO.js} +54 -49
  11. package/dist/{chunk-MEBXWI7U.js → chunk-OCB4I4GQ.js} +4 -4
  12. package/dist/{chunk-VEESMPTX.js → chunk-PGC44T7N.js} +2 -1
  13. package/dist/{chunk-5SGMUDP5.js → chunk-QRWXHGLB.js} +2 -2
  14. package/dist/{chunk-7BM4LGKQ.js → chunk-V3AKAH25.js} +6 -6
  15. package/dist/{chunk-LUEO5HLZ.js → chunk-X4DEQLAZ.js} +1 -1
  16. package/dist/{cli-context-CQYGIWOU.js → cli-context-F3B5TRZX.js} +40 -15
  17. package/dist/{cli-main-VRUJNUBX.js → cli-main-BPYX7AC6.js} +45 -12
  18. package/dist/{execution-IV72RUSM.js → execution-W3OWWXY7.js} +23 -9
  19. package/dist/{hq-54PQYR5O.js → hq-V2M4IYCI.js} +13 -3
  20. package/dist/hq-server/login-attempt-store.d.ts +2 -0
  21. package/dist/{hq-server-YK7FBLL6.js → hq-server-QM7EIVGJ.js} +2 -2
  22. package/dist/index.js +6 -6
  23. package/dist/live-settings-input.d.ts +1 -0
  24. package/dist/short-circuit-flags-6LWKP4KP.js +11 -0
  25. package/dist/{subcommands-OCJNO57E.js → subcommands-SR4K73WA.js} +2 -2
  26. package/dist/{version-help-X6CC4CFY.js → version-help-MITOB3YK.js} +2 -2
  27. package/dist/vibeui-dist-OEPU6BOM.js +27 -0
  28. package/dist/vibeui-dist.d.ts +6 -0
  29. package/dist/webui-server/host-settings.d.ts +1 -1
  30. package/dist/webui-server/http-bridge.d.ts +1 -1
  31. package/dist/webui-server/instance-registration.d.ts +1 -1
  32. package/dist/{webui-server-V2R5WQUK.js → webui-server-KREX7GYA.js} +11 -9
  33. package/dist/webui-server-options.d.ts +1 -1
  34. package/dist/wrongforge-leader/wrongforge-leader-provider.d.ts +8 -1
  35. package/package.json +35 -34
  36. package/dist/short-circuit-flags-AGHURHMQ.js +0 -11
package/dist/index.js CHANGED
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-CVVQ5NCN.js";
6
6
  import {
7
7
  parseArgs
8
- } from "./chunk-M7PSENGF.js";
8
+ } from "./chunk-CL3BU45P.js";
9
9
  import {
10
10
  closeAcpLeaderSessions
11
- } from "./chunk-LUEO5HLZ.js";
11
+ } from "./chunk-X4DEQLAZ.js";
12
12
  import {
13
13
  CLI_VERSION
14
14
  } from "./chunk-HKMOIIPQ.js";
@@ -18,7 +18,7 @@ import "./chunk-W23PY4IJ.js";
18
18
  import { format, stripVTControlCharacters } from "node:util";
19
19
  var LEVELS = ["log", "info", "debug", "warn"];
20
20
  function shouldCaptureTuiStartup(flags, positional, interactive = process.stdin.isTTY === true && process.stdout.isTTY === true) {
21
- return interactive && !flags["no-tui"] && !flags["webui"] && !flags["simpleui"] && !flags["hq"] && !flags["desktop"] && !flags["remote"] && !flags["no-interactive"] && typeof flags["prompt"] !== "string" && (positional.length === 0 || positional[0] === "quick" || positional[0] === "resume" && positional.length === 2);
21
+ return interactive && !flags["no-tui"] && !flags["webui"] && !flags["simpleui"] && !flags["vibeui"] && !flags["hq"] && !flags["desktop"] && !flags["remote"] && !flags["no-interactive"] && typeof flags["prompt"] !== "string" && (positional.length === 0 || positional[0] === "quick" || positional[0] === "resume" && positional.length === 2);
22
22
  }
23
23
  function startTuiStartupOutput(enabled) {
24
24
  const originals = Object.fromEntries(LEVELS.map((level) => [level, console[level]]));
@@ -125,7 +125,7 @@ async function main(argv) {
125
125
  applyAsciiMode(earlyFlags);
126
126
  }
127
127
  if (earlyFlags["help"] === true || earlyFlags["version"] === true) {
128
- const { handleHelpVersionShortCircuit } = await import("./short-circuit-flags-AGHURHMQ.js");
128
+ const { handleHelpVersionShortCircuit } = await import("./short-circuit-flags-6LWKP4KP.js");
129
129
  const earlyExit = await handleHelpVersionShortCircuit(argv);
130
130
  if (earlyExit !== null) return earlyExit;
131
131
  }
@@ -134,7 +134,7 @@ async function main(argv) {
134
134
  shouldCaptureTuiStartup(parsed.flags, parsed.positional)
135
135
  );
136
136
  try {
137
- const { initializeCli } = await import("./cli-context-CQYGIWOU.js");
137
+ const { initializeCli } = await import("./cli-context-F3B5TRZX.js");
138
138
  const cliCtx = await initializeCli(argv, {
139
139
  onNonTuiLaunch: () => startupOutput.stop()
140
140
  });
@@ -144,7 +144,7 @@ async function main(argv) {
144
144
  } else {
145
145
  startupOutput.stop();
146
146
  }
147
- const { runInteractive } = await import("./cli-main-VRUJNUBX.js");
147
+ const { runInteractive } = await import("./cli-main-BPYX7AC6.js");
148
148
  return await runInteractive(cliCtx);
149
149
  } finally {
150
150
  startupOutput.stop();
@@ -70,6 +70,7 @@ export interface LiveSettingsInput {
70
70
  showModelReasoning?: boolean | undefined;
71
71
  /** Default presentation density for committed TUI tool results. */
72
72
  toolResultViewMode?: 'minimal' | 'normal' | 'full' | undefined;
73
+ selectionMode?: 'block' | 'text' | undefined;
73
74
  /** Agent swarm panel placement: 'bottom' (lower region), 'sidebar' (right sidebar), or 'off' (hidden).
74
75
  * Backward-compat: legacy boolean values are coerced by the TUI settings adapter. Default: 'bottom'. */
75
76
  showAgentSwarmPanel?: 'bottom' | 'sidebar' | 'off' | boolean | undefined;
@@ -0,0 +1,11 @@
1
+ import {
2
+ handleHelpVersionShortCircuit
3
+ } from "./chunk-OCB4I4GQ.js";
4
+ import "./chunk-CL3BU45P.js";
5
+ import "./chunk-BQ5OMSZG.js";
6
+ import "./chunk-HKMOIIPQ.js";
7
+ import "./chunk-W23PY4IJ.js";
8
+ export {
9
+ handleHelpVersionShortCircuit
10
+ };
11
+ //# sourceMappingURL=short-circuit-flags-6LWKP4KP.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  subcommandNames,
3
3
  subcommands
4
- } from "./chunk-7BM4LGKQ.js";
4
+ } from "./chunk-V3AKAH25.js";
5
5
  import "./chunk-W23PY4IJ.js";
6
6
  export {
7
7
  subcommandNames,
8
8
  subcommands
9
9
  };
10
- //# sourceMappingURL=subcommands-OCJNO57E.js.map
10
+ //# sourceMappingURL=subcommands-SR4K73WA.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  helpCmd,
3
3
  versionCmd
4
- } from "./chunk-UROB7MK5.js";
4
+ } from "./chunk-BQ5OMSZG.js";
5
5
  import "./chunk-HKMOIIPQ.js";
6
6
  import "./chunk-W23PY4IJ.js";
7
7
  export {
8
8
  helpCmd,
9
9
  versionCmd
10
10
  };
11
- //# sourceMappingURL=version-help-X6CC4CFY.js.map
11
+ //# sourceMappingURL=version-help-MITOB3YK.js.map
@@ -0,0 +1,27 @@
1
+ import "./chunk-W23PY4IJ.js";
2
+
3
+ // src/vibeui-dist.ts
4
+ import { existsSync } from "node:fs";
5
+ import { createRequire } from "node:module";
6
+ import * as path from "node:path";
7
+ import { wrongstackPackageJsonPath } from "@wrongstack/core/utils";
8
+ function resolveVibeUiDistDir(deps = {}) {
9
+ const require2 = createRequire(import.meta.url);
10
+ let packageJson;
11
+ try {
12
+ packageJson = deps.resolvePackageJson?.() ?? wrongstackPackageJsonPath("@wrongstack/vibeui", (id) => require2.resolve(id));
13
+ } catch {
14
+ throw new Error("VibeUI package is unavailable. Reinstall WrongStack with @wrongstack/vibeui.");
15
+ }
16
+ const distDir = path.join(path.dirname(packageJson), "dist");
17
+ if (!(deps.exists ?? existsSync)(path.join(distDir, "index.html"))) {
18
+ throw new Error(
19
+ "VibeUI frontend is not built. Run `bun run --filter @wrongstack/vibeui build`."
20
+ );
21
+ }
22
+ return distDir;
23
+ }
24
+ export {
25
+ resolveVibeUiDistDir
26
+ };
27
+ //# sourceMappingURL=vibeui-dist-OEPU6BOM.js.map
@@ -0,0 +1,6 @@
1
+ /** Resolve prebuilt assets in workspace, npm and extracted standalone installations. */
2
+ export declare function resolveVibeUiDistDir(deps?: {
3
+ resolvePackageJson?: () => string;
4
+ exists?: (file: string) => boolean;
5
+ }): string;
6
+ //# sourceMappingURL=vibeui-dist.d.ts.map
@@ -5,7 +5,7 @@ export declare function resolveWebuiHostSettings(opts: CliWebUIOptions): {
5
5
  publicUrl: string | undefined;
6
6
  publicWsUrl: string | undefined;
7
7
  requireToken: boolean;
8
- surface: "simpleui" | "webui";
8
+ surface: "simpleui" | "vibeui" | "webui";
9
9
  requestedHttpPort: number;
10
10
  strictPort: boolean;
11
11
  globalRoot: string;
@@ -9,7 +9,7 @@ import type { CliWebUIOptions } from '../webui-server-options.js';
9
9
  import type { WebuiTransport } from './transport.js';
10
10
  export interface WebuiHttpBridgeInput {
11
11
  opts: CliWebUIOptions;
12
- surface: 'webui' | 'simpleui';
12
+ surface: 'webui' | 'simpleui' | 'vibeui';
13
13
  host: string;
14
14
  httpPort: number;
15
15
  strictPort: boolean;
@@ -2,7 +2,7 @@
2
2
  import type { CliWebUIOptions } from '../webui-server-options.js';
3
3
  export interface EmbeddedInstanceRegistrationInput {
4
4
  opts: CliWebUIOptions;
5
- surface: 'webui' | 'simpleui';
5
+ surface: 'webui' | 'simpleui' | 'vibeui';
6
6
  host: string;
7
7
  httpPort: number;
8
8
  publicUrl: string | undefined;
@@ -19,11 +19,11 @@ import {
19
19
  readCachedWrongForgeInfo,
20
20
  refreshWrongForgeInfoCache,
21
21
  reportWrongForgeQuota
22
- } from "./chunk-5SGMUDP5.js";
22
+ } from "./chunk-QRWXHGLB.js";
23
23
  import {
24
24
  WRONGFORGE_AGENT_ID,
25
25
  resolveWrongForgeEndpoint
26
- } from "./chunk-VEESMPTX.js";
26
+ } from "./chunk-PGC44T7N.js";
27
27
  import {
28
28
  startCliHqConnection
29
29
  } from "./chunk-76JE54WD.js";
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  ACP_LEADER_PROVIDER_ID,
35
35
  setAcpLeaderSessionAgents
36
- } from "./chunk-LUEO5HLZ.js";
36
+ } from "./chunk-X4DEQLAZ.js";
37
37
  import {
38
38
  CLI_VERSION
39
39
  } from "./chunk-HKMOIIPQ.js";
@@ -171,7 +171,7 @@ function createEmbeddedClientRegistration(opts, clients, abortControllers, getSe
171
171
  }
172
172
  function startEmbeddedLiveStatusLogger(opts, clients, abortControllers, getSessionAgents, terminalLogView) {
173
173
  return startWebUILiveStatusLogger({
174
- title: opts.surface === "simpleui" ? "SimpleUI" : "WebUI",
174
+ title: opts.surface === "vibeui" ? "VibeUI" : opts.surface === "simpleui" ? "SimpleUI" : "WebUI",
175
175
  events: opts.events,
176
176
  dashboard: terminalLogView,
177
177
  getSessionList: () => {
@@ -381,7 +381,9 @@ function resolveWebuiHostSettings(opts) {
381
381
  const publicWsUrl = opts.publicWsUrl ?? process.env["WEBUI_PUBLIC_WS_URL"];
382
382
  const requireToken = opts.requireToken ?? envFlag("WEBUI_REQUIRE_TOKEN");
383
383
  const surface = opts.surface ?? "webui";
384
- const surfaceDefaults = surface === "simpleui" ? { http: 3466 } : { http: 3456 };
384
+ const surfaceDefaults = {
385
+ http: surface === "vibeui" ? 3476 : surface === "simpleui" ? 3466 : 3456
386
+ };
385
387
  const requestedHttpPort = opts.httpPort ?? opts.port ?? surfaceDefaults.http;
386
388
  const strictPort = opts.strictPort ?? isStrictPort();
387
389
  const globalRoot = opts.globalConfigPath ? path3.dirname(opts.globalConfigPath) : wstackGlobalRoot();
@@ -525,7 +527,7 @@ async function startWebuiHttpBridge(input) {
525
527
  publicWsUrl,
526
528
  apiToken: wsToken,
527
529
  requireToken,
528
- deferListen: surface === "simpleui",
530
+ deferListen: surface === "simpleui" || surface === "vibeui",
529
531
  strictPort,
530
532
  // Resolve the same-origin health probes from live preferences, including
531
533
  // changes made after boot, just like the standalone WebUI host.
@@ -563,7 +565,7 @@ async function startWebuiHttpBridge(input) {
563
565
  );
564
566
  });
565
567
  if (httpServer) {
566
- const boundPort = surface === "simpleui" ? await startDeferredHttpListen({
568
+ const boundPort = surface === "simpleui" || surface === "vibeui" ? await startDeferredHttpListen({
567
569
  server: httpServer.server,
568
570
  host,
569
571
  httpPort,
@@ -2238,7 +2240,7 @@ async function runWebUI(opts) {
2238
2240
  publicHostnames
2239
2241
  } = resolveWebuiHostSettings(opts);
2240
2242
  const terminalLogView = startTerminalDashboard({
2241
- title: surface === "simpleui" ? "SimpleUI" : "WebUI",
2243
+ title: surface === "vibeui" ? "VibeUI" : surface === "simpleui" ? "SimpleUI" : "WebUI",
2242
2244
  quiet: !envFlag2("WEBUI_LOGS"),
2243
2245
  // The dashboard is operator-owned terminal output, so retain the full
2244
2246
  // authenticated access URL here even though startup logs remain redacted.
@@ -2534,4 +2536,4 @@ async function runWebUI(opts) {
2534
2536
  export {
2535
2537
  runWebUI
2536
2538
  };
2537
- //# sourceMappingURL=webui-server-V2R5WQUK.js.map
2539
+ //# sourceMappingURL=webui-server-KREX7GYA.js.map
@@ -35,7 +35,7 @@ export interface CliWebUIOptions {
35
35
  /** Alternate frontend dist directory (used by the independent SimpleUI surface). */
36
36
  frontendDistDir?: string | undefined;
37
37
  /** Surface kind: 'webui' (default) or 'simpleui'. Controls port defaults and the instance registry label. */
38
- surface?: 'webui' | 'simpleui' | undefined;
38
+ surface?: 'webui' | 'simpleui' | 'vibeui' | undefined;
39
39
  /** Fixed access token/password. Defaults to WEBUI_TOKEN or random per process. */
40
40
  accessToken?: string | undefined;
41
41
  /** Fail instead of auto-advancing when the requested HTTP/WS port is busy. */
@@ -18,7 +18,14 @@ export declare class WrongForgeLeaderProvider implements Provider {
18
18
  private client;
19
19
  private info;
20
20
  private model;
21
- /** A configured side model, when the user named one. */
21
+ /**
22
+ * A side model for a turn WrongForge does not lead. `explicitOnly` (a side
23
+ * request through `complete()`) takes only the model the user named in
24
+ * `acp.leader.sideModel`: WrongForge answers those itself (`oneShot`), and
25
+ * handing them to `fallbackModels[0]` let that model take over the session.
26
+ * A worker's turn may still fall back to the fallback chain, since `oneShot`
27
+ * would leave it without tools.
28
+ */
22
29
  private sideProvider;
23
30
  complete(req: Request, opts: {
24
31
  signal: AbortSignal;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/cli",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack CLI — terminal AI coding agent with provider catalog from models.dev. Provides `wrongstack` and `wstack` binaries.",
6
6
  "keywords": [
@@ -48,46 +48,47 @@
48
48
  "clean": "bun -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\""
49
49
  },
50
50
  "dependencies": {
51
- "@wrongstack/acp": "1.1.2",
52
- "@wrongstack/bench": "1.1.2",
53
- "@wrongstack/codebase-index-mcp": "1.1.2",
54
- "@wrongstack/core": "1.1.2",
55
- "@wrongstack/kanban": "1.1.2",
56
- "@wrongstack/kanban-mcp": "1.1.2",
57
- "@wrongstack/mailbox-mcp": "1.1.2",
58
- "@wrongstack/mcp": "1.1.2",
59
- "@wrongstack/persistence": "1.1.2",
60
- "@wrongstack/plug-lsp": "1.1.2",
61
- "@wrongstack/plugins": "1.1.2",
62
- "@wrongstack/primitives": "1.1.2",
63
- "@wrongstack/providers": "1.1.2",
64
- "@wrongstack/requirement-intake": "1.1.2",
65
- "@wrongstack/requirement-intake-mcp": "1.1.2",
66
- "@wrongstack/runtime": "1.1.2",
67
- "@wrongstack/sage": "1.1.2",
68
- "@wrongstack/sage-mcp": "1.1.2",
69
- "@wrongstack/sdd": "1.1.2",
70
- "@wrongstack/security-scanner": "1.1.2",
71
- "@wrongstack/simpleui": "1.1.2",
72
- "@wrongstack/techstack": "1.1.2",
73
- "@wrongstack/telegram": "1.1.2",
74
- "@wrongstack/tools": "1.1.2",
75
- "@wrongstack/tui": "1.1.2",
76
- "@wrongstack/vector-memory": "1.1.2",
77
- "@wrongstack/webui": "1.1.2",
78
- "@wrongstack/webui-hq": "1.1.2",
79
- "@wrongstack/webui-protocol": "1.1.2",
80
- "@wrongstack/webui-server": "1.1.2",
81
- "@wrongstack/wrongtrace": "1.1.2",
51
+ "@wrongstack/acp": "1.1.7",
52
+ "@wrongstack/bench": "1.1.7",
53
+ "@wrongstack/codebase-index-mcp": "1.1.7",
54
+ "@wrongstack/core": "1.1.7",
55
+ "@wrongstack/kanban": "1.1.7",
56
+ "@wrongstack/kanban-mcp": "1.1.7",
57
+ "@wrongstack/mailbox-mcp": "1.1.7",
58
+ "@wrongstack/mcp": "1.1.7",
59
+ "@wrongstack/persistence": "1.1.7",
60
+ "@wrongstack/plug-lsp": "1.1.7",
61
+ "@wrongstack/plugins": "1.1.7",
62
+ "@wrongstack/primitives": "1.1.7",
63
+ "@wrongstack/providers": "1.1.7",
64
+ "@wrongstack/requirement-intake": "1.1.7",
65
+ "@wrongstack/requirement-intake-mcp": "1.1.7",
66
+ "@wrongstack/runtime": "1.1.7",
67
+ "@wrongstack/sage": "1.1.7",
68
+ "@wrongstack/sage-mcp": "1.1.7",
69
+ "@wrongstack/sdd": "1.1.7",
70
+ "@wrongstack/security-scanner": "1.1.7",
71
+ "@wrongstack/simpleui": "1.1.7",
72
+ "@wrongstack/vibeui": "1.1.7",
73
+ "@wrongstack/techstack": "1.1.7",
74
+ "@wrongstack/telegram": "1.1.7",
75
+ "@wrongstack/tools": "1.1.7",
76
+ "@wrongstack/tui": "1.1.7",
77
+ "@wrongstack/vector-memory": "1.1.7",
78
+ "@wrongstack/webui": "1.1.7",
79
+ "@wrongstack/webui-hq": "1.1.7",
80
+ "@wrongstack/webui-protocol": "1.1.7",
81
+ "@wrongstack/webui-server": "1.1.7",
82
+ "@wrongstack/wrongtrace": "1.1.7",
82
83
  "ws": "^8.22.0"
83
84
  },
84
85
  "optionalDependencies": {
85
- "@wrongstack/desktop": "1.1.2"
86
+ "@wrongstack/desktop": "1.1.7"
86
87
  },
87
88
  "devDependencies": {
88
89
  "@types/node": "^26.5.1",
89
90
  "@types/ws": "^8.18.1",
90
- "@wrongstack/governance": "1.1.2",
91
+ "@wrongstack/governance": "1.1.7",
91
92
  "jsdom": "^30.0.1",
92
93
  "typescript": "^7.0.2"
93
94
  },
@@ -1,11 +0,0 @@
1
- import {
2
- handleHelpVersionShortCircuit
3
- } from "./chunk-MEBXWI7U.js";
4
- import "./chunk-M7PSENGF.js";
5
- import "./chunk-UROB7MK5.js";
6
- import "./chunk-HKMOIIPQ.js";
7
- import "./chunk-W23PY4IJ.js";
8
- export {
9
- handleHelpVersionShortCircuit
10
- };
11
- //# sourceMappingURL=short-circuit-flags-AGHURHMQ.js.map