@wrongstack/core 0.313.0 → 0.313.1
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/chronicle/index.js +84 -6391
- package/dist/chronicle/project-server.js +84 -4868
- package/dist/chunk-2BUUIMQB.js +225 -0
- package/dist/chunk-2FK4WTFF.js +207 -0
- package/dist/chunk-2FQL4PDC.js +292 -0
- package/dist/chunk-2KKODIQU.js +2256 -0
- package/dist/chunk-2YU4WVBW.js +134 -0
- package/dist/chunk-3E244UDA.js +356 -0
- package/dist/chunk-3XPVB7BA.js +135 -0
- package/dist/chunk-4LJJYBAU.js +388 -0
- package/dist/chunk-4VWO3ZXL.js +342 -0
- package/dist/chunk-4XV6IR37.js +187 -0
- package/dist/chunk-4ZHTKJHM.js +183 -0
- package/dist/chunk-52RTVH4M.js +361 -0
- package/dist/chunk-57GEWK5X.js +26 -0
- package/dist/chunk-5DSMEVA4.js +931 -0
- package/dist/chunk-5RP3QTRL.js +1223 -0
- package/dist/chunk-5S437PRC.js +50 -0
- package/dist/chunk-5XDUGTKN.js +511 -0
- package/dist/chunk-62V2AFVG.js +422 -0
- package/dist/chunk-65RDIOR2.js +2470 -0
- package/dist/chunk-6AKOTGLM.js +597 -0
- package/dist/chunk-7ZHZE5EO.js +28 -0
- package/dist/chunk-A455ATZB.js +140 -0
- package/dist/chunk-AD7ZFZCS.js +46 -0
- package/dist/chunk-AI4LLQ2U.js +856 -0
- package/dist/chunk-ASX6AW36.js +789 -0
- package/dist/chunk-AT4V4XGI.js +3522 -0
- package/dist/chunk-AWNQ6ED6.js +311 -0
- package/dist/chunk-B4AMLZPB.js +9 -0
- package/dist/chunk-BAKVJLEV.js +417 -0
- package/dist/chunk-BJHVULHO.js +55 -0
- package/dist/chunk-CB2HFKTP.js +9 -0
- package/dist/chunk-CE4ZOCOI.js +1640 -0
- package/dist/chunk-CQQL4ZOQ.js +151 -0
- package/dist/chunk-DEIQMBD2.js +65 -0
- package/dist/chunk-E6I5RXVK.js +58 -0
- package/dist/chunk-EFEHDQGY.js +1589 -0
- package/dist/chunk-EODDVJBM.js +82 -0
- package/dist/chunk-EPC3GZD4.js +308 -0
- package/dist/chunk-FAYRX2AD.js +13 -0
- package/dist/chunk-FFSX2QDQ.js +362 -0
- package/dist/chunk-FHAMQS7Q.js +5856 -0
- package/dist/chunk-FIV4IJL7.js +2263 -0
- package/dist/chunk-FNXVT7HF.js +52 -0
- package/dist/chunk-FSWCWSTS.js +395 -0
- package/dist/chunk-FW5LDDMJ.js +16464 -0
- package/dist/chunk-FXQLIX3K.js +211 -0
- package/dist/chunk-G5AAKEEZ.js +228 -0
- package/dist/chunk-G5S3S5ZN.js +38 -0
- package/dist/chunk-GAZEWQEZ.js +231 -0
- package/dist/chunk-GFJOMSHG.js +125 -0
- package/dist/chunk-GFXZTHNI.js +158 -0
- package/dist/chunk-GM54GJBU.js +960 -0
- package/dist/chunk-GPQ3NJPR.js +900 -0
- package/dist/chunk-GTCU6DZ3.js +1 -0
- package/dist/chunk-H5E77KUJ.js +15 -0
- package/dist/chunk-H72H4XDU.js +1023 -0
- package/dist/chunk-HA4ZYA6T.js +178 -0
- package/dist/chunk-I45KAW2N.js +5020 -0
- package/dist/chunk-IQ35HMQL.js +1396 -0
- package/dist/chunk-IYFBFX34.js +86 -0
- package/dist/chunk-JJPMWPB6.js +109 -0
- package/dist/chunk-JTHKOYWU.js +663 -0
- package/dist/chunk-JVGPR3TS.js +365 -0
- package/dist/chunk-JVKB2TBL.js +48 -0
- package/dist/chunk-JX7VBZDK.js +31 -0
- package/dist/chunk-K3G6JBUC.js +5232 -0
- package/dist/chunk-K4YUNKU7.js +589 -0
- package/dist/chunk-KBZGE6LN.js +710 -0
- package/dist/chunk-KDQJCT2J.js +45 -0
- package/dist/chunk-KI4L2DUL.js +560 -0
- package/dist/chunk-KJ2ZTQSL.js +47 -0
- package/dist/chunk-KSJ5UTP7.js +154 -0
- package/dist/chunk-LHOA5DWA.js +28 -0
- package/dist/chunk-LX5QWLBL.js +27 -0
- package/dist/chunk-LZDDLNCZ.js +279 -0
- package/dist/chunk-M2WF6AXG.js +115 -0
- package/dist/chunk-M7BS2K6U.js +1 -0
- package/dist/chunk-NDBIPFNY.js +102 -0
- package/dist/chunk-NEMIWEXC.js +1199 -0
- package/dist/chunk-NFAYHPRH.js +323 -0
- package/dist/chunk-O37BQ65S.js +21 -0
- package/dist/chunk-O74MJHXU.js +187 -0
- package/dist/chunk-OJZEX73F.js +112 -0
- package/dist/chunk-PAAWLLZX.js +74 -0
- package/dist/chunk-PFXFQQRT.js +339 -0
- package/dist/chunk-PFZO3C6H.js +14 -0
- package/dist/chunk-PHH7LD45.js +113 -0
- package/dist/chunk-QRTG4XTI.js +188 -0
- package/dist/chunk-QVOVMXJR.js +1351 -0
- package/dist/chunk-RCQYT2I4.js +757 -0
- package/dist/chunk-RD6DEE36.js +1178 -0
- package/dist/chunk-RJIZEJ42.js +30 -0
- package/dist/chunk-RPOA7IAE.js +150 -0
- package/dist/chunk-SN2DQRL6.js +1172 -0
- package/dist/chunk-SQJVFEBV.js +41 -0
- package/dist/chunk-SQP64RCS.js +5391 -0
- package/dist/chunk-SVT4RNTR.js +49 -0
- package/dist/chunk-SWUFN7XM.js +43 -0
- package/dist/chunk-SXMVYC5H.js +174 -0
- package/dist/chunk-SZ6AYUIZ.js +23 -0
- package/dist/chunk-T3KGZBU5.js +3171 -0
- package/dist/chunk-TBRL2RCC.js +9 -0
- package/dist/chunk-TRT2HRWZ.js +18 -0
- package/dist/chunk-TYW2GI5I.js +1077 -0
- package/dist/chunk-UIWONWVG.js +4959 -0
- package/dist/chunk-VB3H5WWB.js +151 -0
- package/dist/chunk-W4A6QA3D.js +258 -0
- package/dist/chunk-WBPVKEEE.js +227 -0
- package/dist/chunk-WEBMSQP2.js +123 -0
- package/dist/chunk-WOEZV3Q4.js +333 -0
- package/dist/chunk-WQQON3SV.js +473 -0
- package/dist/chunk-WQTOVMGV.js +119 -0
- package/dist/chunk-WZO23AWO.js +2779 -0
- package/dist/chunk-XBDP4QPW.js +7 -0
- package/dist/chunk-XEBHSJLT.js +103 -0
- package/dist/chunk-XQ2ECNK3.js +1 -0
- package/dist/chunk-XQ2XGIBF.js +2086 -0
- package/dist/chunk-Y2GE5TSI.js +355 -0
- package/dist/chunk-YBUJCZ57.js +351 -0
- package/dist/chunk-YNCVSFGF.js +149 -0
- package/dist/chunk-YUPMXOGP.js +282 -0
- package/dist/chunk-YY6APYUM.js +49 -0
- package/dist/chunk-Z2IJUO45.js +691 -0
- package/dist/chunk-ZEHUCJHY.js +129 -0
- package/dist/chunk-ZYU2YOJ6.js +1496 -0
- package/dist/chunk-ZZ4V3WIZ.js +163 -0
- package/dist/coordination/agents/index.js +145 -6260
- package/dist/coordination/index.js +365 -34324
- package/dist/coordination/mailbox-project-server.js +48 -3276
- package/dist/coordination/provider-status-tracker.d.ts +4 -0
- package/dist/core/agent.d.ts +14 -1
- package/dist/core/index.js +267 -12480
- package/dist/core/model-ref.js +5 -23
- package/dist/core/provider-runner.d.ts +36 -1
- package/dist/design/index.js +50 -1087
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.js +1599 -21888
- package/dist/execution/prompt-enhancer.js +16 -535
- package/dist/execution/retry-policy.d.ts +31 -1
- package/dist/extension/index.js +7 -311
- package/dist/goal/index.js +33 -3435
- package/dist/hooks/index.js +14 -1138
- package/dist/hq/index.js +112 -5139
- package/dist/hq/protocol.js +21 -668
- package/dist/index.js +1410 -92656
- package/dist/infrastructure/index.js +64 -4811
- package/dist/kernel/events/provider-events.d.ts +15 -0
- package/dist/kernel/index.js +14 -992
- package/dist/models/index.js +40 -1117
- package/dist/notifications/index.js +3 -108
- package/dist/observability/index.js +17 -279
- package/dist/plugin/index.js +584 -14835
- package/dist/prompts/index.js +14 -948
- package/dist/registry/index.js +9 -822
- package/dist/registry-R23UBE7H.js +14 -0
- package/dist/replay/index.js +6 -84
- package/dist/review-finding-store-DKAV3AS6.js +21 -0
- package/dist/review-report-store-OWY3EC3N.js +19 -0
- package/dist/security/index.js +114 -2202
- package/dist/session-catalog/index.js +36 -2103
- package/dist/session-catalog/project-server.js +42 -1435
- package/dist/skills/index.js +35 -1578
- package/dist/storage/index.js +182 -15600
- package/dist/tasking/index.js +10 -676
- package/dist/tools/index.js +52 -9590
- package/dist/types/config/autonomy.d.ts +5 -0
- package/dist/types/config/ui.d.ts +1 -1
- package/dist/types/errors.d.ts +18 -0
- package/dist/types/index.js +121 -1342
- package/dist/types/provider-runner.d.ts +8 -0
- package/dist/types/session-markers.js +8 -144
- package/dist/utils/error.js +3 -4
- package/dist/utils/expect-defined.js +3 -9
- package/dist/utils/heap-watchdog.js +6 -706
- package/dist/utils/index.js +269 -5685
- package/dist/utils/sage-output-block.js +5 -42
- package/dist/wiring/proxy-rewrite.d.ts +18 -0
- package/dist/wiring/proxy-rewrite.js +18 -121
- package/dist/worktree/index.js +6 -887
- package/package.json +4 -4
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ensureProjectGitignore
|
|
3
|
+
} from "./chunk-4XV6IR37.js";
|
|
4
|
+
|
|
5
|
+
// src/utils/config-backup.ts
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
import * as path from "node:path";
|
|
8
|
+
function configHistoryDir(globalRoot) {
|
|
9
|
+
return path.join(globalRoot, "config-history");
|
|
10
|
+
}
|
|
11
|
+
function configSlug(absolutePath, globalRoot) {
|
|
12
|
+
const rel = path.relative(globalRoot, absolutePath);
|
|
13
|
+
const normalized = rel.replace(/\\/g, "/").replace(/\.json$/i, "");
|
|
14
|
+
return normalized.replace(/\//g, "-");
|
|
15
|
+
}
|
|
16
|
+
async function backupConfigFile(filePath, paths) {
|
|
17
|
+
let currentContent;
|
|
18
|
+
try {
|
|
19
|
+
currentContent = await fs.readFile(filePath, "utf8");
|
|
20
|
+
if (!currentContent.trim()) return;
|
|
21
|
+
} catch {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const now = /* @__PURE__ */ new Date();
|
|
25
|
+
const ts = now.toISOString().replace(/[:.]/g, "-").replace(/Z$/, "");
|
|
26
|
+
const slug = configSlug(filePath, paths.globalRoot);
|
|
27
|
+
const backupDir = configHistoryDir(paths.globalRoot);
|
|
28
|
+
const backupFile = path.join(backupDir, `${slug}-${ts}.json`);
|
|
29
|
+
try {
|
|
30
|
+
await fs.mkdir(backupDir, { recursive: true });
|
|
31
|
+
await fs.writeFile(backupFile, currentContent, { mode: 384, encoding: "utf8" });
|
|
32
|
+
} catch {
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/utils/project-state-guard.ts
|
|
37
|
+
import * as fs2 from "node:fs";
|
|
38
|
+
import * as fsp from "node:fs/promises";
|
|
39
|
+
import * as path2 from "node:path";
|
|
40
|
+
var PROJECT_STATE_DIRECTORY = ".wrongstack";
|
|
41
|
+
var DEFAULT_POLL_INTERVAL_MS = 1e3;
|
|
42
|
+
var REPAIR_DEBOUNCE_MS = 25;
|
|
43
|
+
var ACTIVE_GUARD_KEY = /* @__PURE__ */ Symbol.for("wrongstack.activeProjectStateGuard");
|
|
44
|
+
var globalScope = globalThis;
|
|
45
|
+
globalScope[ACTIVE_GUARD_KEY] ??= {};
|
|
46
|
+
var activeGuard = globalScope[ACTIVE_GUARD_KEY];
|
|
47
|
+
function normalizedRoot(root) {
|
|
48
|
+
const resolved = path2.resolve(root);
|
|
49
|
+
return process.platform === "win32" ? resolved.toLowerCase() : resolved;
|
|
50
|
+
}
|
|
51
|
+
function concernsProjectState(filename) {
|
|
52
|
+
if (filename === null) return true;
|
|
53
|
+
const firstSegment = String(filename).replaceAll("\\", "/").split("/")[0];
|
|
54
|
+
return firstSegment?.toLowerCase() === PROJECT_STATE_DIRECTORY;
|
|
55
|
+
}
|
|
56
|
+
async function startProjectStateGuard(projectRoot, options = {}) {
|
|
57
|
+
const root = path2.resolve(projectRoot);
|
|
58
|
+
const directory = path2.join(root, PROJECT_STATE_DIRECTORY);
|
|
59
|
+
const pollIntervalMs = Math.max(25, options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS);
|
|
60
|
+
let closed = false;
|
|
61
|
+
let repairPending = false;
|
|
62
|
+
let repairInFlight;
|
|
63
|
+
let repairTimer;
|
|
64
|
+
const ensureDirectory = async () => {
|
|
65
|
+
await fsp.mkdir(directory, { recursive: true });
|
|
66
|
+
};
|
|
67
|
+
const ensureInvariant = async () => {
|
|
68
|
+
await ensureDirectory();
|
|
69
|
+
try {
|
|
70
|
+
await ensureProjectGitignore(root);
|
|
71
|
+
} catch (error) {
|
|
72
|
+
options.onError?.(error);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const scheduleRepair = () => {
|
|
76
|
+
if (closed) return;
|
|
77
|
+
repairPending = true;
|
|
78
|
+
if (repairInFlight || repairTimer) return;
|
|
79
|
+
repairTimer = setTimeout(() => {
|
|
80
|
+
repairTimer = void 0;
|
|
81
|
+
repairInFlight = (async () => {
|
|
82
|
+
while (!closed && repairPending) {
|
|
83
|
+
repairPending = false;
|
|
84
|
+
try {
|
|
85
|
+
const rootState = await fsp.stat(root).catch(() => void 0);
|
|
86
|
+
if (!rootState?.isDirectory()) return;
|
|
87
|
+
await ensureInvariant();
|
|
88
|
+
} catch (error) {
|
|
89
|
+
options.onError?.(error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
})().finally(() => {
|
|
93
|
+
repairInFlight = void 0;
|
|
94
|
+
if (repairPending && !closed) scheduleRepair();
|
|
95
|
+
});
|
|
96
|
+
}, REPAIR_DEBOUNCE_MS);
|
|
97
|
+
repairTimer.unref?.();
|
|
98
|
+
};
|
|
99
|
+
await ensureDirectory();
|
|
100
|
+
await ensureProjectGitignore(root).catch((error) => options.onError?.(error));
|
|
101
|
+
let watcher;
|
|
102
|
+
try {
|
|
103
|
+
watcher = fs2.watch(root, { persistent: false }, (_eventType, filename) => {
|
|
104
|
+
if (concernsProjectState(filename) || String(filename).toLowerCase() === ".gitignore") {
|
|
105
|
+
scheduleRepair();
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
watcher.on("error", (error) => {
|
|
109
|
+
options.onError?.(error);
|
|
110
|
+
watcher = void 0;
|
|
111
|
+
scheduleRepair();
|
|
112
|
+
});
|
|
113
|
+
} catch (error) {
|
|
114
|
+
options.onError?.(error);
|
|
115
|
+
}
|
|
116
|
+
const poll = setInterval(scheduleRepair, pollIntervalMs);
|
|
117
|
+
poll.unref?.();
|
|
118
|
+
return {
|
|
119
|
+
directory,
|
|
120
|
+
close() {
|
|
121
|
+
if (closed) return;
|
|
122
|
+
closed = true;
|
|
123
|
+
clearInterval(poll);
|
|
124
|
+
if (repairTimer) clearTimeout(repairTimer);
|
|
125
|
+
repairTimer = void 0;
|
|
126
|
+
try {
|
|
127
|
+
watcher?.close();
|
|
128
|
+
} catch {
|
|
129
|
+
}
|
|
130
|
+
watcher = void 0;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
async function activateProjectStateGuard(projectRoot, options = {}) {
|
|
135
|
+
const root = normalizedRoot(projectRoot);
|
|
136
|
+
if (activeGuard.root === root && activeGuard.guard) return activeGuard.guard;
|
|
137
|
+
const next = await startProjectStateGuard(projectRoot, options);
|
|
138
|
+
const previous = activeGuard.guard;
|
|
139
|
+
activeGuard.root = root;
|
|
140
|
+
activeGuard.guard = next;
|
|
141
|
+
previous?.close();
|
|
142
|
+
return next;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export {
|
|
146
|
+
configHistoryDir,
|
|
147
|
+
backupConfigFile,
|
|
148
|
+
startProjectStateGuard,
|
|
149
|
+
activateProjectStateGuard
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=chunk-CQQL4ZOQ.js.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// src/utils/deep-merge.ts
|
|
2
|
+
var FORBIDDEN_PROTO_KEYS = /* @__PURE__ */ new Set([
|
|
3
|
+
"__proto__",
|
|
4
|
+
"constructor",
|
|
5
|
+
"prototype",
|
|
6
|
+
"__defineGetter__",
|
|
7
|
+
"__defineSetter__",
|
|
8
|
+
"__lookupGetter__",
|
|
9
|
+
"__lookupSetter__"
|
|
10
|
+
]);
|
|
11
|
+
function isPrimitiveArray(a) {
|
|
12
|
+
return a.every((v) => v === null || typeof v !== "object" && typeof v !== "function");
|
|
13
|
+
}
|
|
14
|
+
function deepMerge(base, patch, options = {}) {
|
|
15
|
+
const {
|
|
16
|
+
conflictResolution = "prefer-patch",
|
|
17
|
+
arrayMode = "replace",
|
|
18
|
+
protectProto = true,
|
|
19
|
+
onNonPrimitiveArrayReplace
|
|
20
|
+
} = options;
|
|
21
|
+
if (typeof base !== "object" || base === null) {
|
|
22
|
+
return conflictResolution === "prefer-patch" ? patch : base;
|
|
23
|
+
}
|
|
24
|
+
if (typeof patch !== "object" || patch === null) {
|
|
25
|
+
return conflictResolution === "prefer-patch" ? patch : base;
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(base) && Array.isArray(patch)) {
|
|
28
|
+
if (arrayMode === "concat-primitives" && isPrimitiveArray(base) && isPrimitiveArray(patch)) {
|
|
29
|
+
return [.../* @__PURE__ */ new Set([...base, ...patch])];
|
|
30
|
+
}
|
|
31
|
+
return conflictResolution === "prefer-patch" ? patch : base;
|
|
32
|
+
}
|
|
33
|
+
if (Array.isArray(base) || Array.isArray(patch)) {
|
|
34
|
+
return conflictResolution === "prefer-patch" ? patch : base;
|
|
35
|
+
}
|
|
36
|
+
const baseObj = base;
|
|
37
|
+
const patchObj = patch;
|
|
38
|
+
const out = { ...baseObj };
|
|
39
|
+
for (const [k, v] of Object.entries(patchObj)) {
|
|
40
|
+
if (protectProto && FORBIDDEN_PROTO_KEYS.has(k)) continue;
|
|
41
|
+
const existing = out[k];
|
|
42
|
+
if (v !== null && typeof v === "object" && !Array.isArray(v) && existing !== null && typeof existing === "object" && !Array.isArray(existing)) {
|
|
43
|
+
out[k] = deepMerge(existing, v, options);
|
|
44
|
+
} else if (Array.isArray(v) && Array.isArray(existing)) {
|
|
45
|
+
if (onNonPrimitiveArrayReplace && !isPrimitiveArray(v)) {
|
|
46
|
+
onNonPrimitiveArrayReplace(k, existing.length, v.length);
|
|
47
|
+
}
|
|
48
|
+
out[k] = deepMerge(existing, v, options);
|
|
49
|
+
} else if (v !== void 0) {
|
|
50
|
+
if (onNonPrimitiveArrayReplace && Array.isArray(v) && !isPrimitiveArray(v)) {
|
|
51
|
+
const existingLen = Array.isArray(existing) ? existing.length : 0;
|
|
52
|
+
onNonPrimitiveArrayReplace(k, existingLen, v.length);
|
|
53
|
+
}
|
|
54
|
+
out[k] = v;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
FORBIDDEN_PROTO_KEYS,
|
|
62
|
+
isPrimitiveArray,
|
|
63
|
+
deepMerge
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=chunk-DEIQMBD2.js.map
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assertUnixSocketPathWithinLimit
|
|
3
|
+
} from "./chunk-FAYRX2AD.js";
|
|
4
|
+
|
|
5
|
+
// src/session-catalog/protocol.ts
|
|
6
|
+
var SESSION_CATALOG_PROTOCOL_VERSION = 1;
|
|
7
|
+
var SESSION_CATALOG_MAX_FRAME_CHARS = 4 * 1024 * 1024;
|
|
8
|
+
var SESSION_CATALOG_DEFAULT_LEASE_MS = 3e4;
|
|
9
|
+
var SESSION_CATALOG_DEFAULT_RESERVATION_MS = 15e3;
|
|
10
|
+
var SESSION_CATALOG_MAX_AGENTS = 128;
|
|
11
|
+
function encodeSessionCatalogMessage(message) {
|
|
12
|
+
return `${JSON.stringify(message)}
|
|
13
|
+
`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// src/session-catalog/endpoint.ts
|
|
17
|
+
import { createHash } from "node:crypto";
|
|
18
|
+
import * as fs from "node:fs";
|
|
19
|
+
import * as os from "node:os";
|
|
20
|
+
import * as path from "node:path";
|
|
21
|
+
var SESSION_CATALOG_METADATA_FILE = ".session-catalog-server.json";
|
|
22
|
+
function normalizedPath(value) {
|
|
23
|
+
const resolved = path.resolve(value);
|
|
24
|
+
return process.platform === "win32" ? resolved.toLowerCase() : resolved;
|
|
25
|
+
}
|
|
26
|
+
function sessionCatalogProjectServerKey(projectDir) {
|
|
27
|
+
return createHash("sha256").update(normalizedPath(projectDir)).digest("hex").slice(0, 24);
|
|
28
|
+
}
|
|
29
|
+
function sessionCatalogProjectServerEndpoint(projectDir) {
|
|
30
|
+
const key = sessionCatalogProjectServerKey(projectDir);
|
|
31
|
+
if (process.platform === "win32") {
|
|
32
|
+
return `\\\\.\\pipe\\wrongstack-session-catalog-v${SESSION_CATALOG_PROTOCOL_VERSION}-${key}`;
|
|
33
|
+
}
|
|
34
|
+
return path.join(os.tmpdir(), `wssc-v${SESSION_CATALOG_PROTOCOL_VERSION}`, `${key}.sock`);
|
|
35
|
+
}
|
|
36
|
+
function sessionCatalogProjectServerMetadataPath(projectDir) {
|
|
37
|
+
return path.join(projectDir, SESSION_CATALOG_METADATA_FILE);
|
|
38
|
+
}
|
|
39
|
+
function ensureSessionCatalogSocketDirectory(endpoint) {
|
|
40
|
+
if (process.platform === "win32") return;
|
|
41
|
+
assertUnixSocketPathWithinLimit(endpoint, "session-catalog");
|
|
42
|
+
fs.mkdirSync(path.dirname(endpoint), { recursive: true, mode: 448 });
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
SESSION_CATALOG_PROTOCOL_VERSION,
|
|
47
|
+
SESSION_CATALOG_MAX_FRAME_CHARS,
|
|
48
|
+
SESSION_CATALOG_DEFAULT_LEASE_MS,
|
|
49
|
+
SESSION_CATALOG_DEFAULT_RESERVATION_MS,
|
|
50
|
+
SESSION_CATALOG_MAX_AGENTS,
|
|
51
|
+
encodeSessionCatalogMessage,
|
|
52
|
+
SESSION_CATALOG_METADATA_FILE,
|
|
53
|
+
sessionCatalogProjectServerKey,
|
|
54
|
+
sessionCatalogProjectServerEndpoint,
|
|
55
|
+
sessionCatalogProjectServerMetadataPath,
|
|
56
|
+
ensureSessionCatalogSocketDirectory
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chunk-E6I5RXVK.js.map
|