@outerlayer/cli 0.19.1 → 0.22.0
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 +33 -0
- package/README.md +26 -7
- package/dist/{agent-setup-AM42SA2D.js → agent-setup-XAJH6MPW.js} +13 -12
- package/dist/build-GTMEADQD.js +12 -0
- package/dist/build-command-ND2ENDBS.js +50 -0
- package/dist/build-info.json +1 -1
- package/dist/{builder-C4QNTYMS.js → builder-OAUSTZHL.js} +7 -5
- package/dist/{check-W2JGXN3B.js → check-3YHMJQ3P.js} +48 -50
- package/dist/{chunk-F2KXHIFI.js → chunk-22DYXLU7.js} +360 -66
- package/dist/{chunk-P53VEAOF.js → chunk-2CMJLYV6.js} +1 -1
- package/dist/{chunk-FBTGMSQF.js → chunk-2HT2XGJX.js} +16 -9
- package/dist/{chunk-S5PCA3SN.js → chunk-2J5JGLW5.js} +1 -1
- package/dist/{chunk-R22NZSGA.js → chunk-34XORKFD.js} +9 -9
- package/dist/{chunk-QOZKPLVJ.js → chunk-3W333NFO.js} +40 -1
- package/dist/{chunk-HOKXGFDR.js → chunk-4JHVPFH6.js} +22 -16
- package/dist/{chunk-AMFWYESY.js → chunk-4NM3I3VV.js} +1 -1
- package/dist/{chunk-PIZRPNKR.js → chunk-4QKLMNI3.js} +5 -5
- package/dist/{chunk-NNLA7LLQ.js → chunk-5OCIHFGE.js} +29 -5
- package/dist/{chunk-PSN33ERW.js → chunk-6IO62VJS.js} +3 -3
- package/dist/{chunk-7YP7T6GV.js → chunk-7V7KG3YM.js} +2 -2
- package/dist/{chunk-QNLX477Q.js → chunk-AEKSX4EY.js} +165 -72
- package/dist/{chunk-JHGEBPLE.js → chunk-ATRIVTRE.js} +3 -3
- package/dist/{chunk-X5H2WYMB.js → chunk-BLW6GPBZ.js} +1 -1
- package/dist/{chunk-MLAAT4S6.js → chunk-C3HKR67W.js} +3 -3
- package/dist/{chunk-XZ4H4X5F.js → chunk-C3OVGKVJ.js} +15 -8
- package/dist/{chunk-BM63HB2M.js → chunk-EAQSOE62.js} +2 -2
- package/dist/{chunk-LW7G5TJB.js → chunk-EXV37PKS.js} +2 -2
- package/dist/{chunk-B6SCN5NY.js → chunk-FGW2774C.js} +175 -44
- package/dist/{chunk-KYS3TQAG.js → chunk-G2WME4RG.js} +4 -4
- package/dist/{chunk-LRG3ZMZD.js → chunk-G6DZCKA6.js} +4 -4
- package/dist/chunk-GISNHSYL.js +41 -0
- package/dist/{chunk-G2YNJIGF.js → chunk-HCVLP7XA.js} +10 -1
- package/dist/{chunk-QEFKA2QD.js → chunk-I66MQDXH.js} +2 -2
- package/dist/{chunk-3CWUOFV6.js → chunk-IRBNIRQJ.js} +12 -7
- package/dist/{chunk-CG36IONK.js → chunk-JRCSET55.js} +2 -2
- package/dist/{chunk-CGGPS7SI.js → chunk-JVB63NIB.js} +5 -5
- package/dist/{chunk-M2ZWWTWZ.js → chunk-KDHYLBRR.js} +1 -1
- package/dist/{chunk-N2PXGQRL.js → chunk-KIGSGZBB.js} +1 -1
- package/dist/{chunk-EAEELQVQ.js → chunk-KOQELWQ6.js} +5 -5
- package/dist/{chunk-MTP2QEVO.js → chunk-KPBQYEND.js} +1 -1
- package/dist/{chunk-VYAL7PUE.js → chunk-LOB2SUM3.js} +1 -1
- package/dist/{chunk-GGOMT6KF.js → chunk-PHHBYAL6.js} +1 -1
- package/dist/{chunk-IF2OSI5T.js → chunk-QOALB6ZD.js} +2 -2
- package/dist/{chunk-BWSUPRDK.js → chunk-TPKYTORP.js} +1 -1
- package/dist/{chunk-XNGMQ27R.js → chunk-UD3EXMKB.js} +2 -2
- package/dist/{chunk-7UWVLZXD.js → chunk-USWVXQIH.js} +1 -1
- package/dist/{chunk-BQXFBI7T.js → chunk-V7MQKOZY.js} +32 -7
- package/dist/{chunk-6X4SQ5MY.js → chunk-V7SAQ645.js} +1 -1
- package/dist/{chunk-TWF3RICI.js → chunk-VSUXCMMH.js} +110 -11
- package/dist/{chunk-FVMYKL6L.js → chunk-VWLOQ6FI.js} +1 -1
- package/dist/{chunk-3ZR7Y23Y.js → chunk-VX74ND77.js} +650 -70
- package/dist/{chunk-Z7K3L4FC.js → chunk-W3SWJ2TD.js} +2 -2
- package/dist/chunk-WERZMIKA.js +718 -0
- package/dist/{chunk-GEMQLBMW.js → chunk-WMHYIBJW.js} +6 -6
- package/dist/{chunk-5VML45HH.js → chunk-XCRZTXRL.js} +2 -2
- package/dist/{chunk-ECODQ7II.js → chunk-ZFLOGMUC.js} +1 -1
- package/dist/chunk-ZNPE7FW5.js +137 -0
- package/dist/claude-launcher-4BQNXYAF.js +267 -0
- package/dist/{cli-EXX2R73G.js → cli-NMGVZQPB.js} +189 -119
- package/dist/{command-ZQNEPDS6.js → command-GE62AJZY.js} +32 -34
- package/dist/{config-CLSGABD5.js → config-7Q52COZ3.js} +3 -2
- package/dist/{connect-cmd-UNYKGDAL.js → connect-cmd-ZFOK6HEL.js} +5 -5
- package/dist/{context-cleanup-CHEWNYU6.js → context-cleanup-DSA3HGQU.js} +1 -1
- package/dist/{control-plane-launch-34LNRJWR.js → control-plane-launch-SZTE4TUS.js} +62 -28
- package/dist/{dist-WO7NOJNG.js → dist-7IH56ELA.js} +1 -1
- package/dist/{docker-BFU3AQGY.js → docker-2OVBKVRK.js} +7 -7
- package/dist/{doctor-DHUM5DBB.js → doctor-3SQGZVYP.js} +35 -36
- package/dist/{emit-artifact-cmd-XBHM647X.js → emit-artifact-cmd-R42BE6ID.js} +19 -18
- package/dist/{emit-cmd-W55AEBCA.js → emit-cmd-3W5IO5ET.js} +3 -3
- package/dist/{emit-criteria-cmd-CRTYEF7D.js → emit-criteria-cmd-MQZE7W4Y.js} +52 -16
- package/dist/{emit-finding-cmd-7JHVRYOP.js → emit-finding-cmd-ZS5JEGGM.js} +13 -12
- package/dist/{emit-result-cmd-5NZMLCJK.js → emit-result-cmd-FUE3DXBW.js} +19 -18
- package/dist/{emit-step-cmd-347XNGPQ.js → emit-step-cmd-T7PRA44X.js} +14 -13
- package/dist/{exec-client-7UMESIE2.js → exec-client-YIDTWXMZ.js} +4 -3
- package/dist/{governing-source-HAA4OW57.js → governing-source-TORXL4I4.js} +19 -18
- package/dist/{guest-init-KPBQOFE5.js → guest-init-TO6HAWIT.js} +4 -3
- package/dist/{hook-fast-RL5E5OXE.js → hook-fast-WFB2ZMRB.js} +2 -2
- package/dist/host-key-2LXQDSBO.js +9 -0
- package/dist/{import-capture-cmd-TK4XY7RD.js → import-capture-cmd-Q56DDZVO.js} +1 -1
- package/dist/index.js +5 -5
- package/dist/init-2CRAVIUU.js +52 -0
- package/dist/{init-V6FOMD2V.js → init-AHDZCMDC.js} +32 -33
- package/dist/{init-cmd-Z4O4PPLZ.js → init-cmd-IXDL2ZSL.js} +25 -23
- package/dist/{init-update-7DVAKWW3.js → init-update-YB3PODDH.js} +69 -24
- package/dist/{install-4SEFIIW2.js → install-CZUIW2AF.js} +5 -4
- package/dist/{install-cmd-QDOTR4OM.js → install-cmd-Q7RJGFUO.js} +6 -5
- package/dist/{login-browser-DX35MARZ.js → login-browser-BN5UKPHS.js} +3 -3
- package/dist/{logout-cmd-5V5MMBSY.js → logout-cmd-RZFWTNYD.js} +2 -2
- package/dist/{logs-AMLKC3VP.js → logs-RJPYTVQE.js} +3 -2
- package/dist/loop-ZDW6TRAA.js +75 -0
- package/dist/machine-JCOHLASP.js +47 -0
- package/dist/{mcp-install-cmd-GGWB3JJ2.js → mcp-install-cmd-GD4QUP7Z.js} +2 -2
- package/dist/{mcp-serve-cmd-N3UTY6EE.js → mcp-serve-cmd-IULQPVHL.js} +6 -5
- package/dist/{paths-7XP63OAX.js → paths-N3LU4O2Z.js} +3 -2
- package/dist/pending-GRCV3ZR4.js +9 -0
- package/dist/{pidfile-3DM4OBKO.js → pidfile-IF3TCL5A.js} +4 -3
- package/dist/receive-files-T2BIUBQL.js +254 -0
- package/dist/{record-3WP6V2K5.js → record-73PQE77B.js} +4 -3
- package/dist/relay-PSZ4LGMW.js +210 -0
- package/dist/relay-protocol-K7KP2SPI.js +6 -0
- package/dist/{runner-env-FRZFFHDF.js → runner-env-LDOBJESN.js} +6 -5
- package/dist/runner-identity-RWCBTY2A.js +14 -0
- package/dist/{runner-key-5FOWCW7J.js → runner-key-HMYLP6WN.js} +32 -33
- package/dist/{session-sender-U2BBUWNO.js → session-sender-2G25JYHI.js} +20 -19
- package/dist/{spec-cmd-FVLJOFGC.js → spec-cmd-LBVXM6XS.js} +13 -12
- package/dist/{starter-pack-6LQVLBIA.js → starter-pack-5EQYGSJF.js} +2 -2
- package/dist/{status-BINH7MBG.js → status-QZB2GWXJ.js} +36 -38
- package/dist/{statusline-fast-KN3BX67H.js → statusline-fast-2OK3DVAA.js} +2 -2
- package/dist/{sync-cmd-VXOUFS4I.js → sync-cmd-TQQIR4PN.js} +19 -18
- package/dist/{watch-OH645CV2.js → watch-4JES4PCS.js} +19 -18
- package/dist/{work-claim-cmd-ZRPSHMPT.js → work-claim-cmd-XG6O7B63.js} +17 -16
- package/dist/{work-cmd-5I3J2XQQ.js → work-cmd-L6WMPAA2.js} +13 -12
- package/dist/{work-comment-cmd-UCCPWUSR.js → work-comment-cmd-SNTDCPGH.js} +13 -12
- package/dist/{work-logs-cmd-7352CJPG.js → work-logs-cmd-3S7IAVII.js} +13 -12
- package/dist/{work-open-pr-cmd-LSH4VHJM.js → work-open-pr-cmd-E3WMO5XT.js} +15 -14
- package/dist/{work-pr-cmd-H4OQR26N.js → work-pr-cmd-22T6FG4T.js} +14 -13
- package/dist/work-stop-cmd-WR7ESS4Z.js +53 -0
- package/package.json +2 -2
- package/skill-pack/maintained/outerlayer-build/SKILL.md +347 -0
- package/skill-pack/{template/build → maintained/outerlayer-build}/references/evidence.md +2 -2
- package/skill-pack/{template/build → maintained/outerlayer-build}/references/release.md +4 -4
- package/skill-pack/{template/build → maintained/outerlayer-build}/references/review-loop.md +3 -1
- package/skill-pack/shipped.json +2 -0
- package/skill-pack/template/build/SKILL.md +4 -253
- package/skill-pack/validators/acceptance-criteria.yaml +1 -1
- package/dist/build-TQ6X5PYN.js +0 -12
- package/dist/chunk-3UZTIRLF.js +0 -320
- package/dist/chunk-CX22S5BA.js +0 -45
- package/dist/chunk-LLM3I5YU.js +0 -89
- package/dist/chunk-SADUQSO4.js +0 -50
- package/dist/chunk-VMJPFQNE.js +0 -261
- package/dist/claude-launcher-J5M44PFS.js +0 -115
- package/dist/host-key-U4B5QETR.js +0 -8
- package/dist/init-XG47KCI4.js +0 -53
- package/dist/loop-TPUYUMSY.js +0 -77
- package/dist/machine-TRHBT5NE.js +0 -48
- package/dist/pending-532ABZYC.js +0 -8
- package/dist/relay-L76HDX72.js +0 -46
- package/dist/{chunk-YVZJ6GKF.js → chunk-DIB2WLBL.js} +1 -1
- package/dist/{chunk-GOSFARMS.js → chunk-F35VMF5M.js} +1 -1
- package/dist/{chunk-DSF2FWAZ.js → chunk-IZSVXRDR.js} +1 -1
- /package/skill-pack/{template/build → maintained/outerlayer-build}/references/agent-briefs.md +0 -0
- /package/skill-pack/{template/build → maintained/outerlayer-build}/references/criteria-judge.md +0 -0
- /package/skill-pack/{template/build → maintained/outerlayer-build}/references/review-briefs.md +0 -0
- /package/skill-pack/{template/build → maintained/outerlayer-build}/scripts/criterion-citations.mjs +0 -0
- /package/skill-pack/{template/build → maintained/outerlayer-build}/scripts/record-criteria.mjs +0 -0
package/dist/chunk-LLM3I5YU.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
import { rewriteControlPlanePaths, rewriteHookCommand } from './chunk-G2YNJIGF.js';
|
|
4
|
-
import { MAINTAINED_SKILLS } from './chunk-NNLA7LLQ.js';
|
|
5
|
-
import { existsSync, mkdirSync, copyFileSync, writeFileSync, readdirSync, lstatSync, readFileSync } from 'fs';
|
|
6
|
-
import { join, dirname } from 'path';
|
|
7
|
-
|
|
8
|
-
createRequire(import.meta.url);
|
|
9
|
-
function deliverySection(dir) {
|
|
10
|
-
return `This repository's control plane is not in the checkout. Its files are in \`${dir}\`. When an instruction or skill names a path under \`.outerlayer/\` or \`.claude/\`, read it under \`${dir}\`.`;
|
|
11
|
-
}
|
|
12
|
-
function isFile(path) {
|
|
13
|
-
try {
|
|
14
|
-
return lstatSync(path).isFile();
|
|
15
|
-
} catch {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function filesUnder(dir, base = dir) {
|
|
20
|
-
if (!existsSync(dir) || !lstatSync(dir).isDirectory()) return [];
|
|
21
|
-
const out = [];
|
|
22
|
-
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
23
|
-
const abs = join(dir, entry.name);
|
|
24
|
-
if (entry.isDirectory()) out.push(...filesUnder(abs, base));
|
|
25
|
-
else if (entry.isFile()) out.push(abs.slice(base.length + 1));
|
|
26
|
-
}
|
|
27
|
-
return out.sort();
|
|
28
|
-
}
|
|
29
|
-
function readText(path) {
|
|
30
|
-
if (!isFile(path)) return void 0;
|
|
31
|
-
const content = readFileSync(path);
|
|
32
|
-
return content.includes(0) ? void 0 : content.toString("utf8");
|
|
33
|
-
}
|
|
34
|
-
function deliveredSettings(raw, dir) {
|
|
35
|
-
if (raw === void 0) return "{}\n";
|
|
36
|
-
const rewrite = (value) => {
|
|
37
|
-
if (typeof value === "string") return rewriteHookCommand(value, dir);
|
|
38
|
-
if (Array.isArray(value)) return value.map(rewrite);
|
|
39
|
-
if (typeof value === "object" && value !== null) return Object.fromEntries(Object.entries(value).map(([key, inner]) => [key, rewrite(inner)]));
|
|
40
|
-
return value;
|
|
41
|
-
};
|
|
42
|
-
try {
|
|
43
|
-
return `${JSON.stringify(rewrite(JSON.parse(raw)), null, 2)}
|
|
44
|
-
`;
|
|
45
|
-
} catch {
|
|
46
|
-
return rewriteHookCommand(raw, dir);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function composeDelivery(input) {
|
|
50
|
-
const { tree, dir } = input;
|
|
51
|
-
const added = [];
|
|
52
|
-
const put = (rel, content) => {
|
|
53
|
-
mkdirSync(dirname(join(tree, rel)), { recursive: true });
|
|
54
|
-
writeFileSync(join(tree, rel), content);
|
|
55
|
-
added.push(rel);
|
|
56
|
-
};
|
|
57
|
-
for (const skill of MAINTAINED_SKILLS) {
|
|
58
|
-
for (const rel of filesUnder(join(tree, ".outerlayer/skills", skill))) {
|
|
59
|
-
const target = `.claude/skills/${skill}/${rel}`;
|
|
60
|
-
if (existsSync(join(tree, target))) continue;
|
|
61
|
-
mkdirSync(dirname(join(tree, target)), { recursive: true });
|
|
62
|
-
copyFileSync(join(tree, ".outerlayer/skills", skill, rel), join(tree, target));
|
|
63
|
-
added.push(target);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
for (const rel of [...filesUnder(join(tree, ".claude/skills"), tree), ...filesUnder(join(tree, ".claude/agents"), tree)]) {
|
|
67
|
-
const text = readText(join(tree, rel));
|
|
68
|
-
if (text === void 0) continue;
|
|
69
|
-
const rewritten = rewriteControlPlanePaths(text, dir);
|
|
70
|
-
if (rewritten !== text) writeFileSync(join(tree, rel), rewritten);
|
|
71
|
-
}
|
|
72
|
-
const agents = readText(join(tree, "AGENTS.md"));
|
|
73
|
-
put("CLAUDE.md", agents === void 0 ? `${deliverySection(dir)}
|
|
74
|
-
` : `${deliverySection(dir)}
|
|
75
|
-
|
|
76
|
-
${rewriteControlPlanePaths(agents, dir)}`);
|
|
77
|
-
put("settings.json", deliveredSettings(readText(join(tree, ".claude/settings.json")), dir));
|
|
78
|
-
return added;
|
|
79
|
-
}
|
|
80
|
-
function sharedSkillNames(tree) {
|
|
81
|
-
const dir = join(tree, ".claude/skills");
|
|
82
|
-
if (!existsSync(dir)) return [];
|
|
83
|
-
return readdirSync(dir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => entry.name).sort();
|
|
84
|
-
}
|
|
85
|
-
function skillConflictMessage(input) {
|
|
86
|
-
return `.claude/skills/${input.skill} in ${input.repository} has the same name as the shared skill ${input.skill} from ${input.controlPlane}`;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export { composeDelivery, sharedSkillNames, skillConflictMessage };
|
package/dist/chunk-SADUQSO4.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-N2PXGQRL.js';
|
|
4
|
-
import { existsSync, readFileSync, mkdirSync, chmodSync, writeFileSync } from 'fs';
|
|
5
|
-
import { dirname, join } from 'path';
|
|
6
|
-
|
|
7
|
-
createRequire(import.meta.url);
|
|
8
|
-
var ITEM_KEY_FILE = "item-key";
|
|
9
|
-
function itemKeyPath(jobPath) {
|
|
10
|
-
return join(dirname(jobPath), ITEM_KEY_FILE);
|
|
11
|
-
}
|
|
12
|
-
function withItemKey(jobPath, job) {
|
|
13
|
-
let key;
|
|
14
|
-
try {
|
|
15
|
-
key = readFileSync(itemKeyPath(jobPath), "utf8").trim();
|
|
16
|
-
} catch {
|
|
17
|
-
return job;
|
|
18
|
-
}
|
|
19
|
-
return key === "" ? job : { ...job, itemKey: key };
|
|
20
|
-
}
|
|
21
|
-
function writeOwnerOnly(path, content) {
|
|
22
|
-
if (existsSync(path)) chmodSync(path, RUNNER_FILE_MODE);
|
|
23
|
-
writeFileSync(path, content, { mode: RUNNER_FILE_MODE });
|
|
24
|
-
}
|
|
25
|
-
function readJobFile(path) {
|
|
26
|
-
if (!existsSync(path)) return null;
|
|
27
|
-
try {
|
|
28
|
-
return withItemKey(path, JSON.parse(readFileSync(path, "utf8")));
|
|
29
|
-
} catch {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function readJobFileChecked(path) {
|
|
34
|
-
if (!existsSync(path)) return { kind: "missing" };
|
|
35
|
-
try {
|
|
36
|
-
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
37
|
-
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return { kind: "unreadable" };
|
|
38
|
-
return { kind: "ok", job: withItemKey(path, parsed) };
|
|
39
|
-
} catch {
|
|
40
|
-
return { kind: "unreadable" };
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function writeJobFile(path, job) {
|
|
44
|
-
mkdirSync(dirname(path), { recursive: true, mode: RUNNER_DIR_MODE });
|
|
45
|
-
const { itemKey, ...rest } = job;
|
|
46
|
-
if (itemKey !== void 0) writeOwnerOnly(itemKeyPath(path), itemKey);
|
|
47
|
-
writeOwnerOnly(path, JSON.stringify(rest, null, 2));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export { readJobFile, readJobFileChecked, writeJobFile };
|
package/dist/chunk-VMJPFQNE.js
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
import { trackImageBuild, isOutOfMemory, ensureBuilder } from './chunk-3UZTIRLF.js';
|
|
4
|
-
import { RecipeError } from './chunk-QOZKPLVJ.js';
|
|
5
|
-
import { spawn } from 'child_process';
|
|
6
|
-
import { existsSync, mkdirSync, createWriteStream, rmSync, readFileSync } from 'fs';
|
|
7
|
-
import { join, dirname } from 'path';
|
|
8
|
-
import { createRequire as createRequire$1 } from 'module';
|
|
9
|
-
import { fileURLToPath } from 'url';
|
|
10
|
-
|
|
11
|
-
createRequire(import.meta.url);
|
|
12
|
-
var PACKAGE = "@devcontainers/cli";
|
|
13
|
-
function buildRootFromDist(moduleDir = dirname(fileURLToPath(import.meta.url))) {
|
|
14
|
-
try {
|
|
15
|
-
const info = JSON.parse(readFileSync(join(moduleDir, "build-info.json"), "utf8"));
|
|
16
|
-
return typeof info.root === "string" ? info.root : void 0;
|
|
17
|
-
} catch {
|
|
18
|
-
return void 0;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function resolveDevcontainerCli(opts = {}) {
|
|
22
|
-
const resolve = opts.resolve ?? createRequire$1(import.meta.url).resolve;
|
|
23
|
-
try {
|
|
24
|
-
const bin = join(dirname(resolve(`${PACKAGE}/package.json`)), "devcontainer.js");
|
|
25
|
-
if (existsSync(bin)) return { command: process.execPath, args: [bin] };
|
|
26
|
-
} catch {
|
|
27
|
-
}
|
|
28
|
-
const buildRoot = opts.buildRoot ?? buildRootFromDist();
|
|
29
|
-
const fallback = buildRoot === void 0 ? void 0 : join(buildRoot, "node_modules", PACKAGE);
|
|
30
|
-
if (fallback !== void 0 && existsSync(join(fallback, "devcontainer.js"))) {
|
|
31
|
-
return { command: process.execPath, args: [join(fallback, "devcontainer.js")] };
|
|
32
|
-
}
|
|
33
|
-
throw new RecipeError(
|
|
34
|
-
"devcontainer_cli_missing",
|
|
35
|
-
`the devcontainer CLI is not installed: looked beside this package and in ${fallback ?? "the checkout this build came from (unknown)"}. Run yarn install in that checkout.`
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
function devcontainerBuildInvocation(cli, req) {
|
|
39
|
-
return {
|
|
40
|
-
command: cli.command,
|
|
41
|
-
args: [
|
|
42
|
-
...cli.args,
|
|
43
|
-
"build",
|
|
44
|
-
"--workspace-folder",
|
|
45
|
-
req.workspace,
|
|
46
|
-
"--config",
|
|
47
|
-
req.config,
|
|
48
|
-
"--image-name",
|
|
49
|
-
req.imageName,
|
|
50
|
-
...Object.entries(req.labels).flatMap(([key, value]) => ["--label", `${key}=${value}`]),
|
|
51
|
-
"--log-format",
|
|
52
|
-
"text",
|
|
53
|
-
// Written as an OCI layout instead of loaded into Docker: the runner's builder cannot read Docker's image store, so the next layer starts FROM the layout.
|
|
54
|
-
...req.layoutOut === void 0 ? [] : ["--output", `type=oci,dest=${req.layoutOut},tar=false`]
|
|
55
|
-
]
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// src/runner/image/docker.ts
|
|
60
|
-
var CHILD_ENVIRONMENT_NAMES = [
|
|
61
|
-
"PATH",
|
|
62
|
-
"HOME",
|
|
63
|
-
"USER",
|
|
64
|
-
"LOGNAME",
|
|
65
|
-
"TMPDIR",
|
|
66
|
-
"LANG",
|
|
67
|
-
"LC_ALL",
|
|
68
|
-
"DOCKER_HOST",
|
|
69
|
-
"DOCKER_CONFIG",
|
|
70
|
-
"DOCKER_CONTEXT",
|
|
71
|
-
"DOCKER_CERT_PATH",
|
|
72
|
-
"DOCKER_TLS_VERIFY",
|
|
73
|
-
"DOCKER_API_VERSION",
|
|
74
|
-
"DOCKER_BUILDKIT",
|
|
75
|
-
// `docker buildx build` fetches registry tokens in the client and hands them to the builder, so a host that reaches
|
|
76
|
-
// registries through a proxy needs it here as well as in the builder.
|
|
77
|
-
"HTTP_PROXY",
|
|
78
|
-
"HTTPS_PROXY",
|
|
79
|
-
"NO_PROXY",
|
|
80
|
-
"http_proxy",
|
|
81
|
-
"https_proxy",
|
|
82
|
-
"no_proxy",
|
|
83
|
-
"XDG_RUNTIME_DIR",
|
|
84
|
-
"XDG_CONFIG_HOME",
|
|
85
|
-
"XDG_DATA_HOME",
|
|
86
|
-
"XDG_CACHE_HOME",
|
|
87
|
-
"XDG_STATE_HOME"
|
|
88
|
-
];
|
|
89
|
-
function childEnvironment(base) {
|
|
90
|
-
const env = {};
|
|
91
|
-
for (const name of CHILD_ENVIRONMENT_NAMES) {
|
|
92
|
-
const value = base[name];
|
|
93
|
-
if (value !== void 0) env[name] = value;
|
|
94
|
-
}
|
|
95
|
-
return env;
|
|
96
|
-
}
|
|
97
|
-
var spawnRun = (command, args, opts = {}) => new Promise((resolve) => {
|
|
98
|
-
let log;
|
|
99
|
-
if (opts.logPath !== void 0) {
|
|
100
|
-
mkdirSync(dirname(opts.logPath), { recursive: true });
|
|
101
|
-
log = createWriteStream(opts.logPath, { flags: "a" });
|
|
102
|
-
}
|
|
103
|
-
let stdout = "";
|
|
104
|
-
let stderr = "";
|
|
105
|
-
let settled = false;
|
|
106
|
-
const finish = (status, extra = "") => {
|
|
107
|
-
if (settled) return;
|
|
108
|
-
settled = true;
|
|
109
|
-
const result = { status, stdout, stderr: stderr + extra };
|
|
110
|
-
if (log === void 0) {
|
|
111
|
-
resolve(result);
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (extra) log.write(extra);
|
|
115
|
-
log.end(() => resolve(result));
|
|
116
|
-
};
|
|
117
|
-
let timer;
|
|
118
|
-
const child = spawn(command, args, {
|
|
119
|
-
env: { ...childEnvironment(process.env), ...opts.env },
|
|
120
|
-
stdio: [opts.input === void 0 ? "ignore" : "pipe", "pipe", "pipe"]
|
|
121
|
-
});
|
|
122
|
-
child.stdout.on("data", (chunk) => {
|
|
123
|
-
stdout += chunk.toString();
|
|
124
|
-
log?.write(chunk);
|
|
125
|
-
});
|
|
126
|
-
child.stderr.on("data", (chunk) => {
|
|
127
|
-
stderr += chunk.toString();
|
|
128
|
-
log?.write(chunk);
|
|
129
|
-
});
|
|
130
|
-
if (opts.timeoutMs !== void 0) {
|
|
131
|
-
timer = setTimeout(() => {
|
|
132
|
-
child.kill("SIGKILL");
|
|
133
|
-
finish(124, `${command}: no answer within ${Math.round(opts.timeoutMs / 1e3)}s
|
|
134
|
-
`);
|
|
135
|
-
}, opts.timeoutMs);
|
|
136
|
-
timer.unref();
|
|
137
|
-
}
|
|
138
|
-
child.on("error", (err) => finish(127, `${command}: ${err.message}
|
|
139
|
-
`));
|
|
140
|
-
child.on("close", (code, signal) => {
|
|
141
|
-
if (timer !== void 0) clearTimeout(timer);
|
|
142
|
-
finish(code ?? (signal ? 128 : 1));
|
|
143
|
-
});
|
|
144
|
-
if (opts.input !== void 0) {
|
|
145
|
-
child.stdin.on("error", () => void 0);
|
|
146
|
-
child.stdin.end(opts.input);
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
function toInfo(row) {
|
|
150
|
-
return { id: row.Id, createdAt: row.Created, labels: row.Config?.Labels ?? {} };
|
|
151
|
-
}
|
|
152
|
-
var lines = (text) => [...new Set(text.split("\n").map((l) => l.trim()).filter(Boolean))];
|
|
153
|
-
function layoutDigest(layout) {
|
|
154
|
-
const index = JSON.parse(readFileSync(join(layout, "index.json"), "utf8"));
|
|
155
|
-
const digest = index.manifests?.[0]?.digest;
|
|
156
|
-
if (digest === void 0) throw new Error(`${join(layout, "index.json")} lists no image`);
|
|
157
|
-
return digest;
|
|
158
|
-
}
|
|
159
|
-
function outOfMemory(builder, logPath) {
|
|
160
|
-
return new RecipeError(
|
|
161
|
-
"image_build_out_of_memory",
|
|
162
|
-
`the image build ran out of memory: the kernel stopped a build step at the limit of runner.build.memory (${builder.memory}). Raise runner.build.memory, or lower what the recipe's build steps use; the build log is at ${logPath}`,
|
|
163
|
-
logPath
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
function createDockerHost(deps = {}) {
|
|
167
|
-
const run = deps.run ?? spawnRun;
|
|
168
|
-
const cli = deps.cli ?? resolveDevcontainerCli;
|
|
169
|
-
const builderFor = () => {
|
|
170
|
-
if (deps.builder === void 0) {
|
|
171
|
-
throw new Error("no image builder is configured, so the image build was not started: every image build runs in the runner's builder, which carries runner.build.memory");
|
|
172
|
-
}
|
|
173
|
-
return deps.builder;
|
|
174
|
-
};
|
|
175
|
-
const inspectMany = async (refs) => {
|
|
176
|
-
const result = await run("docker", ["image", "inspect", ...refs]);
|
|
177
|
-
return result.status === 0 ? JSON.parse(result.stdout).map(toInfo) : [];
|
|
178
|
-
};
|
|
179
|
-
return {
|
|
180
|
-
async inspect(ref) {
|
|
181
|
-
return (await inspectMany([ref]))[0] ?? null;
|
|
182
|
-
},
|
|
183
|
-
async list(repository) {
|
|
184
|
-
const ids = await run("docker", [
|
|
185
|
-
"image",
|
|
186
|
-
"ls",
|
|
187
|
-
"--all",
|
|
188
|
-
"--no-trunc",
|
|
189
|
-
"--quiet",
|
|
190
|
-
"--filter",
|
|
191
|
-
`label=ai.outerlayer.repository=${repository}`
|
|
192
|
-
]);
|
|
193
|
-
const found = lines(ids.stdout);
|
|
194
|
-
return found.length === 0 ? [] : inspectMany(found);
|
|
195
|
-
},
|
|
196
|
-
async inUse() {
|
|
197
|
-
const containers = lines((await run("docker", ["ps", "--all", "--no-trunc", "--quiet"])).stdout);
|
|
198
|
-
if (containers.length === 0) return [];
|
|
199
|
-
return lines((await run("docker", ["inspect", "--format", "{{.Image}}", ...containers])).stdout);
|
|
200
|
-
},
|
|
201
|
-
async ensureBuilder() {
|
|
202
|
-
const builder = builderFor();
|
|
203
|
-
const result = await ensureBuilder(run, builder, { waitForIdle: true, replaceStale: deps.replaceStaleBuilder });
|
|
204
|
-
if (!result.ok) throw new RecipeError("image_builder_unavailable", `the image builder is unavailable: ${result.problem}`);
|
|
205
|
-
return { name: builder.name, memory: builder.memory };
|
|
206
|
-
},
|
|
207
|
-
async exportLayout(ref, dir) {
|
|
208
|
-
rmSync(dir, { recursive: true, force: true });
|
|
209
|
-
mkdirSync(dir, { recursive: true });
|
|
210
|
-
const archive = join(dir, ".image.tar");
|
|
211
|
-
const saved = await run("docker", ["save", "--output", archive, ref]);
|
|
212
|
-
if (saved.status !== 0) throw new Error(saved.stderr.trim() || `docker save ${ref} exited ${saved.status}`);
|
|
213
|
-
const unpacked = await run("tar", ["-xf", archive, "-C", dir]);
|
|
214
|
-
rmSync(archive, { force: true });
|
|
215
|
-
if (unpacked.status !== 0) throw new Error(unpacked.stderr.trim() || `tar exited ${unpacked.status}`);
|
|
216
|
-
},
|
|
217
|
-
async buildDockerfile(req) {
|
|
218
|
-
const builder = builderFor();
|
|
219
|
-
if (req.layoutOut !== void 0) {
|
|
220
|
-
rmSync(req.layoutOut, { recursive: true, force: true });
|
|
221
|
-
}
|
|
222
|
-
const labels = Object.entries(req.labels).flatMap(([key, value]) => ["--label", `${key}=${value}`]);
|
|
223
|
-
const args = [
|
|
224
|
-
"buildx",
|
|
225
|
-
"build",
|
|
226
|
-
"--builder",
|
|
227
|
-
builder.name,
|
|
228
|
-
"--load",
|
|
229
|
-
...req.layoutOut === void 0 ? [] : ["--output", `type=oci,dest=${req.layoutOut},tar=false`],
|
|
230
|
-
...req.base === void 0 ? [] : ["--build-context", `${req.base.ref}=oci-layout://${req.base.layout}@${layoutDigest(req.base.layout)}`],
|
|
231
|
-
"--tag",
|
|
232
|
-
req.tag,
|
|
233
|
-
...labels,
|
|
234
|
-
"--file",
|
|
235
|
-
"-",
|
|
236
|
-
req.context
|
|
237
|
-
];
|
|
238
|
-
const result = await trackImageBuild(() => run("docker", args, { logPath: req.logPath, input: req.dockerfile }));
|
|
239
|
-
if (result.status !== 0 && isOutOfMemory(`${result.stdout}
|
|
240
|
-
${result.stderr}`)) throw outOfMemory(builder, req.logPath);
|
|
241
|
-
return result.status;
|
|
242
|
-
},
|
|
243
|
-
async devcontainerBuild(req) {
|
|
244
|
-
const builder = builderFor();
|
|
245
|
-
const { command, args } = devcontainerBuildInvocation(cli(), req);
|
|
246
|
-
if (req.layoutOut !== void 0) {
|
|
247
|
-
rmSync(req.layoutOut, { recursive: true, force: true });
|
|
248
|
-
}
|
|
249
|
-
const result = await trackImageBuild(() => run(command, args, { logPath: req.logPath, env: { BUILDX_BUILDER: builder.name } }));
|
|
250
|
-
if (result.status !== 0 && isOutOfMemory(`${result.stdout}
|
|
251
|
-
${result.stderr}`)) throw outOfMemory(builder, req.logPath);
|
|
252
|
-
return result.status;
|
|
253
|
-
},
|
|
254
|
-
async remove(id) {
|
|
255
|
-
const result = await run("docker", ["rmi", id]);
|
|
256
|
-
if (result.status !== 0) throw new Error(result.stderr.trim() || `docker rmi ${id} exited ${result.status}`);
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
export { childEnvironment, createDockerHost, resolveDevcontainerCli, spawnRun };
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
import { versionAtLeast, MINIMUM_CLAUDE_VERSION, SHIM_SCRIPT, CONTROL_PLANE_DIR_VARIABLE } from './chunk-G2YNJIGF.js';
|
|
4
|
-
export { MINIMUM_CLAUDE_VERSION } from './chunk-G2YNJIGF.js';
|
|
5
|
-
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
6
|
-
import './chunk-Z5GEFMRW.js';
|
|
7
|
-
import { spawnSync, execFileSync, spawn } from 'child_process';
|
|
8
|
-
import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
|
|
9
|
-
import { join, delimiter, isAbsolute, resolve } from 'path';
|
|
10
|
-
|
|
11
|
-
createRequire(import.meta.url);
|
|
12
|
-
function readDeliveryRecord(cwd) {
|
|
13
|
-
let common;
|
|
14
|
-
try {
|
|
15
|
-
common = execFileSync("git", ["rev-parse", "--git-common-dir"], { cwd, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], timeout: 5e3 }).trim();
|
|
16
|
-
} catch {
|
|
17
|
-
return { kind: "none" };
|
|
18
|
-
}
|
|
19
|
-
const path = join(isAbsolute(common) ? common : resolve(cwd, common), "outerlayer", "delivery.json");
|
|
20
|
-
if (!existsSync(path)) return { kind: "none" };
|
|
21
|
-
try {
|
|
22
|
-
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
23
|
-
if (typeof parsed.dir === "string" && isAbsolute(parsed.dir) && typeof parsed.repository === "string" && typeof parsed.sha === "string") {
|
|
24
|
-
return { kind: "found", record: { repository: parsed.repository, sha: parsed.sha, dir: parsed.dir, launcher: parsed.launcher === true } };
|
|
25
|
-
}
|
|
26
|
-
} catch {
|
|
27
|
-
}
|
|
28
|
-
return { kind: "invalid", path };
|
|
29
|
-
}
|
|
30
|
-
function findClaude(path) {
|
|
31
|
-
for (const entry of (path ?? "").split(delimiter)) {
|
|
32
|
-
if (entry === "") continue;
|
|
33
|
-
const candidate = join(entry, "claude");
|
|
34
|
-
try {
|
|
35
|
-
accessSync(candidate, constants.X_OK);
|
|
36
|
-
if (statSync(candidate).size === Buffer.byteLength(SHIM_SCRIPT) && readFileSync(candidate, "utf8") === SHIM_SCRIPT) continue;
|
|
37
|
-
} catch {
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
return candidate;
|
|
41
|
-
}
|
|
42
|
-
return void 0;
|
|
43
|
-
}
|
|
44
|
-
var SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
45
|
-
var SIGNAL_NUMBERS = { SIGHUP: 1, SIGINT: 2, SIGTERM: 15 };
|
|
46
|
-
function run(program, argv, env, cwd, stderr) {
|
|
47
|
-
return new Promise((done) => {
|
|
48
|
-
const child = spawn(program, argv, { cwd, env, stdio: "inherit" });
|
|
49
|
-
const forward = (signal) => () => {
|
|
50
|
-
child.kill(signal);
|
|
51
|
-
};
|
|
52
|
-
const handlers = SIGNALS.map((signal) => [signal, forward(signal)]);
|
|
53
|
-
for (const [signal, handler] of handlers) process.on(signal, handler);
|
|
54
|
-
const finish = (code) => {
|
|
55
|
-
for (const [signal, handler] of handlers) process.off(signal, handler);
|
|
56
|
-
done(code);
|
|
57
|
-
};
|
|
58
|
-
child.on("error", (err) => {
|
|
59
|
-
stderr(`outerlayer claude: could not start ${program}: ${err.message}
|
|
60
|
-
`);
|
|
61
|
-
finish(127);
|
|
62
|
-
});
|
|
63
|
-
child.on("exit", (code, signal) => finish(code ?? 128 + (signal === null ? 0 : SIGNAL_NUMBERS[signal] ?? 0)));
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
async function runClaudeLauncher(args, deps = {}) {
|
|
67
|
-
const cwd = deps.cwd ?? process.cwd();
|
|
68
|
-
const env = deps.env ?? process.env;
|
|
69
|
-
const stderr = deps.stderr ?? ((text) => void process.stderr.write(text));
|
|
70
|
-
const claude = findClaude(env.PATH);
|
|
71
|
-
if (claude === void 0) {
|
|
72
|
-
stderr("outerlayer claude: no claude program found on PATH\n");
|
|
73
|
-
return 127;
|
|
74
|
-
}
|
|
75
|
-
const found = readDeliveryRecord(cwd);
|
|
76
|
-
const build = found.kind === "found" && found.record.launcher !== true ? found.record : void 0;
|
|
77
|
-
if (found.kind === "invalid" && env.OUTERLAYER_JOB_DIR !== void 0) {
|
|
78
|
-
stderr(`outerlayer claude: ${found.path} is not a readable delivery record, so the control plane cannot be attached
|
|
79
|
-
`);
|
|
80
|
-
return 1;
|
|
81
|
-
}
|
|
82
|
-
let dir;
|
|
83
|
-
if (build !== void 0) {
|
|
84
|
-
dir = build.dir;
|
|
85
|
-
if (!existsSync(dir)) {
|
|
86
|
-
stderr(`outerlayer claude: the control plane of ${build.repository} is not at ${dir}, so it cannot be attached
|
|
87
|
-
`);
|
|
88
|
-
return 1;
|
|
89
|
-
}
|
|
90
|
-
} else {
|
|
91
|
-
const { resolveLaunchPlane } = await import('./control-plane-launch-34LNRJWR.js');
|
|
92
|
-
const plane = await resolveLaunchPlane({ cwd, env, home: homeFromEnv(env), fetchImpl: deps.fetchImpl, stderr });
|
|
93
|
-
if (plane.kind === "none") return run(claude, args, env, cwd, stderr);
|
|
94
|
-
if (plane.kind === "refused") {
|
|
95
|
-
stderr(plane.message);
|
|
96
|
-
return 1;
|
|
97
|
-
}
|
|
98
|
-
dir = plane.dir;
|
|
99
|
-
}
|
|
100
|
-
const reported = spawnSync(claude, ["--version"], { env, encoding: "utf8", timeout: 15e3, stdio: ["ignore", "pipe", "ignore"] }).stdout ?? "";
|
|
101
|
-
if (/\d+\.\d+\.\d+/.test(reported) && !versionAtLeast(reported)) {
|
|
102
|
-
stderr(`outerlayer claude: Claude Code ${reported.trim().split(/\s+/)[0]} is older than ${MINIMUM_CLAUDE_VERSION}, the oldest version known to load a control plane's instructions for subagents; the minimum version is ${MINIMUM_CLAUDE_VERSION}
|
|
103
|
-
`);
|
|
104
|
-
return 1;
|
|
105
|
-
}
|
|
106
|
-
return run(
|
|
107
|
-
claude,
|
|
108
|
-
["--add-dir", dir, "--settings", join(dir, "settings.json"), ...args],
|
|
109
|
-
{ ...env, CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD: "1", [CONTROL_PLANE_DIR_VARIABLE]: dir },
|
|
110
|
-
cwd,
|
|
111
|
-
stderr
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export { runClaudeLauncher };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
export { ensureHostKey, loadHostKey, signerFor } from './chunk-M2ZWWTWZ.js';
|
|
4
|
-
import './chunk-N2PXGQRL.js';
|
|
5
|
-
import './chunk-BQXFBI7T.js';
|
|
6
|
-
import './chunk-Z5GEFMRW.js';
|
|
7
|
-
|
|
8
|
-
createRequire(import.meta.url);
|
package/dist/init-XG47KCI4.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-PIZRPNKR.js';
|
|
4
|
-
import './chunk-7YP7T6GV.js';
|
|
5
|
-
import './chunk-LW7G5TJB.js';
|
|
6
|
-
import './chunk-3ZR7Y23Y.js';
|
|
7
|
-
import './chunk-OGFGZQA3.js';
|
|
8
|
-
import './chunk-VMJPFQNE.js';
|
|
9
|
-
import './chunk-3UZTIRLF.js';
|
|
10
|
-
import './chunk-GGOMT6KF.js';
|
|
11
|
-
import './chunk-X5H2WYMB.js';
|
|
12
|
-
import './chunk-XZ4H4X5F.js';
|
|
13
|
-
import './chunk-QEFKA2QD.js';
|
|
14
|
-
import './chunk-6MZSX4M7.js';
|
|
15
|
-
import './chunk-FBTGMSQF.js';
|
|
16
|
-
import './chunk-IF2OSI5T.js';
|
|
17
|
-
import './chunk-CG36IONK.js';
|
|
18
|
-
import './chunk-G3IJ3N6F.js';
|
|
19
|
-
import './chunk-BM63HB2M.js';
|
|
20
|
-
import './chunk-P53VEAOF.js';
|
|
21
|
-
import './chunk-UXYLWVTQ.js';
|
|
22
|
-
import './chunk-7RQ73DLO.js';
|
|
23
|
-
import './chunk-3CWUOFV6.js';
|
|
24
|
-
import './chunk-QOZKPLVJ.js';
|
|
25
|
-
import './chunk-CX22S5BA.js';
|
|
26
|
-
import './chunk-ECODQ7II.js';
|
|
27
|
-
import './chunk-JBJTC3UU.js';
|
|
28
|
-
import './chunk-QNLX477Q.js';
|
|
29
|
-
import './chunk-GOSFARMS.js';
|
|
30
|
-
import './chunk-ANPNT6PM.js';
|
|
31
|
-
import './chunk-WZBHBH3J.js';
|
|
32
|
-
import './chunk-LLM3I5YU.js';
|
|
33
|
-
import './chunk-EAEELQVQ.js';
|
|
34
|
-
import './chunk-7UWVLZXD.js';
|
|
35
|
-
import './chunk-FVMYKL6L.js';
|
|
36
|
-
import './chunk-NTRCK4NH.js';
|
|
37
|
-
import './chunk-ZJSNLVCE.js';
|
|
38
|
-
import './chunk-BJ3KTMDH.js';
|
|
39
|
-
import './chunk-G2YNJIGF.js';
|
|
40
|
-
import './chunk-NNLA7LLQ.js';
|
|
41
|
-
import './chunk-EABW6AJQ.js';
|
|
42
|
-
import './chunk-CRB3POP4.js';
|
|
43
|
-
import './chunk-YQR6E6OV.js';
|
|
44
|
-
import './chunk-WFSUUUAN.js';
|
|
45
|
-
import './chunk-7VUK5RFS.js';
|
|
46
|
-
import './chunk-VNVZDWO3.js';
|
|
47
|
-
import './chunk-RA3O54FC.js';
|
|
48
|
-
import './chunk-M2ZWWTWZ.js';
|
|
49
|
-
import './chunk-N2PXGQRL.js';
|
|
50
|
-
import './chunk-BQXFBI7T.js';
|
|
51
|
-
import './chunk-Z5GEFMRW.js';
|
|
52
|
-
|
|
53
|
-
createRequire(import.meta.url);
|
package/dist/loop-TPUYUMSY.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-F2KXHIFI.js';
|
|
4
|
-
import './chunk-B6SCN5NY.js';
|
|
5
|
-
import './chunk-MTP2QEVO.js';
|
|
6
|
-
import './chunk-S5PCA3SN.js';
|
|
7
|
-
import './chunk-3JVYMD4G.js';
|
|
8
|
-
import './chunk-YETTWTAY.js';
|
|
9
|
-
import './chunk-SADUQSO4.js';
|
|
10
|
-
import './chunk-I2UOAV7X.js';
|
|
11
|
-
import './chunk-BWSUPRDK.js';
|
|
12
|
-
import './chunk-JHGEBPLE.js';
|
|
13
|
-
import './chunk-XNGMQ27R.js';
|
|
14
|
-
import './chunk-R22NZSGA.js';
|
|
15
|
-
import './chunk-KYS3TQAG.js';
|
|
16
|
-
import './chunk-ESVW4MJY.js';
|
|
17
|
-
import './chunk-GEMQLBMW.js';
|
|
18
|
-
import './chunk-YYYRBYWG.js';
|
|
19
|
-
import './chunk-AMFWYESY.js';
|
|
20
|
-
import './chunk-TBT347UY.js';
|
|
21
|
-
import './chunk-PIZRPNKR.js';
|
|
22
|
-
import './chunk-7YP7T6GV.js';
|
|
23
|
-
import './chunk-LW7G5TJB.js';
|
|
24
|
-
import './chunk-3ZR7Y23Y.js';
|
|
25
|
-
import './chunk-OGFGZQA3.js';
|
|
26
|
-
import './chunk-VMJPFQNE.js';
|
|
27
|
-
import './chunk-3UZTIRLF.js';
|
|
28
|
-
import './chunk-GGOMT6KF.js';
|
|
29
|
-
import './chunk-X5H2WYMB.js';
|
|
30
|
-
import './chunk-XZ4H4X5F.js';
|
|
31
|
-
import './chunk-QEFKA2QD.js';
|
|
32
|
-
import './chunk-6MZSX4M7.js';
|
|
33
|
-
import './chunk-FBTGMSQF.js';
|
|
34
|
-
import './chunk-IF2OSI5T.js';
|
|
35
|
-
import './chunk-CG36IONK.js';
|
|
36
|
-
import './chunk-G3IJ3N6F.js';
|
|
37
|
-
import './chunk-BM63HB2M.js';
|
|
38
|
-
import './chunk-P53VEAOF.js';
|
|
39
|
-
import './chunk-UXYLWVTQ.js';
|
|
40
|
-
import './chunk-7RQ73DLO.js';
|
|
41
|
-
import './chunk-3CWUOFV6.js';
|
|
42
|
-
import './chunk-QOZKPLVJ.js';
|
|
43
|
-
import './chunk-CX22S5BA.js';
|
|
44
|
-
import './chunk-ECODQ7II.js';
|
|
45
|
-
import './chunk-JBJTC3UU.js';
|
|
46
|
-
import './chunk-PSN33ERW.js';
|
|
47
|
-
import './chunk-F7CU5ABH.js';
|
|
48
|
-
import './chunk-BKO6JEZI.js';
|
|
49
|
-
import './chunk-QNLX477Q.js';
|
|
50
|
-
import './chunk-GOSFARMS.js';
|
|
51
|
-
import './chunk-ANPNT6PM.js';
|
|
52
|
-
import './chunk-T2Q7ISPE.js';
|
|
53
|
-
import './chunk-WZBHBH3J.js';
|
|
54
|
-
import './chunk-5QRP3MVS.js';
|
|
55
|
-
import './chunk-LLM3I5YU.js';
|
|
56
|
-
import './chunk-EAEELQVQ.js';
|
|
57
|
-
import './chunk-7UWVLZXD.js';
|
|
58
|
-
import './chunk-FVMYKL6L.js';
|
|
59
|
-
import './chunk-NTRCK4NH.js';
|
|
60
|
-
import './chunk-ZJSNLVCE.js';
|
|
61
|
-
import './chunk-BJ3KTMDH.js';
|
|
62
|
-
import './chunk-G2YNJIGF.js';
|
|
63
|
-
import './chunk-NNLA7LLQ.js';
|
|
64
|
-
import './chunk-EABW6AJQ.js';
|
|
65
|
-
import './chunk-CRB3POP4.js';
|
|
66
|
-
import './chunk-YQR6E6OV.js';
|
|
67
|
-
import './chunk-TUSYOL2O.js';
|
|
68
|
-
import './chunk-WFSUUUAN.js';
|
|
69
|
-
import './chunk-7VUK5RFS.js';
|
|
70
|
-
import './chunk-VNVZDWO3.js';
|
|
71
|
-
import './chunk-RA3O54FC.js';
|
|
72
|
-
import './chunk-M2ZWWTWZ.js';
|
|
73
|
-
import './chunk-N2PXGQRL.js';
|
|
74
|
-
import './chunk-BQXFBI7T.js';
|
|
75
|
-
import './chunk-Z5GEFMRW.js';
|
|
76
|
-
|
|
77
|
-
createRequire(import.meta.url);
|