@wrongstack/cli 0.298.0 → 0.298.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/README.md +51 -0
- package/dist/{auth-NLLGEYQR.js → auth-G5YKKSRH.js} +3 -3
- package/dist/chimera-reviewer-policy.d.ts +8 -1
- package/dist/{chunk-QUNHS6O3.js → chunk-4U3DMA2Y.js} +2 -2
- package/dist/{chunk-I2BM6FK6.js → chunk-L5CE52XW.js} +2 -2
- package/dist/{chunk-XWEGWYDU.js → chunk-PEKUKUCH.js} +4 -71
- package/dist/{chunk-JBSQ7ONN.js → chunk-ZNZJ34RF.js} +1 -1
- package/dist/{cli-main-TJEU4OUY.js → cli-main-ZDZMCVLM.js} +298 -111
- package/dist/{execution-INOV5P7N.js → execution-BY556FCF.js} +111 -462
- package/dist/execution-chimera-review.d.ts +11 -1
- package/dist/index.js +6 -6
- package/dist/live-settings-input.d.ts +11 -2
- package/dist/plugin-management.d.ts +3 -8
- package/dist/{plugin-usage-OU6X6LM3.js → plugin-usage-VTL7ZTVC.js} +2 -2
- package/dist/{plugins-4LJ5IUBI.js → plugins-ETY6W3DC.js} +3 -3
- package/package.json +23 -23
- package/dist/chimera-leader-wake.d.ts +0 -57
- package/dist/execution-chimera-ask.d.ts +0 -10
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProviderModelStatusTracker } from '@wrongstack/core/coordination';
|
|
1
2
|
import { type ChimeraReviewCompletePayload } from '@wrongstack/core/plugin';
|
|
2
3
|
import type { ExecuteDeps } from './execute-deps.js';
|
|
3
4
|
type Director = NonNullable<ExecuteDeps['fleet']['director']>;
|
|
@@ -27,9 +28,18 @@ export type InstallChimeraReviewHandlerOptions = {
|
|
|
27
28
|
agent: Agent;
|
|
28
29
|
config: Config;
|
|
29
30
|
projectDir: string;
|
|
31
|
+
/**
|
|
32
|
+
* Shared provider/model status tracker. When supplied, the round-robin
|
|
33
|
+
* Chimera reviewer spawn skips (provider, model) pairs currently in the
|
|
34
|
+
* waiting room (`state: 'blocked'`) so a 429-stricken model is never
|
|
35
|
+
* re-spawned on a concurrent reviewer turn. The tracker is the same
|
|
36
|
+
* singleton the leader's `/provider-status` reads from; see
|
|
37
|
+
* `packages/core/src/coordination/provider-status-tracker.ts`.
|
|
38
|
+
*/
|
|
39
|
+
statusTracker?: ProviderModelStatusTracker | undefined;
|
|
30
40
|
persistReview?: ((payload: ChimeraReviewCompletePayload, projectDir: string) => Promise<void>) | undefined;
|
|
31
41
|
setPendingWork: (work: PendingChimeraWork) => void;
|
|
32
42
|
};
|
|
33
|
-
export declare function installChimeraReviewHandler({ events, director, session, mailbox, agent, config, projectDir, persistReview, setPendingWork, }: InstallChimeraReviewHandlerOptions): void;
|
|
43
|
+
export declare function installChimeraReviewHandler({ events, director, session, mailbox, agent, config, projectDir, statusTracker, persistReview, setPendingWork, }: InstallChimeraReviewHandlerOptions): void;
|
|
34
44
|
export {};
|
|
35
45
|
//# sourceMappingURL=execution-chimera-review.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
parseArgs,
|
|
37
37
|
runPicker,
|
|
38
38
|
saveToGlobalConfig
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-ZNZJ34RF.js";
|
|
40
40
|
import {
|
|
41
41
|
isKeylessLocalProvider,
|
|
42
42
|
visibleModelIds
|
|
@@ -1497,7 +1497,7 @@ function compactSingleLine(text) {
|
|
|
1497
1497
|
var loaders = {
|
|
1498
1498
|
acp: async () => (await import("./acp-S4LZQB66.js")).acpCmd,
|
|
1499
1499
|
init: async () => (await import("./init-E2NDDOHI.js")).initCmd,
|
|
1500
|
-
auth: async () => (await import("./auth-
|
|
1500
|
+
auth: async () => (await import("./auth-G5YKKSRH.js")).authCmd,
|
|
1501
1501
|
update: async () => (await import("./update-MV6TUACD.js")).updateCmd,
|
|
1502
1502
|
sessions: async () => (await import("./sessions-config-NLCMK3BY.js")).sessionsCmd,
|
|
1503
1503
|
config: async () => (await import("./sessions-config-NLCMK3BY.js")).configCmd,
|
|
@@ -1509,12 +1509,12 @@ var loaders = {
|
|
|
1509
1509
|
providers: async () => (await import("./providers-models-GDELBHZK.js")).providersCmd,
|
|
1510
1510
|
models: async () => (await import("./providers-models-GDELBHZK.js")).modelsCmd,
|
|
1511
1511
|
mcp: async () => (await import("./mcp-CYLPUEHC.js")).mcpCmd,
|
|
1512
|
-
plugin: async () => (await import("./plugin-usage-
|
|
1513
|
-
plugins: async () => (await import("./plugin-usage-
|
|
1512
|
+
plugin: async () => (await import("./plugin-usage-VTL7ZTVC.js")).pluginCmd,
|
|
1513
|
+
plugins: async () => (await import("./plugin-usage-VTL7ZTVC.js")).pluginCmd,
|
|
1514
1514
|
diag: async () => (await import("./diag-doctor-OQ3AA63O.js")).diagCmd,
|
|
1515
1515
|
doctor: async () => (await import("./diag-doctor-OQ3AA63O.js")).doctorCmd,
|
|
1516
1516
|
export: async () => (await import("./export-TPORYVRZ.js")).exportCmd,
|
|
1517
|
-
usage: async () => (await import("./plugin-usage-
|
|
1517
|
+
usage: async () => (await import("./plugin-usage-VTL7ZTVC.js")).usageCmd,
|
|
1518
1518
|
version: async () => (await import("./version-help-ASKQYXDJ.js")).versionCmd,
|
|
1519
1519
|
help: async () => (await import("./version-help-ASKQYXDJ.js")).helpCmd,
|
|
1520
1520
|
projects: async () => (await import("./projects-XE76NFNZ.js")).projectsCmd,
|
|
@@ -3149,7 +3149,7 @@ async function initializeCli(argv) {
|
|
|
3149
3149
|
async function main(argv) {
|
|
3150
3150
|
const cliCtx = await initializeCli(argv);
|
|
3151
3151
|
if (typeof cliCtx === "number") return cliCtx;
|
|
3152
|
-
const { runInteractive } = await import("./cli-main-
|
|
3152
|
+
const { runInteractive } = await import("./cli-main-ZDZMCVLM.js");
|
|
3153
3153
|
return runInteractive(cliCtx);
|
|
3154
3154
|
}
|
|
3155
3155
|
|
|
@@ -63,8 +63,17 @@ export interface LiveSettingsInput {
|
|
|
63
63
|
cacheTtl?: 'default' | '5m' | '1h' | undefined;
|
|
64
64
|
/** Show "Model Reasoning" blocks in chat history. Default: true. */
|
|
65
65
|
showModelReasoning?: boolean | undefined;
|
|
66
|
-
/**
|
|
67
|
-
|
|
66
|
+
/** Agent swarm panel placement: 'bottom' (lower region), 'sidebar' (right sidebar), or 'off' (hidden).
|
|
67
|
+
* Backward-compat: legacy boolean values are coerced by the TUI settings adapter. Default: 'bottom'. */
|
|
68
|
+
showAgentSwarmPanel?: 'bottom' | 'sidebar' | 'off' | boolean | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Per-panel position map (one entry per F-key panel id). Each value is
|
|
71
|
+
* 'bottom' (F-key behavior) or 'sidebar' (right-sidebar twin). Persisted
|
|
72
|
+
* as `autonomy.panelPositions` in the project/profile config. The TUI
|
|
73
|
+
* auto-save hook passes a full PanelPositionMap (13 entries); the adapter
|
|
74
|
+
* stores it as-is. Default: every panel 'bottom' when unset.
|
|
75
|
+
*/
|
|
76
|
+
panelPositions?: Readonly<Record<string, 'bottom' | 'sidebar'>> | undefined;
|
|
68
77
|
/** Show SAGE Memory Inject blocks in tool results. Default: false. */
|
|
69
78
|
showSageMemoryInject?: boolean | undefined;
|
|
70
79
|
/**
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import type { Config, PluginConfig, PluginManagerConfig } from '@wrongstack/core/types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
summary: string;
|
|
6
|
-
defaultState: 'active' | 'inactive';
|
|
7
|
-
canDisable: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare const PLUGIN_AUDIT_ENTRIES: readonly PluginAuditEntry[];
|
|
2
|
+
import { PLUGIN_AUDIT_ENTRIES, type PluginAuditEntry } from '@wrongstack/plugins/plugin-audit-catalog';
|
|
3
|
+
export { PLUGIN_AUDIT_ENTRIES };
|
|
4
|
+
export type { PluginAuditEntry };
|
|
10
5
|
export declare const OFFICIAL_PLUGINS: readonly [{
|
|
11
6
|
readonly alias: 'telegram';
|
|
12
7
|
readonly specifier: '@wrongstack/telegram';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPluginManagementCommand
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PEKUKUCH.js";
|
|
4
4
|
import {
|
|
5
5
|
activeProfileConfigPath
|
|
6
6
|
} from "./chunk-DPJZQCVP.js";
|
|
@@ -37,4 +37,4 @@ export {
|
|
|
37
37
|
pluginCmd,
|
|
38
38
|
usageCmd
|
|
39
39
|
};
|
|
40
|
-
//# sourceMappingURL=plugin-usage-
|
|
40
|
+
//# sourceMappingURL=plugin-usage-VTL7ZTVC.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-4U3DMA2Y.js";
|
|
11
|
+
import "./chunk-PEKUKUCH.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-ETY6W3DC.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/cli",
|
|
3
|
-
"version": "0.298.
|
|
3
|
+
"version": "0.298.2",
|
|
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": [
|
|
@@ -42,32 +42,32 @@
|
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"ws": "^8.21.1",
|
|
45
|
-
"@wrongstack/
|
|
46
|
-
"@wrongstack/
|
|
47
|
-
"@wrongstack/
|
|
48
|
-
"@wrongstack/
|
|
49
|
-
"@wrongstack/
|
|
50
|
-
"@wrongstack/
|
|
51
|
-
"@wrongstack/
|
|
52
|
-
"@wrongstack/
|
|
53
|
-
"@wrongstack/
|
|
54
|
-
"@wrongstack/
|
|
55
|
-
"@wrongstack/
|
|
56
|
-
"@wrongstack/
|
|
57
|
-
"@wrongstack/
|
|
58
|
-
"@wrongstack/
|
|
59
|
-
"@wrongstack/
|
|
60
|
-
"@wrongstack/
|
|
61
|
-
"@wrongstack/
|
|
62
|
-
"@wrongstack/webui-hq": "0.298.
|
|
63
|
-
"@wrongstack/
|
|
64
|
-
"@wrongstack/webui
|
|
45
|
+
"@wrongstack/bench": "0.298.2",
|
|
46
|
+
"@wrongstack/acp": "0.298.2",
|
|
47
|
+
"@wrongstack/kanban": "0.298.2",
|
|
48
|
+
"@wrongstack/plug-lsp": "0.298.2",
|
|
49
|
+
"@wrongstack/mcp": "0.298.2",
|
|
50
|
+
"@wrongstack/plugins": "0.298.2",
|
|
51
|
+
"@wrongstack/core": "0.298.2",
|
|
52
|
+
"@wrongstack/sdd": "0.298.2",
|
|
53
|
+
"@wrongstack/runtime": "0.298.2",
|
|
54
|
+
"@wrongstack/providers": "0.298.2",
|
|
55
|
+
"@wrongstack/security-scanner": "0.298.2",
|
|
56
|
+
"@wrongstack/simpleui": "0.298.2",
|
|
57
|
+
"@wrongstack/sage": "0.298.2",
|
|
58
|
+
"@wrongstack/telegram": "0.298.2",
|
|
59
|
+
"@wrongstack/techstack": "0.298.2",
|
|
60
|
+
"@wrongstack/tools": "0.298.2",
|
|
61
|
+
"@wrongstack/tui": "0.298.2",
|
|
62
|
+
"@wrongstack/webui-hq": "0.298.2",
|
|
63
|
+
"@wrongstack/webui-server": "0.298.2",
|
|
64
|
+
"@wrongstack/webui": "0.298.2"
|
|
65
65
|
},
|
|
66
66
|
"optionalDependencies": {
|
|
67
|
-
"@wrongstack/desktop": "0.298.
|
|
67
|
+
"@wrongstack/desktop": "0.298.2"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@types/node": "^26.1.
|
|
70
|
+
"@types/node": "^26.1.2",
|
|
71
71
|
"@types/ws": "^8.18.1",
|
|
72
72
|
"jsdom": "^29.1.1",
|
|
73
73
|
"typescript": "^7.0.2"
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { RunResult } from '@wrongstack/core/agent';
|
|
2
|
-
import type { ContentBlock } from '@wrongstack/core/types';
|
|
3
|
-
export interface ChimeraLeaderWakeAgent {
|
|
4
|
-
readonly ctx: {
|
|
5
|
-
activeRunSessionId?: string | undefined;
|
|
6
|
-
session?: {
|
|
7
|
-
id: string;
|
|
8
|
-
} | undefined;
|
|
9
|
-
};
|
|
10
|
-
run(input: string | ContentBlock[], options?: {
|
|
11
|
-
signal?: AbortSignal | undefined;
|
|
12
|
-
}): Promise<RunResult>;
|
|
13
|
-
}
|
|
14
|
-
export interface ChimeraLeaderWakeEvents {
|
|
15
|
-
emitCustom(event: string, payload: unknown): void;
|
|
16
|
-
}
|
|
17
|
-
export interface ChimeraLeaderWakeRequest {
|
|
18
|
-
sessionId: string;
|
|
19
|
-
cwd: string;
|
|
20
|
-
changedFiles: readonly string[];
|
|
21
|
-
structuredReport: string;
|
|
22
|
-
/** Optional stable key supplied by a durable report store. */
|
|
23
|
-
reportId?: string | undefined;
|
|
24
|
-
}
|
|
25
|
-
export interface ChimeraLeaderWakeResult {
|
|
26
|
-
key: string;
|
|
27
|
-
status: RunResult['status'];
|
|
28
|
-
iterations: number;
|
|
29
|
-
finalText?: string | undefined;
|
|
30
|
-
}
|
|
31
|
-
export declare function shouldWakeChimeraLeader(input: {
|
|
32
|
-
autoFix: 'off' | 'ask' | 'auto';
|
|
33
|
-
hasActionableFindings: boolean;
|
|
34
|
-
leaderApproved: boolean;
|
|
35
|
-
reviewLength: number;
|
|
36
|
-
}): boolean;
|
|
37
|
-
export interface ChimeraLeaderWakeQueue {
|
|
38
|
-
enqueue(request: ChimeraLeaderWakeRequest): Promise<ChimeraLeaderWakeResult>;
|
|
39
|
-
}
|
|
40
|
-
export interface CreateChimeraLeaderWakeQueueOptions {
|
|
41
|
-
agent: ChimeraLeaderWakeAgent;
|
|
42
|
-
events: ChimeraLeaderWakeEvents;
|
|
43
|
-
idlePollMs?: number | undefined;
|
|
44
|
-
wakeTimeoutMs?: number | undefined;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Serialize system-originated Chimera follow-ups through the session leader.
|
|
48
|
-
*
|
|
49
|
-
* A Chimera review can finish after the user's turn has returned. Calling
|
|
50
|
-
* `Agent.run()` immediately is unsafe when that turn is still draining, so
|
|
51
|
-
* the queue waits for the agent's pinned run marker to clear and then starts
|
|
52
|
-
* exactly one synthetic follow-up for a report/content key.
|
|
53
|
-
*/
|
|
54
|
-
export declare function createChimeraLeaderWakeQueue(options: CreateChimeraLeaderWakeQueueOptions): ChimeraLeaderWakeQueue;
|
|
55
|
-
export declare function chimeraLeaderWakeKey(request: ChimeraLeaderWakeRequest): string;
|
|
56
|
-
export declare function buildChimeraLeaderWakePrompt(request: ChimeraLeaderWakeRequest): string;
|
|
57
|
-
//# sourceMappingURL=chimera-leader-wake.d.ts.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Mailbox } from '@wrongstack/core/coordination';
|
|
2
|
-
import type { SessionWriter } from '@wrongstack/core/types';
|
|
3
|
-
export declare function waitForChimeraAskApproval(opts: {
|
|
4
|
-
mailbox: Mailbox;
|
|
5
|
-
messageId: string;
|
|
6
|
-
meta: Record<string, unknown>;
|
|
7
|
-
session: SessionWriter;
|
|
8
|
-
askTimeoutMs: number;
|
|
9
|
-
}): Promise<boolean>;
|
|
10
|
-
//# sourceMappingURL=execution-chimera-ask.d.ts.map
|