@wrongstack/cli 1.0.17 → 1.0.24
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/{acp-INCNOH42.js → acp-AJWSKWE5.js} +18 -7
- package/dist/arg-parser.d.ts +1 -0
- package/dist/{auth-YXK3EDUL.js → auth-GRBZ7Y3D.js} +61 -15
- package/dist/auth-menu/direct.d.ts +1 -0
- package/dist/auth-menu/local.d.ts +2 -0
- package/dist/auth-menu/oauth-menu.d.ts +3 -1
- package/dist/auth-menu/panel-service.d.ts +20 -0
- package/dist/{bench-YBU6BVQP.js → bench-N5K7Z5O3.js} +2 -2
- package/dist/boot/config-backup-recovery.d.ts +2 -1
- package/dist/boot/dispatch-webui.d.ts +11 -0
- package/dist/boot/short-circuit-desktop.d.ts +1 -0
- package/dist/boot/tui-project-picker-callback.d.ts +1 -1
- package/dist/boot/tui-settings-adapter.d.ts +15 -2
- package/dist/{boot-auto-thin-MANHOYHE.js → boot-auto-thin-6Q56FY3F.js} +3 -2
- package/dist/{chunk-6WRKAACA.js → chunk-2BKFWIER.js} +4 -2
- package/dist/{chunk-JY52HWL6.js → chunk-2EBVTYJR.js} +2 -2
- package/dist/chunk-3OCUS3VN.js +46 -0
- package/dist/chunk-424ORSE7.js +56 -0
- package/dist/{chunk-KEPABQYT.js → chunk-5SEYGOCH.js} +8 -82
- package/dist/chunk-BBHWW6LR.js +549 -0
- package/dist/{chunk-CJTBLTS4.js → chunk-BLD5DSVA.js} +4 -3
- package/dist/{chunk-K5PAL6KR.js → chunk-DRM7PSW7.js} +75 -29
- package/dist/{chunk-XJ7K67PP.js → chunk-JF2MULWF.js} +17 -10
- package/dist/{chunk-SIS37L3W.js → chunk-L2RVEQWO.js} +211 -193
- package/dist/{chunk-RDHFXOJM.js → chunk-LFMVHT3R.js} +106 -57
- package/dist/chunk-LUMETJFO.js +171 -0
- package/dist/{chunk-C3Z4N6A6.js → chunk-MHEBWVXL.js} +6 -2
- package/dist/{chunk-VGER3HYZ.js → chunk-PGKJ2OQP.js} +5 -5
- package/dist/{chunk-672UXYL3.js → chunk-QBBF7GIK.js} +2 -2
- package/dist/{chunk-DE7BZDNK.js → chunk-QFPQXKCG.js} +11 -3
- package/dist/chunk-R4QGL6GB.js +10 -0
- package/dist/chunk-S4FFHDJG.js +93 -0
- package/dist/chunk-SFBFYIOW.js +271 -0
- package/dist/{chunk-JX6KL7OF.js → chunk-SKPDE62W.js} +4 -3
- package/dist/{chunk-RMQNCHGO.js → chunk-U46QR4WR.js} +5 -9
- package/dist/{chunk-B4JLSXZB.js → chunk-WSTVGC2C.js} +73 -45
- package/dist/chunk-YBUCXXYZ.js +36 -0
- package/dist/{chunk-2VMJ3E5Z.js → chunk-YTEOAWOJ.js} +6 -2
- package/dist/{chunk-GPPRNAKW.js → chunk-ZMX5HRLI.js} +2 -2
- package/dist/{chunk-YLQEGYV4.js → chunk-ZZRSG7VK.js} +14 -4
- package/dist/{cli-context-4PTWEK52.js → cli-context-34Q5IJRA.js} +121 -89
- package/dist/cli-entry-point.d.ts +2 -0
- package/dist/{cli-main-DQ2GBY7M.js → cli-main-AELJDBGU.js} +1471 -1293
- package/dist/config-doctor.d.ts +10 -2
- package/dist/{config-transfer-2YF3CRTN.js → config-transfer-RUWLDCNK.js} +34 -13
- package/dist/{diag-doctor-ANPRUYFM.js → diag-doctor-WIFJH3XH.js} +2 -2
- package/dist/execute-deps.d.ts +2 -1
- package/dist/{execution-A6WJLSOC.js → execution-PYC5FCS4.js} +303 -256
- package/dist/{hq-NU75W3SE.js → hq-JTUTFI4L.js} +274 -258
- package/dist/hq-command-controller.d.ts +1 -1
- package/dist/hq-server/project-root.d.ts +35 -1
- package/dist/{hq-server-M2JWVW4D.js → hq-server-PC7GZMPT.js} +2 -2
- package/dist/{hq-service-L5INQFM4.js → hq-service-NW56MUP2.js} +11 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +17 -12
- package/dist/kanban-supervisor-67ECABTD.js +7 -0
- package/dist/live-settings-input.d.ts +7 -0
- package/dist/{mailbox-serve-3GFOK2I7.js → mailbox-serve-WDOCH6KR.js} +3 -3
- package/dist/{mcp-DC5WSBOO.js → mcp-LBS45HWZ.js} +4 -4
- package/dist/modeldiag-36OGAL5C.js +828 -0
- package/dist/{per-subcommand-help-DHTYU524.js → per-subcommand-help-XE77MTGJ.js} +3 -3
- package/dist/permission-prompt-mirror.d.ts +1 -1
- package/dist/permission-prompt.d.ts +2 -2
- package/dist/plugin-config.d.ts +12 -0
- package/dist/plugin-management-types.d.ts +31 -0
- package/dist/plugin-management.d.ts +2 -30
- package/dist/plugin-package-install.d.ts +3 -0
- package/dist/{plugin-usage-M6KET4OZ.js → plugin-usage-S5LVGMBW.js} +6 -5
- package/dist/{plugins-WJLW6ULV.js → plugins-RHBIVLI7.js} +4 -3
- package/dist/provider-config-utils.d.ts +1 -6
- package/dist/{providers-models-LFNZ5WI7.js → providers-models-2CFG46RD.js} +41 -31
- package/dist/release-asset-download.d.ts +3 -0
- package/dist/services/dispatch-classifier.d.ts +39 -5
- package/dist/{sessions-config-UL45XKX7.js → sessions-config-IQUH2GXT.js} +13 -5
- package/dist/settings-menu.d.ts +2 -0
- package/dist/short-circuit-flags-SDT53OML.js +10 -0
- package/dist/{simpleui-dist-CXSIDAXZ.js → simpleui-dist-7BQISSEP.js} +7 -3
- package/dist/skill-suggest-L2EVWB6R.js +290 -0
- package/dist/slash-commands/effort.d.ts +1 -1
- package/dist/slash-commands/fallback.d.ts +1 -1
- package/dist/slash-commands/gitid.d.ts +1 -1
- package/dist/slash-commands/jev.d.ts +4 -0
- package/dist/slash-commands/openai-quota.d.ts +15 -0
- package/dist/slash-commands/sdd-task-mutations.d.ts +4 -0
- package/dist/slash-commands/settings-keys.d.ts +2 -0
- package/dist/slash-commands/settings-reset.d.ts +6 -0
- package/dist/standalone-update-MW47J3AK.js +164 -0
- package/dist/standalone-update.d.ts +19 -0
- package/dist/subcommands/handlers/hq-alerts.d.ts +3 -0
- package/dist/subcommands/handlers/hq-audit.d.ts +46 -0
- package/dist/subcommands/handlers/hq-data-dir.d.ts +13 -0
- package/dist/subcommands/handlers/skill-suggest.d.ts +21 -0
- package/dist/subcommands/handlers/typesafe-brain-replay.d.ts +26 -0
- package/dist/subcommands/handlers/typesafe-judgment-check.d.ts +3 -0
- package/dist/subcommands/handlers/typesafe-topic-replay.d.ts +19 -0
- package/dist/subcommands/handlers/typesafe-triage-replay.d.ts +18 -0
- package/dist/subcommands/handlers/typesafe.d.ts +23 -0
- package/dist/{subcommands-ERDDIJ3L.js → subcommands-ZTSIN7LG.js} +2 -2
- package/dist/typesafe-HVEVPA6R.js +316 -0
- package/dist/typesafe-brain-replay-C5276FVR.js +222 -0
- package/dist/typesafe-judgment-check-GGYYV5UF.js +29 -0
- package/dist/typesafe-topic-replay-4W73BOLV.js +218 -0
- package/dist/typesafe-triage-replay-FGAW7QM7.js +215 -0
- package/dist/{update-5DPB4YD4.js → update-7XIOEXTD.js} +4 -3
- package/dist/{update-check-BS3DHTSI.js → update-check-2POMBHFB.js} +3 -2
- package/dist/update-check.d.ts +1 -1
- package/dist/version-help-WZ623NWM.js +10 -0
- package/dist/version.d.ts +3 -2
- package/dist/webui-client-observability.d.ts +7 -0
- package/dist/{webui-server-MRPGTTKL.js → webui-server-L2SICPTB.js} +158 -94
- package/dist/webui-server-options.d.ts +11 -0
- package/dist/webui-server.d.ts +15 -1
- package/dist/wiring/domain-glossary.d.ts +5 -4
- package/dist/wiring/plugins.d.ts +1 -1
- package/dist/wiring/provider-persisters.d.ts +24 -0
- package/dist/wiring/provider-runtime.d.ts +9 -1
- package/dist/wiring/runtime-dispatch-state.d.ts +3 -1
- package/package.json +28 -28
- package/dist/chunk-DR2OXU46.js +0 -174
- package/dist/chunk-JACOMTIH.js +0 -275
- package/dist/chunk-M4W3QLQW.js +0 -54
- package/dist/chunk-XJXDOF63.js +0 -28
- package/dist/modeldiag-CJSFHZ3J.js +0 -1356
- package/dist/short-circuit-flags-SJQBJ33I.js +0 -10
- package/dist/version-help-WXI42PZ3.js +0 -10
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import { randomUUID as randomUUID6 } from "node:crypto";
|
|
34
34
|
import * as fs4 from "node:fs/promises";
|
|
35
35
|
import * as http from "node:http";
|
|
36
|
-
import * as
|
|
36
|
+
import * as path8 from "node:path";
|
|
37
37
|
import { getSharedProjectMailbox } from "@wrongstack/core/coordination";
|
|
38
38
|
import {
|
|
39
39
|
assessHqExposure as assessHqExposure2,
|
|
@@ -635,12 +635,13 @@ import {
|
|
|
635
635
|
MailboxEventEmitter,
|
|
636
636
|
MailboxHttpRateLimiter
|
|
637
637
|
} from "@wrongstack/core/coordination";
|
|
638
|
-
import * as
|
|
638
|
+
import * as path6 from "node:path";
|
|
639
639
|
|
|
640
640
|
// src/hq-static-serve.ts
|
|
641
641
|
import * as fs2 from "node:fs";
|
|
642
642
|
import { createRequire } from "node:module";
|
|
643
643
|
import * as path2 from "node:path";
|
|
644
|
+
import { wrongstackPackageJsonPath } from "@wrongstack/core/utils";
|
|
644
645
|
var requireFromHere = createRequire(import.meta.url);
|
|
645
646
|
var MIME = {
|
|
646
647
|
".html": "text/html; charset=utf-8",
|
|
@@ -660,7 +661,10 @@ var cachedDistDir;
|
|
|
660
661
|
function resolveHqDistDir() {
|
|
661
662
|
if (cachedDistDir !== void 0) return cachedDistDir;
|
|
662
663
|
try {
|
|
663
|
-
const pkgJson =
|
|
664
|
+
const pkgJson = wrongstackPackageJsonPath(
|
|
665
|
+
"@wrongstack/webui-hq",
|
|
666
|
+
(id) => requireFromHere.resolve(id)
|
|
667
|
+
);
|
|
664
668
|
const dist = path2.join(path2.dirname(pkgJson), "dist");
|
|
665
669
|
if (fs2.existsSync(path2.join(dist, "index.html"))) {
|
|
666
670
|
cachedDistDir = dist;
|
|
@@ -687,7 +691,7 @@ function resolveHqDistDir() {
|
|
|
687
691
|
}
|
|
688
692
|
function isInsideDist(filePath, distDir) {
|
|
689
693
|
const rel = path2.relative(distDir, filePath);
|
|
690
|
-
return rel !== "" && !rel.startsWith(
|
|
694
|
+
return rel !== "" && rel !== ".." && !rel.startsWith(`..${path2.sep}`) && !path2.isAbsolute(rel);
|
|
691
695
|
}
|
|
692
696
|
function isMissingPath(error) {
|
|
693
697
|
const code = error.code;
|
|
@@ -2165,11 +2169,24 @@ async function authorizeHqCommand(input) {
|
|
|
2165
2169
|
}
|
|
2166
2170
|
|
|
2167
2171
|
// src/hq-server/routes/mailbox-handlers.ts
|
|
2168
|
-
import * as
|
|
2172
|
+
import * as path4 from "node:path";
|
|
2169
2173
|
import { resolveProjectDir } from "@wrongstack/core/coordination";
|
|
2170
2174
|
|
|
2171
2175
|
// src/hq-server/project-root.ts
|
|
2176
|
+
import * as fsp from "node:fs/promises";
|
|
2177
|
+
import * as path3 from "node:path";
|
|
2172
2178
|
import { deriveHqProjectId } from "@wrongstack/core/hq";
|
|
2179
|
+
function isPlainSegment(value) {
|
|
2180
|
+
return value.length > 0 && value !== "." && value !== ".." && !value.includes("/") && !value.includes("\\") && !path3.isAbsolute(value);
|
|
2181
|
+
}
|
|
2182
|
+
async function projectDirectoryExists(globalRoot, projectId) {
|
|
2183
|
+
if (!isPlainSegment(projectId)) return false;
|
|
2184
|
+
try {
|
|
2185
|
+
return (await fsp.stat(path3.join(globalRoot, "projects", projectId))).isDirectory();
|
|
2186
|
+
} catch {
|
|
2187
|
+
return false;
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2173
2190
|
function resolveHqProjectRoot(globalRoot, ids) {
|
|
2174
2191
|
const fn = async () => {
|
|
2175
2192
|
const { getSessionRegistry } = await import("@wrongstack/core/storage");
|
|
@@ -2177,7 +2194,7 @@ function resolveHqProjectRoot(globalRoot, ids) {
|
|
|
2177
2194
|
const registry = getSessionRegistry(globalRoot);
|
|
2178
2195
|
if (typeof ids.sessionId === "string") {
|
|
2179
2196
|
const entry = await registry.get(ids.sessionId).catch(() => null);
|
|
2180
|
-
if (entry?.projectRoot) return entry.projectRoot;
|
|
2197
|
+
if (entry?.projectRoot) return { status: "found", projectRoot: entry.projectRoot };
|
|
2181
2198
|
}
|
|
2182
2199
|
if (typeof ids.projectId === "string") {
|
|
2183
2200
|
const { createHash: createHash2 } = await import("node:crypto");
|
|
@@ -2193,11 +2210,15 @@ function resolveHqProjectRoot(globalRoot, ids) {
|
|
|
2193
2210
|
const match = all.find(
|
|
2194
2211
|
(e) => e.projectSlug === ids.projectId || projectIdForRoot(e.projectRoot) === ids.projectId || createHash2("sha256").update(e.projectRoot).digest("hex").slice(0, 12) === ids.projectId
|
|
2195
2212
|
);
|
|
2196
|
-
if (match) return match.projectRoot;
|
|
2213
|
+
if (match) return { status: "found", projectRoot: match.projectRoot };
|
|
2214
|
+
if (await projectDirectoryExists(globalRoot, ids.projectId)) {
|
|
2215
|
+
return { status: "unavailable" };
|
|
2216
|
+
}
|
|
2197
2217
|
}
|
|
2198
2218
|
} catch {
|
|
2219
|
+
return { status: "unavailable" };
|
|
2199
2220
|
}
|
|
2200
|
-
return
|
|
2221
|
+
return { status: "unknown" };
|
|
2201
2222
|
};
|
|
2202
2223
|
return fn();
|
|
2203
2224
|
}
|
|
@@ -2221,7 +2242,7 @@ async function handleMailboxGateway(_req, res, match, authorizeMailboxGateway, g
|
|
|
2221
2242
|
);
|
|
2222
2243
|
return;
|
|
2223
2244
|
}
|
|
2224
|
-
const gatewayGlobalRoot =
|
|
2245
|
+
const gatewayGlobalRoot = path4.dirname(dataDir);
|
|
2225
2246
|
const preliminaryAccess = authorizeMailboxGateway(_req, `project:${projectId}`);
|
|
2226
2247
|
if (!preliminaryAccess.allowed) {
|
|
2227
2248
|
res.writeHead(preliminaryAccess.status ?? 401, {
|
|
@@ -2231,14 +2252,27 @@ async function handleMailboxGateway(_req, res, match, authorizeMailboxGateway, g
|
|
|
2231
2252
|
res.end(JSON.stringify(preliminaryAccess.body));
|
|
2232
2253
|
return;
|
|
2233
2254
|
}
|
|
2234
|
-
const
|
|
2235
|
-
if (
|
|
2255
|
+
const resolution = await resolveHqProjectRoot(gatewayGlobalRoot, { projectId });
|
|
2256
|
+
if (resolution.status === "unavailable") {
|
|
2257
|
+
res.writeHead(503, { "Content-Type": "application/json", "Retry-After": "1" });
|
|
2258
|
+
res.end(
|
|
2259
|
+
JSON.stringify({
|
|
2260
|
+
error: {
|
|
2261
|
+
code: "UNAVAILABLE",
|
|
2262
|
+
message: `Project ${projectId} is not reachable right now; retry shortly.`
|
|
2263
|
+
}
|
|
2264
|
+
})
|
|
2265
|
+
);
|
|
2266
|
+
return;
|
|
2267
|
+
}
|
|
2268
|
+
if (resolution.status !== "found") {
|
|
2236
2269
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
2237
2270
|
res.end(
|
|
2238
2271
|
JSON.stringify({ error: { code: "NOT_FOUND", message: `Unknown project: ${projectId}` } })
|
|
2239
2272
|
);
|
|
2240
2273
|
return;
|
|
2241
2274
|
}
|
|
2275
|
+
const projectRoot = resolution.projectRoot;
|
|
2242
2276
|
const suffix = match[2];
|
|
2243
2277
|
const rawUrl = _req.url ?? "";
|
|
2244
2278
|
const queryIndex = rawUrl.indexOf("?");
|
|
@@ -2287,16 +2321,22 @@ async function handleApiMailboxSend(_req, res, mutableAuth, sessions, dataDir, g
|
|
|
2287
2321
|
res.end(JSON.stringify({ error: "audience must be all or leaders" }));
|
|
2288
2322
|
return;
|
|
2289
2323
|
}
|
|
2290
|
-
const mbGlobalRoot =
|
|
2291
|
-
const
|
|
2324
|
+
const mbGlobalRoot = path4.dirname(dataDir);
|
|
2325
|
+
const mbResolution = await resolveHqProjectRoot(mbGlobalRoot, {
|
|
2292
2326
|
sessionId: mbody.sessionId,
|
|
2293
2327
|
projectId: mbody.projectId
|
|
2294
2328
|
});
|
|
2295
|
-
if (
|
|
2329
|
+
if (mbResolution.status === "unavailable") {
|
|
2330
|
+
res.writeHead(503, { "Content-Type": "application/json", "Retry-After": "1" });
|
|
2331
|
+
res.end(JSON.stringify({ error: "target project mailbox is not reachable right now" }));
|
|
2332
|
+
return;
|
|
2333
|
+
}
|
|
2334
|
+
if (mbResolution.status !== "found" || mbResolution.projectRoot.length === 0) {
|
|
2296
2335
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
2297
2336
|
res.end(JSON.stringify({ error: "could not resolve target project mailbox" }));
|
|
2298
2337
|
return;
|
|
2299
2338
|
}
|
|
2339
|
+
const projectRoot = mbResolution.projectRoot;
|
|
2300
2340
|
const to = typeof mbody.to === "string" ? mbody.to : "leader";
|
|
2301
2341
|
const subject = typeof mbody.subject === "string" ? mbody.subject : "HQ prompt";
|
|
2302
2342
|
const priority = mbody.priority === "high" ? "high" : mbody.priority === "low" ? "low" : "normal";
|
|
@@ -2407,16 +2447,22 @@ async function handleMailboxAction(_req, res, match, mutableAuth, sessions, data
|
|
|
2407
2447
|
res.end(JSON.stringify({ error: "missing sessionId or projectId" }));
|
|
2408
2448
|
return;
|
|
2409
2449
|
}
|
|
2410
|
-
const actGlobalRoot =
|
|
2411
|
-
const
|
|
2450
|
+
const actGlobalRoot = path4.dirname(dataDir);
|
|
2451
|
+
const actResolution = await resolveHqProjectRoot(actGlobalRoot, {
|
|
2412
2452
|
sessionId: abody.sessionId,
|
|
2413
2453
|
projectId: abody.projectId
|
|
2414
2454
|
});
|
|
2415
|
-
if (
|
|
2455
|
+
if (actResolution.status === "unavailable") {
|
|
2456
|
+
res.writeHead(503, { "Content-Type": "application/json", "Retry-After": "1" });
|
|
2457
|
+
res.end(JSON.stringify({ error: "target project mailbox is not reachable right now" }));
|
|
2458
|
+
return;
|
|
2459
|
+
}
|
|
2460
|
+
if (actResolution.status !== "found" || actResolution.projectRoot.length === 0) {
|
|
2416
2461
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
2417
2462
|
res.end(JSON.stringify({ error: "could not resolve target project mailbox" }));
|
|
2418
2463
|
return;
|
|
2419
2464
|
}
|
|
2465
|
+
const projectRoot = actResolution.projectRoot;
|
|
2420
2466
|
try {
|
|
2421
2467
|
const { actionToAckInput } = await import("@wrongstack/core/coordination");
|
|
2422
2468
|
const projectDir = resolveProjectDir(projectRoot, actGlobalRoot);
|
|
@@ -2647,14 +2693,14 @@ async function handleApiTrendsCost(req, res, persistence) {
|
|
|
2647
2693
|
}
|
|
2648
2694
|
|
|
2649
2695
|
// src/hq-server/routes/session-handlers.ts
|
|
2650
|
-
import * as
|
|
2696
|
+
import * as path5 from "node:path";
|
|
2651
2697
|
import {
|
|
2652
2698
|
buildTranscriptFromEvents,
|
|
2653
2699
|
resolveHqDataDir
|
|
2654
2700
|
} from "@wrongstack/core/hq";
|
|
2655
2701
|
async function handleApiSessions(res) {
|
|
2656
2702
|
const { getSessionRegistry } = await import("@wrongstack/core/storage");
|
|
2657
|
-
const globalRoot =
|
|
2703
|
+
const globalRoot = path5.dirname(resolveHqDataDir());
|
|
2658
2704
|
try {
|
|
2659
2705
|
const registry = getSessionRegistry(globalRoot);
|
|
2660
2706
|
const sessions = await registry.list();
|
|
@@ -2699,7 +2745,7 @@ async function handleApiSessionEvents(req, res, match, transcripts) {
|
|
|
2699
2745
|
res.end(JSON.stringify({ error: "invalid sessionId encoding" }));
|
|
2700
2746
|
return;
|
|
2701
2747
|
}
|
|
2702
|
-
const globalRoot =
|
|
2748
|
+
const globalRoot = path5.dirname(resolveHqDataDir());
|
|
2703
2749
|
try {
|
|
2704
2750
|
const registry = getSessionRegistry(globalRoot);
|
|
2705
2751
|
const entry = await registry.get(sessionId).catch(() => null);
|
|
@@ -2801,8 +2847,8 @@ async function handleApiAgentMessages(req, res, match, agentMessages) {
|
|
|
2801
2847
|
// src/hq-server/routes/system-handlers.ts
|
|
2802
2848
|
async function handleApiSystemUpdate(res) {
|
|
2803
2849
|
const [{ checkForUpdate }, { detectUpdatePackageName }] = await Promise.all([
|
|
2804
|
-
import("./update-check-
|
|
2805
|
-
import("./update-
|
|
2850
|
+
import("./update-check-2POMBHFB.js"),
|
|
2851
|
+
import("./update-7XIOEXTD.js")
|
|
2806
2852
|
]);
|
|
2807
2853
|
const packageName = detectUpdatePackageName();
|
|
2808
2854
|
const info = await checkForUpdate({ packageName });
|
|
@@ -3430,7 +3476,7 @@ var MailboxGatewayManager = class {
|
|
|
3430
3476
|
const lastUsed = this.mailboxGatewayLastUsed.get(projectDir);
|
|
3431
3477
|
gateways.push({
|
|
3432
3478
|
// projectId = basename(projectDir) — matches the credential contract.
|
|
3433
|
-
projectId:
|
|
3479
|
+
projectId: path6.basename(projectDir),
|
|
3434
3480
|
projectRoot: projectDir,
|
|
3435
3481
|
hasActiveStreams: gateway.router.hasActiveStreams(),
|
|
3436
3482
|
lastUsedAt: typeof lastUsed === "number" ? lastUsed : null,
|
|
@@ -3520,7 +3566,7 @@ async function prepareHqServerStart(options, defaults) {
|
|
|
3520
3566
|
|
|
3521
3567
|
// src/hq-server/startup.ts
|
|
3522
3568
|
import * as fs3 from "node:fs/promises";
|
|
3523
|
-
import * as
|
|
3569
|
+
import * as path7 from "node:path";
|
|
3524
3570
|
import { writeHqRuntimeFile } from "@wrongstack/core/hq";
|
|
3525
3571
|
var hqRuntimeMarkerPath2 = hqRuntimeMarkerPath;
|
|
3526
3572
|
async function writeHqRuntimeMarker(dataDir, url) {
|
|
@@ -3601,7 +3647,7 @@ HQ auth loaded from ${startup.dataDir}
|
|
|
3601
3647
|
if (startup.clientEnv.WRONGSTACK_HQ_TOKEN) {
|
|
3602
3648
|
write(` WRONGSTACK_HQ_TOKEN=${startup.clientEnv.WRONGSTACK_HQ_TOKEN}
|
|
3603
3649
|
`);
|
|
3604
|
-
write(`Credentials are stored in ${
|
|
3650
|
+
write(`Credentials are stored in ${path7.join(startup.dataDir, "auth.json")}
|
|
3605
3651
|
`);
|
|
3606
3652
|
}
|
|
3607
3653
|
writeHqLanEndpoints(write, handle, void 0);
|
|
@@ -4731,12 +4777,12 @@ async function startHqServerWithAuth(options, host, port, dataDir, firstRunAuth)
|
|
|
4731
4777
|
const persistence = createHqPersistence(dataDir);
|
|
4732
4778
|
const auditLog = new HqCommandAuditLog(1e3, (entry) => persistence.commandLog.append(entry));
|
|
4733
4779
|
void (async () => {
|
|
4734
|
-
const projectsDir =
|
|
4780
|
+
const projectsDir = path8.join(path8.dirname(dataDir), "projects");
|
|
4735
4781
|
const entries = await fs4.readdir(projectsDir, { withFileTypes: true }).catch(() => []);
|
|
4736
4782
|
await Promise.all(
|
|
4737
4783
|
entries.filter((entry) => entry.isDirectory()).map(async (entry) => {
|
|
4738
|
-
const projectDir =
|
|
4739
|
-
const metadataPath =
|
|
4784
|
+
const projectDir = path8.join(projectsDir, entry.name);
|
|
4785
|
+
const metadataPath = path8.join(projectDir, ".mailbox-server.json");
|
|
4740
4786
|
const ownerPid = await fs4.readFile(metadataPath, "utf8").then((raw) => JSON.parse(raw).pid).catch(() => void 0);
|
|
4741
4787
|
if (ownerPid === void 0) return;
|
|
4742
4788
|
let ownerAlive = false;
|
|
@@ -5104,4 +5150,4 @@ export {
|
|
|
5104
5150
|
startHqServer,
|
|
5105
5151
|
HqInsecureExposureError2 as HqInsecureExposureError
|
|
5106
5152
|
};
|
|
5107
|
-
//# sourceMappingURL=chunk-
|
|
5153
|
+
//# sourceMappingURL=chunk-DRM7PSW7.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
PLUGIN_AUDIT_ENTRIES,
|
|
6
6
|
loadExternalPlugins
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-L2RVEQWO.js";
|
|
8
8
|
|
|
9
9
|
// src/wiring/plugins.ts
|
|
10
10
|
import { join } from "node:path";
|
|
@@ -20,7 +20,21 @@ function createApi(ownerName, base) {
|
|
|
20
20
|
// src/wiring/plugins.ts
|
|
21
21
|
var DEPRECATED_PLUGIN_NAMES = {
|
|
22
22
|
"web-search": "use the built-in `search` and `fetch` tools",
|
|
23
|
-
"json-path": "use the built-in `json` tool with action: query | validate | transform | merge"
|
|
23
|
+
"json-path": "use the built-in `json` tool with action: query | validate | transform | merge",
|
|
24
|
+
// Deleted in the 2026-09-17 catalog review. The first four produced
|
|
25
|
+
// findings that were noise by construction (each was run against this
|
|
26
|
+
// repo and mis-reported); the rest duplicated infrastructure the host
|
|
27
|
+
// already ships. Kept here so an existing config that still lists one
|
|
28
|
+
// warns and skips instead of failing to resolve the import.
|
|
29
|
+
"interface-contract-guard": "removed \u2014 it reported plain data interfaces as unimplemented",
|
|
30
|
+
"refactor-suggester": "removed \u2014 use `lint-gate` plus the built-in `grep` and `read` tools",
|
|
31
|
+
"feature-flag-tracker": "removed \u2014 use the built-in `grep` tool with your own flag pattern",
|
|
32
|
+
"dead-code-detector": "removed \u2014 use your linter / `tsc` and `duplicate-code-detector`",
|
|
33
|
+
"semantic-search-indexer": "use the built-in `grep` tool or the codebase-index MCP server",
|
|
34
|
+
"knowledge-graph": "use the built-in `remember` / `search_memory` / `find_related_memories`",
|
|
35
|
+
"todo-tracker": "use the built-in `todo` tool and the Kanban board",
|
|
36
|
+
"smart-rename": "use the built-in `replace` tool",
|
|
37
|
+
"code-metrics": "removed \u2014 it reported numbers nothing acted on"
|
|
24
38
|
};
|
|
25
39
|
var deprecatedWarningsEmitted = /* @__PURE__ */ new Set();
|
|
26
40
|
var BUILTIN_PLUGIN_CONFIG_ALIASES = {
|
|
@@ -171,13 +185,6 @@ async function setupPlugins(params) {
|
|
|
171
185
|
if (allPlugins.length === 0) return;
|
|
172
186
|
const pluginOptions = buildPluginOptions(config, allPlugins);
|
|
173
187
|
if (paths?.projectDir) {
|
|
174
|
-
if (pluginOptions["todo-tracker"] === void 0) {
|
|
175
|
-
pluginOptions["todo-tracker"] = {};
|
|
176
|
-
}
|
|
177
|
-
const todoTrackerOpts = pluginOptions["todo-tracker"];
|
|
178
|
-
if (typeof todoTrackerOpts["filePath"] !== "string" || todoTrackerOpts["filePath"] === "") {
|
|
179
|
-
todoTrackerOpts["filePath"] = join(paths.projectDir, "todo-tracker.json");
|
|
180
|
-
}
|
|
181
188
|
const contextPinsOpts = pluginOptions["context-pins"] ?? {};
|
|
182
189
|
pluginOptions["context-pins"] = contextPinsOpts;
|
|
183
190
|
if (typeof contextPinsOpts["filePath"] !== "string" || contextPinsOpts["filePath"] === "") {
|
|
@@ -267,4 +274,4 @@ export {
|
|
|
267
274
|
BUILTIN_PLUGIN_FACTORIES,
|
|
268
275
|
setupPlugins
|
|
269
276
|
};
|
|
270
|
-
//# sourceMappingURL=chunk-
|
|
277
|
+
//# sourceMappingURL=chunk-JF2MULWF.js.map
|