@wrongstack/cli 1.0.24 → 1.0.27

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 (146) hide show
  1. package/data/providers.json +44 -0
  2. package/dist/{acp-AJWSKWE5.js → acp-M4565YUW.js} +33 -20
  3. package/dist/ascii-mode-SG4PRNLP.js +7 -0
  4. package/dist/{auth-GRBZ7Y3D.js → auth-TE55JF4Z.js} +14 -14
  5. package/dist/{bench-N5K7Z5O3.js → bench-GTLPM22B.js} +2 -2
  6. package/dist/boot/append-system-prompt.d.ts +10 -0
  7. package/dist/boot/ascii-mode.d.ts +12 -0
  8. package/dist/boot/container-wiring.d.ts +4 -2
  9. package/dist/boot/dispatch-singleshot.d.ts +12 -1
  10. package/dist/boot/dispatch-webui.d.ts +2 -0
  11. package/dist/boot/goal-tui-default.d.ts +10 -0
  12. package/dist/boot/mcp-config-flag.d.ts +22 -0
  13. package/dist/boot/piped-stdin.d.ts +40 -0
  14. package/dist/boot/restricted-mode.d.ts +15 -0
  15. package/dist/boot/safe-mode.d.ts +30 -0
  16. package/dist/boot/single-shot-budget.d.ts +30 -0
  17. package/dist/boot/stream-json.d.ts +36 -0
  18. package/dist/boot/structured-output.d.ts +16 -0
  19. package/dist/boot/system-prompt-builder.d.ts +2 -0
  20. package/dist/boot/tool-restriction-flags.d.ts +36 -0
  21. package/dist/boot/worktree-sessions.d.ts +21 -0
  22. package/dist/boot-provider-selection.d.ts +67 -0
  23. package/dist/boot.d.ts +1 -38
  24. package/dist/{chunk-LFMVHT3R.js → chunk-2ERX3RPN.js} +11 -13
  25. package/dist/chunk-4TVYGG6G.js +62 -0
  26. package/dist/chunk-5JYDKG5B.js +154 -0
  27. package/dist/{chunk-3VXYY5JC.js → chunk-5UZBUV2H.js} +3 -19
  28. package/dist/chunk-CZTXF6HY.js +140 -0
  29. package/dist/{chunk-DRM7PSW7.js → chunk-ENRYW73H.js} +527 -381
  30. package/dist/{chunk-SKPDE62W.js → chunk-EPR42SWM.js} +36 -6
  31. package/dist/{chunk-YBUCXXYZ.js → chunk-F5DCFAKI.js} +1 -1
  32. package/dist/chunk-HDMFKTT3.js +157 -0
  33. package/dist/{chunk-PGKJ2OQP.js → chunk-HFZH2XJN.js} +5 -5
  34. package/dist/chunk-HLSHFXTO.js +97 -0
  35. package/dist/{chunk-QFPQXKCG.js → chunk-KOEO4CJG.js} +21 -6
  36. package/dist/chunk-LBPLTTZ6.js +105 -0
  37. package/dist/{chunk-3OCUS3VN.js → chunk-LDCGZJTC.js} +4 -4
  38. package/dist/chunk-LKPEBZBE.js +143 -0
  39. package/dist/chunk-N57IU5FG.js +58 -0
  40. package/dist/{chunk-2EBVTYJR.js → chunk-NRXWOMK7.js} +17 -3
  41. package/dist/chunk-PZQBGUVZ.js +18 -0
  42. package/dist/{chunk-MHEBWVXL.js → chunk-Q4INH2DG.js} +46 -2
  43. package/dist/{chunk-5SEYGOCH.js → chunk-RDGGWMTI.js} +2 -2
  44. package/dist/{chunk-BLD5DSVA.js → chunk-RGFWGUAB.js} +27 -15
  45. package/dist/{chunk-ZZRSG7VK.js → chunk-RZ4ZDRYA.js} +3 -3
  46. package/dist/{chunk-S4FFHDJG.js → chunk-SDJCLEK6.js} +6 -2
  47. package/dist/{chunk-U46QR4WR.js → chunk-TI7KLHYX.js} +132 -3
  48. package/dist/chunk-X756ZS72.js +329 -0
  49. package/dist/{chunk-JF2MULWF.js → chunk-YHYINL47.js} +47 -15
  50. package/dist/{cli-context-34Q5IJRA.js → cli-context-C7RBSWHF.js} +434 -327
  51. package/dist/{cli-main-AELJDBGU.js → cli-main-TQTH73ZK.js} +2948 -2315
  52. package/dist/cli-update-notice.d.ts +2 -1
  53. package/dist/config-doctor.d.ts +1 -1
  54. package/dist/{diag-doctor-WIFJH3XH.js → diag-doctor-BIZAFIAT.js} +2 -2
  55. package/dist/{execution-PYC5FCS4.js → execution-3STBD2U7.js} +2167 -1831
  56. package/dist/execution-chimera-review.d.ts +18 -1
  57. package/dist/fleet/host-types.d.ts +3 -1
  58. package/dist/goal-commands.d.ts +47 -0
  59. package/dist/goal-host.d.ts +1 -14
  60. package/dist/{hq-JTUTFI4L.js → hq-44F4OQH2.js} +9 -8
  61. package/dist/hq-fleet-control.d.ts +36 -0
  62. package/dist/hq-live-status.d.ts +22 -0
  63. package/dist/hq-publisher.d.ts +18 -0
  64. package/dist/hq-server/routes/command-handlers.d.ts +12 -1
  65. package/dist/hq-server/routes/data-handlers.d.ts +1 -1
  66. package/dist/hq-server/socket-credentials.d.ts +63 -0
  67. package/dist/hq-server/upgrade-handler.d.ts +2 -0
  68. package/dist/hq-server/ws.d.ts +24 -0
  69. package/dist/{hq-server-PC7GZMPT.js → hq-server-UIB24LU6.js} +2 -2
  70. package/dist/{hq-service-NW56MUP2.js → hq-service-BMMJAHRT.js} +4 -4
  71. package/dist/import-claude-code-AYG24RG2.js +268 -0
  72. package/dist/index.js +12 -8
  73. package/dist/live-settings-input.d.ts +1 -0
  74. package/dist/{mailbox-serve-WDOCH6KR.js → mailbox-serve-GNGXEQ2R.js} +3 -3
  75. package/dist/{modeldiag-36OGAL5C.js → modeldiag-W7XAE625.js} +9 -9
  76. package/dist/{per-subcommand-help-XE77MTGJ.js → per-subcommand-help-QDAQASPZ.js} +2 -2
  77. package/dist/permission-prompt.d.ts +14 -0
  78. package/dist/permission-rules-view.d.ts +18 -0
  79. package/dist/{permissions-CFDLXETM.js → permissions-PL27UHYD.js} +67 -45
  80. package/dist/{plugin-usage-S5LVGMBW.js → plugin-usage-CIGOOTX3.js} +2 -2
  81. package/dist/{plugins-RHBIVLI7.js → plugins-HQTXUD6A.js} +4 -2
  82. package/dist/preflight.d.ts +1 -1
  83. package/dist/{projects-LMNAGGEU.js → projects-T4CZCA25.js} +3 -6
  84. package/dist/provider-helpers.d.ts +7 -11
  85. package/dist/{providers-models-2CFG46RD.js → providers-models-5Z2PJTEW.js} +5 -5
  86. package/dist/release-asset-download.d.ts +10 -0
  87. package/dist/release-attestation.d.ts +28 -0
  88. package/dist/remote/remote-session.d.ts +64 -0
  89. package/dist/remote/remote-target.d.ts +69 -0
  90. package/dist/remote-GB5VXCCT.js +576 -0
  91. package/dist/{replay-Z3FTJEMM.js → replay-DEI566CW.js} +2 -2
  92. package/dist/services/commit-message.d.ts +2 -1
  93. package/dist/session-move-P2EC2COA.js +44 -0
  94. package/dist/session-move.d.ts +20 -0
  95. package/dist/session-stats.d.ts +10 -0
  96. package/dist/{sessions-config-IQUH2GXT.js → sessions-config-XHLXJ5C3.js} +109 -10
  97. package/dist/short-circuit-flags-5TNTJPQR.js +10 -0
  98. package/dist/slash-commands/command-context.d.ts +15 -5
  99. package/dist/slash-commands/goal-refiner.d.ts +4 -49
  100. package/dist/slash-commands/mcp.d.ts +2 -1
  101. package/dist/slash-commands/permissions.d.ts +4 -0
  102. package/dist/slash-commands/settings-context-mutations.d.ts +5 -0
  103. package/dist/slash-commands/settings-limits-mutations.d.ts +12 -0
  104. package/dist/slash-commands/theme.d.ts +15 -1
  105. package/dist/standalone-auto-update-TOTRGCSA.js +249 -0
  106. package/dist/standalone-auto-update.d.ts +65 -0
  107. package/dist/standalone-update-LZO3MNLH.js +24 -0
  108. package/dist/standalone-update.d.ts +37 -1
  109. package/dist/subcommands/handlers/import-claude-code.d.ts +52 -0
  110. package/dist/subcommands/handlers/permissions.d.ts +9 -3
  111. package/dist/subcommands/handlers/remote.d.ts +6 -0
  112. package/dist/subcommands/handlers/sessions-fleet.d.ts +0 -12
  113. package/dist/subcommands/handlers/version-help.d.ts +5 -0
  114. package/dist/{subcommands-ZTSIN7LG.js → subcommands-BHQYLDSD.js} +2 -2
  115. package/dist/tui-resume-callback.d.ts +18 -0
  116. package/dist/{typesafe-HVEVPA6R.js → typesafe-U7YB2RRV.js} +5 -5
  117. package/dist/{typesafe-topic-replay-4W73BOLV.js → typesafe-topic-replay-ZILIU3WS.js} +18 -2
  118. package/dist/{update-7XIOEXTD.js → update-TDZX4IL2.js} +4 -4
  119. package/dist/{update-check-2POMBHFB.js → update-check-J5ZVKS73.js} +3 -3
  120. package/dist/version-JB2UAV2A.js +11 -0
  121. package/dist/version-help-XJJQ7YSH.js +10 -0
  122. package/dist/webui-server/route-contexts.d.ts +1 -1
  123. package/dist/webui-server/session-start-payload.d.ts +5 -1
  124. package/dist/{webui-server-L2SICPTB.js → webui-server-GCXIO3JY.js} +515 -365
  125. package/dist/webui-server-lifecycle.d.ts +57 -0
  126. package/dist/webui-server-options.d.ts +10 -0
  127. package/dist/webui-server.d.ts +0 -14
  128. package/dist/wiring/brain-and-orchestration.d.ts +3 -1
  129. package/dist/wiring/cli-prompt-and-tools-setup.d.ts +9 -0
  130. package/dist/wiring/cli-slash-commands-setup.d.ts +1 -0
  131. package/dist/wiring/command-host-state.d.ts +2 -0
  132. package/dist/wiring/hq-telemetry.d.ts +12 -0
  133. package/dist/wiring/lifecycle-plugins.d.ts +4 -2
  134. package/dist/wiring/metrics.d.ts +9 -1
  135. package/dist/wiring/pipeline.d.ts +2 -7
  136. package/dist/wiring/plugins.d.ts +3 -0
  137. package/dist/wiring/provider-status.d.ts +1 -0
  138. package/dist/wiring/provider-utility-tools.d.ts +3 -1
  139. package/package.json +29 -28
  140. package/dist/chunk-2BKFWIER.js +0 -98
  141. package/dist/chunk-424ORSE7.js +0 -56
  142. package/dist/chunk-OWNC7LMD.js +0 -78
  143. package/dist/chunk-QBBF7GIK.js +0 -65
  144. package/dist/short-circuit-flags-SDT53OML.js +0 -10
  145. package/dist/standalone-update-MW47J3AK.js +0 -164
  146. package/dist/version-help-WZ623NWM.js +0 -10
@@ -0,0 +1,65 @@
1
+ import type { Config } from '@wrongstack/core/types';
2
+ import { type StagedStandaloneUpdate } from './standalone-update.js';
3
+ import { type UpdateInfo } from './update-check.js';
4
+ /** A verified build waiting to be swapped in. */
5
+ export interface PendingUpdate extends StagedStandaloneUpdate {
6
+ /** `bun build --target` it was built for. */
7
+ target: string;
8
+ /** Real path of the executable it replaces. */
9
+ executable: string;
10
+ stagedAt: string;
11
+ }
12
+ /** `update.autoDownload` (default on) and the `WRONGSTACK_NO_AUTO_UPDATE` switch. */
13
+ export declare function autoUpdateEnabled(config: Config | undefined, env?: NodeJS.ProcessEnv): boolean;
14
+ /** The swap a previous session made, reported once. */
15
+ export declare function takeAppliedUpdate(dir?: string): {
16
+ from: string;
17
+ to: string;
18
+ } | undefined;
19
+ /** The updates of one install of the executable. */
20
+ export interface StandaloneUpdater {
21
+ /** Its verified build waiting to be swapped in, if any. */
22
+ pending(): PendingUpdate | undefined;
23
+ /**
24
+ * Download, verify and stage the latest release when it is newer. Returns
25
+ * the pending update (possibly one staged earlier), or undefined when there
26
+ * is nothing newer or another session is downloading.
27
+ */
28
+ stage(signal?: AbortSignal): Promise<PendingUpdate | undefined>;
29
+ /**
30
+ * Swap the pending build in over the executable. Synchronous (it runs from
31
+ * the process `exit` handler); returns the installed version, or undefined
32
+ * when there was nothing to install. A pending build that is not newer, or
33
+ * whose file no longer matches its digest, is thrown away.
34
+ */
35
+ apply(platform?: NodeJS.Platform): string | undefined;
36
+ /**
37
+ * Drop the pending build after `wstack update` brought the executable to
38
+ * the latest release: it is either the build just installed or an older one.
39
+ */
40
+ clear(): void;
41
+ }
42
+ export declare function standaloneUpdater(install: {
43
+ executable: string;
44
+ target: string;
45
+ current: string;
46
+ dir?: string | undefined;
47
+ }): StandaloneUpdater;
48
+ /** What an interactive session sees of the background update. */
49
+ export interface StandaloneAutoUpdate {
50
+ /** Called once the update is ready (immediately, when it already is). */
51
+ subscribe(listener: (version: string) => void): () => void;
52
+ /** Stop a download in progress. The exit swap stays armed. */
53
+ dispose(): void;
54
+ }
55
+ /**
56
+ * Start the background update for an interactive session: arm the exit swap,
57
+ * and download the latest release when `updateInfo` says one is newer.
58
+ * Undefined for the npm install or when switched off.
59
+ */
60
+ export declare function startStandaloneAutoUpdate(options: {
61
+ getConfig: () => Config | undefined;
62
+ updateInfo: UpdateInfo | undefined;
63
+ onError?: ((message: string) => void) | undefined;
64
+ }): StandaloneAutoUpdate | undefined;
65
+ //# sourceMappingURL=standalone-auto-update.d.ts.map
@@ -0,0 +1,24 @@
1
+ import {
2
+ MAX_BINARY_BYTES,
3
+ fetchLatestStandaloneVersion,
4
+ findStandaloneRelease,
5
+ installExecutableFrom,
6
+ parseSha256Sums,
7
+ replaceExecutable,
8
+ standaloneAssetName,
9
+ updateStandaloneBinary,
10
+ verifyStandaloneDigest
11
+ } from "./chunk-X756ZS72.js";
12
+ import "./chunk-F5DCFAKI.js";
13
+ export {
14
+ MAX_BINARY_BYTES,
15
+ fetchLatestStandaloneVersion,
16
+ findStandaloneRelease,
17
+ installExecutableFrom,
18
+ parseSha256Sums,
19
+ replaceExecutable,
20
+ standaloneAssetName,
21
+ updateStandaloneBinary,
22
+ verifyStandaloneDigest
23
+ };
24
+ //# sourceMappingURL=standalone-update-LZO3MNLH.js.map
@@ -1,7 +1,28 @@
1
1
  import type { TerminalRenderer } from './renderer.js';
2
- export declare const RELEASES_REPO = "WrongStack/WrongStack";
2
+ export declare const MAX_BINARY_BYTES: number;
3
+ interface ReleaseAsset {
4
+ name: string;
5
+ browser_download_url: string;
6
+ /** `sha256:<hex>`, computed by GitHub when the asset was uploaded. */
7
+ digest?: string | null | undefined;
8
+ }
3
9
  /** Asset name a build target publishes under (mirrors build-binaries.mjs `outputName`). */
4
10
  export declare function standaloneAssetName(target: string): string;
11
+ /** The latest release's executable for `target`, with its SHA256SUMS. */
12
+ export interface StandaloneRelease {
13
+ version: string;
14
+ assetName: string;
15
+ asset: ReleaseAsset;
16
+ sums: ReleaseAsset;
17
+ }
18
+ /** Throws when the latest release has no build for `target`. */
19
+ export declare function findStandaloneRelease(target: string, signal?: AbortSignal): Promise<StandaloneRelease>;
20
+ /**
21
+ * Throws unless `sha256` is the release's own build of the asset: listed in
22
+ * its SHA256SUMS, equal to the digest GitHub computed at upload, and vouched
23
+ * for by the release workflow's build attestation.
24
+ */
25
+ export declare function verifyStandaloneDigest(release: StandaloneRelease, sha256: string, signal?: AbortSignal): Promise<void>;
5
26
  /** Latest released version, for the update check. */
6
27
  export declare function fetchLatestStandaloneVersion(timeoutMs?: number, signal?: AbortSignal): Promise<string>;
7
28
  /** `<sha256> <name>` lines → map. */
@@ -11,9 +32,24 @@ export declare function parseSha256Sums(text: string): Map<string, string>;
11
32
  * is a same-filesystem rename.
12
33
  */
13
34
  export declare function replaceExecutable(target: string, bytes: Buffer, platform?: NodeJS.Platform): void;
35
+ /**
36
+ * Replace `target` with the file at `source` (a downloaded update), refusing
37
+ * unless the copy that is about to become the executable hashes to `sha256`.
38
+ * Synchronous: it runs from the process `exit` handler.
39
+ */
40
+ export declare function installExecutableFrom(target: string, source: string, sha256: string, platform?: NodeJS.Platform): void;
41
+ /** A verified download the background updater left waiting (standalone-auto-update.ts). */
42
+ export interface StagedStandaloneUpdate {
43
+ version: string;
44
+ file: string;
45
+ sha256: string;
46
+ }
14
47
  /** `wstack update` for the standalone binary. Returns the process exit code. */
15
48
  export declare function updateStandaloneBinary(options: {
16
49
  current: string;
17
50
  renderer: Pick<TerminalRenderer, 'write'>;
51
+ /** Installed instead of downloading again when it is the latest release. */
52
+ staged?: StagedStandaloneUpdate | undefined;
18
53
  }): Promise<number>;
54
+ export {};
19
55
  //# sourceMappingURL=standalone-update.d.ts.map
@@ -0,0 +1,52 @@
1
+ import type { MCPServerConfig } from '@wrongstack/core/types';
2
+ import type { SubcommandHandler } from '../contracts.js';
3
+ export type McpImportSource = 'claude-user' | 'claude-project-local' | 'repository';
4
+ export interface McpImportCandidate {
5
+ name: string;
6
+ source: McpImportSource;
7
+ config: Partial<MCPServerConfig>;
8
+ action: 'add' | 'overwrite' | 'skip-exists' | 'skip-invalid';
9
+ enabled: boolean;
10
+ note?: string | undefined;
11
+ }
12
+ export interface ClaudeCodeImportPlan {
13
+ mcp: McpImportCandidate[];
14
+ notes: string[];
15
+ }
16
+ export interface ClaudeCodeSources {
17
+ /** Parsed `~/.claude.json`, or undefined when absent. */
18
+ userState?: Record<string, unknown> | undefined;
19
+ /** Parsed `<project>/.mcp.json`, or undefined when absent. */
20
+ projectMcp?: Record<string, unknown> | undefined;
21
+ /** Settings files that exist, with their parsed content. */
22
+ settings: Array<{
23
+ file: string;
24
+ content: Record<string, unknown>;
25
+ }>;
26
+ /** CLAUDE.md files that exist. */
27
+ instructionFiles: string[];
28
+ /** Skill directories that exist. */
29
+ skillDirs: string[];
30
+ }
31
+ /**
32
+ * Fields a repository entry may not carry into the user's profile. Each one
33
+ * widens what the server gets on enable beyond "run this command / reach this
34
+ * URL": `permission` pre-approves every tool it exposes, `bearerTokenEnv` and
35
+ * `passthroughEnv` send the named environment variables to it, and
36
+ * `allowPrivateNetworks` lifts the internal-network guard. The repository
37
+ * chooses the command and URL, so it must not also choose those
38
+ * (WS-2026-09-26-05). The user can still set them after reviewing.
39
+ */
40
+ export declare const REPOSITORY_STRIPPED_MCP_FIELDS: readonly ['permission', 'bearerTokenEnv', 'passthroughEnv', 'allowPrivateNetworks'];
41
+ /** Decide what an import would do. Pure: no reads, no writes. */
42
+ export declare function planClaudeCodeImport(opts: {
43
+ sources: ClaudeCodeSources;
44
+ projectRoot: string;
45
+ existingServers: Readonly<Record<string, unknown>>;
46
+ overwrite: boolean;
47
+ enableProjectServers: boolean;
48
+ }): ClaudeCodeImportPlan;
49
+ /** Read everything the importer looks at. Missing files are simply absent. */
50
+ export declare function readClaudeCodeSources(projectRoot: string, userHome?: string): Promise<ClaudeCodeSources>;
51
+ export declare const importClaudeCodeCmd: SubcommandHandler;
52
+ //# sourceMappingURL=import-claude-code.d.ts.map
@@ -1,10 +1,16 @@
1
1
  import type { SubcommandHandler } from '../contracts.js';
2
2
  /**
3
+ * `wstack permissions rules [--json]`
3
4
  * `wstack permissions explain <tool> --input '<json>' [--json]`
4
5
  *
5
- * Side-effect-free permission decision explainer. Evaluates the same
6
- * rules as `DefaultPermissionPolicy.evaluate()` without prompting the
7
- * user, writing to trust files, or mutating session state.
6
+ * Side-effect-free views of the permission policy. Both build the policy the
7
+ * agent itself runs under (`createProjectPermissionPolicy`: directory rules,
8
+ * trust file, YOLO and `autonomy.yoloConfirm` from the config) for a fresh
9
+ * session, without prompting the user, writing to trust files, or mutating
10
+ * session state. `rules` lists every rule in the order they are checked;
11
+ * `explain` traces one call and names the rule that decided it. Inside a
12
+ * session, `/permissions` shows the same with that session's YOLO, answers
13
+ * and session rules.
8
14
  */
9
15
  export declare const permissionsCmd: SubcommandHandler;
10
16
  //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1,6 @@
1
+ import type { TerminalRenderer } from '../../renderer.js';
2
+ import type { SubcommandHandler } from '../contracts.js';
3
+ export declare function runRemoteCommand(args: string[], flags: Record<string, string | boolean>, renderer: Pick<TerminalRenderer, 'writeLine'>): Promise<number>;
4
+ /** Registry entry; `boot()` normally dispatches `remote` before loading any config. */
5
+ export declare const remoteCmd: SubcommandHandler;
6
+ //# sourceMappingURL=remote.d.ts.map
@@ -1,15 +1,3 @@
1
1
  import type { SubcommandHandler } from '../contracts.js';
2
- /**
3
- * `wrongstack sessions fleet [runId]`
4
- *
5
- * Lists fleet run artifacts under `projectSessions/<runId>/`.
6
- * When runId is omitted, lists all fleet runs discovered under projectSessions.
7
- *
8
- * Artifacts shown:
9
- * - fleet.json (manifest)
10
- * - checkpoint.json (state snapshot, if present)
11
- * - shared/ (scratchpad directory)
12
- * - subagents/ (per-subagent JSONL transcripts)
13
- */
14
2
  export declare const sessionsFleetCmd: SubcommandHandler;
15
3
  //# sourceMappingURL=sessions-fleet.d.ts.map
@@ -1,4 +1,9 @@
1
1
  import type { SubcommandHandler } from '../contracts.js';
2
2
  export declare const versionCmd: SubcommandHandler;
3
+ /**
4
+ * Global help. Every row here must name something the CLI actually reads —
5
+ * `wstack <command> --help` carries the per-command detail, so this page
6
+ * groups by what the user is trying to do rather than listing everything.
7
+ */
3
8
  export declare const helpCmd: SubcommandHandler;
4
9
  //# sourceMappingURL=version-help.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  subcommandNames,
3
3
  subcommands
4
- } from "./chunk-424ORSE7.js";
4
+ } from "./chunk-N57IU5FG.js";
5
5
  export {
6
6
  subcommandNames,
7
7
  subcommands
8
8
  };
9
- //# sourceMappingURL=subcommands-ZTSIN7LG.js.map
9
+ //# sourceMappingURL=subcommands-BHQYLDSD.js.map
@@ -0,0 +1,18 @@
1
+ import type { SessionLoadProgress } from '@wrongstack/core/types';
2
+ export declare function createTuiResumeCallback({ state, agent, tokenCounter, switchProviderAndModel, events, }: {
3
+ state: import('./boot/tui-runtime-state.js').TuiRuntimeState;
4
+ agent: import('@wrongstack/core/agent').Agent;
5
+ tokenCounter: import('@wrongstack/core/types').TokenCounter;
6
+ switchProviderAndModel: (providerId: string, modelId: string) => string | Promise<string | null> | null;
7
+ events: import('@wrongstack/core/kernel').EventBus;
8
+ }): (sessionId: string, onLoadProgress?: (progress: SessionLoadProgress) => void, onStage?: (stage: string) => void) => Promise<{
9
+ entries: unknown[];
10
+ nextId: number;
11
+ sessionId: string;
12
+ attached: boolean;
13
+ warnings: string[];
14
+ contextSnapshot?: import("@wrongstack/core/types").ContextSnapshot | undefined;
15
+ lastAssistantText?: string | undefined;
16
+ nextSteps: string[];
17
+ }>;
18
+ //# sourceMappingURL=tui-resume-callback.d.ts.map
@@ -1,10 +1,10 @@
1
- import {
2
- activeProfileConfigPath
3
- } from "./chunk-YMXXOOFN.js";
4
1
  import {
5
2
  maskedKey,
6
3
  mutateConfigProviders
7
4
  } from "./chunk-LUMETJFO.js";
5
+ import {
6
+ activeProfileConfigPath
7
+ } from "./chunk-YMXXOOFN.js";
8
8
 
9
9
  // src/subcommands/handlers/typesafe.ts
10
10
  import { execFile } from "node:child_process";
@@ -67,7 +67,7 @@ var typesafeCmd = async (args, deps) => {
67
67
  case "lint-conventions":
68
68
  return await lintConventions(deps, write);
69
69
  case "replay-topic-shift":
70
- return await (await import("./typesafe-topic-replay-4W73BOLV.js")).replayTopicShift(deps, write);
70
+ return await (await import("./typesafe-topic-replay-ZILIU3WS.js")).replayTopicShift(deps, write);
71
71
  case "replay-memory-triage":
72
72
  return await (await import("./typesafe-triage-replay-FGAW7QM7.js")).replayMemoryTriage(deps, write);
73
73
  case "replay-brain-ledger":
@@ -313,4 +313,4 @@ async function lintConventions(deps, write) {
313
313
  export {
314
314
  typesafeCmd
315
315
  };
316
- //# sourceMappingURL=typesafe-HVEVPA6R.js.map
316
+ //# sourceMappingURL=typesafe-U7YB2RRV.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ resolveRuntimeMaxContext
3
+ } from "./chunk-CZTXF6HY.js";
1
4
  import {
2
5
  createProviderForId
3
6
  } from "./chunk-BBHWW6LR.js";
@@ -85,10 +88,23 @@ async function replayTopicShift(deps, write) {
85
88
  return 2;
86
89
  }
87
90
  const limit = Math.max(1, Number(flags["limit"]) || 40);
88
- const maxContext = Math.max(1, Number(flags["max-context"]) || 2e5);
89
91
  const sessionsRoot = typeof flags["sessions"] === "string" ? path.resolve(flags["sessions"]) : path.join(deps.paths.projectDir, "sessions");
90
92
  const providerId = typeof flags["provider"] === "string" ? flags["provider"] : deps.config.provider;
91
93
  const model = typeof flags["model"] === "string" ? flags["model"] : deps.config.model;
94
+ const flagMaxContext = Number(flags["max-context"]);
95
+ const maxContext = Number.isFinite(flagMaxContext) && flagMaxContext > 0 ? Math.floor(flagMaxContext) : await resolveRuntimeMaxContext({
96
+ modelsRegistry: deps.modelsRegistry,
97
+ config: deps.config,
98
+ provider: { capabilities: { maxContext: 0 } },
99
+ providerId,
100
+ modelId: model
101
+ }).catch(() => 0);
102
+ if (maxContext <= 0) {
103
+ write(
104
+ `${color.red("\u2717")} Context window of ${providerId}/${model} is unknown. Pass --max-context <tokens>.`
105
+ );
106
+ return 2;
107
+ }
92
108
  const provider = flags["no-llm"] === true ? void 0 : createProviderForId(providerId, deps.config);
93
109
  const judge = { client: account.client, model: account.model, feature: "topicShift" };
94
110
  const reached = [];
@@ -215,4 +231,4 @@ async function replayTopicShift(deps, write) {
215
231
  export {
216
232
  replayTopicShift
217
233
  };
218
- //# sourceMappingURL=typesafe-topic-replay-4W73BOLV.js.map
234
+ //# sourceMappingURL=typesafe-topic-replay-ZILIU3WS.js.map
@@ -3,14 +3,14 @@ import {
3
3
  detectUpdatePackageName,
4
4
  runUpdateCommand,
5
5
  updateCmd
6
- } from "./chunk-QFPQXKCG.js";
6
+ } from "./chunk-KOEO4CJG.js";
7
7
  import "./chunk-U3SS4NRH.js";
8
- import "./chunk-ZZRSG7VK.js";
9
- import "./chunk-YBUCXXYZ.js";
8
+ import "./chunk-RZ4ZDRYA.js";
9
+ import "./chunk-F5DCFAKI.js";
10
10
  export {
11
11
  detectUpdatePackageManager,
12
12
  detectUpdatePackageName,
13
13
  runUpdateCommand,
14
14
  updateCmd
15
15
  };
16
- //# sourceMappingURL=update-7XIOEXTD.js.map
16
+ //# sourceMappingURL=update-TDZX4IL2.js.map
@@ -5,8 +5,8 @@ import {
5
5
  fetchLatestFromNpm,
6
6
  getUpdateNotification,
7
7
  isNewer
8
- } from "./chunk-ZZRSG7VK.js";
9
- import "./chunk-YBUCXXYZ.js";
8
+ } from "./chunk-RZ4ZDRYA.js";
9
+ import "./chunk-F5DCFAKI.js";
10
10
  export {
11
11
  cachePath,
12
12
  checkForUpdate,
@@ -15,4 +15,4 @@ export {
15
15
  getUpdateNotification,
16
16
  isNewer
17
17
  };
18
- //# sourceMappingURL=update-check-2POMBHFB.js.map
18
+ //# sourceMappingURL=update-check-J5ZVKS73.js.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ API_VERSION,
3
+ CLI_VERSION,
4
+ STANDALONE_TARGET
5
+ } from "./chunk-F5DCFAKI.js";
6
+ export {
7
+ API_VERSION,
8
+ CLI_VERSION,
9
+ STANDALONE_TARGET
10
+ };
11
+ //# sourceMappingURL=version-JB2UAV2A.js.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ helpCmd,
3
+ versionCmd
4
+ } from "./chunk-5JYDKG5B.js";
5
+ import "./chunk-F5DCFAKI.js";
6
+ export {
7
+ helpCmd,
8
+ versionCmd
9
+ };
10
+ //# sourceMappingURL=version-help-XJJQ7YSH.js.map
@@ -4,7 +4,7 @@
4
4
  * @module webui-server/route-contexts
5
5
  */
6
6
  import type { Agent } from '@wrongstack/core/agent';
7
- import type { SessionWriter } from '@wrongstack/core/types';
7
+ import { type SessionWriter } from '@wrongstack/core/types';
8
8
  import { type BrainHandlerContext, type CustomModeStore, type DesignContext, type EmbeddedAgentConfigContext, type EmbeddedConversationContext, type EmbeddedProjectContext, type EmbeddedSessionContext, type IntrospectionRouteContext, type PendingConfirm, type PrefsHandlerContext, type PromptsContext, type SkillsContext } from '@wrongstack/webui-server';
9
9
  import type { WebSocket } from 'ws';
10
10
  import type { CliWebUIOptions } from '../webui-server-options.js';
@@ -1,5 +1,5 @@
1
1
  import type { Context } from '@wrongstack/core/agent';
2
- import type { ModelsRegistry } from '@wrongstack/core/types';
2
+ import type { Config, ModelsRegistry } from '@wrongstack/core/types';
3
3
  import type { UpdateInfo } from '../update-check.js';
4
4
  /** @see UpdateInfo in ../update-check.ts for the canonical shape. */
5
5
  export type BootUpdateInfo = UpdateInfo;
@@ -25,6 +25,10 @@ export interface SessionStartPayloadDeps {
25
25
  */
26
26
  getSessionContext?: ((sessionId: string) => Context | undefined) | undefined;
27
27
  modelsRegistry?: ModelsRegistry | undefined;
28
+ /** Saved providers, to find an alias's catalog entry (`work` → `anthropic`). */
29
+ appConfig?: {
30
+ providers?: Config['providers'];
31
+ } | undefined;
28
32
  statusTracker?: import('@wrongstack/core/coordination').ProviderModelStatusTracker | undefined;
29
33
  modeId?: string | undefined;
30
34
  projectRoot?: string | undefined;