@wrongstack/cli 0.302.0 → 0.302.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/providers.json +41 -155
- package/dist/{acp-DATHHPNT.js → acp-XCE4JJF3.js} +4 -4
- package/dist/{audit-QRCLEHHW.js → audit-BBR22QH3.js} +2 -2
- package/dist/{auth-PJD3JRH2.js → auth-K7CYVVKH.js} +121 -78
- package/dist/auth-menu/index.d.ts +5 -5
- package/dist/auth-menu/local.d.ts +4 -5
- package/dist/auth-menu/openai-codex-oauth.d.ts +1 -1
- package/dist/{auto-discover-providers-DRW4OZHG.js → auto-discover-providers-MHFLDSD3.js} +2 -2
- package/dist/{bench-7ZDWSNEF.js → bench-XNDUJOSZ.js} +10 -11
- package/dist/boot/auto-discover-providers.d.ts +1 -1
- package/dist/boot/container-wiring.d.ts +3 -3
- package/dist/boot/dispatch-webui.d.ts +1 -1
- package/dist/boot/system-prompt.d.ts +1 -2
- package/dist/boot/tool-registry.d.ts +1 -1
- package/dist/boot/tui-coordinator-setup.d.ts +1 -1
- package/dist/boot/tui-project-picker-callback.d.ts +1 -1
- package/dist/boot-config.d.ts +2 -2
- package/dist/boot.d.ts +1 -1
- package/dist/{chunk-ETOEGL3V.js → chunk-3IC4IEZC.js} +7 -2
- package/dist/{chunk-PFVVUH5B.js → chunk-3JPTNADJ.js} +3 -2
- package/dist/{chunk-4GVH7V3S.js → chunk-52C7PD2H.js} +1 -1
- package/dist/{chunk-OP47B3IX.js → chunk-7YLN7YUA.js} +7 -2
- package/dist/{chunk-263G3FMB.js → chunk-B4JLSXZB.js} +11 -14
- package/dist/{chunk-I5MEUFDI.js → chunk-BXQG3H2Y.js} +8 -3
- package/dist/{chunk-MT6FGXO3.js → chunk-C5NXM2SI.js} +19 -6
- package/dist/{chunk-XTIXVJXP.js → chunk-DGXNL7OT.js} +1 -1
- package/dist/{chunk-3MOUBRKZ.js → chunk-FJVCVZIV.js} +974 -935
- package/dist/{chunk-MRLYDHQ7.js → chunk-JQURRYU4.js} +4 -6
- package/dist/{chunk-ZECLGUTF.js → chunk-KV6DNQT6.js} +2 -2
- package/dist/{chunk-F4PEGAJZ.js → chunk-NUIHRGPY.js} +1 -1
- package/dist/{chunk-GUHQQG63.js → chunk-RK7E3IXT.js} +2 -4
- package/dist/{chunk-PYTFS4MC.js → chunk-SSSJQVUY.js} +27 -16
- package/dist/{chunk-PJHET45A.js → chunk-SZ42FYPT.js} +3 -3
- package/dist/{chunk-2KDOFTTM.js → chunk-WOXUE2CN.js} +1067 -900
- package/dist/{chunk-A6Q5KGLV.js → chunk-YKBRFSGL.js} +5 -5
- package/dist/cli-context.d.ts +2 -2
- package/dist/cli-eternal-flag.d.ts +1 -2
- package/dist/{cli-main-EOJ74CI4.js → cli-main-PJMDZHDK.js} +2680 -2133
- package/dist/context-limit.d.ts +11 -5
- package/dist/{diag-doctor-OQ3AA63O.js → diag-doctor-ZF5BF2MK.js} +2 -3
- package/dist/execute-deps.d.ts +1 -1
- package/dist/{execution-CQ772VPS.js → execution-LZRYRGDD.js} +234 -143
- package/dist/{export-DOBGPY23.js → export-CCUXRJOU.js} +3 -11
- package/dist/fleet/host-supervisor.d.ts +1 -1
- package/dist/fleet/host.d.ts +1 -1
- package/dist/fleet/routing.d.ts +1 -2
- package/dist/goal-host.d.ts +2 -2
- package/dist/hooks-wiring.d.ts +1 -1
- package/dist/{hq-LN5CJHCM.js → hq-AHPAE7EN.js} +104 -55
- package/dist/hq-command-controller.d.ts +1 -1
- package/dist/hq-server/routes/system-handlers.d.ts +1 -2
- package/dist/hq-server/routes.d.ts +7 -7
- package/dist/{hq-server-S7HZG3PA.js → hq-server-KU2Z54QU.js} +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2635 -2642
- package/dist/mailbox-bridge-bootstrap.d.ts +2 -2
- package/dist/{mcp-OHPJH73U.js → mcp-E5EBGOHF.js} +6 -6
- package/dist/mcp-serve.d.ts +1 -1
- package/dist/{modeldiag-3DOK4BWW.js → modeldiag-SIVUOX2Y.js} +18 -13
- package/dist/{permissions-FNYLZIL4.js → permissions-2PWBL4YU.js} +5 -3
- package/dist/picker.d.ts +1 -1
- package/dist/plugin-management.d.ts +1 -1
- package/dist/{plugin-usage-YEVLOR33.js → plugin-usage-PTEETL3J.js} +2 -2
- package/dist/{plugins-K3BAUP4D.js → plugins-XRGWC3NJ.js} +3 -3
- package/dist/pre-launch.d.ts +2 -2
- package/dist/{providers-models-WEZ4EGLL.js → providers-models-VV74TRQ2.js} +86 -37
- package/dist/repl.d.ts +1 -1
- package/dist/{replay-FCBNHW3K.js → replay-WBRMEWQ5.js} +2 -2
- package/dist/{rewind-AOD3JIYX.js → rewind-7RE6ONIC.js} +17 -17
- package/dist/{sdd-runtime-AIJCJGWC.js → sdd-runtime-GFZ3NJKS.js} +2 -2
- package/dist/{sessions-config-XXN7267N.js → sessions-config-YX2ZPAFM.js} +36 -32
- package/dist/{simpleui-dist-JIFGUJO7.js → simpleui-dist-33VO3QHF.js} +9 -2
- package/dist/slash-commands/agents.d.ts +14 -0
- package/dist/slash-commands/command-context.d.ts +2 -3
- package/dist/slash-commands/helpers.d.ts +1 -1
- package/dist/slash-commands/index.d.ts +1 -1
- package/dist/slash-commands/intake.d.ts +10 -0
- package/dist/slash-commands/memory-triage.d.ts +1 -1
- package/dist/slash-commands/provider-status.d.ts +1 -1
- package/dist/subcommands/handlers/hq.d.ts +20 -0
- package/dist/subcommands/handlers/per-subcommand-help-data.d.ts +1 -1
- package/dist/{update-MV6TUACD.js → update-LTDJGAFU.js} +3 -3
- package/dist/{update-check-UMYTOH7Z.js → update-check-WARHSVZA.js} +2 -2
- package/dist/webui-server/connection-handler.d.ts +1 -1
- package/dist/webui-server/context-breakdown.d.ts +1 -1
- package/dist/webui-server/cost-helpers.d.ts +1 -1
- package/dist/webui-server/lifecycle.d.ts +1 -1
- package/dist/webui-server/prefs-seeding.d.ts +1 -1
- package/dist/webui-server/setup-events.d.ts +1 -1
- package/dist/webui-server/static-serve.d.ts +1 -1
- package/dist/{webui-server-NFNRGNNT.js → webui-server-E3OPEKU5.js} +18 -10
- package/dist/webui-server-options.d.ts +1 -1
- package/dist/wiring/command-host-state.d.ts +2 -2
- package/dist/wiring/controllers.d.ts +1 -2
- package/dist/wiring/dep-watcher.d.ts +1 -1
- package/dist/wiring/director-setup.d.ts +3 -3
- package/dist/wiring/eternal-command-handlers.d.ts +2 -2
- package/dist/wiring/management-tools.d.ts +2 -2
- package/dist/wiring/provider-runtime.d.ts +1 -1
- package/dist/wiring/provider-status.d.ts +1 -1
- package/dist/wiring/provider-utility-tools.d.ts +3 -3
- package/dist/wiring/provider.d.ts +1 -1
- package/dist/wiring/replay.d.ts +1 -1
- package/dist/wiring/runtime-controller-deps.d.ts +1 -1
- package/dist/wiring/runtime-dispatch-state.d.ts +1 -2
- package/dist/wiring/runtime-lifecycle-deps.d.ts +2 -2
- package/dist/wiring/runtime-picker-deps.d.ts +1 -2
- package/dist/wiring/sage.d.ts +1 -1
- package/dist/wiring/session-command-handlers.d.ts +1 -2
- package/dist/wiring/session.d.ts +6 -1
- package/dist/wiring/slash-commands.d.ts +2 -3
- package/package.json +23 -23
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* log a warning, REPL runs without mailbox-bridge. The user
|
|
23
23
|
* can run `wstack mailbox serve` manually later.
|
|
24
24
|
*/
|
|
25
|
-
import {
|
|
25
|
+
import { type MailboxBridgeLock, readLiveLock } from '@wrongstack/core/coordination';
|
|
26
26
|
export declare const MAILBOX_BRIDGE_BOOTSTRAP_TIMEOUT_MS = 5000;
|
|
27
27
|
export declare const MAILBOX_BRIDGE_HEALTHZ_PROBE_MS = 500;
|
|
28
28
|
export interface MailboxBridgeHandle {
|
|
@@ -100,6 +100,6 @@ export type ProbeFn = (url: string, timeoutMs: number) => Promise<boolean>;
|
|
|
100
100
|
* that prefer to log a warning over crashing the host process.
|
|
101
101
|
*/
|
|
102
102
|
export declare function tryAcquireMailboxBridge(opts: BootstrapOptions): Promise<MailboxBridgeHandle>;
|
|
103
|
-
export {
|
|
103
|
+
export { type MailboxBridgeLock, readLiveLock };
|
|
104
104
|
export declare function readTokenFromFile(tokenPath: string): Promise<string | null>;
|
|
105
105
|
//# sourceMappingURL=mailbox-bridge-bootstrap.d.ts.map
|
|
@@ -7,25 +7,25 @@ import {
|
|
|
7
7
|
import "./chunk-7OCVIDC7.js";
|
|
8
8
|
|
|
9
9
|
// src/subcommands/handlers/mcp.ts
|
|
10
|
-
import {
|
|
10
|
+
import { allServers } from "@wrongstack/core/infrastructure";
|
|
11
11
|
import {
|
|
12
|
+
expectDefined,
|
|
12
13
|
jsonObjectFileExists,
|
|
13
14
|
readJsonObjectFile,
|
|
14
15
|
removeJsonPath,
|
|
15
16
|
setJsonPath,
|
|
16
17
|
updateJsonObjectFile
|
|
17
18
|
} from "@wrongstack/core/utils";
|
|
18
|
-
import { allServers } from "@wrongstack/core/infrastructure";
|
|
19
19
|
|
|
20
20
|
// src/mcp-serve.ts
|
|
21
21
|
import * as fs from "node:fs/promises";
|
|
22
22
|
import * as path from "node:path";
|
|
23
23
|
import { pathToFileURL } from "node:url";
|
|
24
|
-
import { AutoApprovePermissionPolicy, DefaultSecretScrubber } from "@wrongstack/core/security";
|
|
25
24
|
import { Context } from "@wrongstack/core/agent";
|
|
26
|
-
import { normalizeTokenSavingTier } from "@wrongstack/core/types";
|
|
27
|
-
import { ToolRegistry } from "@wrongstack/core/registry";
|
|
28
25
|
import { ToolExecutor } from "@wrongstack/core/execution";
|
|
26
|
+
import { ToolRegistry } from "@wrongstack/core/registry";
|
|
27
|
+
import { AutoApprovePermissionPolicy, DefaultSecretScrubber } from "@wrongstack/core/security";
|
|
28
|
+
import { normalizeTokenSavingTier } from "@wrongstack/core/types";
|
|
29
29
|
import {
|
|
30
30
|
DEFAULT_MCP_INSERTION_MAX_BYTES,
|
|
31
31
|
MCPServer,
|
|
@@ -414,4 +414,4 @@ function isRecord(value) {
|
|
|
414
414
|
export {
|
|
415
415
|
mcpCmd
|
|
416
416
|
};
|
|
417
|
-
//# sourceMappingURL=mcp-
|
|
417
|
+
//# sourceMappingURL=mcp-E5EBGOHF.js.map
|
package/dist/mcp-serve.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Context } from '@wrongstack/core/agent';
|
|
2
|
-
import type { PermissionPolicy, Tool } from '@wrongstack/core/types';
|
|
3
2
|
import { ToolRegistry } from '@wrongstack/core/registry';
|
|
3
|
+
import type { PermissionPolicy, Tool } from '@wrongstack/core/types';
|
|
4
4
|
import { type MCPServerPrompt, type MCPServerResource } from '@wrongstack/mcp';
|
|
5
5
|
import type { SubcommandDeps } from './subcommands/index.js';
|
|
6
6
|
export interface SelectedMcpServeContent {
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
discoverAndMergeProviders
|
|
3
|
-
} from "./chunk-4GVH7V3S.js";
|
|
4
1
|
import {
|
|
5
2
|
mutateConfigProviders,
|
|
6
3
|
normalizeKeys,
|
|
7
4
|
writeKeysBack
|
|
8
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SZ42FYPT.js";
|
|
9
6
|
import {
|
|
10
7
|
activeProfileConfigPath
|
|
11
8
|
} from "./chunk-YMXXOOFN.js";
|
|
9
|
+
import {
|
|
10
|
+
discoverAndMergeProviders
|
|
11
|
+
} from "./chunk-52C7PD2H.js";
|
|
12
12
|
import "./chunk-7OCVIDC7.js";
|
|
13
13
|
|
|
14
14
|
// src/subcommands/handlers/modeldiag.ts
|
|
15
15
|
import * as fs from "node:fs/promises";
|
|
16
|
-
import { color as color2 } from "@wrongstack/core/utils";
|
|
17
|
-
import { toErrorMessage as toErrorMessage2 } from "@wrongstack/core/utils";
|
|
16
|
+
import { color as color2, toErrorMessage as toErrorMessage2 } from "@wrongstack/core/utils";
|
|
18
17
|
import { makeProviderFromConfig, setOAuthTokenPersister } from "@wrongstack/providers";
|
|
19
18
|
|
|
20
19
|
// src/subcommands/handlers/model-smoke-test.ts
|
|
@@ -723,7 +722,11 @@ var modeldiagCmd = async (args, deps) => {
|
|
|
723
722
|
cacheDir: deps.paths.cacheDir
|
|
724
723
|
});
|
|
725
724
|
}
|
|
726
|
-
const targets = await buildModelSmokeTargets(
|
|
725
|
+
const targets = await buildModelSmokeTargets(
|
|
726
|
+
config,
|
|
727
|
+
deps.modelsRegistry,
|
|
728
|
+
smokeOptions
|
|
729
|
+
);
|
|
727
730
|
const byProvider = /* @__PURE__ */ new Map();
|
|
728
731
|
for (const target of targets) {
|
|
729
732
|
byProvider.set(target.providerId, (byProvider.get(target.providerId) ?? 0) + 1);
|
|
@@ -755,7 +758,9 @@ var modeldiagCmd = async (args, deps) => {
|
|
|
755
758
|
if (targets.length === 0) {
|
|
756
759
|
const message = "No provider/model targets matched. Check the active profile or remove filters.";
|
|
757
760
|
if (smokeOptions.json) {
|
|
758
|
-
writeLine(
|
|
761
|
+
writeLine(
|
|
762
|
+
JSON.stringify({ results: [], summary: { passed: 0, failed: 0 }, error: message })
|
|
763
|
+
);
|
|
759
764
|
} else {
|
|
760
765
|
writeLine(color2.amber(message));
|
|
761
766
|
}
|
|
@@ -863,7 +868,9 @@ var modeldiagCmd = async (args, deps) => {
|
|
|
863
868
|
{
|
|
864
869
|
results,
|
|
865
870
|
summary,
|
|
866
|
-
...oauthPersistenceError ? {
|
|
871
|
+
...oauthPersistenceError ? {
|
|
872
|
+
warning: `OAuth token refresh worked in-memory but could not be saved: ${oauthPersistenceError}`
|
|
873
|
+
} : {}
|
|
867
874
|
},
|
|
868
875
|
null,
|
|
869
876
|
2
|
|
@@ -875,9 +882,7 @@ var modeldiagCmd = async (args, deps) => {
|
|
|
875
882
|
`${color2.bold("Summary:")} ${color2.green(`${passed} passed`)} \xB7 ${failed > 0 ? color2.red(`${failed} failed`) : color2.dim("0 failed")}`
|
|
876
883
|
);
|
|
877
884
|
if (!smokeOptions.allModels) {
|
|
878
|
-
writeLine(
|
|
879
|
-
color2.dim("Use --all-models to test every catalog-visible model sequentially.")
|
|
880
|
-
);
|
|
885
|
+
writeLine(color2.dim("Use --all-models to test every catalog-visible model sequentially."));
|
|
881
886
|
}
|
|
882
887
|
if (oauthPersistenceError) {
|
|
883
888
|
writeLine(
|
|
@@ -1287,4 +1292,4 @@ ${color2.dim('Enter numbers or provider IDs (comma-separated, or "all"):')}
|
|
|
1287
1292
|
export {
|
|
1288
1293
|
modeldiagCmd
|
|
1289
1294
|
};
|
|
1290
|
-
//# sourceMappingURL=modeldiag-
|
|
1295
|
+
//# sourceMappingURL=modeldiag-SIVUOX2Y.js.map
|
|
@@ -45,8 +45,10 @@ var permissionsCmd = async (args, deps) => {
|
|
|
45
45
|
}
|
|
46
46
|
const tool = deps.toolRegistry.get(toolName);
|
|
47
47
|
if (!tool) {
|
|
48
|
-
deps.renderer.writeError(
|
|
49
|
-
`)
|
|
48
|
+
deps.renderer.writeError(
|
|
49
|
+
`Unknown tool: "${toolName}". Available tools: ${deps.toolRegistry.list().map((t) => t.name).join(", ")}
|
|
50
|
+
`
|
|
51
|
+
);
|
|
50
52
|
return 1;
|
|
51
53
|
}
|
|
52
54
|
const paths = resolveWstackPaths({ projectRoot: deps.projectRoot, userHome: deps.userHome });
|
|
@@ -112,4 +114,4 @@ Flags:
|
|
|
112
114
|
export {
|
|
113
115
|
permissionsCmd
|
|
114
116
|
};
|
|
115
|
-
//# sourceMappingURL=permissions-
|
|
117
|
+
//# sourceMappingURL=permissions-2PWBL4YU.js.map
|
package/dist/picker.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Config, ModelsRegistry, ResolvedProvider } from '@wrongstack/core/
|
|
|
2
2
|
import type { ReadlineInputReader } from './input-reader.js';
|
|
3
3
|
import type { TerminalRenderer } from './renderer.js';
|
|
4
4
|
export { applyPickerKey, type ProviderPickerState } from './picker-key-state.js';
|
|
5
|
-
export { filterModels, LIVE_PICKER_MAX_VISIBLE, renderLiveModelList } from './picker-model-picker.js';
|
|
5
|
+
export { filterModels, LIVE_PICKER_MAX_VISIBLE, renderLiveModelList, } from './picker-model-picker.js';
|
|
6
6
|
export { codexPickerPreamble } from './picker-ui.js';
|
|
7
7
|
/**
|
|
8
8
|
* Filter providers by a free-text query: case-insensitive substring match
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Config, PluginConfig, PluginManagerConfig } from '@wrongstack/core/types';
|
|
2
2
|
import { PLUGIN_AUDIT_ENTRIES, type PluginAuditEntry } from '@wrongstack/plugins/plugin-audit-catalog';
|
|
3
|
-
export { PLUGIN_AUDIT_ENTRIES };
|
|
4
3
|
export type { PluginAuditEntry };
|
|
4
|
+
export { PLUGIN_AUDIT_ENTRIES };
|
|
5
5
|
export declare const OFFICIAL_PLUGINS: readonly [{
|
|
6
6
|
readonly alias: 'telegram';
|
|
7
7
|
readonly specifier: '@wrongstack/telegram';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPluginManagementCommand
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RK7E3IXT.js";
|
|
4
4
|
import {
|
|
5
5
|
restoreFlags
|
|
6
6
|
} from "./chunk-CSAPOCBP.js";
|
|
@@ -41,4 +41,4 @@ export {
|
|
|
41
41
|
pluginCmd,
|
|
42
42
|
usageCmd
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=plugin-usage-
|
|
44
|
+
//# sourceMappingURL=plugin-usage-PTEETL3J.js.map
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
pluginNameFromSpec,
|
|
8
8
|
setupPlugins,
|
|
9
9
|
warnIfDeprecatedPluginName
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-KV6DNQT6.js";
|
|
11
|
+
import "./chunk-RK7E3IXT.js";
|
|
12
12
|
import "./chunk-TYO2OVAD.js";
|
|
13
13
|
import "./chunk-7OCVIDC7.js";
|
|
14
14
|
export {
|
|
@@ -21,4 +21,4 @@ export {
|
|
|
21
21
|
setupPlugins,
|
|
22
22
|
warnIfDeprecatedPluginName
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=plugins-
|
|
24
|
+
//# sourceMappingURL=plugins-XRGWC3NJ.js.map
|
package/dist/pre-launch.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { type
|
|
2
|
-
export {
|
|
1
|
+
export { LaunchAbortedError, type LaunchModeChoices, persistLaunchChoices, runLaunchPrompts, } from './pre-launch/launch-prompts.js';
|
|
2
|
+
export { detectProjectKind, type ProjectKind, runProjectCheck, } from './pre-launch/project-check.js';
|
|
3
3
|
//# sourceMappingURL=pre-launch.d.ts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
visibleModelIds
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3IC4IEZC.js";
|
|
4
4
|
import {
|
|
5
5
|
mutateConfigProviders
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SZ42FYPT.js";
|
|
7
7
|
import {
|
|
8
8
|
activeProfileConfigPath
|
|
9
9
|
} from "./chunk-YMXXOOFN.js";
|
|
@@ -11,9 +11,11 @@ import "./chunk-7OCVIDC7.js";
|
|
|
11
11
|
|
|
12
12
|
// src/subcommands/handlers/providers-models.ts
|
|
13
13
|
import * as fs from "node:fs/promises";
|
|
14
|
-
import { atomicWrite, color, expectDefined } from "@wrongstack/core/utils";
|
|
15
14
|
import { decryptConfigSecrets, encryptConfigSecrets } from "@wrongstack/core/security";
|
|
16
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
ConfigError
|
|
17
|
+
} from "@wrongstack/core/types";
|
|
18
|
+
import { atomicWrite, color, expectDefined } from "@wrongstack/core/utils";
|
|
17
19
|
var providersCmd = async (args, deps) => {
|
|
18
20
|
const providerFlags = subcommandFlags(args, deps);
|
|
19
21
|
const showAll = providerFlags["all"] === true || providerFlags["all"] === "true";
|
|
@@ -238,7 +240,7 @@ function aliasProviderId(configProviderId, cfg) {
|
|
|
238
240
|
async function discoverProviderModels(deps, ids) {
|
|
239
241
|
if (!("mergeOverlay" in deps.modelsRegistry)) return void 0;
|
|
240
242
|
try {
|
|
241
|
-
const { discoverAndMergeProviders } = await import("./auto-discover-providers-
|
|
243
|
+
const { discoverAndMergeProviders } = await import("./auto-discover-providers-MHFLDSD3.js");
|
|
242
244
|
await discoverAndMergeProviders({
|
|
243
245
|
config: deps.config,
|
|
244
246
|
registry: deps.modelsRegistry,
|
|
@@ -278,7 +280,10 @@ async function modelsHide(args, deps) {
|
|
|
278
280
|
deps.renderer.writeError(`Provider "${providerId}" is not configured.`);
|
|
279
281
|
return 1;
|
|
280
282
|
}
|
|
281
|
-
const { providerId: lookupId, provider } = await getCatalogProviderForConfigProvider(
|
|
283
|
+
const { providerId: lookupId, provider } = await getCatalogProviderForConfigProvider(
|
|
284
|
+
providerId,
|
|
285
|
+
deps
|
|
286
|
+
);
|
|
282
287
|
if (!provider) {
|
|
283
288
|
deps.renderer.writeError(
|
|
284
289
|
lookupId !== providerId ? `Alias "${providerId}" points at catalog id "${lookupId}" which is not in the cache.` : `Provider "${providerId}" not in catalog.`
|
|
@@ -292,11 +297,15 @@ async function modelsHide(args, deps) {
|
|
|
292
297
|
return 0;
|
|
293
298
|
}
|
|
294
299
|
const nextVisible = visible.filter((id) => id !== modelId);
|
|
295
|
-
await mutateConfigProviders(
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
+
await mutateConfigProviders(
|
|
301
|
+
activeProfileConfigPath(deps.paths, deps.config),
|
|
302
|
+
deps.vault,
|
|
303
|
+
(providers) => {
|
|
304
|
+
const p = providers[providerId];
|
|
305
|
+
if (!p) return;
|
|
306
|
+
p.models = nextVisible;
|
|
307
|
+
}
|
|
308
|
+
);
|
|
300
309
|
deps.config.providers = {
|
|
301
310
|
...deps.config.providers ?? {},
|
|
302
311
|
[providerId]: { ...saved, models: nextVisible }
|
|
@@ -305,7 +314,11 @@ async function modelsHide(args, deps) {
|
|
|
305
314
|
`Hidden ${providerId}/${modelId}. Visible: ${nextVisible.length}, hidden: ${Math.max(0, knownIds.length - nextVisible.length)}.`
|
|
306
315
|
);
|
|
307
316
|
if (nextVisible.length === 0) {
|
|
308
|
-
deps.renderer.write(
|
|
317
|
+
deps.renderer.write(
|
|
318
|
+
color.dim(
|
|
319
|
+
"This provider now has no visible models. Use `wstack models show` or `wstack models reset` to restore.\n"
|
|
320
|
+
)
|
|
321
|
+
);
|
|
309
322
|
}
|
|
310
323
|
return 0;
|
|
311
324
|
}
|
|
@@ -321,7 +334,10 @@ async function modelsShow(args, deps) {
|
|
|
321
334
|
deps.renderer.writeError(`Provider "${providerId}" is not configured.`);
|
|
322
335
|
return 1;
|
|
323
336
|
}
|
|
324
|
-
const { providerId: lookupId, provider } = await getCatalogProviderForConfigProvider(
|
|
337
|
+
const { providerId: lookupId, provider } = await getCatalogProviderForConfigProvider(
|
|
338
|
+
providerId,
|
|
339
|
+
deps
|
|
340
|
+
);
|
|
325
341
|
if (!provider) {
|
|
326
342
|
deps.renderer.writeError(
|
|
327
343
|
lookupId !== providerId ? `Alias "${providerId}" points at catalog id "${lookupId}" which is not in the cache.` : `Provider "${providerId}" not in catalog.`
|
|
@@ -334,11 +350,15 @@ async function modelsShow(args, deps) {
|
|
|
334
350
|
return 0;
|
|
335
351
|
}
|
|
336
352
|
const nextVisible = uniqueStrings([...saved.models, modelId]);
|
|
337
|
-
await mutateConfigProviders(
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
353
|
+
await mutateConfigProviders(
|
|
354
|
+
activeProfileConfigPath(deps.paths, deps.config),
|
|
355
|
+
deps.vault,
|
|
356
|
+
(providers) => {
|
|
357
|
+
const p = providers[providerId];
|
|
358
|
+
if (!p) return;
|
|
359
|
+
p.models = nextVisible;
|
|
360
|
+
}
|
|
361
|
+
);
|
|
342
362
|
deps.config.providers = {
|
|
343
363
|
...deps.config.providers ?? {},
|
|
344
364
|
[providerId]: { ...saved, models: nextVisible }
|
|
@@ -360,7 +380,10 @@ async function modelsHidden(args, deps) {
|
|
|
360
380
|
deps.renderer.writeError(`Provider "${providerId}" is not configured.`);
|
|
361
381
|
return 1;
|
|
362
382
|
}
|
|
363
|
-
const { providerId: lookupId, provider } = await getCatalogProviderForConfigProvider(
|
|
383
|
+
const { providerId: lookupId, provider } = await getCatalogProviderForConfigProvider(
|
|
384
|
+
providerId,
|
|
385
|
+
deps
|
|
386
|
+
);
|
|
364
387
|
if (!provider) {
|
|
365
388
|
deps.renderer.writeError(
|
|
366
389
|
lookupId !== providerId ? `Alias "${providerId}" points at catalog id "${lookupId}" which is not in the cache.` : `Provider "${providerId}" not in catalog.`
|
|
@@ -378,9 +401,11 @@ async function modelsHidden(args, deps) {
|
|
|
378
401
|
}
|
|
379
402
|
for (const id of hidden) deps.renderer.write(` ${id}
|
|
380
403
|
`);
|
|
381
|
-
deps.renderer.write(
|
|
404
|
+
deps.renderer.write(
|
|
405
|
+
color.dim(`
|
|
382
406
|
Restore: wstack models show ${providerId} <model> \xB7 reset ${providerId}
|
|
383
|
-
`)
|
|
407
|
+
`)
|
|
408
|
+
);
|
|
384
409
|
return 0;
|
|
385
410
|
}
|
|
386
411
|
async function modelsReset(args, deps) {
|
|
@@ -398,18 +423,24 @@ async function modelsReset(args, deps) {
|
|
|
398
423
|
deps.renderer.writeInfo(`${providerId} already shows the full catalog model list.`);
|
|
399
424
|
return 0;
|
|
400
425
|
}
|
|
401
|
-
await mutateConfigProviders(
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
426
|
+
await mutateConfigProviders(
|
|
427
|
+
activeProfileConfigPath(deps.paths, deps.config),
|
|
428
|
+
deps.vault,
|
|
429
|
+
(providers) => {
|
|
430
|
+
const p = providers[providerId];
|
|
431
|
+
if (!p) return;
|
|
432
|
+
delete p.models;
|
|
433
|
+
}
|
|
434
|
+
);
|
|
406
435
|
const nextProvider = { ...saved };
|
|
407
436
|
delete nextProvider.models;
|
|
408
437
|
deps.config.providers = {
|
|
409
438
|
...deps.config.providers ?? {},
|
|
410
439
|
[providerId]: nextProvider
|
|
411
440
|
};
|
|
412
|
-
deps.renderer.writeInfo(
|
|
441
|
+
deps.renderer.writeInfo(
|
|
442
|
+
`Reset visible model list for ${providerId} to the full catalog default.`
|
|
443
|
+
);
|
|
413
444
|
return 0;
|
|
414
445
|
}
|
|
415
446
|
async function modelsCaps(args, deps) {
|
|
@@ -423,7 +454,9 @@ async function modelsCaps(args, deps) {
|
|
|
423
454
|
const resolved = await deps.modelsRegistry.getModel(providerId, modelId);
|
|
424
455
|
if (!resolved) {
|
|
425
456
|
deps.renderer.writeError("Model not found in catalog: " + providerId + "/" + modelId);
|
|
426
|
-
deps.renderer.write(
|
|
457
|
+
deps.renderer.write(
|
|
458
|
+
color.dim("Run `wstack models refresh` or add a custom model if this is expected.\n")
|
|
459
|
+
);
|
|
427
460
|
return 1;
|
|
428
461
|
}
|
|
429
462
|
const caps = resolved.capabilities;
|
|
@@ -434,26 +467,42 @@ async function modelsCaps(args, deps) {
|
|
|
434
467
|
].filter((v) => v !== void 0);
|
|
435
468
|
const rc = caps.reasoningConfig;
|
|
436
469
|
const cost = resolved.cost;
|
|
437
|
-
deps.renderer.write(
|
|
438
|
-
|
|
470
|
+
deps.renderer.write(
|
|
471
|
+
color.bold("Model capabilities") + " " + color.dim(providerId + "/" + modelId) + "\n"
|
|
472
|
+
);
|
|
473
|
+
deps.renderer.write(
|
|
474
|
+
" context: " + (caps.maxContext ? color.yellow(String(caps.maxContext)) : color.dim("?")) + "\n"
|
|
475
|
+
);
|
|
439
476
|
if (caps.maxOutput !== void 0) {
|
|
440
477
|
deps.renderer.write(" max output: " + color.yellow(String(caps.maxOutput)) + "\n");
|
|
441
478
|
}
|
|
442
479
|
if (caps.knowledge) deps.renderer.write(" knowledge: " + caps.knowledge + "\n");
|
|
443
|
-
deps.renderer.write(
|
|
444
|
-
|
|
480
|
+
deps.renderer.write(
|
|
481
|
+
" flags: " + (flags.length > 0 ? flags.join(", ") : color.dim("(none)")) + "\n"
|
|
482
|
+
);
|
|
483
|
+
deps.renderer.write(
|
|
484
|
+
" pricing/1M: input " + fmtPrice(cost?.input) + " output " + fmtPrice(cost?.output) + " cacheR " + fmtPrice(cost?.cache_read) + "\n"
|
|
485
|
+
);
|
|
445
486
|
if (cost?.cache_write !== void 0 || cost?.cache_write_5m !== void 0 || cost?.cache_write_1h !== void 0) {
|
|
446
487
|
const cacheWrite1h = cost.cache_write_1h ?? (cost.input !== void 0 ? cost.input * 2 : void 0);
|
|
447
|
-
deps.renderer.write(
|
|
488
|
+
deps.renderer.write(
|
|
489
|
+
" cache write: default " + fmtPrice(cost.cache_write) + " 5m " + fmtPrice(cost.cache_write_5m ?? cost.cache_write) + " 1h " + fmtPrice(cacheWrite1h) + "\n"
|
|
490
|
+
);
|
|
448
491
|
}
|
|
449
492
|
if (rc) {
|
|
450
493
|
deps.renderer.write(" reasoning:\n");
|
|
451
494
|
deps.renderer.write(" default: " + rc.default + "\n");
|
|
452
|
-
deps.renderer.write(
|
|
453
|
-
|
|
495
|
+
deps.renderer.write(
|
|
496
|
+
" disable: " + (rc.disableSupported ? "supported" : "unsupported") + "\n"
|
|
497
|
+
);
|
|
498
|
+
deps.renderer.write(
|
|
499
|
+
" effort: " + (rc.effortSupported ? rc.effortLevels.join(", ") : "unsupported") + "\n"
|
|
500
|
+
);
|
|
454
501
|
deps.renderer.write(" preserve: " + rc.preserveThinking + "\n");
|
|
455
502
|
} else if (caps.reasoning) {
|
|
456
|
-
deps.renderer.write(
|
|
503
|
+
deps.renderer.write(
|
|
504
|
+
color.dim(" reasoning: supported, but no detailed config in catalog\n")
|
|
505
|
+
);
|
|
457
506
|
}
|
|
458
507
|
return 0;
|
|
459
508
|
}
|
|
@@ -612,4 +661,4 @@ export {
|
|
|
612
661
|
modelsCmd,
|
|
613
662
|
providersCmd
|
|
614
663
|
};
|
|
615
|
-
//# sourceMappingURL=providers-models-
|
|
664
|
+
//# sourceMappingURL=providers-models-VV74TRQ2.js.map
|
package/dist/repl.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReplOptions } from './repl-options.js';
|
|
2
|
-
export { parseSuggestionsFromOutput, parseAutoSuggestionsFromOutput } from './repl-suggestions.js';
|
|
3
2
|
export type { ReplOptions } from './repl-options.js';
|
|
3
|
+
export { parseAutoSuggestionsFromOutput, parseSuggestionsFromOutput } from './repl-suggestions.js';
|
|
4
4
|
export declare function runRepl(opts: ReplOptions): Promise<number>;
|
|
5
5
|
//# sourceMappingURL=repl.d.ts.map
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
import "./chunk-7OCVIDC7.js";
|
|
5
5
|
|
|
6
6
|
// src/subcommands/handlers/replay.ts
|
|
7
|
-
import { color, resolveWstackPaths } from "@wrongstack/core/utils";
|
|
8
7
|
import { ReplayLogStore } from "@wrongstack/core/storage";
|
|
8
|
+
import { color, resolveWstackPaths } from "@wrongstack/core/utils";
|
|
9
9
|
var replayCmd = async (args, deps) => {
|
|
10
10
|
args = restoreFlags(args, deps, ["list", "l"]);
|
|
11
11
|
const wpaths = resolveWstackPaths({
|
|
@@ -76,4 +76,4 @@ Run a session with --record first, then --replay to re-execute it.`
|
|
|
76
76
|
export {
|
|
77
77
|
replayCmd
|
|
78
78
|
};
|
|
79
|
-
//# sourceMappingURL=replay-
|
|
79
|
+
//# sourceMappingURL=replay-WBRMEWQ5.js.map
|
|
@@ -4,11 +4,10 @@ import {
|
|
|
4
4
|
import "./chunk-7OCVIDC7.js";
|
|
5
5
|
|
|
6
6
|
// src/subcommands/handlers/rewind.ts
|
|
7
|
-
import * as path from "node:path";
|
|
8
7
|
import {
|
|
9
8
|
DefaultSessionRewinder,
|
|
10
9
|
DefaultSessionStore,
|
|
11
|
-
|
|
10
|
+
SessionCatalogProjectClient
|
|
12
11
|
} from "@wrongstack/core/storage";
|
|
13
12
|
import { color, expectDefined, resolveWstackPaths, toErrorMessage } from "@wrongstack/core/utils";
|
|
14
13
|
function parseRewindFlags(args) {
|
|
@@ -75,21 +74,19 @@ var rewindCmd = async (args, deps) => {
|
|
|
75
74
|
}
|
|
76
75
|
return 0;
|
|
77
76
|
}
|
|
78
|
-
let
|
|
77
|
+
let maintenance;
|
|
79
78
|
const claimForHistoryMutation = async () => {
|
|
80
79
|
if (!flags.resume) return;
|
|
81
|
-
const
|
|
82
|
-
|
|
80
|
+
const client = new SessionCatalogProjectClient({
|
|
81
|
+
projectDir: wpaths.projectDir,
|
|
82
|
+
projectRoot: deps.projectRoot
|
|
83
|
+
});
|
|
84
|
+
const lease = await client.call("acquire_maintenance", {
|
|
83
85
|
sessionId: targetSessionId,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
projectName: path.basename(deps.projectRoot),
|
|
87
|
-
workingDir: deps.cwd,
|
|
88
|
-
clientType: "cli",
|
|
89
|
-
pid: process.pid,
|
|
90
|
-
startedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
86
|
+
operation: "rewind",
|
|
87
|
+
holderId: `rewind:${process.pid}`
|
|
91
88
|
});
|
|
92
|
-
|
|
89
|
+
maintenance = { client, lease };
|
|
93
90
|
};
|
|
94
91
|
try {
|
|
95
92
|
let result;
|
|
@@ -129,7 +126,7 @@ var rewindCmd = async (args, deps) => {
|
|
|
129
126
|
if (result.revertedFiles.length === 0) {
|
|
130
127
|
deps.renderer.write("No files to revert.\n");
|
|
131
128
|
if (flags.resume) {
|
|
132
|
-
const store = new DefaultSessionStore({ dir: sessionsDir });
|
|
129
|
+
const store = new DefaultSessionStore({ dir: sessionsDir, projectRoot: deps.projectRoot });
|
|
133
130
|
const resumed = await store.resume(targetSessionId);
|
|
134
131
|
const toIdx = result.toPromptIndex;
|
|
135
132
|
await resumed.writer.truncateToCheckpoint(toIdx);
|
|
@@ -147,7 +144,7 @@ Reverted ${result.revertedFiles.length} file(s):
|
|
|
147
144
|
`);
|
|
148
145
|
}
|
|
149
146
|
if (flags.resume) {
|
|
150
|
-
const store = new DefaultSessionStore({ dir: sessionsDir });
|
|
147
|
+
const store = new DefaultSessionStore({ dir: sessionsDir, projectRoot: deps.projectRoot });
|
|
151
148
|
const resumed = await store.resume(targetSessionId);
|
|
152
149
|
const toIdx = result.toPromptIndex;
|
|
153
150
|
const removed = await resumed.writer.truncateToCheckpoint(toIdx);
|
|
@@ -180,10 +177,13 @@ ${result.errors.length} error(s):
|
|
|
180
177
|
deps.renderer.writeError(toErrorMessage(err));
|
|
181
178
|
return 1;
|
|
182
179
|
} finally {
|
|
183
|
-
|
|
180
|
+
if (maintenance) {
|
|
181
|
+
await maintenance.client.call("release_maintenance", { lease: maintenance.lease }).catch(() => void 0);
|
|
182
|
+
await maintenance.client.close().catch(() => void 0);
|
|
183
|
+
}
|
|
184
184
|
}
|
|
185
185
|
};
|
|
186
186
|
export {
|
|
187
187
|
rewindCmd
|
|
188
188
|
};
|
|
189
|
-
//# sourceMappingURL=rewind-
|
|
189
|
+
//# sourceMappingURL=rewind-7RE6ONIC.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
trySaveImplementationPlan,
|
|
24
24
|
trySaveSpecFromAIOutput,
|
|
25
25
|
trySaveTasksFromAIOutput
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-DGXNL7OT.js";
|
|
27
27
|
import "./chunk-7OCVIDC7.js";
|
|
28
28
|
export {
|
|
29
29
|
SDDState,
|
|
@@ -51,4 +51,4 @@ export {
|
|
|
51
51
|
trySaveSpecFromAIOutput,
|
|
52
52
|
trySaveTasksFromAIOutput
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=sdd-runtime-
|
|
54
|
+
//# sourceMappingURL=sdd-runtime-GFZ3NJKS.js.map
|