@wrongstack/cli 0.316.2 → 0.317.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/dist/{auth-GZ5A5OF5.js → auth-3OSF6BMU.js} +3 -3
- package/dist/{chunk-NZZOYLQ7.js → chunk-7JBKXVMK.js} +3 -3
- package/dist/{chunk-VXCCBI2W.js → chunk-DE7BZDNK.js} +2 -2
- package/dist/{chunk-T642Q732.js → chunk-L6ZNCTRJ.js} +10 -21
- package/dist/{chunk-NV3JDK4F.js → chunk-YLQEGYV4.js} +5 -5
- package/dist/{chunk-32MTOI2I.js → chunk-YX6KUIDF.js} +2 -2
- package/dist/{cli-main-IEAM6SK7.js → cli-main-ILRTNPDP.js} +78 -19
- package/dist/{execution-TZUGCKFU.js → execution-BN4QIFH6.js} +13 -2
- package/dist/execution-chimera-review.d.ts +1 -1
- package/dist/fleet/host-explore-companion.d.ts +1 -0
- package/dist/fleet/host-shadow-manager.d.ts +1 -1
- package/dist/fleet/host-supervisor.d.ts +1 -0
- package/dist/{hq-NDTJRRX3.js → hq-3GWBFLON.js} +2 -2
- package/dist/{hq-server-OH3SPSE2.js → hq-server-OARPUSQJ.js} +2 -2
- package/dist/index.js +10 -10
- package/dist/{update-XKARO3CY.js → update-K45CS6SS.js} +3 -3
- package/dist/{update-check-LICQNYFK.js → update-check-PKSMSMD6.js} +2 -2
- package/dist/{webui-server-LZOEH7O6.js → webui-server-OJLLM6PE.js} +14 -2
- package/dist/wiring/command-host-state.d.ts +1 -1
- package/dist/wiring/fleet-command-handlers.d.ts +1 -1
- package/package.json +28 -28
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
runOAuthLoginKind,
|
|
14
14
|
runOAuthLoginMenu,
|
|
15
15
|
validateFamily
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-YX6KUIDF.js";
|
|
17
17
|
import {
|
|
18
18
|
restoreFlags
|
|
19
19
|
} from "./chunk-CSAPOCBP.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-2VMJ3E5Z.js";
|
|
24
24
|
import {
|
|
25
25
|
parseAuthFlags
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-L6ZNCTRJ.js";
|
|
27
27
|
import "./chunk-B4JLSXZB.js";
|
|
28
28
|
import "./chunk-VUVOMXWP.js";
|
|
29
29
|
import {
|
|
@@ -596,4 +596,4 @@ async function runAuthRemove(deps, providerId) {
|
|
|
596
596
|
export {
|
|
597
597
|
authCmd
|
|
598
598
|
};
|
|
599
|
-
//# sourceMappingURL=auth-
|
|
599
|
+
//# sourceMappingURL=auth-3OSF6BMU.js.map
|
|
@@ -2843,8 +2843,8 @@ async function handleApiAgentMessages(req, res, match, agentMessages) {
|
|
|
2843
2843
|
// src/hq-server/routes/system-handlers.ts
|
|
2844
2844
|
async function handleApiSystemUpdate(res) {
|
|
2845
2845
|
const [{ checkForUpdate }, { detectUpdatePackageName }] = await Promise.all([
|
|
2846
|
-
import("./update-check-
|
|
2847
|
-
import("./update-
|
|
2846
|
+
import("./update-check-PKSMSMD6.js"),
|
|
2847
|
+
import("./update-K45CS6SS.js")
|
|
2848
2848
|
]);
|
|
2849
2849
|
const packageName = detectUpdatePackageName();
|
|
2850
2850
|
const info = await checkForUpdate({ packageName });
|
|
@@ -4914,4 +4914,4 @@ export {
|
|
|
4914
4914
|
startHqServer,
|
|
4915
4915
|
HqInsecureExposureError2 as HqInsecureExposureError
|
|
4916
4916
|
};
|
|
4917
|
-
//# sourceMappingURL=chunk-
|
|
4917
|
+
//# sourceMappingURL=chunk-7JBKXVMK.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-U3SS4NRH.js";
|
|
4
4
|
import {
|
|
5
5
|
checkForUpdate
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YLQEGYV4.js";
|
|
7
7
|
|
|
8
8
|
// src/subcommands/handlers/update.ts
|
|
9
9
|
import { spawn } from "node:child_process";
|
|
@@ -383,4 +383,4 @@ export {
|
|
|
383
383
|
detectUpdatePackageManager,
|
|
384
384
|
detectUpdatePackageName
|
|
385
385
|
};
|
|
386
|
-
//# sourceMappingURL=chunk-
|
|
386
|
+
//# sourceMappingURL=chunk-DE7BZDNK.js.map
|
|
@@ -215,31 +215,20 @@ function parseSpawnFlags(input) {
|
|
|
215
215
|
};
|
|
216
216
|
while (rest.length > 0) {
|
|
217
217
|
let m;
|
|
218
|
-
m = consume(
|
|
218
|
+
m = consume(/^(?:--provider|-p)[=\s]+(\S+)\s*/);
|
|
219
219
|
if (m) opts.provider = m[1];
|
|
220
220
|
else {
|
|
221
|
-
m = consume(
|
|
221
|
+
m = consume(/^(?:--model|-m)[=\s]+(\S+)\s*/);
|
|
222
222
|
if (m) opts.model = m[1];
|
|
223
223
|
else {
|
|
224
|
-
m = consume(
|
|
225
|
-
if (m) opts.name = m[2] ?? m[3];
|
|
224
|
+
m = consume(/^(?:--name|-n)[=\s]+(?:"([^"]+)"|'([^']+)'|(\S+))\s*/);
|
|
225
|
+
if (m) opts.name = m[1] ?? m[2] ?? m[3];
|
|
226
226
|
else {
|
|
227
|
-
m = consume(
|
|
228
|
-
if (m)
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (m) opts.provider = m[1];
|
|
233
|
-
else {
|
|
234
|
-
m = consume(/^-m\s+(\S+)\s*/);
|
|
235
|
-
if (m) opts.model = m[1];
|
|
236
|
-
else {
|
|
237
|
-
m = consume(/^-n\s+("([^"]+)"|(\S+))\s*/);
|
|
238
|
-
if (m) opts.name = m[2] ?? m[3];
|
|
239
|
-
else break;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
227
|
+
m = consume(/^(?:--tools|-t)[=\s]+(?:"([^"]+)"|'([^']+)'|(\S+))\s*/);
|
|
228
|
+
if (m) {
|
|
229
|
+
const rawTools = m[1] ?? m[2] ?? m[3] ?? "";
|
|
230
|
+
opts.tools = rawTools.split(",").map((t) => t.trim()).filter(Boolean);
|
|
231
|
+
} else break;
|
|
243
232
|
}
|
|
244
233
|
}
|
|
245
234
|
}
|
|
@@ -1075,4 +1064,4 @@ export {
|
|
|
1075
1064
|
runLiveProviderPicker,
|
|
1076
1065
|
runPicker
|
|
1077
1066
|
};
|
|
1078
|
-
//# sourceMappingURL=chunk-
|
|
1067
|
+
//# sourceMappingURL=chunk-L6ZNCTRJ.js.map
|
|
@@ -5,7 +5,7 @@ import { createRequire } from "node:module";
|
|
|
5
5
|
import * as os from "node:os";
|
|
6
6
|
import * as path from "node:path";
|
|
7
7
|
import { FetchError } from "@wrongstack/core/types";
|
|
8
|
-
import { resolveWstackPaths } from "@wrongstack/core/utils";
|
|
8
|
+
import { atomicWrite, ensureDir, resolveWstackPaths } from "@wrongstack/core/utils";
|
|
9
9
|
var defaultHomeDir = () => os.homedir();
|
|
10
10
|
function npmRegistryUrl(packageName) {
|
|
11
11
|
return `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`;
|
|
@@ -87,9 +87,9 @@ async function readCache(homeFn = defaultHomeDir, packageName = "wrongstack") {
|
|
|
87
87
|
}
|
|
88
88
|
async function writeCache(entry, homeFn = defaultHomeDir) {
|
|
89
89
|
try {
|
|
90
|
-
const
|
|
91
|
-
await
|
|
92
|
-
await
|
|
90
|
+
const file = cachePath(homeFn);
|
|
91
|
+
await ensureDir(path.dirname(file));
|
|
92
|
+
await atomicWrite(file, JSON.stringify(entry, null, 2));
|
|
93
93
|
} catch {
|
|
94
94
|
}
|
|
95
95
|
}
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
checkForUpdate,
|
|
174
174
|
getUpdateNotification
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=chunk-
|
|
176
|
+
//# sourceMappingURL=chunk-YLQEGYV4.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LOCAL_LLM_PRESETS,
|
|
3
3
|
runLiveProviderPicker
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-L6ZNCTRJ.js";
|
|
5
5
|
import {
|
|
6
6
|
openBrowser,
|
|
7
7
|
runCodexOAuthLogin,
|
|
@@ -1374,4 +1374,4 @@ export {
|
|
|
1374
1374
|
addCustomProvider,
|
|
1375
1375
|
addKeyForProvider
|
|
1376
1376
|
};
|
|
1377
|
-
//# sourceMappingURL=chunk-
|
|
1377
|
+
//# sourceMappingURL=chunk-YX6KUIDF.js.map
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
} from "./chunk-U3SS4NRH.js";
|
|
76
76
|
import {
|
|
77
77
|
checkForUpdate
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-YLQEGYV4.js";
|
|
79
79
|
import {
|
|
80
80
|
CLI_VERSION
|
|
81
81
|
} from "./chunk-XJXDOF63.js";
|
|
@@ -96,11 +96,11 @@ import {
|
|
|
96
96
|
runClaudeOAuthLogin,
|
|
97
97
|
runCopilotOAuthLogin,
|
|
98
98
|
validateFamily
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-YX6KUIDF.js";
|
|
100
100
|
import {
|
|
101
101
|
LOCAL_LLM_PRESETS,
|
|
102
102
|
parseSpawnFlags
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-L6ZNCTRJ.js";
|
|
104
104
|
import {
|
|
105
105
|
appendHistory
|
|
106
106
|
} from "./chunk-B4JLSXZB.js";
|
|
@@ -1241,6 +1241,7 @@ import {
|
|
|
1241
1241
|
} from "@wrongstack/core/agent-catalog";
|
|
1242
1242
|
import {
|
|
1243
1243
|
AdaptiveConcurrencyController,
|
|
1244
|
+
areSubagentsAllowedForSession as areSubagentsAllowedForSession2,
|
|
1244
1245
|
DEFAULT_MAX_FLEET_SPAWNS as DEFAULT_MAX_FLEET_SPAWNS2,
|
|
1245
1246
|
Director,
|
|
1246
1247
|
FLEET_ROSTER as FLEET_ROSTER2,
|
|
@@ -1979,6 +1980,9 @@ function createHostExploreCompanion(input) {
|
|
|
1979
1980
|
const template = roster[DEFAULT_EXPLORE_COMPANION_AGENT_ID];
|
|
1980
1981
|
let residentId;
|
|
1981
1982
|
const ensureResident = async () => {
|
|
1983
|
+
if (input.subagentsAllowed?.() === false) {
|
|
1984
|
+
throw new Error("Subagents are disabled for this session.");
|
|
1985
|
+
}
|
|
1982
1986
|
if (residentId) {
|
|
1983
1987
|
const alive = director.status().subagents.some((s) => s.id === residentId);
|
|
1984
1988
|
if (alive) return residentId;
|
|
@@ -2378,6 +2382,9 @@ function applyFleetRootDefaults(opts) {
|
|
|
2378
2382
|
}
|
|
2379
2383
|
}
|
|
2380
2384
|
|
|
2385
|
+
// src/fleet/host-shadow-manager.ts
|
|
2386
|
+
import { areSubagentsAllowedForSession } from "@wrongstack/core/coordination";
|
|
2387
|
+
|
|
2381
2388
|
// src/fleet/host-shadow-pass.ts
|
|
2382
2389
|
async function runHostShadowPass(ctx, reason) {
|
|
2383
2390
|
try {
|
|
@@ -2652,6 +2659,7 @@ var HostShadowManager = class {
|
|
|
2652
2659
|
const director = this.ctx.getDirector();
|
|
2653
2660
|
if (!director) return;
|
|
2654
2661
|
const id = this.resolve(sessionId);
|
|
2662
|
+
if (!areSubagentsAllowedForSession(id)) return;
|
|
2655
2663
|
const state = this.stateFor(id);
|
|
2656
2664
|
if (state.passInFlight || state.agentId && this.isActiveSubagent(state.agentId)) {
|
|
2657
2665
|
state.queuedProblem = state.queuedProblem ? `${state.queuedProblem}; ${reason}` : reason;
|
|
@@ -3710,6 +3718,10 @@ function createHostFleetSupervisor(input) {
|
|
|
3710
3718
|
retargetPendingTask: (taskId, subagentId) => director.retargetPendingTask(taskId, subagentId),
|
|
3711
3719
|
spawnHelper: async ({ reason, task }) => {
|
|
3712
3720
|
try {
|
|
3721
|
+
const originSessionId = sessionOf(task?.subagentId);
|
|
3722
|
+
if (input.subagentsAllowed?.(originSessionId) === false) {
|
|
3723
|
+
return { error: "Subagents are disabled for this session." };
|
|
3724
|
+
}
|
|
3713
3725
|
const routed = await dispatchAgent(task?.description ?? reason, {
|
|
3714
3726
|
classifier: director.dispatchClassifier
|
|
3715
3727
|
});
|
|
@@ -3726,7 +3738,7 @@ function createHostFleetSupervisor(input) {
|
|
|
3726
3738
|
systemPromptOverride: helperPrompt,
|
|
3727
3739
|
// The helper drains a specific backlog, so it belongs to whoever
|
|
3728
3740
|
// owns that work — not to the tab this host booted with.
|
|
3729
|
-
originSessionId
|
|
3741
|
+
originSessionId
|
|
3730
3742
|
});
|
|
3731
3743
|
return { subagentId };
|
|
3732
3744
|
} catch (err) {
|
|
@@ -3946,6 +3958,7 @@ var MultiAgentHost = class {
|
|
|
3946
3958
|
* means the host's own session, which is the only one a CLI or TUI has.
|
|
3947
3959
|
*/
|
|
3948
3960
|
async runShadowPass(reason, sessionId) {
|
|
3961
|
+
if (!areSubagentsAllowedForSession2(sessionId ?? this.deps.session.id)) return;
|
|
3949
3962
|
return this.shadowManager.runShadowPass(reason, sessionId);
|
|
3950
3963
|
}
|
|
3951
3964
|
async ensureCoordinator(_config) {
|
|
@@ -4038,12 +4051,15 @@ var MultiAgentHost = class {
|
|
|
4038
4051
|
sessionId,
|
|
4039
4052
|
mailboxProjectDir: this.mailboxProjectDir(),
|
|
4040
4053
|
roster: this.roster,
|
|
4041
|
-
config: config.fleet?.exploreCompanion
|
|
4054
|
+
config: config.fleet?.exploreCompanion,
|
|
4055
|
+
subagentsAllowed: () => areSubagentsAllowedForSession2(sessionId)
|
|
4042
4056
|
}) : null
|
|
4043
4057
|
});
|
|
4044
4058
|
this.exploreCompanions.ensure(this.deps.session.id);
|
|
4045
4059
|
this.exploreCompanionOff = this.deps.events.on("agent.run.started", (e) => {
|
|
4046
|
-
if (e.sessionId
|
|
4060
|
+
if (e.sessionId && areSubagentsAllowedForSession2(e.sessionId)) {
|
|
4061
|
+
this.exploreCompanions?.ensure(e.sessionId);
|
|
4062
|
+
}
|
|
4047
4063
|
});
|
|
4048
4064
|
this.directorOffHandles.push(
|
|
4049
4065
|
...registerDirectorBudgetAndContextBridges({
|
|
@@ -4179,7 +4195,8 @@ var MultiAgentHost = class {
|
|
|
4179
4195
|
sessionFor: (subagentId) => this.sessionForSubagent(subagentId),
|
|
4180
4196
|
mailboxProjectDir: this.mailboxProjectDir(),
|
|
4181
4197
|
roster: this.roster,
|
|
4182
|
-
getLeaderMailboxId: this.opts.getLeaderMailboxId
|
|
4198
|
+
getLeaderMailboxId: this.opts.getLeaderMailboxId,
|
|
4199
|
+
subagentsAllowed: areSubagentsAllowedForSession2
|
|
4183
4200
|
});
|
|
4184
4201
|
}
|
|
4185
4202
|
async reportTaskResultToLeader(n) {
|
|
@@ -4204,6 +4221,13 @@ var MultiAgentHost = class {
|
|
|
4204
4221
|
async spawn(description, opts) {
|
|
4205
4222
|
const isShadowSpawn = opts?.name === "shadow";
|
|
4206
4223
|
const originSessionId = opts?.originSessionId ?? this.deps.session.id;
|
|
4224
|
+
if (!areSubagentsAllowedForSession2(originSessionId)) {
|
|
4225
|
+
throw new AgentError({
|
|
4226
|
+
message: "Subagents are disabled for this session.",
|
|
4227
|
+
code: "AGENT_RUN_FAILED",
|
|
4228
|
+
context: { sessionId: originSessionId, phase: "subagentPolicy" }
|
|
4229
|
+
});
|
|
4230
|
+
}
|
|
4207
4231
|
if (isShadowSpawn) this.shadowManager.enterShadowSpawn(originSessionId);
|
|
4208
4232
|
try {
|
|
4209
4233
|
await this.buildDirector();
|
|
@@ -4258,6 +4282,14 @@ var MultiAgentHost = class {
|
|
|
4258
4282
|
return result;
|
|
4259
4283
|
}
|
|
4260
4284
|
async _spawnAndAssign(subagentConfig, description = "", opts) {
|
|
4285
|
+
const originSessionId = subagentConfig.originSessionId ?? this.deps.session.id;
|
|
4286
|
+
if (!areSubagentsAllowedForSession2(originSessionId)) {
|
|
4287
|
+
throw new AgentError({
|
|
4288
|
+
message: "Subagents are disabled for this session.",
|
|
4289
|
+
code: "AGENT_RUN_FAILED",
|
|
4290
|
+
context: { sessionId: originSessionId, phase: "subagentPolicy" }
|
|
4291
|
+
});
|
|
4292
|
+
}
|
|
4261
4293
|
const taskId = randomUUID5();
|
|
4262
4294
|
if (!this.director)
|
|
4263
4295
|
throw new AgentError({
|
|
@@ -5678,7 +5710,7 @@ async function runCliExecution(params) {
|
|
|
5678
5710
|
governanceHandle,
|
|
5679
5711
|
setConfig
|
|
5680
5712
|
} = params;
|
|
5681
|
-
const { execute } = await import("./execution-
|
|
5713
|
+
const { execute } = await import("./execution-BN4QIFH6.js");
|
|
5682
5714
|
return execute(
|
|
5683
5715
|
toExecuteDeps({
|
|
5684
5716
|
core: {
|
|
@@ -6902,7 +6934,10 @@ import { createReadStream } from "node:fs";
|
|
|
6902
6934
|
import * as fs2 from "node:fs/promises";
|
|
6903
6935
|
import * as path8 from "node:path";
|
|
6904
6936
|
import { createInterface } from "node:readline";
|
|
6905
|
-
import {
|
|
6937
|
+
import {
|
|
6938
|
+
areSubagentsAllowedForSession as areSubagentsAllowedForSession3,
|
|
6939
|
+
FLEET_ROSTER as FLEET_ROSTER4
|
|
6940
|
+
} from "@wrongstack/core/coordination";
|
|
6906
6941
|
import { loadDirectorState } from "@wrongstack/core/storage";
|
|
6907
6942
|
import { AgentError as AgentError2 } from "@wrongstack/core/types";
|
|
6908
6943
|
import { color as color5, expectDefined as expectDefined2 } from "@wrongstack/core/utils";
|
|
@@ -6954,6 +6989,10 @@ ${color5.dim("\u2500".repeat(40))}` : "";
|
|
|
6954
6989
|
}
|
|
6955
6990
|
},
|
|
6956
6991
|
onFleetSpawn: async (role) => {
|
|
6992
|
+
const originSessionId = input.getSessionId();
|
|
6993
|
+
if (!areSubagentsAllowedForSession3(originSessionId)) {
|
|
6994
|
+
throw new Error("Subagents are disabled for this session.");
|
|
6995
|
+
}
|
|
6957
6996
|
const director = input.getDirector();
|
|
6958
6997
|
if (!director) {
|
|
6959
6998
|
throw new AgentError2({
|
|
@@ -6962,14 +7001,15 @@ ${color5.dim("\u2500".repeat(40))}` : "";
|
|
|
6962
7001
|
context: { phase: "fleet-spawn", role }
|
|
6963
7002
|
});
|
|
6964
7003
|
}
|
|
6965
|
-
return director.spawn(
|
|
6966
|
-
FLEET_ROSTER4[role] ?? {
|
|
7004
|
+
return director.spawn({
|
|
7005
|
+
...FLEET_ROSTER4[role] ?? {
|
|
6967
7006
|
id: `manual-${Date.now()}`,
|
|
6968
7007
|
name: role,
|
|
6969
7008
|
maxIterations: 50,
|
|
6970
7009
|
maxToolCalls: 200
|
|
6971
|
-
}
|
|
6972
|
-
|
|
7010
|
+
},
|
|
7011
|
+
originSessionId
|
|
7012
|
+
});
|
|
6973
7013
|
},
|
|
6974
7014
|
onFleetLog: (subagentId, mode) => readFleetLog(input.fleetRoot, subagentId, mode),
|
|
6975
7015
|
onFleetRetry: (taskId) => retryInterruptedTasks(input, taskId),
|
|
@@ -7296,6 +7336,10 @@ async function retryInterruptedTasks(input, taskId) {
|
|
|
7296
7336
|
const targets = taskId === "all" ? interrupted : interrupted.filter((task) => task.taskId === taskId || task.taskId.startsWith(taskId));
|
|
7297
7337
|
if (targets.length === 0) return `No interrupted task matched "${taskId}".`;
|
|
7298
7338
|
const results = [];
|
|
7339
|
+
const originSessionId = input.getSessionId();
|
|
7340
|
+
if (!areSubagentsAllowedForSession3(originSessionId)) {
|
|
7341
|
+
return "Subagents are disabled for this session.";
|
|
7342
|
+
}
|
|
7299
7343
|
for (const task of targets) {
|
|
7300
7344
|
const owner = task.subagentId ? prior.subagents.find((subagent) => subagent.id === task.subagentId) : void 0;
|
|
7301
7345
|
if (!owner) {
|
|
@@ -7310,7 +7354,7 @@ async function retryInterruptedTasks(input, taskId) {
|
|
|
7310
7354
|
model: owner.model
|
|
7311
7355
|
};
|
|
7312
7356
|
try {
|
|
7313
|
-
const subagentId = await director.spawn(config);
|
|
7357
|
+
const subagentId = await director.spawn({ ...config, originSessionId });
|
|
7314
7358
|
const newTaskId = await director.assign({
|
|
7315
7359
|
id: "",
|
|
7316
7360
|
description: task.description ?? "(no description)",
|
|
@@ -31658,7 +31702,10 @@ function setupCliSlashCommands(params) {
|
|
|
31658
31702
|
}
|
|
31659
31703
|
|
|
31660
31704
|
// src/wiring/command-host-state.ts
|
|
31661
|
-
import {
|
|
31705
|
+
import {
|
|
31706
|
+
areSubagentsAllowedForSession as areSubagentsAllowedForSession4,
|
|
31707
|
+
FLEET_ROSTER as FLEET_ROSTER5
|
|
31708
|
+
} from "@wrongstack/core/coordination";
|
|
31662
31709
|
import {
|
|
31663
31710
|
AgentError as AgentError3,
|
|
31664
31711
|
resolveFleetChatVerbosity as resolveFleetChatVerbosity2
|
|
@@ -31735,7 +31782,7 @@ async function setupCommandHostState(input) {
|
|
|
31735
31782
|
input.hqCommandController.interruptLeader = () => interruptController.abortLeader();
|
|
31736
31783
|
input.hqCommandController.killFleet = () => killFleet2(input.getDirector());
|
|
31737
31784
|
input.hqCommandController.terminateAgent = (subagentId) => terminateAgent(input.getDirector(), subagentId);
|
|
31738
|
-
input.hqCommandController.spawnAgent = (role, task, maxIterations) => spawnAgent2(input.getDirector(), role, task, maxIterations);
|
|
31785
|
+
input.hqCommandController.spawnAgent = (role, task, maxIterations) => spawnAgent2(input.getDirector(), input.sessionRef.current?.id ?? input.session.id, role, task, maxIterations);
|
|
31739
31786
|
const enhanceController = createEnhanceController(input.getConfig());
|
|
31740
31787
|
const statuslineConfigDeps = createStatuslineConfigDeps();
|
|
31741
31788
|
const hidden = await loadStatuslineHiddenItems();
|
|
@@ -31836,7 +31883,7 @@ async function terminateAgent(director, subagentId) {
|
|
|
31836
31883
|
return false;
|
|
31837
31884
|
}
|
|
31838
31885
|
}
|
|
31839
|
-
async function spawnAgent2(director, role, task, maxIterations) {
|
|
31886
|
+
async function spawnAgent2(director, sessionId, role, task, maxIterations) {
|
|
31840
31887
|
if (!director) {
|
|
31841
31888
|
throw new AgentError3({
|
|
31842
31889
|
message: "Director is not available.",
|
|
@@ -31844,6 +31891,9 @@ async function spawnAgent2(director, role, task, maxIterations) {
|
|
|
31844
31891
|
context: { phase: "hq-spawn", role }
|
|
31845
31892
|
});
|
|
31846
31893
|
}
|
|
31894
|
+
if (!areSubagentsAllowedForSession4(sessionId)) {
|
|
31895
|
+
throw new Error("Subagents are disabled for this session.");
|
|
31896
|
+
}
|
|
31847
31897
|
const base = FLEET_ROSTER5[role] ?? {
|
|
31848
31898
|
id: `manual-${Date.now()}`,
|
|
31849
31899
|
name: role,
|
|
@@ -31851,7 +31901,7 @@ async function spawnAgent2(director, role, task, maxIterations) {
|
|
|
31851
31901
|
maxToolCalls: 200
|
|
31852
31902
|
};
|
|
31853
31903
|
const config = task !== void 0 ? { ...base, task } : base;
|
|
31854
|
-
return director.spawn(config);
|
|
31904
|
+
return director.spawn({ ...config, originSessionId: sessionId });
|
|
31855
31905
|
}
|
|
31856
31906
|
|
|
31857
31907
|
// src/wiring/dep-watcher.ts
|
|
@@ -34609,6 +34659,10 @@ import { addFatalSalvageHook } from "@wrongstack/core/utils";
|
|
|
34609
34659
|
import { randomBytes as randomBytes2 } from "node:crypto";
|
|
34610
34660
|
import * as path30 from "node:path";
|
|
34611
34661
|
import { Context as Context2 } from "@wrongstack/core/agent";
|
|
34662
|
+
import {
|
|
34663
|
+
restoreSessionSubagentPolicy,
|
|
34664
|
+
seedSessionSubagentPolicy
|
|
34665
|
+
} from "@wrongstack/core/coordination";
|
|
34612
34666
|
import { ProviderCacheLedger } from "@wrongstack/core/infrastructure";
|
|
34613
34667
|
import {
|
|
34614
34668
|
attachTodosCheckpoint,
|
|
@@ -34743,6 +34797,7 @@ async function setupSession(params) {
|
|
|
34743
34797
|
let restoredMessages = [];
|
|
34744
34798
|
let restoredToolCalls = [];
|
|
34745
34799
|
let restoredEvents = [];
|
|
34800
|
+
let restoredSubagentsAllowed;
|
|
34746
34801
|
let resumedModel;
|
|
34747
34802
|
let resumedProvider;
|
|
34748
34803
|
if (resumeId) {
|
|
@@ -34762,6 +34817,7 @@ async function setupSession(params) {
|
|
|
34762
34817
|
restoredMessages = resumed.data.messages;
|
|
34763
34818
|
restoredToolCalls = resumed.data.toolCallEnds ?? [];
|
|
34764
34819
|
restoredEvents = resumed.data.events ?? [];
|
|
34820
|
+
restoredSubagentsAllowed = resumed.data.subagentsAllowed;
|
|
34765
34821
|
resumedModel = resumed.data.metadata.model;
|
|
34766
34822
|
resumedProvider = resumed.data.metadata.provider;
|
|
34767
34823
|
if (resumed.data.usage) {
|
|
@@ -34826,6 +34882,9 @@ async function setupSession(params) {
|
|
|
34826
34882
|
context.state.replaceMessages(restoredMessages);
|
|
34827
34883
|
await context.flushConversationJournal();
|
|
34828
34884
|
}
|
|
34885
|
+
if (restoredEvents.length > 0 || restoredSubagentsAllowed !== void 0) {
|
|
34886
|
+
restoreSessionSubagentPolicy(context, restoredEvents, restoredSubagentsAllowed);
|
|
34887
|
+
} else seedSessionSubagentPolicy(context);
|
|
34829
34888
|
const queueStore = new QueueStore({
|
|
34830
34889
|
dir: sessionDir,
|
|
34831
34890
|
...eventsBus ? { events: eventsBus } : {},
|
|
@@ -36618,4 +36677,4 @@ export {
|
|
|
36618
36677
|
CLI_VERSION,
|
|
36619
36678
|
runInteractive
|
|
36620
36679
|
};
|
|
36621
|
-
//# sourceMappingURL=cli-main-
|
|
36680
|
+
//# sourceMappingURL=cli-main-ILRTNPDP.js.map
|
|
@@ -212,7 +212,7 @@ async function runWebUIDispatch(ctx) {
|
|
|
212
212
|
const isSimpleUi = !isSessionChild && flags["simpleui"] === true;
|
|
213
213
|
agent.disableInteractiveConfirmation();
|
|
214
214
|
renderer.setSilent(true);
|
|
215
|
-
const { runWebUI } = await import("./webui-server-
|
|
215
|
+
const { runWebUI } = await import("./webui-server-OJLLM6PE.js");
|
|
216
216
|
const flagValue = (names) => {
|
|
217
217
|
for (const name of names) {
|
|
218
218
|
if (!Object.hasOwn(flags, name)) continue;
|
|
@@ -1010,6 +1010,7 @@ import {
|
|
|
1010
1010
|
DefaultSystemPromptBuilder,
|
|
1011
1011
|
setQueuedMessagesSnapshot
|
|
1012
1012
|
} from "@wrongstack/core/agent";
|
|
1013
|
+
import { resetSessionSubagentPolicy } from "@wrongstack/core/coordination";
|
|
1013
1014
|
import { TOKENS } from "@wrongstack/core/kernel";
|
|
1014
1015
|
import { DefaultSessionStore } from "@wrongstack/core/storage";
|
|
1015
1016
|
import {
|
|
@@ -1120,6 +1121,7 @@ async function switchProjectInPlace(ctx, targetRoot, displayName) {
|
|
|
1120
1121
|
context.workingDir = resolved;
|
|
1121
1122
|
context.session = nextWriter;
|
|
1122
1123
|
context.state.replaceMessages([]);
|
|
1124
|
+
resetSessionSubagentPolicy(context);
|
|
1123
1125
|
context.state.replaceTodos([]);
|
|
1124
1126
|
context.clearFileTracking();
|
|
1125
1127
|
context.clearMemoryEvidence?.();
|
|
@@ -1252,6 +1254,7 @@ async function onSDDOutput(output) {
|
|
|
1252
1254
|
|
|
1253
1255
|
// src/boot/tui-session-resume.ts
|
|
1254
1256
|
import * as path7 from "node:path";
|
|
1257
|
+
import { restoreSessionSubagentPolicy } from "@wrongstack/core/coordination";
|
|
1255
1258
|
import { attachTodosCheckpoint, loadTodosCheckpoint } from "@wrongstack/core/storage";
|
|
1256
1259
|
import { projectLastRequestTokens } from "@wrongstack/core/types/session-timeline";
|
|
1257
1260
|
import { sessionScopedPath as sessionScopedPath2 } from "@wrongstack/core/utils";
|
|
@@ -1420,6 +1423,7 @@ async function resumeSession(ctx, sessionId) {
|
|
|
1420
1423
|
agent.ctx.session = resumed.writer;
|
|
1421
1424
|
try {
|
|
1422
1425
|
agent.ctx.state.replaceMessages(resumed.data.messages);
|
|
1426
|
+
restoreSessionSubagentPolicy(agent.ctx, resumed.data.events, resumed.data.subagentsAllowed);
|
|
1423
1427
|
} catch (err) {
|
|
1424
1428
|
agent.ctx.session = oldWriter;
|
|
1425
1429
|
agent.ctx.state.replaceMessages(oldMessages);
|
|
@@ -3911,6 +3915,9 @@ function errorText2(error) {
|
|
|
3911
3915
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
3912
3916
|
import path12 from "node:path";
|
|
3913
3917
|
import { effectiveFallbackChain, fallbackProfileChain as fallbackProfileChain2 } from "@wrongstack/core/agent";
|
|
3918
|
+
import {
|
|
3919
|
+
areSubagentsAllowedForSession
|
|
3920
|
+
} from "@wrongstack/core/coordination";
|
|
3914
3921
|
import {
|
|
3915
3922
|
CHIMERA_REVIEW_PROMPT,
|
|
3916
3923
|
classifyChimeraReviewSource,
|
|
@@ -3944,6 +3951,10 @@ function installChimeraReviewHandler({
|
|
|
3944
3951
|
const off = events.onPattern("chimera.review_needed", (_event, payload) => {
|
|
3945
3952
|
const p = payload;
|
|
3946
3953
|
const reviewSessionId = agent.ctx.activeRunSessionId ?? agent.ctx.session?.id ?? session.id;
|
|
3954
|
+
if (!areSubagentsAllowedForSession(reviewSessionId)) {
|
|
3955
|
+
void recordCompletedReview(events, { bundle: p }).catch(() => void 0);
|
|
3956
|
+
return;
|
|
3957
|
+
}
|
|
3947
3958
|
const dir = director;
|
|
3948
3959
|
if (!dir) {
|
|
3949
3960
|
void recordCompletedReview(events, { bundle: p }).catch(() => void 0);
|
|
@@ -6687,4 +6698,4 @@ export {
|
|
|
6687
6698
|
execute,
|
|
6688
6699
|
resolveReviewerFallbackModels
|
|
6689
6700
|
};
|
|
6690
|
-
//# sourceMappingURL=execution-
|
|
6701
|
+
//# sourceMappingURL=execution-BN4QIFH6.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ProviderModelStatusTracker } from '@wrongstack/core/coordination';
|
|
2
2
|
import { type ChimeraReviewCompletePayload } from '@wrongstack/core/plugin';
|
|
3
3
|
import type { ExecuteDeps } from './execute-deps.js';
|
|
4
4
|
type Director = NonNullable<ExecuteDeps['fleet']['director']>;
|
|
@@ -41,6 +41,7 @@ interface HostExploreCompanionInput {
|
|
|
41
41
|
mailboxProjectDir: string;
|
|
42
42
|
roster: Record<string, SubagentConfig>;
|
|
43
43
|
config?: HostExploreCompanionConfig | undefined;
|
|
44
|
+
subagentsAllowed?: (() => boolean) | undefined;
|
|
44
45
|
}
|
|
45
46
|
export declare function createHostExploreCompanion(input: HostExploreCompanionInput): ExploreCompanion | null;
|
|
46
47
|
export {};
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* @module fleet/host-shadow-manager
|
|
39
39
|
*/
|
|
40
40
|
import type { SubagentConfig } from '@wrongstack/core/types';
|
|
41
|
-
import type
|
|
41
|
+
import { type Director } from '@wrongstack/core/coordination';
|
|
42
42
|
import type { MultiAgentDeps, MultiAgentHostOptions } from './host-types.js';
|
|
43
43
|
interface HostShadowManagerContext {
|
|
44
44
|
deps: MultiAgentDeps;
|
|
@@ -20,6 +20,7 @@ interface HostFleetSupervisorInput {
|
|
|
20
20
|
mailboxProjectDir: string;
|
|
21
21
|
roster: Record<string, SubagentConfig>;
|
|
22
22
|
getLeaderMailboxId?: (() => string | undefined) | undefined;
|
|
23
|
+
subagentsAllowed?: ((sessionId: string) => boolean) | undefined;
|
|
23
24
|
}
|
|
24
25
|
export declare function createHostFleetSupervisor(input: HostFleetSupervisorInput): FleetSupervisor | null;
|
|
25
26
|
export {};
|
|
@@ -51,7 +51,7 @@ var hqCmd = async (args, deps) => {
|
|
|
51
51
|
return 1;
|
|
52
52
|
};
|
|
53
53
|
async function startServer(deps) {
|
|
54
|
-
const { startHqServer } = await import("./hq-server-
|
|
54
|
+
const { startHqServer } = await import("./hq-server-OARPUSQJ.js");
|
|
55
55
|
const dataDir = resolveDataDir(deps);
|
|
56
56
|
const flags = deps.flags ?? {};
|
|
57
57
|
const host = typeof flags["host"] === "string" ? flags["host"] : HQ_CLI_DEFAULT_HOST;
|
|
@@ -709,4 +709,4 @@ export {
|
|
|
709
709
|
hqCmd,
|
|
710
710
|
resolveAuditActor
|
|
711
711
|
};
|
|
712
|
-
//# sourceMappingURL=hq-
|
|
712
|
+
//# sourceMappingURL=hq-3GWBFLON.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
readLocalSubagentTranscript,
|
|
11
11
|
sanitizeApiError,
|
|
12
12
|
startHqServer
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7JBKXVMK.js";
|
|
14
14
|
import "./chunk-HXJYHAR4.js";
|
|
15
15
|
import "./chunk-Q5GTM25S.js";
|
|
16
16
|
import "./chunk-7OCVIDC7.js";
|
|
@@ -27,4 +27,4 @@ export {
|
|
|
27
27
|
sanitizeApiError,
|
|
28
28
|
startHqServer
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=hq-server-
|
|
30
|
+
//# sourceMappingURL=hq-server-OARPUSQJ.js.map
|
package/dist/index.js
CHANGED
|
@@ -23,12 +23,12 @@ import {
|
|
|
23
23
|
} from "./chunk-52C7PD2H.js";
|
|
24
24
|
import {
|
|
25
25
|
runUpdateCommand
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-DE7BZDNK.js";
|
|
27
27
|
import "./chunk-U3SS4NRH.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-YLQEGYV4.js";
|
|
29
29
|
import {
|
|
30
30
|
DEFAULT_PORT
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-7JBKXVMK.js";
|
|
32
32
|
import "./chunk-HXJYHAR4.js";
|
|
33
33
|
import "./chunk-Q5GTM25S.js";
|
|
34
34
|
import {
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
parseArgs,
|
|
46
46
|
runPicker,
|
|
47
47
|
saveToGlobalConfig
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-L6ZNCTRJ.js";
|
|
49
49
|
import "./chunk-B4JLSXZB.js";
|
|
50
50
|
import {
|
|
51
51
|
isKeylessLocalProvider,
|
|
@@ -1867,8 +1867,8 @@ var subcommandsWithFocusedHelp = Object.keys(helpTable);
|
|
|
1867
1867
|
var loaders = {
|
|
1868
1868
|
acp: async () => (await import("./acp-CEQINXWB.js")).acpCmd,
|
|
1869
1869
|
init: async () => (await import("./init-4JQSG66Q.js")).initCmd,
|
|
1870
|
-
auth: async () => (await import("./auth-
|
|
1871
|
-
update: async () => (await import("./update-
|
|
1870
|
+
auth: async () => (await import("./auth-3OSF6BMU.js")).authCmd,
|
|
1871
|
+
update: async () => (await import("./update-K45CS6SS.js")).updateCmd,
|
|
1872
1872
|
sessions: async () => (await import("./sessions-config-P2LK2L32.js")).sessionsCmd,
|
|
1873
1873
|
config: async () => (await import("./sessions-config-P2LK2L32.js")).configCmd,
|
|
1874
1874
|
rewind: async () => (await import("./rewind-2FFNOOKS.js")).rewindCmd,
|
|
@@ -1893,7 +1893,7 @@ var loaders = {
|
|
|
1893
1893
|
quick: async () => (await import("./quick-XLYLZX4B.js")).quickCmd,
|
|
1894
1894
|
bench: async () => (await import("./bench-XYG56AMO.js")).benchCmd,
|
|
1895
1895
|
chronicle: async () => (await import("./chronicle-6EPPMUC5.js")).chronicleCmd,
|
|
1896
|
-
hq: async () => (await import("./hq-
|
|
1896
|
+
hq: async () => (await import("./hq-3GWBFLON.js")).hqCmd,
|
|
1897
1897
|
mailbox: async () => (await import("./mailbox-serve-VKQIRCCB.js")).mailboxServeCmd,
|
|
1898
1898
|
permissions: async () => (await import("./permissions-2PWBL4YU.js")).permissionsCmd,
|
|
1899
1899
|
project: async () => (await import("./project-BLQ3ALVL.js")).projectCmd,
|
|
@@ -1972,7 +1972,7 @@ async function isPortInUse(host, port) {
|
|
|
1972
1972
|
}
|
|
1973
1973
|
async function handleHqShortCircuit(flags) {
|
|
1974
1974
|
if (flags["hq"] !== true) return null;
|
|
1975
|
-
const { startHqServer } = await import("./hq-server-
|
|
1975
|
+
const { startHqServer } = await import("./hq-server-OARPUSQJ.js");
|
|
1976
1976
|
const tunnelRequested = flags["tunnel"] === true;
|
|
1977
1977
|
const host = typeof flags["host"] === "string" ? flags["host"] : tunnelRequested ? "127.0.0.1" : HQ_CLI_DEFAULT_HOST2;
|
|
1978
1978
|
if (tunnelRequested && !isLoopbackHost(host)) {
|
|
@@ -4224,7 +4224,7 @@ async function printUpdateNotice(initialUpdateInfo) {
|
|
|
4224
4224
|
const ac = new AbortController();
|
|
4225
4225
|
const timer = setTimeout(() => ac.abort(), 2e3);
|
|
4226
4226
|
try {
|
|
4227
|
-
const { checkForUpdate } = await import("./update-check-
|
|
4227
|
+
const { checkForUpdate } = await import("./update-check-PKSMSMD6.js");
|
|
4228
4228
|
info = await checkForUpdate(ac.signal);
|
|
4229
4229
|
} catch {
|
|
4230
4230
|
} finally {
|
|
@@ -4444,7 +4444,7 @@ async function initializeCli(argv) {
|
|
|
4444
4444
|
async function main(argv) {
|
|
4445
4445
|
const cliCtx = await initializeCli(argv);
|
|
4446
4446
|
if (typeof cliCtx === "number") return cliCtx;
|
|
4447
|
-
const { runInteractive } = await import("./cli-main-
|
|
4447
|
+
const { runInteractive } = await import("./cli-main-ILRTNPDP.js");
|
|
4448
4448
|
return runInteractive(cliCtx);
|
|
4449
4449
|
}
|
|
4450
4450
|
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
detectUpdatePackageName,
|
|
4
4
|
runUpdateCommand,
|
|
5
5
|
updateCmd
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DE7BZDNK.js";
|
|
7
7
|
import "./chunk-U3SS4NRH.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-YLQEGYV4.js";
|
|
9
9
|
import "./chunk-7OCVIDC7.js";
|
|
10
10
|
export {
|
|
11
11
|
detectUpdatePackageManager,
|
|
@@ -13,4 +13,4 @@ export {
|
|
|
13
13
|
runUpdateCommand,
|
|
14
14
|
updateCmd
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=update-
|
|
16
|
+
//# sourceMappingURL=update-K45CS6SS.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
fetchLatestFromNpm,
|
|
6
6
|
getUpdateNotification,
|
|
7
7
|
isNewer
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YLQEGYV4.js";
|
|
9
9
|
import "./chunk-7OCVIDC7.js";
|
|
10
10
|
export {
|
|
11
11
|
cachePath,
|
|
@@ -15,4 +15,4 @@ export {
|
|
|
15
15
|
getUpdateNotification,
|
|
16
16
|
isNewer
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=update-check-
|
|
18
|
+
//# sourceMappingURL=update-check-PKSMSMD6.js.map
|
|
@@ -830,6 +830,10 @@ function createPrefsSeeding(opts) {
|
|
|
830
830
|
|
|
831
831
|
// src/webui-server/route-contexts.ts
|
|
832
832
|
import * as path5 from "node:path";
|
|
833
|
+
import {
|
|
834
|
+
seedSessionSubagentPolicy,
|
|
835
|
+
setSessionSubagentsAllowed
|
|
836
|
+
} from "@wrongstack/core/coordination";
|
|
833
837
|
import { TOKENS as TOKENS2 } from "@wrongstack/core/kernel";
|
|
834
838
|
import { SkillInstaller } from "@wrongstack/core/skills";
|
|
835
839
|
import { PromptUsageStore } from "@wrongstack/core/storage";
|
|
@@ -946,7 +950,15 @@ function createWebuiRouteContexts({
|
|
|
946
950
|
const prefsCtx = {
|
|
947
951
|
meta: opts.agent.ctx.meta,
|
|
948
952
|
metaFor: metaForSession,
|
|
949
|
-
snapshot: (sessionId) =>
|
|
953
|
+
snapshot: (sessionId) => {
|
|
954
|
+
const target = sessionId ? getSessionAgent(sessionId).ctx : opts.agent.ctx;
|
|
955
|
+
seedSessionSubagentPolicy(target);
|
|
956
|
+
return prefSnapshot(target.meta);
|
|
957
|
+
},
|
|
958
|
+
setSubagentsAllowed: (allowed, sessionId) => setSessionSubagentsAllowed(
|
|
959
|
+
sessionId ? getSessionAgent(sessionId).ctx : opts.agent.ctx,
|
|
960
|
+
allowed
|
|
961
|
+
),
|
|
950
962
|
persist: persistPrefs,
|
|
951
963
|
setYolo: opts.onYoloSwitch,
|
|
952
964
|
setAutonomy: opts.onAutonomySwitch,
|
|
@@ -1898,4 +1910,4 @@ async function runWebUI(opts) {
|
|
|
1898
1910
|
export {
|
|
1899
1911
|
runWebUI
|
|
1900
1912
|
};
|
|
1901
|
-
//# sourceMappingURL=webui-server-
|
|
1913
|
+
//# sourceMappingURL=webui-server-OJLLM6PE.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Mutable command-host state created after the runtime fleet is available. */
|
|
2
|
-
import type
|
|
2
|
+
import { type BrainArbiter, type Director } from '@wrongstack/core/coordination';
|
|
3
3
|
import type { EventBus } from '@wrongstack/core/kernel';
|
|
4
4
|
import { type Config, type SessionWriter } from '@wrongstack/core/types';
|
|
5
5
|
import type { WstackPaths } from '@wrongstack/core/utils';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Director } from '@wrongstack/core/coordination';
|
|
2
2
|
import type { EventBus } from '@wrongstack/core/kernel';
|
|
3
3
|
import type { MultiAgentHost } from '../multi-agent.js';
|
|
4
4
|
import type { BuiltinSlashCommandDeps } from './slash-commands.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.317.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": [
|
|
@@ -41,36 +41,36 @@
|
|
|
41
41
|
"data"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@wrongstack/acp": "0.
|
|
45
|
-
"@wrongstack/bench": "0.
|
|
46
|
-
"@wrongstack/core": "0.
|
|
47
|
-
"@wrongstack/primitives": "0.
|
|
48
|
-
"@wrongstack/kanban": "0.
|
|
49
|
-
"@wrongstack/mcp": "0.
|
|
50
|
-
"@wrongstack/persistence": "0.
|
|
51
|
-
"@wrongstack/plug-lsp": "0.
|
|
52
|
-
"@wrongstack/plugins": "0.
|
|
53
|
-
"@wrongstack/providers": "0.
|
|
54
|
-
"@wrongstack/requirement-intake": "0.
|
|
55
|
-
"@wrongstack/runtime": "0.
|
|
56
|
-
"@wrongstack/sage": "0.
|
|
57
|
-
"@wrongstack/sdd": "0.
|
|
58
|
-
"@wrongstack/security-scanner": "0.
|
|
59
|
-
"@wrongstack/simpleui": "0.
|
|
60
|
-
"@wrongstack/techstack": "0.
|
|
61
|
-
"@wrongstack/telegram": "0.
|
|
62
|
-
"@wrongstack/tools": "0.
|
|
63
|
-
"@wrongstack/tui": "0.
|
|
64
|
-
"@wrongstack/vector-memory": "0.
|
|
65
|
-
"@wrongstack/webui": "0.
|
|
66
|
-
"@wrongstack/webui-hq": "0.
|
|
67
|
-
"@wrongstack/webui-protocol": "0.
|
|
68
|
-
"@wrongstack/wrongtrace": "0.
|
|
69
|
-
"@wrongstack/webui-server": "0.
|
|
44
|
+
"@wrongstack/acp": "0.317.2",
|
|
45
|
+
"@wrongstack/bench": "0.317.2",
|
|
46
|
+
"@wrongstack/core": "0.317.2",
|
|
47
|
+
"@wrongstack/primitives": "0.317.2",
|
|
48
|
+
"@wrongstack/kanban": "0.317.2",
|
|
49
|
+
"@wrongstack/mcp": "0.317.2",
|
|
50
|
+
"@wrongstack/persistence": "0.317.2",
|
|
51
|
+
"@wrongstack/plug-lsp": "0.317.2",
|
|
52
|
+
"@wrongstack/plugins": "0.317.2",
|
|
53
|
+
"@wrongstack/providers": "0.317.2",
|
|
54
|
+
"@wrongstack/requirement-intake": "0.317.2",
|
|
55
|
+
"@wrongstack/runtime": "0.317.2",
|
|
56
|
+
"@wrongstack/sage": "0.317.2",
|
|
57
|
+
"@wrongstack/sdd": "0.317.2",
|
|
58
|
+
"@wrongstack/security-scanner": "0.317.2",
|
|
59
|
+
"@wrongstack/simpleui": "0.317.2",
|
|
60
|
+
"@wrongstack/techstack": "0.317.2",
|
|
61
|
+
"@wrongstack/telegram": "0.317.2",
|
|
62
|
+
"@wrongstack/tools": "0.317.2",
|
|
63
|
+
"@wrongstack/tui": "0.317.2",
|
|
64
|
+
"@wrongstack/vector-memory": "0.317.2",
|
|
65
|
+
"@wrongstack/webui": "0.317.2",
|
|
66
|
+
"@wrongstack/webui-hq": "0.317.2",
|
|
67
|
+
"@wrongstack/webui-protocol": "0.317.2",
|
|
68
|
+
"@wrongstack/wrongtrace": "0.317.2",
|
|
69
|
+
"@wrongstack/webui-server": "0.317.2",
|
|
70
70
|
"ws": "^8.21.3"
|
|
71
71
|
},
|
|
72
72
|
"optionalDependencies": {
|
|
73
|
-
"@wrongstack/desktop": "0.
|
|
73
|
+
"@wrongstack/desktop": "0.317.2"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/node": "^26.2.0",
|