@outerlayer/cli 0.20.0 → 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 +26 -0
- package/README.md +15 -5
- 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-BR5D27CX.js → check-3YHMJQ3P.js} +48 -50
- package/dist/{chunk-AD3EYI7P.js → chunk-22DYXLU7.js} +259 -56
- 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-ZX4I2MEK.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-MKF7TU7X.js → cli-NMGVZQPB.js} +161 -120
- 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-UNMWHOUY.js → emit-criteria-cmd-MQZE7W4Y.js} +13 -12
- 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-DRQCHCOK.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-CRDHXQVW.js → work-stop-cmd-WR7ESS4Z.js} +13 -12
- 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-EAZQMAE2.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
|
@@ -223,4 +223,43 @@ function writeSanitizedRecipe(checkoutDir, location, recipe) {
|
|
|
223
223
|
}
|
|
224
224
|
var SANITIZED_NAME = "outerlayer-recipe.json";
|
|
225
225
|
|
|
226
|
-
|
|
226
|
+
// src/runner/image/pins.ts
|
|
227
|
+
var CLAUDE_CODE_VERSION = "2.1.284";
|
|
228
|
+
var DEFAULT_BASE_IMAGE = "ubuntu:24.04@sha256:008173c23f95b170204355c12626cb5a965d779a7e1283b09e9cffbb1bf33ca3";
|
|
229
|
+
var NODE_IMAGE = "node:22-bookworm-slim@sha256:43ac6c60b8f89723f746e8a92ce91abd5017e627ce1ddfe4238355d3a30b772c";
|
|
230
|
+
var BUILDKIT_IMAGE = "moby/buildkit:v0.33.1@sha256:cec9f139f45e93c5c69c60f8b07cfad9f43f4ef6b6a6cd917527fea5ff2e3dea";
|
|
231
|
+
var GH_VERSION = "2.101.0";
|
|
232
|
+
var GH_SHA256 = {
|
|
233
|
+
amd64: "9bca2d1c16825f109907a23307628a2f0698fbf99662b73a5cf0b020293072b8",
|
|
234
|
+
arm64: "b57e8063f18862647c9d22727c32e9da1b963f8bf9db648fe123a6975695640f"
|
|
235
|
+
};
|
|
236
|
+
var TINI_VERSION = "0.19.0";
|
|
237
|
+
var TINI_SHA256 = {
|
|
238
|
+
amd64: "c5b0666b4cb676901f90dfcb37106783c5fe2077b04590973b885950611b30ee",
|
|
239
|
+
arm64: "eae1d3aa50c48fb23b8cbdf4e369d0910dfc538566bfd09df89a774aa84a48b9"
|
|
240
|
+
};
|
|
241
|
+
var MICROVM_ARCHES = ["x86_64"];
|
|
242
|
+
function firecrackerArch(nodeArch) {
|
|
243
|
+
return nodeArch === "x64" ? "x86_64" : nodeArch === "arm64" ? "aarch64" : nodeArch;
|
|
244
|
+
}
|
|
245
|
+
var FIRECRACKER_VERSION = "1.13.1";
|
|
246
|
+
var FIRECRACKER_SHA256 = {
|
|
247
|
+
x86_64: "59450b9171ff2ebdf2f9a25be3a248a7ba79fb6371aec51a9d6d8eefca7b4faf"
|
|
248
|
+
};
|
|
249
|
+
var FIRECRACKER_BINARY_SHA256 = {
|
|
250
|
+
x86_64: "7d3924e0c8761edafbf85cb2a94c268ffad249644a40fd02d4e15cde4c206f6e"
|
|
251
|
+
};
|
|
252
|
+
var GUEST_ASSETS_VERSION = "1";
|
|
253
|
+
var GUEST_ASSETS_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${GUEST_ASSETS_VERSION}`;
|
|
254
|
+
var GUEST_KERNEL_SHA256 = {
|
|
255
|
+
x86_64: "5a2d716d301615c69fefc2f9574954e838269f14d5e8b0d1bad88b680cd372ee"
|
|
256
|
+
};
|
|
257
|
+
var GUEST_HELPER_SHA256 = {
|
|
258
|
+
x86_64: "4175e89ae8cb633113b5f69ef8b6e206093954411fe53edf86357bc1b7e822f9"
|
|
259
|
+
};
|
|
260
|
+
function guestAssetsPinned(arch) {
|
|
261
|
+
const zero = "0".repeat(64);
|
|
262
|
+
return GUEST_KERNEL_SHA256[arch] !== zero && GUEST_HELPER_SHA256[arch] !== zero;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
export { BUILDKIT_IMAGE, CLAUDE_CODE_VERSION, DEFAULT_BASE_IMAGE, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, FIRECRACKER_VERSION, GH_SHA256, GH_VERSION, GUEST_ASSETS_BASE_URL, GUEST_ASSETS_VERSION, GUEST_HELPER_SHA256, GUEST_KERNEL_SHA256, MICROVM_ARCHES, NODE_IMAGE, RecipeError, SANITIZED_NAME, TINI_SHA256, TINI_VERSION, assertBuildable, classifyProperties, firecrackerArch, guestAssetsPinned, locateRecipe, readRecipe, writeSanitizedRecipe };
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { checkStarterFiles, contextIsGoverned } from './chunk-
|
|
4
|
-
import { resolveCredentials, getJson, WorkCommandError } from './chunk-
|
|
5
|
-
import { isLinkedRepository } from './chunk-
|
|
3
|
+
import { checkStarterFiles, contextIsGoverned, checkBuildSkill } from './chunk-VSUXCMMH.js';
|
|
4
|
+
import { resolveCredentials, getJson, WorkCommandError } from './chunk-2HT2XGJX.js';
|
|
5
|
+
import { isLinkedRepository } from './chunk-JRCSET55.js';
|
|
6
6
|
import { sanitizeTerminal } from './chunk-G3IJ3N6F.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-QNLX477Q.js';
|
|
10
|
-
import { C } from './chunk-ANPNT6PM.js';
|
|
11
|
-
import { readSettings, settingsPath, isOurStatuslineSlot, statuslineWrappedOriginal, REGISTERED_EVENTS, isOurHookCommand, ourCommandBins, cliBinResolvable, ourDirectScriptBins, wrappedOriginalCommand } from './chunk-5QRP3MVS.js';
|
|
12
|
-
import { checkFormerSkillNames } from './chunk-7UWVLZXD.js';
|
|
13
|
-
import { defaultFetch } from './chunk-FVMYKL6L.js';
|
|
7
|
+
import { checkFormerSkillNames } from './chunk-USWVXQIH.js';
|
|
8
|
+
import { defaultFetch } from './chunk-VWLOQ6FI.js';
|
|
14
9
|
import { resolveGatewayCredentials } from './chunk-NTRCK4NH.js';
|
|
10
|
+
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-6IO62VJS.js';
|
|
11
|
+
import { readStatuslineState, STATE_FRESH_MS } from './chunk-IZSVXRDR.js';
|
|
12
|
+
import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
15
13
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
16
|
-
import {
|
|
14
|
+
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-AEKSX4EY.js';
|
|
15
|
+
import { C } from './chunk-ANPNT6PM.js';
|
|
17
16
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
17
|
+
import { readSettings, settingsPath, isOurStatuslineSlot, statuslineWrappedOriginal, REGISTERED_EVENTS, isOurHookCommand, ourCommandBins, cliBinResolvable, ourDirectScriptBins, wrappedOriginalCommand } from './chunk-5QRP3MVS.js';
|
|
18
18
|
import { readDeliveryRecord, readDegraded, readSourceCache } from './chunk-YQR6E6OV.js';
|
|
19
19
|
import { deadHooksState, preparePackageManagerCommand } from './chunk-TUSYOL2O.js';
|
|
20
20
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -192,6 +192,7 @@ function runDoctor(env = {}) {
|
|
|
192
192
|
...checkInstalls(env),
|
|
193
193
|
...starter?.checks ?? [],
|
|
194
194
|
...laptop ? checkRenamedSkills(env.cwd) : [],
|
|
195
|
+
...checkBuildSkillState(env.cwd),
|
|
195
196
|
...starter !== void 0 && !starter.mcpOutdated ? checkMcpCommand(env.cwd, env.processEnv) : [],
|
|
196
197
|
...checkContextSource(env.cwd),
|
|
197
198
|
...checkGovernsList(env.cwd),
|
|
@@ -204,6 +205,11 @@ function checkRenamedSkills(cwd) {
|
|
|
204
205
|
if (dirs === void 0 || contextIsGoverned(dirs.gitCommonDir)) return [];
|
|
205
206
|
return checkFormerSkillNames(dirs.repoRoot);
|
|
206
207
|
}
|
|
208
|
+
function checkBuildSkillState(cwd) {
|
|
209
|
+
const dirs = findGitDirs(cwd ?? process.cwd());
|
|
210
|
+
if (dirs === void 0 || contextIsGoverned(dirs.gitCommonDir)) return [];
|
|
211
|
+
return checkBuildSkill(dirs.repoRoot);
|
|
212
|
+
}
|
|
207
213
|
function checkInstalledCli(home, cwd) {
|
|
208
214
|
const name = "Installed CLI";
|
|
209
215
|
const result = checkInstalledCliStaleness({ home, cwd });
|
|
@@ -773,7 +779,7 @@ function checkContextSource(cwd) {
|
|
|
773
779
|
const governed = readSourceCache(gitCommonDir)?.status === "governed";
|
|
774
780
|
if (!governed && delivery === void 0 && !degraded) return [];
|
|
775
781
|
const checks = [];
|
|
776
|
-
const name = "
|
|
782
|
+
const name = "Control plane";
|
|
777
783
|
if (delivery !== void 0 && existsSync(delivery.dir)) {
|
|
778
784
|
checks.push({ name, status: degraded ? "warn" : "pass", detail: `control plane delivered at ${delivery.sha.slice(0, 7)}` });
|
|
779
785
|
} else if (governed) {
|
|
@@ -786,7 +792,7 @@ function checkContextSource(cwd) {
|
|
|
786
792
|
}
|
|
787
793
|
if (degraded) {
|
|
788
794
|
checks.push({
|
|
789
|
-
name: "
|
|
795
|
+
name: "Control plane degradation",
|
|
790
796
|
status: degraded.kind === "conflict" ? "fail" : "warn",
|
|
791
797
|
detail: degraded.message,
|
|
792
798
|
fix: contextDegradedFix(degraded.kind)
|
|
@@ -1169,7 +1175,7 @@ function doctorExitCode(checks) {
|
|
|
1169
1175
|
|
|
1170
1176
|
// src/doctor-report.ts
|
|
1171
1177
|
async function gatherDoctorChecks() {
|
|
1172
|
-
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-
|
|
1178
|
+
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-7Q52COZ3.js');
|
|
1173
1179
|
const configPath = defaultRunnerConfigPath();
|
|
1174
1180
|
const checks = runDoctor({ runnerHost: hasRunnerBlock(configPath) });
|
|
1175
1181
|
const credential = await credentialChecks();
|
|
@@ -1181,7 +1187,7 @@ async function gatherDoctorChecks() {
|
|
|
1181
1187
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1182
1188
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1183
1189
|
} else if (hasRunnerBlock(configPath)) {
|
|
1184
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1190
|
+
const { runnerHostChecks } = await import('./doctor-3SQGZVYP.js');
|
|
1185
1191
|
const hooks = (() => {
|
|
1186
1192
|
try {
|
|
1187
1193
|
return loadRunnerConfig(configPath).hooks;
|
|
@@ -1216,7 +1222,7 @@ async function gatherDoctorChecks() {
|
|
|
1216
1222
|
const { existsSync: existsSync3 } = await import('fs');
|
|
1217
1223
|
if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
|
|
1218
1224
|
const { inspectService, realInspectProbes } = await import('./inspect-6UYAAXH7.js');
|
|
1219
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
1225
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-CZUIW2AF.js');
|
|
1220
1226
|
const { dirname: dirname2 } = await import('path');
|
|
1221
1227
|
return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
|
|
1222
1228
|
})();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-KIGSGZBB.js';
|
|
4
4
|
import { readlinkSync, realpathSync, mkdirSync, unlinkSync, symlinkSync, renameSync, readFileSync, writeFileSync, rmSync, existsSync, readdirSync } from 'fs';
|
|
5
5
|
import { join, basename, sep, resolve } from 'path';
|
|
6
6
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-
|
|
4
|
-
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-
|
|
5
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
6
|
-
import { runnerCredentialProblem } from './chunk-
|
|
7
|
-
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-7V7KG3YM.js';
|
|
4
|
+
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-EXV37PKS.js';
|
|
5
|
+
import { MIN_ENGINE_MAJOR } from './chunk-VX74ND77.js';
|
|
6
|
+
import { runnerCredentialProblem } from './chunk-2CMJLYV6.js';
|
|
7
|
+
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-KIGSGZBB.js';
|
|
8
8
|
import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
9
9
|
import { dirname } from 'path';
|
|
10
10
|
|
|
@@ -8,8 +8,10 @@ import { fileURLToPath } from 'url';
|
|
|
8
8
|
|
|
9
9
|
createRequire(import.meta.url);
|
|
10
10
|
var TEMPLATE_SKILLS = ["spec", "writing-specs", "writing-tests", "build"];
|
|
11
|
-
var MAINTAINED_SKILLS = ["outerlayer-evidence", "outerlayer-amend", "outerlayer-findings", "outerlayer-cli"];
|
|
12
|
-
|
|
11
|
+
var MAINTAINED_SKILLS = ["outerlayer-evidence", "outerlayer-amend", "outerlayer-findings", "outerlayer-cli", "outerlayer-build"];
|
|
12
|
+
function templateClassLine(version) {
|
|
13
|
+
return `<!-- yours to edit. Copied once from the default template by outerlayer init ${version}; never overwritten. -->`;
|
|
14
|
+
}
|
|
13
15
|
function maintainedClassLine(version) {
|
|
14
16
|
return `<!-- maintained by OuterLayer ${version}. Edits are overwritten on the next outerlayer context emit. -->`;
|
|
15
17
|
}
|
|
@@ -20,7 +22,7 @@ function skillDir(skill) {
|
|
|
20
22
|
return `.outerlayer/skills/${skill}`;
|
|
21
23
|
}
|
|
22
24
|
function renderSkillFile(skillClass, content, version) {
|
|
23
|
-
const line = skillClass === "maintained" ? maintainedClassLine(version) :
|
|
25
|
+
const line = skillClass === "maintained" ? maintainedClassLine(version) : templateClassLine(version);
|
|
24
26
|
const { frontmatterInner, body } = splitRawFile(content);
|
|
25
27
|
if (frontmatterInner === null) return `${line}
|
|
26
28
|
${content}`;
|
|
@@ -77,7 +79,29 @@ function writeMaintainedFiles(repoRoot, files) {
|
|
|
77
79
|
return { created, rewritten };
|
|
78
80
|
}
|
|
79
81
|
function maintainedFilesForExistingSkills(repoRoot, files) {
|
|
80
|
-
return files.filter(
|
|
82
|
+
return files.filter(
|
|
83
|
+
(file) => existsSync(join(repoRoot, skillDir(file.skill))) || formerNameExists(repoRoot, file.skill) || requiredByBuild(repoRoot, file.skill)
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
function namesCore(text) {
|
|
87
|
+
return text.includes("outerlayer-build");
|
|
88
|
+
}
|
|
89
|
+
function requiredByBuild(repoRoot, skill) {
|
|
90
|
+
if (skill !== "outerlayer-build") return false;
|
|
91
|
+
const named = (file) => {
|
|
92
|
+
try {
|
|
93
|
+
return namesCore(readFileSync(file, "utf8"));
|
|
94
|
+
} catch {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
if (named(join(repoRoot, skillDir("build"), "SKILL.md"))) return true;
|
|
99
|
+
const dir = join(repoRoot, ".outerlayer", "validators");
|
|
100
|
+
try {
|
|
101
|
+
return readdirSync(dir).some((name) => name.endsWith(".yaml") && named(join(dir, name)));
|
|
102
|
+
} catch {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
81
105
|
}
|
|
82
106
|
var FORMER_MAINTAINED_NAMES = {
|
|
83
107
|
amend: "outerlayer-amend",
|
|
@@ -97,4 +121,4 @@ function formerNameExists(repoRoot, skill) {
|
|
|
97
121
|
return Object.entries(FORMER_MAINTAINED_NAMES).some(([former, current]) => current === skill && isMaintainedCopy(repoRoot, former));
|
|
98
122
|
}
|
|
99
123
|
|
|
100
|
-
export { FORMER_MAINTAINED_NAMES, MAINTAINED_SKILLS, TEMPLATE_SKILLS, isMaintainedCopy, loadMaintainedFiles, loadTemplateFiles, maintainedFilesForExistingSkills, resolvePackRoot, skillDir, writeMaintainedFiles };
|
|
124
|
+
export { FORMER_MAINTAINED_NAMES, MAINTAINED_SKILLS, TEMPLATE_SKILLS, isMaintainedCopy, loadMaintainedFiles, loadTemplateFiles, maintainedFilesForExistingSkills, namesCore, resolvePackRoot, skillDir, writeMaintainedFiles };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
4
|
+
import { CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
4
5
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
5
|
-
import { CONTROL_PLANE_DIR_VARIABLE } from './chunk-G2YNJIGF.js';
|
|
6
6
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
7
7
|
import { deadHooksState, huskyPrepareScript, preparePackageManagerCommand } from './chunk-TUSYOL2O.js';
|
|
8
8
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -624,11 +624,11 @@ async function missingControlPlane(cwd, sessionId, home, env) {
|
|
|
624
624
|
const dirs = findGitDirs(cwd);
|
|
625
625
|
if (dirs === void 0) return void 0;
|
|
626
626
|
if (existsSync(join(dirs.gitCommonDir, "outerlayer", "materialized.json")) || hasExcludeBlock(dirs.gitCommonDir)) {
|
|
627
|
-
const { cleanupEarlierCopies } = await import('./context-cleanup-
|
|
627
|
+
const { cleanupEarlierCopies } = await import('./context-cleanup-DSA3HGQU.js');
|
|
628
628
|
cleanupEarlierCopies(dirs);
|
|
629
629
|
}
|
|
630
630
|
if (!contextPossiblyGoverned(cwd, home)) return void 0;
|
|
631
|
-
const { governanceOf } = await import('./control-plane-launch-
|
|
631
|
+
const { governanceOf } = await import('./control-plane-launch-SZTE4TUS.js');
|
|
632
632
|
if (await governanceOf({ cwd, env, home }) !== "governed") return void 0;
|
|
633
633
|
recordMissingContext(dirs, sessionId, home);
|
|
634
634
|
const launcher = `${cliInvocation()} claude`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { DEFAULT_UNIT_NAME } from './chunk-
|
|
3
|
+
import { DEFAULT_UNIT_NAME } from './chunk-I66MQDXH.js';
|
|
4
4
|
import { parseRunnerEnv } from './chunk-6MZSX4M7.js';
|
|
5
|
-
import { RUNNER_FILE_MODE } from './chunk-
|
|
5
|
+
import { RUNNER_FILE_MODE } from './chunk-KIGSGZBB.js';
|
|
6
6
|
import { existsSync, readFileSync, writeFileSync, renameSync, rmSync } from 'fs';
|
|
7
7
|
import { join, dirname } from 'path';
|
|
8
8
|
|