@outerlayer/cli 0.7.0 → 0.8.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/CHANGELOG.md +30 -0
- package/README.md +5 -5
- package/dist/{agent-setup-TXLDY5RV.js → agent-setup-K6RD2Z4P.js} +4 -4
- package/dist/{build-JF5UOWKJ.js → build-MS34XEGN.js} +2 -1
- package/dist/build-info.json +1 -1
- package/dist/builder-IG6FNA54.js +13 -0
- package/dist/{check-ASZL5BEO.js → check-GX5ND6RO.js} +26 -22
- package/dist/chunk-2BRSMBBB.js +264 -0
- package/dist/{chunk-PUN7LMNS.js → chunk-4ACZCY4I.js} +2 -2
- package/dist/{chunk-2VO25HHO.js → chunk-4FPWKV7L.js} +3 -3
- package/dist/{chunk-AII7CKTH.js → chunk-5ODHQP6O.js} +68 -145
- package/dist/chunk-7RQ73DLO.js +23 -0
- package/dist/{chunk-7FTNIAHS.js → chunk-AX23QKHS.js} +7 -3
- package/dist/{chunk-6ZZHWY2Z.js → chunk-BF4KKEFY.js} +4 -4
- package/dist/{chunk-5FWNEQNZ.js → chunk-BQFNZOMQ.js} +1 -1
- package/dist/chunk-CX22S5BA.js +45 -0
- package/dist/{chunk-D6FXM5OW.js → chunk-GAYWY4GI.js} +8 -8
- package/dist/{chunk-MQPRB5K7.js → chunk-HSN5QNS5.js} +8 -8
- package/dist/chunk-I2UOAV7X.js +133 -0
- package/dist/chunk-I7CJIRMM.js +93 -0
- package/dist/{chunk-SSU747O6.js → chunk-ILEA3YHM.js} +1 -1
- package/dist/{chunk-OUUINEYB.js → chunk-JKIWMRFH.js} +1 -1
- package/dist/{chunk-JPR2WHHF.js → chunk-KSLNQOOS.js} +1 -1
- package/dist/{chunk-DGAIVMMN.js → chunk-KV47VQJZ.js} +5 -5
- package/dist/{chunk-E4PIFIC3.js → chunk-M4ERCYDB.js} +133 -159
- package/dist/chunk-PTW6W5NR.js +127 -0
- package/dist/{chunk-DTXOJDEH.js → chunk-PWBILI5P.js} +3 -2
- package/dist/{chunk-X2FSFU4C.js → chunk-PXFEYBDE.js} +3 -3
- package/dist/{chunk-6IYLDODX.js → chunk-Q4432IZT.js} +5 -5
- package/dist/{chunk-AJKEHABI.js → chunk-QB5JQH5V.js} +255 -54
- package/dist/{chunk-AQ54MKSQ.js → chunk-QNRSFEGY.js} +2 -2
- package/dist/{chunk-774HEQL6.js → chunk-TEKZRTM3.js} +91 -8
- package/dist/{chunk-CEBIA5FD.js → chunk-TTNFGMHO.js} +42 -50
- package/dist/{chunk-F6GFZXZ3.js → chunk-UXYLWVTQ.js} +1 -18
- package/dist/{chunk-M5POMKKW.js → chunk-V7NIVOFD.js} +5 -5
- package/dist/{chunk-BCLJSQCV.js → chunk-YO4PSLVB.js} +1 -1
- package/dist/{chunk-6QWV3YDJ.js → chunk-Z2THOHPP.js} +2 -2
- package/dist/{cli-LEVCGAQV.js → cli-X5ONGYNY.js} +128 -78
- package/dist/{command-FLSYCGIB.js → command-7NFU3IPO.js} +38 -20
- package/dist/{config-I3TVFYLH.js → config-Z3USDBLU.js} +3 -2
- package/dist/{connect-cmd-MJMUONDY.js → connect-cmd-PNZ6IJLJ.js} +2 -2
- package/dist/{context-adopt-CE4KDXS3.js → context-adopt-D2Z7F7PB.js} +3 -3
- package/dist/{context-materialize-QL33HDJN.js → context-materialize-4PMTDS6K.js} +3 -3
- package/dist/{dist-PXBSA7QX.js → dist-3ZTZF2TP.js} +1 -1
- package/dist/docker-PRHRSJM5.js +15 -0
- package/dist/{doctor-FVDT3KJZ.js → doctor-KALLPCRB.js} +39 -16
- package/dist/{emit-artifact-cmd-7RPMRSVP.js → emit-artifact-cmd-D5GMVWNC.js} +7 -7
- package/dist/{emit-criteria-cmd-MKI7WETO.js → emit-criteria-cmd-IE7VIM64.js} +5 -5
- package/dist/{emit-finding-cmd-RMLGZASB.js → emit-finding-cmd-46PTPN3A.js} +5 -5
- package/dist/{emit-result-cmd-MTXAZ2GV.js → emit-result-cmd-KXHHP6HX.js} +7 -7
- package/dist/{hook-fast-XBOZ3N6L.js → hook-fast-5H5QBJKT.js} +1 -1
- package/dist/{host-key-KDYZ5ECC.js → host-key-YMLXY6QB.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/{init-VLW7H6RW.js → init-B4CECVOX.js} +25 -18
- package/dist/{init-BACXESVV.js → init-S4DH6PWW.js} +16 -13
- package/dist/{init-cmd-VJFB5L7X.js → init-cmd-P4MVCBCZ.js} +8 -8
- package/dist/{install-NMAPLLBQ.js → install-FHTVJZS6.js} +5 -4
- package/dist/{install-cmd-B5SEU3G7.js → install-cmd-BEC7XTNG.js} +3 -1
- package/dist/{loop-D3243JKT.js → loop-ODMRE3CW.js} +26 -22
- package/dist/{machine-EB3GEVI4.js → machine-J4SAB3Z2.js} +15 -12
- package/dist/{mcp-serve-cmd-N6UD2KBX.js → mcp-serve-cmd-CT47P4YQ.js} +2 -2
- package/dist/{session-sender-LMACEJJS.js → session-sender-V46VPWQ5.js} +6 -6
- package/dist/{status-F4THTJJK.js → status-QBKSH3QE.js} +19 -16
- package/dist/{sync-cmd-M6JA3OEE.js → sync-cmd-RJR77V4O.js} +5 -5
- package/dist/{watch-NB5TGPEZ.js → watch-YNZTFLEY.js} +5 -5
- package/dist/{work-claim-cmd-UHMWOS3G.js → work-claim-cmd-KAD3ZAH7.js} +10 -9
- package/dist/{work-cmd-6UMCFTAW.js → work-cmd-CNWPTH7W.js} +6 -6
- package/dist/{work-comment-cmd-E4LEUIXZ.js → work-comment-cmd-HH45S6UE.js} +6 -6
- package/dist/{work-open-pr-cmd-OPZWGSEQ.js → work-open-pr-cmd-5KR3KFCN.js} +7 -7
- package/dist/{work-pr-cmd-IDIAFFRU.js → work-pr-cmd-TTEGCP76.js} +6 -6
- package/package.json +2 -2
- package/skill-pack/maintained/amend/SKILL.md +22 -6
- package/dist/chunk-Q5G2ODUZ.js +0 -54
- package/dist/docker-NEGDLU6D.js +0 -7
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
|
|
4
|
+
createRequire(import.meta.url);
|
|
5
|
+
|
|
6
|
+
// src/runner/update/version-order.ts
|
|
7
|
+
function parse(version) {
|
|
8
|
+
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(version);
|
|
9
|
+
if (match === null) return void 0;
|
|
10
|
+
return { core: [Number(match[1]), Number(match[2]), Number(match[3])], pre: match[4] };
|
|
11
|
+
}
|
|
12
|
+
function comparePre(a, b) {
|
|
13
|
+
const left = a.split(".");
|
|
14
|
+
const right = b.split(".");
|
|
15
|
+
for (let i = 0; i < Math.max(left.length, right.length); i++) {
|
|
16
|
+
const x = left[i];
|
|
17
|
+
const y = right[i];
|
|
18
|
+
if (x === void 0) return -1;
|
|
19
|
+
if (y === void 0) return 1;
|
|
20
|
+
const xNum = /^\d+$/.test(x);
|
|
21
|
+
const yNum = /^\d+$/.test(y);
|
|
22
|
+
if (xNum && yNum) {
|
|
23
|
+
const difference = Number(x) - Number(y);
|
|
24
|
+
if (difference !== 0) return Math.sign(difference);
|
|
25
|
+
} else if (xNum !== yNum) {
|
|
26
|
+
return xNum ? -1 : 1;
|
|
27
|
+
} else if (x < y) {
|
|
28
|
+
return -1;
|
|
29
|
+
} else if (x > y) {
|
|
30
|
+
return 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
function compareVersions(a, b) {
|
|
36
|
+
const left = parse(a);
|
|
37
|
+
const right = parse(b);
|
|
38
|
+
if (left === void 0 || right === void 0) return void 0;
|
|
39
|
+
for (let i = 0; i < 3; i++) {
|
|
40
|
+
const difference = left.core[i] - right.core[i];
|
|
41
|
+
if (difference !== 0) return Math.sign(difference);
|
|
42
|
+
}
|
|
43
|
+
if (left.pre === right.pre) return 0;
|
|
44
|
+
if (left.pre === void 0) return 1;
|
|
45
|
+
if (right.pre === void 0) return -1;
|
|
46
|
+
return comparePre(left.pre, right.pre);
|
|
47
|
+
}
|
|
48
|
+
function compareCores(a, b) {
|
|
49
|
+
for (let i = 0; i < 3; i++) {
|
|
50
|
+
const difference = a[i] - b[i];
|
|
51
|
+
if (difference !== 0) return Math.sign(difference);
|
|
52
|
+
}
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
55
|
+
function parsePartial(text) {
|
|
56
|
+
if (text === "" || text === "*" || text === "x" || text === "X") return [];
|
|
57
|
+
const match = /^v?(\d+|[xX*])(?:\.(\d+|[xX*]))?(?:\.(\d+|[xX*]))?$/.exec(text);
|
|
58
|
+
if (match === null) return void 0;
|
|
59
|
+
const numbers = [];
|
|
60
|
+
for (const part of [match[1], match[2], match[3]]) {
|
|
61
|
+
if (part === void 0 || !/^\d+$/.test(part)) break;
|
|
62
|
+
numbers.push(Number(part));
|
|
63
|
+
}
|
|
64
|
+
return numbers;
|
|
65
|
+
}
|
|
66
|
+
function bumpLast(numbers) {
|
|
67
|
+
const core = [numbers[0] ?? 0, numbers[1] ?? 0, numbers[2] ?? 0];
|
|
68
|
+
const last = numbers.length - 1;
|
|
69
|
+
core[last] = core[last] + 1;
|
|
70
|
+
for (let i = last + 1; i < 3; i++) core[i] = 0;
|
|
71
|
+
return core;
|
|
72
|
+
}
|
|
73
|
+
function fill(numbers) {
|
|
74
|
+
return [numbers[0] ?? 0, numbers[1] ?? 0, numbers[2] ?? 0];
|
|
75
|
+
}
|
|
76
|
+
function meets(version, comparator) {
|
|
77
|
+
const match = /^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(comparator);
|
|
78
|
+
const op = match[1] ?? "";
|
|
79
|
+
const numbers = parsePartial(match[2]);
|
|
80
|
+
if (numbers === void 0) return void 0;
|
|
81
|
+
if (numbers.length === 0) return op === "" || op === "=" || op === ">=" || op === "<=" ? true : void 0;
|
|
82
|
+
const low = fill(numbers);
|
|
83
|
+
const whole = numbers.length === 3;
|
|
84
|
+
switch (op) {
|
|
85
|
+
case ">=":
|
|
86
|
+
return compareCores(version, low) >= 0;
|
|
87
|
+
case ">":
|
|
88
|
+
return whole ? compareCores(version, low) > 0 : compareCores(version, bumpLast(numbers)) >= 0;
|
|
89
|
+
case "<":
|
|
90
|
+
return compareCores(version, low) < 0;
|
|
91
|
+
case "<=":
|
|
92
|
+
return whole ? compareCores(version, low) <= 0 : compareCores(version, bumpLast(numbers)) < 0;
|
|
93
|
+
case "~":
|
|
94
|
+
return compareCores(version, low) >= 0 && compareCores(version, bumpLast(numbers.slice(0, Math.min(numbers.length, 2)))) < 0;
|
|
95
|
+
case "^": {
|
|
96
|
+
let pivot = numbers.findIndex((n) => n !== 0);
|
|
97
|
+
if (pivot === -1) pivot = numbers.length - 1;
|
|
98
|
+
return compareCores(version, low) >= 0 && compareCores(version, bumpLast(numbers.slice(0, pivot + 1))) < 0;
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
return compareCores(version, low) >= 0 && (whole ? compareCores(version, low) <= 0 : compareCores(version, bumpLast(numbers)) < 0);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function satisfiesRange(version, range) {
|
|
105
|
+
const parsed = parse(version.trim().replace(/^v/, ""));
|
|
106
|
+
if (parsed === void 0 || parsed.pre !== void 0) return void 0;
|
|
107
|
+
let anyUnreadable = false;
|
|
108
|
+
for (const alternative of range.split("||")) {
|
|
109
|
+
if (/\s-\s/.test(alternative)) {
|
|
110
|
+
anyUnreadable = true;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const comparators = alternative.trim().replace(/(>=|<=|>|<|=|\^|~)\s+/g, "$1").split(/\s+/).filter((c) => c !== "");
|
|
114
|
+
if (comparators.length === 0) comparators.push("*");
|
|
115
|
+
let all = true;
|
|
116
|
+
for (const comparator of comparators) {
|
|
117
|
+
const met = meets(parsed.core, comparator);
|
|
118
|
+
if (met === void 0) {
|
|
119
|
+
anyUnreadable = true;
|
|
120
|
+
all = false;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
if (!met) {
|
|
124
|
+
all = false;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (all) return true;
|
|
129
|
+
}
|
|
130
|
+
return anyUnreadable ? void 0 : false;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export { compareVersions, satisfiesRange };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { compareVersions } from './chunk-I2UOAV7X.js';
|
|
4
|
+
import { launcherPath, writeLauncher, LauncherWriteError, pathNotes } from './chunk-PTW6W5NR.js';
|
|
5
|
+
import { currentVersion, currentLink, isInLayout, packageRootIn, versionDir, switchCurrent, execStartLine } from './chunk-TI7B7UEO.js';
|
|
6
|
+
import { RUNNER_DIR_MODE } from './chunk-ZM2IMMYN.js';
|
|
7
|
+
import { realpathSync, readFileSync, mkdirSync, rmSync, cpSync, existsSync } from 'fs';
|
|
8
|
+
import { dirname, sep, join } from 'path';
|
|
9
|
+
|
|
10
|
+
createRequire(import.meta.url);
|
|
11
|
+
var RunnerInstallError = class extends Error {
|
|
12
|
+
};
|
|
13
|
+
var RunnerDowngradeError = class extends RunnerInstallError {
|
|
14
|
+
};
|
|
15
|
+
function runRunnerInstall(args) {
|
|
16
|
+
const { configPath, nodePath } = args;
|
|
17
|
+
let entry;
|
|
18
|
+
try {
|
|
19
|
+
entry = realpathSync(args.entryPath);
|
|
20
|
+
} catch {
|
|
21
|
+
throw new RunnerInstallError(`cannot read the running CLI at ${args.entryPath}`);
|
|
22
|
+
}
|
|
23
|
+
const packageRoot = dirname(dirname(entry));
|
|
24
|
+
if (!packageRoot.split(sep).includes("node_modules")) {
|
|
25
|
+
throw new RunnerInstallError(
|
|
26
|
+
`${packageRoot} is not an installed package: run \`outerlayer runner install\` from a CLI installed with npm, not from a source checkout`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
let manifest;
|
|
30
|
+
try {
|
|
31
|
+
manifest = JSON.parse(readFileSync(`${packageRoot}/package.json`, "utf8"));
|
|
32
|
+
} catch {
|
|
33
|
+
manifest = {};
|
|
34
|
+
}
|
|
35
|
+
if (manifest.name !== "@outerlayer/cli") throw new RunnerInstallError(`${packageRoot} is not the @outerlayer/cli package`);
|
|
36
|
+
const version = manifest.version;
|
|
37
|
+
if (typeof version !== "string" || version === "") throw new RunnerInstallError(`${packageRoot}/package.json has no version`);
|
|
38
|
+
const installed = currentVersion(configPath);
|
|
39
|
+
if (args.allowDowngrade !== true && installed !== void 0 && (compareVersions(version, installed) ?? 0) < 0) {
|
|
40
|
+
const command = args.command ?? "runner install";
|
|
41
|
+
throw new RunnerDowngradeError(
|
|
42
|
+
`this CLI is ${version}, older than ${installed}, the version the runner runs from ${currentLink(configPath)}. Installing it would move the runner back to ${version}. Run \`${launcherPath(args.home)} ${command}\` instead, which runs ${installed}. To install ${version} anyway, run \`outerlayer ${command} --allow-downgrade\``
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
if (!isInLayout(configPath, entry) && !sameBuildInstalled(packageRoot, packageRootIn(versionDir(configPath, version)))) {
|
|
46
|
+
const target = packageRootIn(versionDir(configPath, version));
|
|
47
|
+
mkdirSync(dirname(target), { recursive: true, mode: RUNNER_DIR_MODE });
|
|
48
|
+
rmSync(target, { recursive: true, force: true });
|
|
49
|
+
cpSync(packageRoot, target, { recursive: true });
|
|
50
|
+
carryHoistedDevcontainerCli(packageRoot, target);
|
|
51
|
+
}
|
|
52
|
+
switchCurrent(configPath, version);
|
|
53
|
+
let written;
|
|
54
|
+
try {
|
|
55
|
+
written = writeLauncher({ home: args.home, configPath, nodePath, replace: args.replace });
|
|
56
|
+
} catch (error) {
|
|
57
|
+
if (error instanceof LauncherWriteError) throw new RunnerInstallError(error.message);
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
version,
|
|
62
|
+
execStart: execStartLine(configPath, nodePath),
|
|
63
|
+
launcher: {
|
|
64
|
+
path: launcherPath(args.home),
|
|
65
|
+
state: written.state,
|
|
66
|
+
follows: currentLink(configPath),
|
|
67
|
+
notes: pathNotes({ home: args.home, PATH: args.PATH, state: written.state, launcher: written.path })
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function sameBuildInstalled(source, target) {
|
|
72
|
+
try {
|
|
73
|
+
const wanted = readFileSync(join(source, "dist", "build-info.json"), "utf8");
|
|
74
|
+
return wanted !== "" && wanted === readFileSync(join(target, "dist", "build-info.json"), "utf8");
|
|
75
|
+
} catch {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function carryHoistedDevcontainerCli(packageRoot, target) {
|
|
80
|
+
const dependency = join("@devcontainers", "cli");
|
|
81
|
+
if (existsSync(join(packageRoot, "node_modules", dependency))) return;
|
|
82
|
+
const hoisted = join(dirname(dirname(packageRoot)), dependency);
|
|
83
|
+
if (!existsSync(hoisted)) return;
|
|
84
|
+
const carried = join(dirname(dirname(target)), dependency);
|
|
85
|
+
mkdirSync(dirname(carried), { recursive: true, mode: RUNNER_DIR_MODE });
|
|
86
|
+
cpSync(hoisted, carried, { recursive: true });
|
|
87
|
+
}
|
|
88
|
+
function launcherSummary(launcher) {
|
|
89
|
+
if (launcher.state === "foreign") return void 0;
|
|
90
|
+
return `${launcher.state === "unchanged" ? "outerlayer command already at" : "wrote the outerlayer command at"} ${launcher.path}, which runs the CLI that ${launcher.follows} names`;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export { RunnerDowngradeError, RunnerInstallError, launcherSummary, runRunnerInstall };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
|
|
4
|
-
import { remoteLookupFailed } from './chunk-
|
|
4
|
+
import { remoteLookupFailed } from './chunk-GAYWY4GI.js';
|
|
5
5
|
import { DEFAULT_DASHBOARD } from './chunk-USO2DKBD.js';
|
|
6
6
|
import { resolveGatewayCredentials } from './chunk-BOLTI6LR.js';
|
|
7
7
|
import { readCloudConfig } from './chunk-EABW6AJQ.js';
|
|
@@ -628,7 +628,7 @@ async function runHookFast(event, home = homeFromEnv(), read = readStdin, env =
|
|
|
628
628
|
recordHookErrorsSeen(home, hookErrorsBytes);
|
|
629
629
|
if (contextPossiblyGoverned(sessionCwd, home)) {
|
|
630
630
|
try {
|
|
631
|
-
const { materializeContext: materialize } = await import('./context-materialize-
|
|
631
|
+
const { materializeContext: materialize } = await import('./context-materialize-4PMTDS6K.js');
|
|
632
632
|
const sessionId = typeof payload.session_id === "string" ? payload.session_id : "unknown";
|
|
633
633
|
const result = await materialize({ cwd: sessionCwd, sessionId, home });
|
|
634
634
|
materializeMessage = result.message;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { autoConnect } from './chunk-
|
|
3
|
+
import { autoConnect } from './chunk-4ACZCY4I.js';
|
|
4
4
|
import { detectActiveSession } from './chunk-BFESLKPP.js';
|
|
5
5
|
import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-GAYWY4GI.js';
|
|
7
7
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
8
|
-
import { defaultFetch } from './chunk-
|
|
8
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
9
9
|
import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-BOLTI6LR.js';
|
|
10
|
-
import { signRunnerRequest } from './chunk-
|
|
10
|
+
import { signRunnerRequest } from './chunk-V7NIVOFD.js';
|
|
11
11
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
12
12
|
|
|
13
13
|
createRequire(import.meta.url);
|
|
@@ -347,7 +347,7 @@ async function runWorkLinkSession(opts) {
|
|
|
347
347
|
return await linkSession(opts);
|
|
348
348
|
} catch (err) {
|
|
349
349
|
if (opts.logFailures) {
|
|
350
|
-
const { logHookError } = await import('./hook-fast-
|
|
350
|
+
const { logHookError } = await import('./hook-fast-5H5QBJKT.js');
|
|
351
351
|
const reason = err instanceof Error ? err.message : String(err);
|
|
352
352
|
logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
|
|
353
353
|
}
|