release-skill 0.7.2 → 0.7.4

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.
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.2"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.4"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "151b10d546755e2b693a841c27569302a499a5424861834dfb8ec05138dca3b8";
14
+ const __bundleSourceDigest = "94f8a4247206a95c5365d48448b1cce5e47d4fc42a711ac72e761565bc2dcb69";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -48,7 +48,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
48
48
  mod
49
49
  ));
50
50
 
51
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/errors.mjs
51
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/errors.mjs
52
52
  import { readFileSync } from "node:fs";
53
53
  function deepFreeze(obj) {
54
54
  if (obj === null || typeof obj !== "object") return obj;
@@ -66,7 +66,7 @@ function isRegisteredErrorCode(code) {
66
66
  }
67
67
  var ERROR_REGISTRY, CODE_INDEX, ContractsError, ERROR_CODES;
68
68
  var init_errors = __esm({
69
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/errors.mjs"() {
69
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/errors.mjs"() {
70
70
  __name(deepFreeze, "deepFreeze");
71
71
  ERROR_REGISTRY = deepFreeze(JSON.parse(
72
72
  readFileSync(new URL("./error-codes.json", import.meta.url), "utf8")
@@ -88,7 +88,7 @@ var init_errors = __esm({
88
88
  }
89
89
  });
90
90
 
91
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/registry.mjs
91
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/registry.mjs
92
92
  import { readFileSync as readFileSync2 } from "node:fs";
93
93
  function deepFreeze2(obj) {
94
94
  if (obj === null || typeof obj !== "object") return obj;
@@ -106,7 +106,7 @@ function findSchemaByObject(object, registry = REGISTRY) {
106
106
  }
107
107
  var REGISTRY;
108
108
  var init_registry = __esm({
109
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/registry.mjs"() {
109
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/registry.mjs"() {
110
110
  init_errors();
111
111
  __name(deepFreeze2, "deepFreeze");
112
112
  REGISTRY = deepFreeze2(JSON.parse(
@@ -7875,11 +7875,11 @@ var require__ = __commonJS({
7875
7875
  }
7876
7876
  });
7877
7877
 
7878
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/validator.mjs
7878
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/validator.mjs
7879
7879
  import { readFileSync as readFileSync3 } from "node:fs";
7880
7880
  var import_ajv, import__, SUPPORTED_DIALECTS, DIALECT_CONSTRUCTORS, VALIDATION_POLICIES;
7881
7881
  var init_validator = __esm({
7882
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/validator.mjs"() {
7882
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/validator.mjs"() {
7883
7883
  import_ajv = __toESM(require_ajv(), 1);
7884
7884
  import__ = __toESM(require__(), 1);
7885
7885
  init_errors();
@@ -7913,7 +7913,7 @@ var init_validator = __esm({
7913
7913
  }
7914
7914
  });
7915
7915
 
7916
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/kernel.mjs
7916
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/kernel.mjs
7917
7917
  import { readFileSync as readFileSync4 } from "node:fs";
7918
7918
  function deepFreeze3(obj) {
7919
7919
  if (obj === null || typeof obj !== "object") return obj;
@@ -7928,7 +7928,7 @@ function deepFreeze3(obj) {
7928
7928
  }
7929
7929
  var import_ajv2, KERNEL, paramsAjv;
7930
7930
  var init_kernel = __esm({
7931
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/kernel.mjs"() {
7931
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/kernel.mjs"() {
7932
7932
  import_ajv2 = __toESM(require_ajv(), 1);
7933
7933
  __name(deepFreeze3, "deepFreeze");
7934
7934
  KERNEL = deepFreeze3(JSON.parse(
@@ -7938,11 +7938,11 @@ var init_kernel = __esm({
7938
7938
  }
7939
7939
  });
7940
7940
 
7941
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/fixtures.mjs
7941
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/fixtures.mjs
7942
7942
  import { readdirSync, readFileSync as readFileSync5 } from "node:fs";
7943
7943
  var FIXTURE_CLASSES, FIXTURES_DIR;
7944
7944
  var init_fixtures = __esm({
7945
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/fixtures.mjs"() {
7945
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/fixtures.mjs"() {
7946
7946
  init_errors();
7947
7947
  init_registry();
7948
7948
  init_kernel();
@@ -7952,11 +7952,11 @@ var init_fixtures = __esm({
7952
7952
  }
7953
7953
  });
7954
7954
 
7955
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/checker.mjs
7955
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/checker.mjs
7956
7956
  import { readFileSync as readFileSync6 } from "node:fs";
7957
7957
  var RULES_DOCUMENT, CHECK_TYPES, MANDATORY_RULES, RULE_BUDGET;
7958
7958
  var init_checker = __esm({
7959
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/checker.mjs"() {
7959
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/checker.mjs"() {
7960
7960
  init_errors();
7961
7961
  init_registry();
7962
7962
  init_fixtures();
@@ -7975,10 +7975,10 @@ var init_checker = __esm({
7975
7975
  }
7976
7976
  });
7977
7977
 
7978
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs
7978
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs
7979
7979
  var TOKEN_ESTIMATE_CONSUMPTION_ERROR_KIND, RECORD_KIND, TOKEN_ESTIMATE_CONSUMPTION, TOKEN_ESTIMATE_CONSUMPTION_REASONS;
7980
7980
  var init_token_estimate_consumption = __esm({
7981
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs"() {
7981
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs"() {
7982
7982
  init_errors();
7983
7983
  TOKEN_ESTIMATE_CONSUMPTION_ERROR_KIND = "token-estimate-consumption-failed";
7984
7984
  RECORD_KIND = "skill-family.token-estimate-record";
@@ -8010,7 +8010,7 @@ var init_token_estimate_consumption = __esm({
8010
8010
  }
8011
8011
  });
8012
8012
 
8013
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/audit-surface.mjs
8013
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/audit-surface.mjs
8014
8014
  import { createHash } from "node:crypto";
8015
8015
  import { readFileSync as readFileSync7 } from "node:fs";
8016
8016
  function canonicalJson(value) {
@@ -8049,7 +8049,7 @@ function digestDocument(value, { algorithm = "sha256" } = {}) {
8049
8049
  }
8050
8050
  var AUDIT_DIGEST_ALGORITHMS, BASELINE_PIN_KINDS;
8051
8051
  var init_audit_surface = __esm({
8052
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/audit-surface.mjs"() {
8052
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/audit-surface.mjs"() {
8053
8053
  init_errors();
8054
8054
  init_registry();
8055
8055
  init_kernel();
@@ -8066,10 +8066,10 @@ var init_audit_surface = __esm({
8066
8066
  }
8067
8067
  });
8068
8068
 
8069
- // ../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/index.mjs
8069
+ // ../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/index.mjs
8070
8070
  var CONTRACT_OBJECTS, CONTRACT_BOUNDARY;
8071
8071
  var init_src = __esm({
8072
- "../../node_modules/.pnpm/skill-family-contracts@0.8.0/node_modules/skill-family-contracts/src/index.mjs"() {
8072
+ "../../node_modules/.pnpm/skill-family-contracts@0.8.1/node_modules/skill-family-contracts/src/index.mjs"() {
8073
8073
  init_errors();
8074
8074
  init_registry();
8075
8075
  init_validator();
@@ -8118,7 +8118,7 @@ var init_src = __esm({
8118
8118
  }
8119
8119
  });
8120
8120
 
8121
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs
8121
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs
8122
8122
  function mechanismError(kind, message, extraDetails) {
8123
8123
  const values = Object.values(HARNESS_ERROR_KINDS);
8124
8124
  if (!values.includes(kind)) {
@@ -8129,7 +8129,7 @@ function mechanismError(kind, message, extraDetails) {
8129
8129
  }
8130
8130
  var HARNESS_ERROR_KINDS, HarnessError;
8131
8131
  var init_errors2 = __esm({
8132
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs"() {
8132
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs"() {
8133
8133
  init_src();
8134
8134
  HARNESS_ERROR_KINDS = Object.freeze({
8135
8135
  INVALID_PATH: "invalid-path",
@@ -8203,7 +8203,7 @@ var init_errors2 = __esm({
8203
8203
  }
8204
8204
  });
8205
8205
 
8206
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs
8206
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs
8207
8207
  import { lstat, readFile, realpath, stat } from "node:fs/promises";
8208
8208
  import path from "node:path";
8209
8209
  import process2 from "node:process";
@@ -8414,7 +8414,7 @@ async function readFileContained(root, relPath, { encoding } = {}) {
8414
8414
  }
8415
8415
  var WINDOWS_DRIVE_PATTERN, WINDOWS_UNC_PATTERN, POSIX_UNC_PATTERN;
8416
8416
  var init_paths = __esm({
8417
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs"() {
8417
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs"() {
8418
8418
  init_errors2();
8419
8419
  WINDOWS_DRIVE_PATTERN = /^[A-Za-z]:/;
8420
8420
  WINDOWS_UNC_PATTERN = /^\\\\/;
@@ -8429,7 +8429,7 @@ var init_paths = __esm({
8429
8429
  }
8430
8430
  });
8431
8431
 
8432
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs
8432
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs
8433
8433
  import { createHash as createHash2 } from "node:crypto";
8434
8434
  import path2 from "node:path";
8435
8435
  function digestBytes(bytes) {
@@ -8527,7 +8527,7 @@ async function computeResourceClosure({ root, resources } = {}) {
8527
8527
  }
8528
8528
  var CLOSURE_KIND, CLOSURE_SCHEMA_VERSION, DIGEST_ALGORITHM, ROLES;
8529
8529
  var init_closure = __esm({
8530
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs"() {
8530
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs"() {
8531
8531
  init_errors2();
8532
8532
  init_paths();
8533
8533
  CLOSURE_KIND = "skill-family.resource-closure";
@@ -8540,7 +8540,7 @@ var init_closure = __esm({
8540
8540
  }
8541
8541
  });
8542
8542
 
8543
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs
8543
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs
8544
8544
  import { constants as FS_CONSTANTS } from "node:fs";
8545
8545
  import { lstat as lstat2, open } from "node:fs/promises";
8546
8546
  function sameIdentity(left, right) {
@@ -8641,7 +8641,7 @@ async function readFileStrict(root, relPath, { encoding, expectedSha256 } = {})
8641
8641
  }
8642
8642
  var SHA256_HEX_PATTERN;
8643
8643
  var init_strict_read = __esm({
8644
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs"() {
8644
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs"() {
8645
8645
  init_closure();
8646
8646
  init_errors2();
8647
8647
  init_paths();
@@ -8651,7 +8651,7 @@ var init_strict_read = __esm({
8651
8651
  }
8652
8652
  });
8653
8653
 
8654
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs
8654
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs
8655
8655
  function redactUrlCredentials(value) {
8656
8656
  let url;
8657
8657
  if (value instanceof URL) {
@@ -8671,13 +8671,13 @@ function redactUrlCredentials(value) {
8671
8671
  }
8672
8672
  var REDACTED_URL_PLACEHOLDER;
8673
8673
  var init_url_redaction = __esm({
8674
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs"() {
8674
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs"() {
8675
8675
  REDACTED_URL_PLACEHOLDER = "[redacted-url]";
8676
8676
  __name(redactUrlCredentials, "redactUrlCredentials");
8677
8677
  }
8678
8678
  });
8679
8679
 
8680
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs
8680
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs
8681
8681
  import { createHash as createHash3, randomBytes } from "node:crypto";
8682
8682
  import { constants as FS_CONSTANTS2 } from "node:fs";
8683
8683
  import { link, lstat as lstat3, mkdir, open as open2, realpath as realpath2, rename, rm, unlink } from "node:fs/promises";
@@ -9036,7 +9036,7 @@ async function writeFileAtomic(root, relPath, data, { mode = 420 } = {}) {
9036
9036
  }
9037
9037
  var testHooks;
9038
9038
  var init_atomic = __esm({
9039
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs"() {
9039
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs"() {
9040
9040
  init_errors2();
9041
9041
  init_paths();
9042
9042
  testHooks = null;
@@ -9060,7 +9060,7 @@ var init_atomic = __esm({
9060
9060
  }
9061
9061
  });
9062
9062
 
9063
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs
9063
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs
9064
9064
  import { createHash as createHash4, randomBytes as randomBytes2 } from "node:crypto";
9065
9065
  import { constants as FS_CONSTANTS3 } from "node:fs";
9066
9066
  import { lstat as lstat4, open as open3, realpath as realpath3, unlink as unlink2 } from "node:fs/promises";
@@ -9218,7 +9218,7 @@ async function recoverFilesystemLock(root, relPath, { expectedTokenDigest, confi
9218
9218
  }
9219
9219
  var TOKEN_PATTERN;
9220
9220
  var init_token_lock = __esm({
9221
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs"() {
9221
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs"() {
9222
9222
  init_errors2();
9223
9223
  init_atomic();
9224
9224
  init_paths();
@@ -9237,7 +9237,7 @@ var init_token_lock = __esm({
9237
9237
  }
9238
9238
  });
9239
9239
 
9240
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs
9240
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs
9241
9241
  import { createHash as createHash5 } from "node:crypto";
9242
9242
  import { lstat as lstat5, mkdir as mkdir2, mkdtemp, readdir, readFile as readFile2, rm as rm2, writeFile } from "node:fs/promises";
9243
9243
  import os from "node:os";
@@ -9383,7 +9383,7 @@ async function materializeBaseline({ baselineDir, baselineDigest, prefix = "sf-b
9383
9383
  }
9384
9384
  var TEST_HOOKS, DIGEST_PATTERN;
9385
9385
  var init_baseline = __esm({
9386
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs"() {
9386
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs"() {
9387
9387
  init_errors2();
9388
9388
  TEST_HOOKS = { beforePostDigest: void 0 };
9389
9389
  __name(runTestHook2, "runTestHook");
@@ -9395,7 +9395,7 @@ var init_baseline = __esm({
9395
9395
  }
9396
9396
  });
9397
9397
 
9398
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs
9398
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs
9399
9399
  import { mkdtemp as mkdtemp2, rm as rm3 } from "node:fs/promises";
9400
9400
  import os2 from "node:os";
9401
9401
  import path6 from "node:path";
@@ -9427,7 +9427,7 @@ async function withTemporaryWorkspace(fn, options) {
9427
9427
  }
9428
9428
  var TemporaryWorkspace;
9429
9429
  var init_workspace = __esm({
9430
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs"() {
9430
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs"() {
9431
9431
  init_baseline();
9432
9432
  init_errors2();
9433
9433
  init_paths();
@@ -9549,28 +9549,28 @@ var init_workspace = __esm({
9549
9549
  }
9550
9550
  });
9551
9551
 
9552
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs
9552
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs
9553
9553
  import path7 from "node:path";
9554
9554
  var init_chokepoint = __esm({
9555
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs"() {
9555
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs"() {
9556
9556
  init_errors2();
9557
9557
  init_paths();
9558
9558
  }
9559
9559
  });
9560
9560
 
9561
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs
9561
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs
9562
9562
  var init_validation = __esm({
9563
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs"() {
9563
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs"() {
9564
9564
  init_src();
9565
9565
  init_errors2();
9566
9566
  }
9567
9567
  });
9568
9568
 
9569
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs
9569
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs
9570
9570
  import path8 from "node:path";
9571
9571
  var POLICY_SCHEMA_ID;
9572
9572
  var init_surface_scan = __esm({
9573
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs"() {
9573
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs"() {
9574
9574
  init_src();
9575
9575
  init_errors2();
9576
9576
  init_paths();
@@ -9579,12 +9579,12 @@ var init_surface_scan = __esm({
9579
9579
  }
9580
9580
  });
9581
9581
 
9582
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs
9582
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs
9583
9583
  import path9 from "node:path";
9584
9584
  import { readFileSync as readFileSync8, readdirSync as readdirSync2, statSync } from "node:fs";
9585
9585
  var WRITE_FS_VERBS, WRITE_FS_APIS, DECLARED_READ_SURFACE_RULES, RESULT_GUARANTEES;
9586
9586
  var init_declared_read_surface = __esm({
9587
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs"() {
9587
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs"() {
9588
9588
  init_errors2();
9589
9589
  WRITE_FS_VERBS = ["writeFile", "appendFile", "mkdir", "rm", "unlink", "rename", "copyFile"];
9590
9590
  WRITE_FS_APIS = WRITE_FS_VERBS.map((verb) => `${verb}Sync`).concat([
@@ -31718,7 +31718,7 @@ var require_dist2 = __commonJS({
31718
31718
  }
31719
31719
  });
31720
31720
 
31721
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs
31721
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs
31722
31722
  import { mkdtempSync, rmSync, writeFileSync, lstatSync, readlinkSync } from "node:fs";
31723
31723
  import os3 from "node:os";
31724
31724
  import path10 from "node:path";
@@ -32006,7 +32006,7 @@ function scanTreeJsonContent(ctx, relPath, bytes) {
32006
32006
  }
32007
32007
  var import_ipaddr, import_lockfile, import_yaml, POLICY_SCHEMA_ID2, STRUCTURED_SCAN_RULES, URL_PATTERN, EMAIL_PATTERN, HOST_KEY_STRING_PATTERN, HOST_KEY_ARRAY_PATTERN, QUOTED_TOKEN_PATTERN, NPM_SCOPE_PATTERN, IP_RUN_PATTERN, IPV4_SHAPED_PATTERN, HEX_GROUP_SEGMENT_PATTERN, ALPHA_SHORT_SEGMENT_PATTERN, HEX_LETTER_PATTERN, DECIMAL_DIGIT_PATTERN, LOCKFILE_URL_REFERENCE_PATTERN, LOCAL_LOCKFILE_REF_PREFIXES, BUILTIN_ADAPTERS;
32008
32008
  var init_structured_scan = __esm({
32009
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs"() {
32009
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs"() {
32010
32010
  init_src();
32011
32011
  import_ipaddr = __toESM(require_ipaddr(), 1);
32012
32012
  import_lockfile = __toESM(require_lib18(), 1);
@@ -32062,10 +32062,10 @@ var init_structured_scan = __esm({
32062
32062
  }
32063
32063
  });
32064
32064
 
32065
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs
32065
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs
32066
32066
  var GUARANTEES, TOKEN_GUARANTEES, CJK_CODE_POINT_RANGES;
32067
32067
  var init_token_estimate = __esm({
32068
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs"() {
32068
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs"() {
32069
32069
  GUARANTEES = Object.freeze([
32070
32070
  "covers-content-text-only",
32071
32071
  "no-model-calls",
@@ -32089,7 +32089,7 @@ var init_token_estimate = __esm({
32089
32089
  }
32090
32090
  });
32091
32091
 
32092
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs
32092
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs
32093
32093
  import { constants as FS_CONSTANTS4 } from "node:fs";
32094
32094
  import {
32095
32095
  link as link2,
@@ -32106,7 +32106,7 @@ import path11 from "node:path";
32106
32106
  import process4 from "node:process";
32107
32107
  var STATE_GENESIS_DIGEST, EVENT_SCHEMA_ID, SNAPSHOT_SCHEMA_ID;
32108
32108
  var init_state_store = __esm({
32109
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs"() {
32109
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs"() {
32110
32110
  init_src();
32111
32111
  init_errors2();
32112
32112
  init_validation();
@@ -32116,22 +32116,22 @@ var init_state_store = __esm({
32116
32116
  }
32117
32117
  });
32118
32118
 
32119
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs
32119
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs
32120
32120
  var init_budget_guard = __esm({
32121
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs"() {
32121
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs"() {
32122
32122
  init_errors2();
32123
32123
  init_token_lock();
32124
32124
  init_state_store();
32125
32125
  }
32126
32126
  });
32127
32127
 
32128
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs
32128
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs
32129
32129
  import { spawn as nodeSpawn } from "node:child_process";
32130
32130
  import { existsSync, readFileSync as readFileSync9, statSync as statSync2, writeFileSync as writeFileSync2, renameSync } from "node:fs";
32131
32131
  import path12 from "node:path";
32132
32132
  var WATCHDOG_REASONS, TERMINATION_REASONS, PROCESS_STATUSES, ENVELOPE_GUARANTEES, TIMEOUT_POLICY_FIELDS, defaultDeps, WATCHDOG_TO_TERMINATION;
32133
32133
  var init_supervise_process = __esm({
32134
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs"() {
32134
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs"() {
32135
32135
  init_errors2();
32136
32136
  WATCHDOG_REASONS = Object.freeze([
32137
32137
  "max_seconds",
@@ -32228,7 +32228,7 @@ var init_supervise_process = __esm({
32228
32228
  }
32229
32229
  });
32230
32230
 
32231
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs
32231
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs
32232
32232
  function schemaIdFor(objectName) {
32233
32233
  const registration = findSchemaByObject(objectName);
32234
32234
  if (!registration) {
@@ -32241,7 +32241,7 @@ function schemaIdFor(objectName) {
32241
32241
  }
32242
32242
  var REQUEST_ENVELOPE, REQUEST_SCHEMA_ID, RESULT_SCHEMA_ID;
32243
32243
  var init_request = __esm({
32244
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs"() {
32244
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs"() {
32245
32245
  init_src();
32246
32246
  init_errors2();
32247
32247
  init_validation();
@@ -32255,14 +32255,14 @@ var init_request = __esm({
32255
32255
  }
32256
32256
  });
32257
32257
 
32258
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs
32258
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs
32259
32259
  import { constants } from "node:fs";
32260
32260
  import { access, lstat as lstat7, mkdtemp as mkdtemp3, readFile as readFile3, realpath as realpath5, rename as rename3, rm as rm4 } from "node:fs/promises";
32261
32261
  import path13 from "node:path";
32262
32262
  import { spawnSync } from "node:child_process";
32263
32263
  var SCHEMAS;
32264
32264
  var init_host = __esm({
32265
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs"() {
32265
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs"() {
32266
32266
  init_src();
32267
32267
  init_atomic();
32268
32268
  init_closure();
@@ -32276,17 +32276,84 @@ var init_host = __esm({
32276
32276
  }
32277
32277
  });
32278
32278
 
32279
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs
32280
- import { readFileSync as readFileSync10 } from "node:fs";
32281
- var PACKAGE_META, REPORT_RENDERER_VERSION, SUPPORTED_REPORT_LOCALES, EXECUTION_STATUSES, REPORT_AUDIENCES, RESULT_STATE_EXECUTION_STATUSES, REPORT_STYLE_RULES, TRANSLATESE_ZH, TRANSLATESE_EN, UNEXPLAINED_TERMS, REPORT_MODEL_SCHEMA_ID, REPORT_BINDING_SCHEMA_ID, OPERATION_RESULT_SCHEMA_ID, TEXT;
32279
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/package.json
32280
+ var package_default;
32281
+ var init_package = __esm({
32282
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/package.json"() {
32283
+ package_default = {
32284
+ "//": '~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".',
32285
+ author: "\u5E7F\u5DDE\u5E02\u98CE\u8377\u79D1\u6280\u6709\u9650\u516C\u53F8",
32286
+ bin: {
32287
+ "skill-family-token-estimate": "./src/token-estimate-cli.mjs"
32288
+ },
32289
+ bugs: {
32290
+ url: "https://github.com/ifoohoo/skill-family-harness-node/issues"
32291
+ },
32292
+ dependencies: {
32293
+ "@pnpm/lockfile.fs": "1001.1.35",
32294
+ "ipaddr.js": "2.5.0",
32295
+ "skill-family-contracts": "0.8.1",
32296
+ yaml: "2.9.0"
32297
+ },
32298
+ description: "Thin Node.js mechanism runtime for Skill Family engineering contracts.",
32299
+ engines: {
32300
+ node: ">=22.22.2 <23",
32301
+ pnpm: "10.30.0"
32302
+ },
32303
+ exports: {
32304
+ ".": "./src/index.mjs",
32305
+ "./candidate/quickstart-profile": "./candidate/quickstart-profile.mjs",
32306
+ "./candidate/rename-directory-no-replace": "./candidate/rename-directory-no-replace/rename-directory-no-replace.mjs"
32307
+ },
32308
+ files: [
32309
+ "src",
32310
+ "candidate",
32311
+ "release-notes",
32312
+ "README.md",
32313
+ "README.zh-CN.md",
32314
+ "CHANGELOG.md",
32315
+ "CHANGELOG.zh-CN.md",
32316
+ "NOTICE",
32317
+ "SECURITY.md",
32318
+ "CONTRIBUTING.md",
32319
+ "CODE_OF_CONDUCT.md"
32320
+ ],
32321
+ homepage: "https://github.com/ifoohoo/skill-family-harness-node",
32322
+ license: "Apache-2.0",
32323
+ name: "skill-family-harness-node",
32324
+ private: false,
32325
+ repository: {
32326
+ type: "git",
32327
+ url: "https://github.com/ifoohoo/skill-family-harness-node.git"
32328
+ },
32329
+ type: "module",
32330
+ version: "0.8.1",
32331
+ scripts: {
32332
+ check: "node --test",
32333
+ test: "node --test"
32334
+ }
32335
+ };
32336
+ }
32337
+ });
32338
+
32339
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report-version.mjs
32340
+ var REPORT_RENDERER_VERSION;
32341
+ var init_report_version = __esm({
32342
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report-version.mjs"() {
32343
+ init_package();
32344
+ REPORT_RENDERER_VERSION = package_default.version;
32345
+ }
32346
+ });
32347
+
32348
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs
32349
+ var SUPPORTED_REPORT_LOCALES, EXECUTION_STATUSES, REPORT_AUDIENCES, RESULT_STATE_EXECUTION_STATUSES, REPORT_STYLE_RULES, TRANSLATESE_ZH, TRANSLATESE_EN, UNEXPLAINED_TERMS, REPORT_MODEL_SCHEMA_ID, REPORT_BINDING_SCHEMA_ID, OPERATION_RESULT_SCHEMA_ID, TEXT;
32282
32350
  var init_report = __esm({
32283
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs"() {
32351
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs"() {
32284
32352
  init_src();
32285
32353
  init_closure();
32286
32354
  init_errors2();
32355
+ init_report_version();
32287
32356
  init_validation();
32288
- PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.2" });
32289
- REPORT_RENDERER_VERSION = PACKAGE_META.version;
32290
32357
  SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
32291
32358
  EXECUTION_STATUSES = Object.freeze([
32292
32359
  "SUCCEEDED",
@@ -32399,10 +32466,10 @@ var init_report = __esm({
32399
32466
  }
32400
32467
  });
32401
32468
 
32402
- // ../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs
32469
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs
32403
32470
  var HARNESS_CAPABILITIES, HARNESS_EXCLUSIONS;
32404
32471
  var init_src2 = __esm({
32405
- "../../node_modules/.pnpm/skill-family-harness-node@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs"() {
32472
+ "../../node_modules/.pnpm/skill-family-harness-node@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs"() {
32406
32473
  init_errors2();
32407
32474
  init_paths();
32408
32475
  init_strict_read();
@@ -33272,7 +33339,7 @@ var init_foundation_inflight = __esm({
33272
33339
 
33273
33340
  // src/artifacts/project-lock.mjs
33274
33341
  import { mkdir as mkdir4, writeFile as writeFile2, lstat as lstat8, open as open5 } from "node:fs/promises";
33275
- import { readFileSync as readFileSync11 } from "node:fs";
33342
+ import { readFileSync as readFileSync10 } from "node:fs";
33276
33343
  import { join } from "node:path";
33277
33344
  import { hostname } from "node:os";
33278
33345
  import { randomBytes as randomBytes4 } from "node:crypto";
@@ -33290,7 +33357,7 @@ function buildOwner(command2, clock) {
33290
33357
  }
33291
33358
  function getBootId() {
33292
33359
  try {
33293
- return readFileSync11("/proc/sys/kernel/random/boot_id", "utf8").trim();
33360
+ return readFileSync10("/proc/sys/kernel/random/boot_id", "utf8").trim();
33294
33361
  } catch {
33295
33362
  return `pid-${process.pid}-uptime-${Math.floor(process.uptime())}`;
33296
33363
  }
@@ -33964,7 +34031,7 @@ var init_pkg_root = __esm({
33964
34031
  });
33965
34032
 
33966
34033
  // src/core/trusted-resource.mjs
33967
- import { lstatSync as lstatSync2, readFileSync as readFileSync12, realpathSync } from "node:fs";
34034
+ import { lstatSync as lstatSync2, readFileSync as readFileSync11, realpathSync } from "node:fs";
33968
34035
  import { lstat as lstat9 } from "node:fs/promises";
33969
34036
  import { isAbsolute, relative, resolve as resolve2, sep } from "node:path";
33970
34037
  function fail(code, resource, reason) {
@@ -34039,7 +34106,7 @@ function readTrustedPackageResourceSync(resource, { code = CONFIG_INVALID } = {}
34039
34106
  }
34040
34107
  assertPhysicalContainment(physicalRoot, physicalPath, resource, code);
34041
34108
  try {
34042
- return readFileSync12(physicalPath);
34109
+ return readFileSync11(physicalPath);
34043
34110
  } catch {
34044
34111
  fail(code, resource, "READ_FAILED");
34045
34112
  }
@@ -36323,8 +36390,13 @@ function getPlatform(id) {
36323
36390
  if (!platform) throw new Error(`unknown platform: ${id}`);
36324
36391
  return platform;
36325
36392
  }
36393
+ function resolveSkillProjectionSurfaceHost(surfaceId, registry = PLATFORMS) {
36394
+ const platform = registry.find((item) => item.skillProjectionSurface === surfaceId);
36395
+ return platform?.buildAdapter?.name ?? null;
36396
+ }
36326
36397
  function assertRegistry(registry = PLATFORMS) {
36327
36398
  const seen = /* @__PURE__ */ new Set();
36399
+ const seenSkillProjectionSurfaces = /* @__PURE__ */ new Set();
36328
36400
  for (const platform of registry) {
36329
36401
  const label = platform?.id ?? "<missing id>";
36330
36402
  if (typeof platform?.id !== "string" || platform.id.length === 0) {
@@ -36373,6 +36445,16 @@ function assertRegistry(registry = PLATFORMS) {
36373
36445
  if (typeof platform.buildAdapter.name !== "string" || platform.buildAdapter.name.length === 0) {
36374
36446
  throw new Error(`platform registry: ${label} buildAdapter needs a non-empty name (its adapter directory name)`);
36375
36447
  }
36448
+ if (typeof platform.skillProjectionSurface !== "string" || !SKILL_PROJECTION_SURFACE_PATTERN.test(platform.skillProjectionSurface)) {
36449
+ throw new Error(`platform registry: ${label} skillProjectionSurface must match platforms/<slug>`);
36450
+ }
36451
+ if (seenSkillProjectionSurfaces.has(platform.skillProjectionSurface)) {
36452
+ throw new Error(`platform registry: duplicate skillProjectionSurface "${platform.skillProjectionSurface}"; aliases must be unique`);
36453
+ }
36454
+ seenSkillProjectionSurfaces.add(platform.skillProjectionSurface);
36455
+ if (resolveSkillProjectionSurfaceHost(platform.skillProjectionSurface, registry) !== platform.buildAdapter.name) {
36456
+ throw new Error(`platform registry: ${label} skillProjectionSurface must map to buildAdapter.name`);
36457
+ }
36376
36458
  if (!VALID_LIST_OUTPUTS.has(platform.jsonProtocol?.listOutput)) {
36377
36459
  throw new Error(`platform registry: ${label} has illegal jsonProtocol.listOutput "${platform.jsonProtocol?.listOutput}"`);
36378
36460
  }
@@ -36500,7 +36582,7 @@ function resolveCapabilityConflicts(platform) {
36500
36582
  }
36501
36583
  return { hasConflict: false, conflicts: [] };
36502
36584
  }
36503
- var CLAUDE, CODEX, KIMI, CODEBUDDY, PLATFORMS, VALID_DISTRIBUTION_TYPES, VALID_ACTION_TYPES, VALID_SOURCE_FORMS, VALID_MARKETPLACE_REF_FORMS, VALID_LIST_OUTPUTS, VALID_CLI_OUTPUTS, VALID_ENTRY_VERSION_BINDING, VALID_INSTALL_METHODS, VALID_REF_STRENGTHS, VALID_OUTPUT_PROTOCOLS, VALID_IDENTITY_EVIDENCE, VALID_DEGRADATION_POLICIES;
36585
+ var CLAUDE, CODEX, KIMI, CODEBUDDY, PLATFORMS, VALID_DISTRIBUTION_TYPES, VALID_ACTION_TYPES, VALID_SOURCE_FORMS, VALID_MARKETPLACE_REF_FORMS, VALID_LIST_OUTPUTS, VALID_CLI_OUTPUTS, VALID_ENTRY_VERSION_BINDING, VALID_INSTALL_METHODS, VALID_REF_STRENGTHS, VALID_OUTPUT_PROTOCOLS, VALID_IDENTITY_EVIDENCE, VALID_DEGRADATION_POLICIES, SKILL_PROJECTION_SURFACE_PATTERN;
36504
36586
  var init_registry2 = __esm({
36505
36587
  async "src/platforms/registry.mjs"() {
36506
36588
  await init_kimi();
@@ -36515,6 +36597,7 @@ var init_registry2 = __esm({
36515
36597
  __name(codexCrossValidateListEntry, "codexCrossValidateListEntry");
36516
36598
  CLAUDE = Object.freeze({
36517
36599
  id: "claude",
36600
+ skillProjectionSurface: "platforms/claude-code",
36518
36601
  distributionType: "claude-plugin",
36519
36602
  actionType: "claude-marketplace-install",
36520
36603
  // Runtime adapter implementing this platform's marketplace-install action.
@@ -36579,6 +36662,7 @@ var init_registry2 = __esm({
36579
36662
  });
36580
36663
  CODEX = Object.freeze({
36581
36664
  id: "codex",
36665
+ skillProjectionSurface: "platforms/codex",
36582
36666
  distributionType: "codex-plugin",
36583
36667
  actionType: "codex-marketplace-install",
36584
36668
  adapter: "plugin-marketplace",
@@ -36639,6 +36723,7 @@ var init_registry2 = __esm({
36639
36723
  });
36640
36724
  KIMI = Object.freeze({
36641
36725
  id: "kimi",
36726
+ skillProjectionSurface: "platforms/kimi-code",
36642
36727
  distributionType: "kimi-plugin",
36643
36728
  actionType: "kimi-marketplace-install",
36644
36729
  adapter: "plugin-marketplace",
@@ -36698,6 +36783,7 @@ var init_registry2 = __esm({
36698
36783
  });
36699
36784
  CODEBUDDY = Object.freeze({
36700
36785
  id: "codebuddy",
36786
+ skillProjectionSurface: "platforms/workbuddy",
36701
36787
  distributionType: "codebuddy-plugin",
36702
36788
  actionType: "codebuddy-marketplace-install",
36703
36789
  adapter: "plugin-marketplace",
@@ -36780,7 +36866,9 @@ var init_registry2 = __esm({
36780
36866
  VALID_OUTPUT_PROTOCOLS = /* @__PURE__ */ new Set(["structured", "text", "none"]);
36781
36867
  VALID_IDENTITY_EVIDENCE = /* @__PURE__ */ new Set(["list-record", "install-output", "filesystem-payload", "human-attestation"]);
36782
36868
  VALID_DEGRADATION_POLICIES = /* @__PURE__ */ new Set(["block", "human-attestation", "human-attestation-with-fallback"]);
36869
+ SKILL_PROJECTION_SURFACE_PATTERN = /^platforms\/[a-z0-9]+(?:-[a-z0-9]+)*$/u;
36783
36870
  __name(getPlatform, "getPlatform");
36871
+ __name(resolveSkillProjectionSurfaceHost, "resolveSkillProjectionSurfaceHost");
36784
36872
  __name(assertRegistry, "assertRegistry");
36785
36873
  assertRegistry();
36786
36874
  __name(resolvePlatformRoute, "resolvePlatformRoute");
@@ -38632,7 +38720,7 @@ import { createRequire } from "node:module";
38632
38720
  import { dirname as dirname4, resolve as resolve9 } from "node:path";
38633
38721
  import { fileURLToPath as fileURLToPath2 } from "node:url";
38634
38722
  import { realpath as realpath8 } from "node:fs/promises";
38635
- import { readFileSync as readFileSync13, realpathSync as realpathSync2, lstatSync as lstatSync3 } from "node:fs";
38723
+ import { readFileSync as readFileSync12, realpathSync as realpathSync2, lstatSync as lstatSync3 } from "node:fs";
38636
38724
  import { createHash as createHash7 } from "node:crypto";
38637
38725
  function failPrebuildManifest(reason, message = "prebuilds manifest not readable") {
38638
38726
  throw new ReleaseError(
@@ -38672,7 +38760,7 @@ function readTrustedPrebuildManifest() {
38672
38760
  );
38673
38761
  }
38674
38762
  try {
38675
- return JSON.parse(readFileSync13(physicalManifest, "utf8"));
38763
+ return JSON.parse(readFileSync12(physicalManifest, "utf8"));
38676
38764
  } catch {
38677
38765
  failPrebuildManifest("READ_FAILED");
38678
38766
  }
@@ -38787,7 +38875,7 @@ function readStableAddon(options = {}) {
38787
38875
  if (!physicalAddonFile.startsWith(nativeBaseDir + "/") && physicalAddonFile !== nativeBaseDir) {
38788
38876
  throw new ReleaseError(SAFE_WRITE_UNAVAILABLE, "prebuilt addon physical path escapes base directory");
38789
38877
  }
38790
- const readFn = hooks.readFileSync || readFileSync13;
38878
+ const readFn = hooks.readFileSync || readFileSync12;
38791
38879
  let data;
38792
38880
  try {
38793
38881
  data = readFn(physicalAddonFile);
@@ -44332,8 +44420,13 @@ async function collectRegularFiles(dir, results) {
44332
44420
  }
44333
44421
  }
44334
44422
  function inferSurfaceHost(surfaceId, defaultHost) {
44335
- const match = ADAPTER_SURFACE_PATTERN.exec(surfaceId);
44336
- return match?.[1] ?? defaultHost;
44423
+ const adapterMatch = ADAPTER_SURFACE_PATTERN.exec(surfaceId);
44424
+ if (adapterMatch) return adapterMatch[1];
44425
+ const platformMatch = PLATFORM_SURFACE_PATTERN.exec(surfaceId);
44426
+ if (platformMatch) {
44427
+ return resolveSkillProjectionSurfaceHost(surfaceId) ?? `unknown-platform:${platformMatch[1]}`;
44428
+ }
44429
+ return defaultHost;
44337
44430
  }
44338
44431
  function receiptProjection(result) {
44339
44432
  return {
@@ -44442,6 +44535,7 @@ async function checkSkillResourceClosure({
44442
44535
  const pluginRoot = resolvePluginRoot(skill, scanRoot2);
44443
44536
  const surfaceId = relativeStable(scanRoot2, pluginRoot);
44444
44537
  const surfaceHost = inferSurfaceHost(surfaceId, host);
44538
+ const firstSkillOnSurface = !surfaceMap.has(surfaceId);
44445
44539
  const surface = surfaceMap.get(surfaceId) ?? {
44446
44540
  id: surfaceId,
44447
44541
  host: surfaceHost,
@@ -44451,6 +44545,19 @@ async function checkSkillResourceClosure({
44451
44545
  };
44452
44546
  surface.skillCount += 1;
44453
44547
  surfaceMap.set(surfaceId, surface);
44548
+ if (firstSkillOnSurface && PLATFORM_SURFACE_PATTERN.test(surfaceId) && resolveSkillProjectionSurfaceHost(surfaceId) === null) {
44549
+ findings.push({
44550
+ host: surfaceHost,
44551
+ surface: surfaceId,
44552
+ skill: null,
44553
+ line: null,
44554
+ reference: surfaceId,
44555
+ classification: CLASSIFICATION.UNKNOWN_PLATFORM_SURFACE,
44556
+ resolutionRoot: surfaceId,
44557
+ resolvedTarget: surfaceId,
44558
+ code: FINDING_CODE.UNKNOWN_PLATFORM_SURFACE
44559
+ });
44560
+ }
44454
44561
  if (!skillsBySurface.has(surfaceId)) skillsBySurface.set(surfaceId, []);
44455
44562
  skillsBySurface.get(surfaceId).push(skill);
44456
44563
  const content = await readFile12(resolve17(scanRoot2, skill), "utf8");
@@ -44644,13 +44751,14 @@ function evaluateDeclaredHostSurfaceCoverage(expectedHosts, surfaces) {
44644
44751
  }
44645
44752
  return { passed: missing.length === 0, missing };
44646
44753
  }
44647
- var CHECKER_VERSION, BARE_PREFIXES, EXPLICIT_PREFIXES, SOURCE_TREE_PATTERN, MACHINE_ABSOLUTE_PATTERN, HOME_DIRECTORY_PATTERN, ADAPTER_SURFACE_PATTERN, CLOSURE_RESOURCE_DIRS, GLOB_PATTERN, SOURCE_ONLY_MARKER, TRANSPORT_EXCLUSIONS, CLASSIFICATION, FINDING_CODE;
44754
+ var CHECKER_VERSION, BARE_PREFIXES, EXPLICIT_PREFIXES, SOURCE_TREE_PATTERN, MACHINE_ABSOLUTE_PATTERN, HOME_DIRECTORY_PATTERN, ADAPTER_SURFACE_PATTERN, PLATFORM_SURFACE_PATTERN, CLOSURE_RESOURCE_DIRS, GLOB_PATTERN, SOURCE_ONLY_MARKER, TRANSPORT_EXCLUSIONS, CLASSIFICATION, FINDING_CODE;
44648
44755
  var init_skill_resource_closure = __esm({
44649
- "src/core/skill-resource-closure.mjs"() {
44756
+ async "src/core/skill-resource-closure.mjs"() {
44650
44757
  init_src();
44651
44758
  init_errors3();
44652
44759
  init_frozen();
44653
- CHECKER_VERSION = "skill-resource-closure-v2";
44760
+ await init_registry2();
44761
+ CHECKER_VERSION = "skill-resource-closure-v3";
44654
44762
  BARE_PREFIXES = ["references/", "assets/", "schemas/", "examples/", "scripts/"];
44655
44763
  EXPLICIT_PREFIXES = [
44656
44764
  "<plugin-root>/",
@@ -44664,6 +44772,7 @@ var init_skill_resource_closure = __esm({
44664
44772
  MACHINE_ABSOLUTE_PATTERN = /^(?:\/(?:Users|home|root|tmp|var|etc|opt)(?:\/|$)|[A-Za-z]:[\\/])/u;
44665
44773
  HOME_DIRECTORY_PATTERN = /^(?:~|\$HOME|\$\{HOME\})\/.+/u;
44666
44774
  ADAPTER_SURFACE_PATTERN = /^adapters\/([^/]+)$/u;
44775
+ PLATFORM_SURFACE_PATTERN = /^platforms\/(.+)$/u;
44667
44776
  CLOSURE_RESOURCE_DIRS = Object.freeze(["references", "assets", "schemas", "examples", "scripts"]);
44668
44777
  GLOB_PATTERN = /[*?\[]/u;
44669
44778
  SOURCE_ONLY_MARKER = /(?:\bsource-only\b|仅源码包)/iu;
@@ -44681,7 +44790,8 @@ var init_skill_resource_closure = __esm({
44681
44790
  HOME_DIRECTORY: "home_directory",
44682
44791
  OUT_OF_BOUNDS: "out_of_bounds",
44683
44792
  RESOURCE_DRIFT: "resource_drift",
44684
- STALE_RESOURCE: "stale_resource"
44793
+ STALE_RESOURCE: "stale_resource",
44794
+ UNKNOWN_PLATFORM_SURFACE: "unknown_platform_surface"
44685
44795
  });
44686
44796
  FINDING_CODE = Object.freeze({
44687
44797
  SNAPSHOT_UNSAFE: "SNAPSHOT_UNSAFE",
@@ -44693,7 +44803,8 @@ var init_skill_resource_closure = __esm({
44693
44803
  OUT_OF_BOUNDS: "OUT_OF_BOUNDS",
44694
44804
  SYMLINK_NOT_ALLOWED: "SYMLINK_NOT_ALLOWED",
44695
44805
  RESOURCE_DRIFT: "RESOURCE_DRIFT",
44696
- STALE_RESOURCE: "STALE_RESOURCE"
44806
+ STALE_RESOURCE: "STALE_RESOURCE",
44807
+ UNKNOWN_PLATFORM_SURFACE: "UNKNOWN_PLATFORM_SURFACE"
44697
44808
  });
44698
44809
  __name(toPosix, "toPosix");
44699
44810
  __name(relativeStable, "relativeStable");
@@ -58983,15 +59094,15 @@ var require_polyfill = __commonJS({
58983
59094
  utimes
58984
59095
  } = __require("fs/promises");
58985
59096
  var {
58986
- dirname: dirname24,
59097
+ dirname: dirname23,
58987
59098
  isAbsolute: isAbsolute26,
58988
- join: join44,
59099
+ join: join43,
58989
59100
  parse: parse2,
58990
59101
  resolve: resolve39,
58991
59102
  sep: sep9,
58992
59103
  toNamespacedPath
58993
59104
  } = __require("path");
58994
- var { fileURLToPath: fileURLToPath5 } = __require("url");
59105
+ var { fileURLToPath: fileURLToPath4 } = __require("url");
58995
59106
  var defaultOptions = {
58996
59107
  dereference: false,
58997
59108
  errorOnExist: false,
@@ -59012,7 +59123,7 @@ var require_polyfill = __commonJS({
59012
59123
  }
59013
59124
  __name(cp3, "cp");
59014
59125
  function getValidatedPath(fileURLOrPath) {
59015
- const path28 = fileURLOrPath != null && fileURLOrPath.href && fileURLOrPath.origin ? fileURLToPath5(fileURLOrPath) : fileURLOrPath;
59126
+ const path28 = fileURLOrPath != null && fileURLOrPath.href && fileURLOrPath.origin ? fileURLToPath4(fileURLOrPath) : fileURLOrPath;
59016
59127
  return path28;
59017
59128
  }
59018
59129
  __name(getValidatedPath, "getValidatedPath");
@@ -59087,7 +59198,7 @@ var require_polyfill = __commonJS({
59087
59198
  }
59088
59199
  __name(getStats, "getStats");
59089
59200
  async function checkParentDir(destStat, src, dest, opts) {
59090
- const destParent = dirname24(dest);
59201
+ const destParent = dirname23(dest);
59091
59202
  const dirExists = await pathExists2(destParent);
59092
59203
  if (dirExists) {
59093
59204
  return getStatsForCopy(destStat, src, dest, opts);
@@ -59105,8 +59216,8 @@ var require_polyfill = __commonJS({
59105
59216
  }
59106
59217
  __name(pathExists2, "pathExists");
59107
59218
  async function checkParentPaths(src, srcStat, dest) {
59108
- const srcParent = resolve39(dirname24(src));
59109
- const destParent = resolve39(dirname24(dest));
59219
+ const srcParent = resolve39(dirname23(src));
59220
+ const destParent = resolve39(dirname23(dest));
59110
59221
  if (destParent === srcParent || destParent === parse2(destParent).root) {
59111
59222
  return;
59112
59223
  }
@@ -59266,8 +59377,8 @@ var require_polyfill = __commonJS({
59266
59377
  const dir = await readdir26(src);
59267
59378
  for (let i = 0; i < dir.length; i++) {
59268
59379
  const item = dir[i];
59269
- const srcItem = join44(src, item);
59270
- const destItem = join44(dest, item);
59380
+ const srcItem = join43(src, item);
59381
+ const destItem = join43(dest, item);
59271
59382
  const { destStat } = await checkPaths(srcItem, destItem, opts);
59272
59383
  await startCopy(destStat, srcItem, destItem, opts);
59273
59384
  }
@@ -59276,7 +59387,7 @@ var require_polyfill = __commonJS({
59276
59387
  async function onLink(destStat, src, dest) {
59277
59388
  let resolvedSrc = await readlink2(src);
59278
59389
  if (!isAbsolute26(resolvedSrc)) {
59279
- resolvedSrc = resolve39(dirname24(src), resolvedSrc);
59390
+ resolvedSrc = resolve39(dirname23(src), resolvedSrc);
59280
59391
  }
59281
59392
  if (!destStat) {
59282
59393
  return symlink(resolvedSrc, dest);
@@ -59291,7 +59402,7 @@ var require_polyfill = __commonJS({
59291
59402
  throw err;
59292
59403
  }
59293
59404
  if (!isAbsolute26(resolvedDest)) {
59294
- resolvedDest = resolve39(dirname24(dest), resolvedDest);
59405
+ resolvedDest = resolve39(dirname23(dest), resolvedDest);
59295
59406
  }
59296
59407
  if (isSrcSubdir(resolvedSrc, resolvedDest)) {
59297
59408
  throw new ERR_FS_CP_EINVAL({
@@ -59343,7 +59454,7 @@ var require_cp = __commonJS({
59343
59454
  // ../../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/with-temp-dir.js
59344
59455
  var require_with_temp_dir = __commonJS({
59345
59456
  "../../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/with-temp-dir.js"(exports, module) {
59346
- var { join: join44, sep: sep9 } = __require("path");
59457
+ var { join: join43, sep: sep9 } = __require("path");
59347
59458
  var getOptions = require_get_options();
59348
59459
  var { mkdir: mkdir31, mkdtemp: mkdtemp14, rm: rm20 } = __require("fs/promises");
59349
59460
  var withTempDir = /* @__PURE__ */ __name(async (root, fn, opts) => {
@@ -59351,7 +59462,7 @@ var require_with_temp_dir = __commonJS({
59351
59462
  copy: ["tmpPrefix"]
59352
59463
  });
59353
59464
  await mkdir31(root, { recursive: true });
59354
- const target = await mkdtemp14(join44(`${root}${sep9}`, options.tmpPrefix || ""));
59465
+ const target = await mkdtemp14(join43(`${root}${sep9}`, options.tmpPrefix || ""));
59355
59466
  let err;
59356
59467
  let result;
59357
59468
  try {
@@ -59376,13 +59487,13 @@ var require_with_temp_dir = __commonJS({
59376
59487
  var require_readdir_scoped = __commonJS({
59377
59488
  "../../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/readdir-scoped.js"(exports, module) {
59378
59489
  var { readdir: readdir26 } = __require("fs/promises");
59379
- var { join: join44 } = __require("path");
59490
+ var { join: join43 } = __require("path");
59380
59491
  var readdirScoped = /* @__PURE__ */ __name(async (dir) => {
59381
59492
  const results = [];
59382
59493
  for (const item of await readdir26(dir)) {
59383
59494
  if (item.startsWith("@")) {
59384
- for (const scopedItem of await readdir26(join44(dir, item))) {
59385
- results.push(join44(item, scopedItem));
59495
+ for (const scopedItem of await readdir26(join43(dir, item))) {
59496
+ results.push(join43(item, scopedItem));
59386
59497
  }
59387
59498
  } else {
59388
59499
  results.push(item);
@@ -59397,7 +59508,7 @@ var require_readdir_scoped = __commonJS({
59397
59508
  // ../../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/move-file.js
59398
59509
  var require_move_file = __commonJS({
59399
59510
  "../../node_modules/.pnpm/@npmcli+fs@4.0.0/node_modules/@npmcli/fs/lib/move-file.js"(exports, module) {
59400
- var { dirname: dirname24, join: join44, resolve: resolve39, relative: relative29, isAbsolute: isAbsolute26 } = __require("path");
59511
+ var { dirname: dirname23, join: join43, resolve: resolve39, relative: relative29, isAbsolute: isAbsolute26 } = __require("path");
59401
59512
  var fs = __require("fs/promises");
59402
59513
  var pathExists2 = /* @__PURE__ */ __name(async (path28) => {
59403
59514
  try {
@@ -59418,7 +59529,7 @@ var require_move_file = __commonJS({
59418
59529
  if (!options.overwrite && await pathExists2(destination)) {
59419
59530
  throw new Error(`The destination file exists: ${destination}`);
59420
59531
  }
59421
- await fs.mkdir(dirname24(destination), { recursive: true });
59532
+ await fs.mkdir(dirname23(destination), { recursive: true });
59422
59533
  try {
59423
59534
  await fs.rename(source, destination);
59424
59535
  } catch (error) {
@@ -59427,7 +59538,7 @@ var require_move_file = __commonJS({
59427
59538
  if (sourceStat.isDirectory()) {
59428
59539
  const files = await fs.readdir(source);
59429
59540
  await Promise.all(files.map(
59430
- (file) => moveFile(join44(source, file), join44(destination, file), options, false, symlinks)
59541
+ (file) => moveFile(join43(source, file), join43(destination, file), options, false, symlinks)
59431
59542
  ));
59432
59543
  } else if (sourceStat.isSymbolicLink()) {
59433
59544
  symlinks.push({ source, destination });
@@ -59446,7 +59557,7 @@ var require_move_file = __commonJS({
59446
59557
  }
59447
59558
  let targetStat = "file";
59448
59559
  try {
59449
- targetStat = await fs.stat(resolve39(dirname24(symSource), target));
59560
+ targetStat = await fs.stat(resolve39(dirname23(symSource), target));
59450
59561
  if (targetStat.isDirectory()) {
59451
59562
  targetStat = "junction";
59452
59563
  }
@@ -74680,7 +74791,7 @@ var require_index_min = __commonJS({
74680
74791
  var require_lib35 = __commonJS({
74681
74792
  "../../node_modules/.pnpm/which@5.0.0/node_modules/which/lib/index.js"(exports, module) {
74682
74793
  var { isexe, sync: isexeSync } = require_index_min();
74683
- var { join: join44, delimiter, sep: sep9, posix: posix3 } = __require("path");
74794
+ var { join: join43, delimiter, sep: sep9, posix: posix3 } = __require("path");
74684
74795
  var isWindows = process.platform === "win32";
74685
74796
  var rSlash = new RegExp(`[${posix3.sep}${sep9 === posix3.sep ? "" : sep9}]`.replace(/(\\)/g, "\\$1"));
74686
74797
  var rRel = new RegExp(`^\\.${rSlash.source}`);
@@ -74709,7 +74820,7 @@ var require_lib35 = __commonJS({
74709
74820
  var getPathPart = /* @__PURE__ */ __name((raw, cmd) => {
74710
74821
  const pathPart = /^".*"$/.test(raw) ? raw.slice(1, -1) : raw;
74711
74822
  const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "";
74712
- return prefix + join44(pathPart, cmd);
74823
+ return prefix + join43(pathPart, cmd);
74713
74824
  }, "getPathPart");
74714
74825
  var which = /* @__PURE__ */ __name(async (cmd, opt = {}) => {
74715
74826
  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
@@ -75848,7 +75959,7 @@ var require_lib37 = __commonJS({
75848
75959
  // ../../node_modules/.pnpm/npm-normalize-package-bin@4.0.0/node_modules/npm-normalize-package-bin/lib/index.js
75849
75960
  var require_lib38 = __commonJS({
75850
75961
  "../../node_modules/.pnpm/npm-normalize-package-bin@4.0.0/node_modules/npm-normalize-package-bin/lib/index.js"(exports, module) {
75851
- var { join: join44, basename: basename15 } = __require("path");
75962
+ var { join: join43, basename: basename15 } = __require("path");
75852
75963
  var normalize4 = /* @__PURE__ */ __name((pkg) => !pkg.bin ? removeBin(pkg) : typeof pkg.bin === "string" ? normalizeString(pkg) : Array.isArray(pkg.bin) ? normalizeArray(pkg) : typeof pkg.bin === "object" ? normalizeObject(pkg) : removeBin(pkg), "normalize");
75853
75964
  var normalizeString = /* @__PURE__ */ __name((pkg) => {
75854
75965
  if (!pkg.name) {
@@ -75873,11 +75984,11 @@ var require_lib38 = __commonJS({
75873
75984
  const clean = {};
75874
75985
  let hasBins = false;
75875
75986
  Object.keys(orig).forEach((binKey) => {
75876
- const base = join44("/", basename15(binKey.replace(/\\|:/g, "/"))).slice(1);
75987
+ const base = join43("/", basename15(binKey.replace(/\\|:/g, "/"))).slice(1);
75877
75988
  if (typeof orig[binKey] !== "string" || !base) {
75878
75989
  return;
75879
75990
  }
75880
- const binTarget = join44("/", orig[binKey].replace(/\\/g, "/")).replace(/\\/g, "/").slice(1);
75991
+ const binTarget = join43("/", orig[binKey].replace(/\\/g, "/")).replace(/\\/g, "/").slice(1);
75881
75992
  if (!binTarget) {
75882
75993
  return;
75883
75994
  }
@@ -76187,13 +76298,13 @@ var require_is = __commonJS({
76187
76298
  var require_find = __commonJS({
76188
76299
  "../../node_modules/.pnpm/@npmcli+git@6.0.3/node_modules/@npmcli/git/lib/find.js"(exports, module) {
76189
76300
  var is = require_is();
76190
- var { dirname: dirname24 } = __require("path");
76301
+ var { dirname: dirname23 } = __require("path");
76191
76302
  module.exports = async ({ cwd = process.cwd(), root } = {}) => {
76192
76303
  while (true) {
76193
76304
  if (await is({ cwd })) {
76194
76305
  return cwd;
76195
76306
  }
76196
- const next = dirname24(cwd);
76307
+ const next = dirname23(cwd);
76197
76308
  if (cwd === root || cwd === next) {
76198
76309
  return null;
76199
76310
  }
@@ -85881,12 +85992,12 @@ var require_url = __commonJS({
85881
85992
  "../../node_modules/.pnpm/tuf-js@3.1.0/node_modules/tuf-js/dist/utils/url.js"(exports) {
85882
85993
  "use strict";
85883
85994
  Object.defineProperty(exports, "__esModule", { value: true });
85884
- exports.join = join44;
85995
+ exports.join = join43;
85885
85996
  var url_1 = __require("url");
85886
- function join44(base, path28) {
85997
+ function join43(base, path28) {
85887
85998
  return new url_1.URL(ensureTrailingSlash(base) + removeLeadingSlash(path28)).toString();
85888
85999
  }
85889
- __name(join44, "join");
86000
+ __name(join43, "join");
85890
86001
  function ensureTrailingSlash(path28) {
85891
86002
  return path28.endsWith("/") ? path28 : path28 + "/";
85892
86003
  }
@@ -100696,7 +100807,7 @@ var init_prepare = __esm({
100696
100807
  init_evidence();
100697
100808
  await init_plan();
100698
100809
  init_digest();
100699
- init_skill_resource_closure();
100810
+ await init_skill_resource_closure();
100700
100811
  init_public_map();
100701
100812
  init_public_path();
100702
100813
  init_scan();
@@ -102718,7 +102829,7 @@ var init_publish = __esm({
102718
102829
  init_baseline2();
102719
102830
  init_previous_public_baseline();
102720
102831
  init_evidence();
102721
- init_skill_resource_closure();
102832
+ await init_skill_resource_closure();
102722
102833
  init_checkpoints();
102723
102834
  await init_run();
102724
102835
  init_errors3();
@@ -105265,7 +105376,7 @@ var init_verify = __esm({
105265
105376
  init_public_path();
105266
105377
  init_npm();
105267
105378
  init_verification_gates();
105268
- init_skill_resource_closure();
105379
+ await init_skill_resource_closure();
105269
105380
  init_checkpoints();
105270
105381
  init_installation_contract();
105271
105382
  init_npm_entry_closure();
@@ -105358,7 +105469,7 @@ ${registryTokenKey(normalizedRegistry)}=${token}
105358
105469
  }
105359
105470
  });
105360
105471
 
105361
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs
105472
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs
105362
105473
  function kitError(kind, message, extraDetails) {
105363
105474
  const values = Object.values(KIT_ERROR_KINDS);
105364
105475
  if (!values.includes(kind)) {
@@ -105377,7 +105488,7 @@ function refusalError(refusals, message, extraDetails) {
105377
105488
  }
105378
105489
  var KIT_ERROR_KINDS, KitError, REFUSED_MUTATION_FLAGS;
105379
105490
  var init_errors4 = __esm({
105380
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs"() {
105491
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs"() {
105381
105492
  init_src();
105382
105493
  KIT_ERROR_KINDS = Object.freeze({
105383
105494
  // scaffold
@@ -105473,13 +105584,13 @@ var init_errors4 = __esm({
105473
105584
  }
105474
105585
  });
105475
105586
 
105476
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs
105587
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs
105477
105588
  import { spawnSync as spawnSync2 } from "node:child_process";
105478
105589
  import { readFile as readFile30 } from "node:fs/promises";
105479
105590
  import path16 from "node:path";
105480
105591
  var GIT_STATUS_ARGS, GIT_LS_FILES_ARGS, GIT_CHECK_IGNORE_ARGS, GIT_READ_ONLY_ALLOWLIST;
105481
105592
  var init_gitprobe = __esm({
105482
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs"() {
105593
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs"() {
105483
105594
  GIT_STATUS_ARGS = Object.freeze([
105484
105595
  "--no-optional-locks",
105485
105596
  "-c",
@@ -105511,28 +105622,28 @@ var init_gitprobe = __esm({
105511
105622
  }
105512
105623
  });
105513
105624
 
105514
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs
105515
- import { readFileSync as readFileSync14 } from "node:fs";
105625
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs
105626
+ import { readFileSync as readFileSync13 } from "node:fs";
105516
105627
  import path17 from "node:path";
105517
105628
  import { fileURLToPath as fileURLToPath3 } from "node:url";
105518
105629
  var APACHE_2_TEXT, MIT_TEMPLATE;
105519
105630
  var init_licensing = __esm({
105520
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs"() {
105631
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs"() {
105521
105632
  init_src2();
105522
105633
  init_src();
105523
105634
  init_errors4();
105524
- APACHE_2_TEXT = readFileSync14(
105635
+ APACHE_2_TEXT = readFileSync13(
105525
105636
  new URL("./license-texts/Apache-2.0.txt", import.meta.url),
105526
105637
  "utf8"
105527
105638
  );
105528
- MIT_TEMPLATE = readFileSync14(
105639
+ MIT_TEMPLATE = readFileSync13(
105529
105640
  new URL("./license-texts/MIT.txt", import.meta.url),
105530
105641
  "utf8"
105531
105642
  );
105532
105643
  }
105533
105644
  });
105534
105645
 
105535
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs
105646
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs
105536
105647
  import { lstat as lstat25, readdir as readdir17, readFile as readFile31, stat as stat9 } from "node:fs/promises";
105537
105648
  import path18 from "node:path";
105538
105649
  async function resolveTargetRoot(rootInput) {
@@ -105685,7 +105796,7 @@ async function loadTargetFacts(root) {
105685
105796
  }
105686
105797
  var OPAQUE_DIRECTORIES, DEFAULT_HANDWRITTEN_PATTERNS;
105687
105798
  var init_workspace2 = __esm({
105688
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs"() {
105799
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs"() {
105689
105800
  init_errors4();
105690
105801
  OPAQUE_DIRECTORIES = Object.freeze([".git", "node_modules"]);
105691
105802
  DEFAULT_HANDWRITTEN_PATTERNS = Object.freeze([
@@ -105711,12 +105822,12 @@ var init_workspace2 = __esm({
105711
105822
  }
105712
105823
  });
105713
105824
 
105714
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs
105825
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs
105715
105826
  import { lstat as lstat26, readFile as readFile32 } from "node:fs/promises";
105716
105827
  import { TextDecoder as TextDecoder2 } from "node:util";
105717
105828
  var UTF8_STRICT_DECODER, MIGRATION_MANIFEST_SCHEMA_ID, MIGRATION_MANIFEST_STATES, EXCEPTION_REQUIRED_FIELDS, MIGRATION_STATES, REQUIRED_FOUNDATION_PACKAGES, VERIFICATION_EVIDENCE_KINDS;
105718
105829
  var init_migration = __esm({
105719
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs"() {
105830
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs"() {
105720
105831
  init_src();
105721
105832
  init_src2();
105722
105833
  init_workspace2();
@@ -105755,22 +105866,89 @@ var init_migration = __esm({
105755
105866
  }
105756
105867
  });
105757
105868
 
105758
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs
105759
- import { readFileSync as readFileSync15 } from "node:fs";
105760
- import { fileURLToPath as fileURLToPath4 } from "node:url";
105761
- import { dirname as dirname16, join as join27 } from "node:path";
105762
- var KIT_TOOL_NAME, __dirname, _kitPkg, KIT_VERSION, PROJECT_MANIFEST_PATH, MANAGED_LOCK_PATH, PROJECTION_MANIFEST_PATH, IDENTITY_RECORD_PATH, PUBLIC_BOUNDARY_DECLARATION_PATH, PLATFORM_SUBSET_DECLARATION_PATH;
105869
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/package.json
105870
+ var package_default2;
105871
+ var init_package2 = __esm({
105872
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/package.json"() {
105873
+ package_default2 = {
105874
+ "//": '~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".',
105875
+ author: "\u5E7F\u5DDE\u5E02\u98CE\u8377\u79D1\u6280\u6709\u9650\u516C\u53F8",
105876
+ bin: {
105877
+ "skill-family-kit": "./src/cli.mjs"
105878
+ },
105879
+ bugs: {
105880
+ url: "https://github.com/ifoohoo/skill-family-engineering-kit/issues"
105881
+ },
105882
+ dependencies: {
105883
+ "skill-family-contracts": "0.8.1",
105884
+ "skill-family-harness-node": "0.8.1"
105885
+ },
105886
+ description: "Build-time scaffold, adoption planning, projection, and checks.",
105887
+ engines: {
105888
+ node: ">=22.22.2 <23",
105889
+ pnpm: "10.30.0"
105890
+ },
105891
+ exports: {
105892
+ ".": "./src/index.mjs",
105893
+ "./candidate/quickstart-profile": "./candidate/index.mjs",
105894
+ "./profile-spi": "./profile-spi/index.mjs"
105895
+ },
105896
+ files: [
105897
+ "src",
105898
+ "candidate",
105899
+ "data",
105900
+ "profile-spi",
105901
+ "release-notes",
105902
+ "LICENSE",
105903
+ "README.md",
105904
+ "README.zh-CN.md",
105905
+ "CHANGELOG.md",
105906
+ "CHANGELOG.zh-CN.md",
105907
+ "NOTICE",
105908
+ "THIRD_PARTY_NOTICES",
105909
+ "SECURITY.md",
105910
+ "CONTRIBUTING.md",
105911
+ "CODE_OF_CONDUCT.md",
105912
+ "docs"
105913
+ ],
105914
+ homepage: "https://github.com/ifoohoo/skill-family-engineering-kit",
105915
+ license: "Apache-2.0",
105916
+ name: "skill-family-engineering-kit",
105917
+ private: false,
105918
+ repository: {
105919
+ type: "git",
105920
+ url: "https://github.com/ifoohoo/skill-family-engineering-kit.git"
105921
+ },
105922
+ type: "module",
105923
+ version: "0.8.1",
105924
+ scripts: {
105925
+ check: "node --test",
105926
+ test: "node --test"
105927
+ }
105928
+ };
105929
+ }
105930
+ });
105931
+
105932
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/version.mjs
105933
+ var KIT_VERSION;
105934
+ var init_version = __esm({
105935
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/version.mjs"() {
105936
+ init_package2();
105937
+ KIT_VERSION = package_default2.version;
105938
+ }
105939
+ });
105940
+
105941
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs
105942
+ var KIT_TOOL_NAME, PROJECT_MANIFEST_PATH, MANAGED_LOCK_PATH, PROJECTION_MANIFEST_PATH, IDENTITY_RECORD_PATH, PUBLIC_BOUNDARY_DECLARATION_PATH, PLATFORM_SUBSET_DECLARATION_PATH;
105763
105943
  var init_skeleton = __esm({
105764
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs"() {
105944
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs"() {
105765
105945
  init_src();
105766
105946
  init_src2();
105767
105947
  init_errors4();
105768
105948
  init_licensing();
105769
105949
  init_migration();
105950
+ init_version();
105770
105951
  KIT_TOOL_NAME = "skill-family-engineering-kit";
105771
- __dirname = dirname16(fileURLToPath4(import.meta.url));
105772
- _kitPkg = JSON.parse(readFileSync15(join27(__dirname, "..", "package.json"), "utf8"));
105773
- KIT_VERSION = _kitPkg.version;
105774
105952
  PROJECT_MANIFEST_PATH = "skill-family.project-manifest.json";
105775
105953
  MANAGED_LOCK_PATH = "skill-family.managed-file-lock.json";
105776
105954
  PROJECTION_MANIFEST_PATH = "skill-family.projection.json";
@@ -105780,12 +105958,12 @@ var init_skeleton = __esm({
105780
105958
  }
105781
105959
  });
105782
105960
 
105783
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs
105961
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs
105784
105962
  import { readdir as readdir18 } from "node:fs/promises";
105785
105963
  import path19 from "node:path";
105786
105964
  var IDENTITY_SOURCE_PRIORITY;
105787
105965
  var init_identity_check = __esm({
105788
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs"() {
105966
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs"() {
105789
105967
  init_src2();
105790
105968
  init_licensing();
105791
105969
  IDENTITY_SOURCE_PRIORITY = Object.freeze([
@@ -105801,11 +105979,11 @@ var init_identity_check = __esm({
105801
105979
  }
105802
105980
  });
105803
105981
 
105804
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs
105805
- import { readFileSync as readFileSync16 } from "node:fs";
105982
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs
105983
+ import { readFileSync as readFileSync14 } from "node:fs";
105806
105984
  var CHECK_CLASSES, DOCUMENT_STATES;
105807
105985
  var init_check = __esm({
105808
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs"() {
105986
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs"() {
105809
105987
  init_src();
105810
105988
  init_src2();
105811
105989
  init_errors4();
@@ -105834,10 +106012,10 @@ var init_check = __esm({
105834
106012
  }
105835
106013
  });
105836
106014
 
105837
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs
106015
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs
105838
106016
  import path20 from "node:path";
105839
106017
  var init_adopt_plan = __esm({
105840
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs"() {
106018
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs"() {
105841
106019
  init_src();
105842
106020
  init_src2();
105843
106021
  init_check();
@@ -105848,12 +106026,12 @@ var init_adopt_plan = __esm({
105848
106026
  }
105849
106027
  });
105850
106028
 
105851
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs
106029
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs
105852
106030
  import { lstat as lstat27 } from "node:fs/promises";
105853
106031
  import path21 from "node:path";
105854
106032
  var CORE_CHECK_SECURITY_KINDS, CLASS_READ_PATHS;
105855
106033
  var init_core_check = __esm({
105856
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs"() {
106034
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs"() {
105857
106035
  init_errors4();
105858
106036
  init_check();
105859
106037
  init_skeleton();
@@ -105889,10 +106067,10 @@ var init_core_check = __esm({
105889
106067
  }
105890
106068
  });
105891
106069
 
105892
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs
106070
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs
105893
106071
  var ENTRY_FORMS, ENTRY_SIDE_EFFECT_CLASSES;
105894
106072
  var init_entry_check = __esm({
105895
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs"() {
106073
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs"() {
105896
106074
  init_src2();
105897
106075
  init_src();
105898
106076
  init_errors4();
@@ -105903,11 +106081,11 @@ var init_entry_check = __esm({
105903
106081
  }
105904
106082
  });
105905
106083
 
105906
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs
106084
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs
105907
106085
  import { lstat as lstat28, readFile as readFile33 } from "node:fs/promises";
105908
106086
  import path22 from "node:path";
105909
106087
  var init_relock = __esm({
105910
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs"() {
106088
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs"() {
105911
106089
  init_src2();
105912
106090
  init_errors4();
105913
106091
  init_skeleton();
@@ -105917,7 +106095,7 @@ var init_relock = __esm({
105917
106095
  }
105918
106096
  });
105919
106097
 
105920
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs
106098
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs
105921
106099
  import {
105922
106100
  chmod as chmod4,
105923
106101
  lstat as lstat29,
@@ -107256,7 +107434,7 @@ async function runProjection({ root, manifest: manifestInput, candidateRoot, fau
107256
107434
  }
107257
107435
  var SHA256_HEX_PATTERN2, V2_KIND, OWNER_KIND, TARGET_FACTS_CONTROL_PATHS, PROJECTION_AUTHORITY_BINDING_KINDS, BASE64_PATTERN;
107258
107436
  var init_projection = __esm({
107259
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs"() {
107437
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs"() {
107260
107438
  init_src();
107261
107439
  init_src2();
107262
107440
  init_errors4();
@@ -107329,12 +107507,12 @@ var init_projection = __esm({
107329
107507
  }
107330
107508
  });
107331
107509
 
107332
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs
107510
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs
107333
107511
  import process5 from "node:process";
107334
107512
  import { lstat as lstat30, readFile as readFile35, realpath as realpath21, rm as rm11, stat as stat11 } from "node:fs/promises";
107335
107513
  import path24 from "node:path";
107336
107514
  var init_report2 = __esm({
107337
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs"() {
107515
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs"() {
107338
107516
  init_src2();
107339
107517
  init_src();
107340
107518
  init_errors4();
@@ -107342,11 +107520,11 @@ var init_report2 = __esm({
107342
107520
  }
107343
107521
  });
107344
107522
 
107345
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs
107523
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs
107346
107524
  import { lstat as lstat31, mkdir as mkdir20, readdir as readdir20 } from "node:fs/promises";
107347
107525
  import path25 from "node:path";
107348
107526
  var init_scaffold = __esm({
107349
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs"() {
107527
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs"() {
107350
107528
  init_src();
107351
107529
  init_src2();
107352
107530
  init_errors4();
@@ -107355,11 +107533,11 @@ var init_scaffold = __esm({
107355
107533
  }
107356
107534
  });
107357
107535
 
107358
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs
107536
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs
107359
107537
  import path26 from "node:path";
107360
107538
  var CAPABILITIES, DRIVERS, HOST_DRIVER_IDS;
107361
107539
  var init_host_drivers = __esm({
107362
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs"() {
107540
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs"() {
107363
107541
  init_src2();
107364
107542
  CAPABILITIES = Object.freeze(["cli", "version", "payload", "registry", "discover", "enabled", "reload", "smoke", "uninstall"]);
107365
107543
  DRIVERS = Object.freeze({
@@ -107370,19 +107548,19 @@ var init_host_drivers = __esm({
107370
107548
  }
107371
107549
  });
107372
107550
 
107373
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs
107551
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs
107374
107552
  var init_host_profiles = __esm({
107375
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs"() {
107553
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs"() {
107376
107554
  init_src();
107377
107555
  init_src2();
107378
107556
  init_errors4();
107379
107557
  }
107380
107558
  });
107381
107559
 
107382
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs
107560
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs
107383
107561
  import path27 from "node:path";
107384
107562
  var init_host2 = __esm({
107385
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs"() {
107563
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs"() {
107386
107564
  init_src();
107387
107565
  init_src2();
107388
107566
  init_errors4();
@@ -107391,10 +107569,10 @@ var init_host2 = __esm({
107391
107569
  }
107392
107570
  });
107393
107571
 
107394
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs
107572
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs
107395
107573
  var TOP_LEVEL_COMMANDS, FORBIDDEN_SIDE_EFFECTS, COMMAND_SIDE_EFFECTS, KIT_EXIT_CODES;
107396
107574
  var init_src3 = __esm({
107397
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs"() {
107575
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.8.1_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs"() {
107398
107576
  init_src();
107399
107577
  init_adopt_plan();
107400
107578
  init_check();
@@ -107460,7 +107638,7 @@ var init_src3 = __esm({
107460
107638
 
107461
107639
  // src/core/postpublish-projection.mjs
107462
107640
  import { chmod as chmod5, lstat as lstat32, mkdir as mkdir21, realpath as realpath22, writeFile as writeFile10 } from "node:fs/promises";
107463
- import { dirname as dirname17, join as join28 } from "node:path";
107641
+ import { dirname as dirname16, join as join27 } from "node:path";
107464
107642
  function fail4(message, details = {}) {
107465
107643
  throw new ReleaseError(POST_PUBLISH_VERIFY_FAILED, `public payload projection: ${message}`, details);
107466
107644
  }
@@ -107483,7 +107661,7 @@ async function projectPublicPayload({ executionWorktreeRoot, candidateRoot, publ
107483
107661
  if (!worktreeReal) {
107484
107662
  fail4("the execution worktree does not resolve to an existing directory", { executionWorktreeRoot });
107485
107663
  }
107486
- const payloadPath = join28(worktreeReal, PUBLIC_PAYLOAD_DIRNAME);
107664
+ const payloadPath = join27(worktreeReal, PUBLIC_PAYLOAD_DIRNAME);
107487
107665
  const preExisting = await lstat32(payloadPath).catch(() => null);
107488
107666
  if (preExisting) {
107489
107667
  fail4(`the payload root already exists in the tag worktree (${preExisting.isSymbolicLink() ? "symbolic link" : "pre-existing entry"})`, {
@@ -107501,8 +107679,8 @@ async function projectPublicPayload({ executionWorktreeRoot, candidateRoot, publ
107501
107679
  kind: cause?.details?.kind
107502
107680
  });
107503
107681
  }
107504
- const stagePath = join28(candidateRoot, entry.to);
107505
- await mkdir21(dirname17(stagePath), { recursive: true });
107682
+ const stagePath = join27(candidateRoot, entry.to);
107683
+ await mkdir21(dirname16(stagePath), { recursive: true });
107506
107684
  await writeFile10(stagePath, receipt.content);
107507
107685
  await chmod5(stagePath, receipt.mode);
107508
107686
  stagedResources.push({ path: entry.to, sha256: receipt.sha256, mode: receipt.mode });
@@ -107631,7 +107809,7 @@ import { execFile as execFileCb13 } from "node:child_process";
107631
107809
  import { promisify as promisify13 } from "node:util";
107632
107810
  import { mkdir as mkdir22, mkdtemp as mkdtemp8, readFile as readFile36, rm as rm12, writeFile as writeFile11 } from "node:fs/promises";
107633
107811
  import { tmpdir as tmpdir5 } from "node:os";
107634
- import { dirname as dirname18, join as join29 } from "node:path";
107812
+ import { dirname as dirname17, join as join28 } from "node:path";
107635
107813
  function defaultExec2(command2, args2, options = {}) {
107636
107814
  return execFileAsync3(command2, args2, { shell: false, encoding: "utf8", timeout: GIT_TIMEOUT_MS, ...options });
107637
107815
  }
@@ -107778,7 +107956,7 @@ async function deliverProposalGitPush(params) {
107778
107956
  const exec = typeof execOpt === "function" ? execOpt : defaultExec2;
107779
107957
  const serialized = `${JSON.stringify(proposalDocument, null, 2)}
107780
107958
  `;
107781
- const cloneDir = await mkdtemp8(join29(tmpdir5(), TMP_PREFIX));
107959
+ const cloneDir = await mkdtemp8(join28(tmpdir5(), TMP_PREFIX));
107782
107960
  try {
107783
107961
  try {
107784
107962
  await exec("git", ["clone", "--quiet", remoteUrl, cloneDir], {
@@ -107808,7 +107986,7 @@ async function deliverProposalGitPush(params) {
107808
107986
  } else {
107809
107987
  await git3(["checkout", "--quiet", "--orphan", branch]);
107810
107988
  }
107811
- const targetPath2 = join29(cloneDir, proposalPath);
107989
+ const targetPath2 = join28(cloneDir, proposalPath);
107812
107990
  let existing = null;
107813
107991
  try {
107814
107992
  existing = await readFile36(targetPath2, "utf8");
@@ -107828,7 +108006,7 @@ async function deliverProposalGitPush(params) {
107828
108006
  { remoteUrl: redactUrlCredentialsIfPresent(remoteUrl), proposalPath }
107829
108007
  );
107830
108008
  }
107831
- await mkdir22(dirname18(targetPath2), { recursive: true });
108009
+ await mkdir22(dirname17(targetPath2), { recursive: true });
107832
108010
  await writeFile11(targetPath2, serialized);
107833
108011
  await git3(["add", "-A"]);
107834
108012
  await git3([
@@ -107936,7 +108114,7 @@ async function deliverProposalLocalFile(params) {
107936
108114
  }
107937
108115
  const serialized = `${JSON.stringify(proposalDocument, null, 2)}
107938
108116
  `;
107939
- const targetPath2 = join29(workspaceRealpath, proposalPath);
108117
+ const targetPath2 = join28(workspaceRealpath, proposalPath);
107940
108118
  let existing = null;
107941
108119
  try {
107942
108120
  existing = await readFile36(targetPath2, "utf8");
@@ -107953,7 +108131,7 @@ async function deliverProposalLocalFile(params) {
107953
108131
  { workspace: workspaceRealpath, proposalPath }
107954
108132
  );
107955
108133
  }
107956
- await mkdir22(dirname18(targetPath2), { recursive: true });
108134
+ await mkdir22(dirname17(targetPath2), { recursive: true });
107957
108135
  await writeFile11(targetPath2, serialized);
107958
108136
  await git3(["add", "--", proposalPath]);
107959
108137
  await git3([
@@ -108078,7 +108256,7 @@ import { execFile as execFileCb14 } from "node:child_process";
108078
108256
  import { promisify as promisify14 } from "node:util";
108079
108257
  import { mkdtemp as mkdtemp9, rm as rm13 } from "node:fs/promises";
108080
108258
  import { tmpdir as tmpdir6 } from "node:os";
108081
- import { join as join30 } from "node:path";
108259
+ import { join as join29 } from "node:path";
108082
108260
  function defaultExec3(command2, args2, options = {}) {
108083
108261
  return execFileAsync4(command2, args2, { shell: false, encoding: "utf8", timeout: GIT_TIMEOUT_MS2, ...options });
108084
108262
  }
@@ -108198,7 +108376,7 @@ async function applyDownstreamGitChange(params) {
108198
108376
  let workspaceRealpath = null;
108199
108377
  if (hasRemoteUrl) {
108200
108378
  assertSafeRemoteUrl2(target.remoteUrl);
108201
- worktree = await mkdtemp9(join30(tmpdir6(), TMP_PREFIX2));
108379
+ worktree = await mkdtemp9(join29(tmpdir6(), TMP_PREFIX2));
108202
108380
  isClone = true;
108203
108381
  try {
108204
108382
  await exec("git", ["clone", "--quiet", target.remoteUrl, worktree], {
@@ -108436,7 +108614,7 @@ var init_preset_gitwrite = __esm({
108436
108614
 
108437
108615
  // src/core/marketplace-registry-entry.mjs
108438
108616
  import { readFile as readFile37 } from "node:fs/promises";
108439
- import { join as join31 } from "node:path";
108617
+ import { join as join30 } from "node:path";
108440
108618
  function updateRegistryEntry(registry, params) {
108441
108619
  const { entryKey, fieldsFromPlan, contextProjection } = params ?? {};
108442
108620
  if (!registry || typeof registry !== "object" || Array.isArray(registry)) {
@@ -108498,7 +108676,7 @@ async function executeMarketplaceRegistryEntryHook(params) {
108498
108676
  const version = contextProjection?.version ?? "unknown";
108499
108677
  let currentText = null;
108500
108678
  const mutate = /* @__PURE__ */ __name(async (worktree) => {
108501
- const absoluteRegistry = join31(worktree, registryPath);
108679
+ const absoluteRegistry = join30(worktree, registryPath);
108502
108680
  let raw;
108503
108681
  try {
108504
108682
  raw = await readFile37(absoluteRegistry, "utf8");
@@ -108554,7 +108732,7 @@ var init_marketplace_registry_entry = __esm({
108554
108732
 
108555
108733
  // src/core/docs-refresh-preset.mjs
108556
108734
  import { mkdir as mkdir23, readFile as readFile38, writeFile as writeFile12 } from "node:fs/promises";
108557
- import { dirname as dirname19, isAbsolute as isAbsolute22, join as join32, relative as relative26, resolve as resolve31 } from "node:path";
108735
+ import { dirname as dirname18, isAbsolute as isAbsolute22, join as join31, relative as relative26, resolve as resolve31 } from "node:path";
108558
108736
  function resolvePayloadSource(payloadDir, from) {
108559
108737
  const sourcePath = resolve31(payloadDir, from);
108560
108738
  const rel = relative26(payloadDir, sourcePath);
@@ -108603,8 +108781,8 @@ async function executeDocsRefreshHook(params) {
108603
108781
  const text = content.toString("utf8");
108604
108782
  content = Buffer.from(text.split(mapping.versionMarker).join(version), "utf8");
108605
108783
  }
108606
- const destination = join32(worktree, mapping.to);
108607
- await mkdir23(dirname19(destination), { recursive: true });
108784
+ const destination = join31(worktree, mapping.to);
108785
+ await mkdir23(dirname18(destination), { recursive: true });
108608
108786
  await writeFile12(destination, content);
108609
108787
  }
108610
108788
  }, "mutate");
@@ -108788,7 +108966,7 @@ import { promisify as promisify15 } from "node:util";
108788
108966
  import { realpath as realpath23, lstat as lstat33, mkdir as mkdir24, readFile as readFile39, rm as rm14 } from "node:fs/promises";
108789
108967
  import { mkdtemp as mkdtemp10 } from "node:fs/promises";
108790
108968
  import { tmpdir as tmpdir7 } from "node:os";
108791
- import { isAbsolute as isAbsolute23, join as join33, relative as relative27, resolve as resolve32 } from "node:path";
108969
+ import { isAbsolute as isAbsolute23, join as join32, relative as relative27, resolve as resolve32 } from "node:path";
108792
108970
  function defaultClock6() {
108793
108971
  return (/* @__PURE__ */ new Date()).toISOString();
108794
108972
  }
@@ -108916,7 +109094,7 @@ async function distributeRelease(options) {
108916
109094
  } else {
108917
109095
  await mkdir24(runDir, { recursive: true });
108918
109096
  }
108919
- const runPath = join33(runDir, "release-run.json");
109097
+ const runPath = join32(runDir, "release-run.json");
108920
109098
  const evidence = createEvidenceWriter({ runDir, command: "distribute", clock: clockFn });
108921
109099
  let lineageKnown = false;
108922
109100
  let sourceRunId = null;
@@ -109290,8 +109468,8 @@ async function distributeRelease(options) {
109290
109468
  }
109291
109469
  await evidence.append({ phase: "worktree", status: "started", tagCommit: postPublish.tagCommit });
109292
109470
  try {
109293
- tmpBase = await mkdtemp10(join33(tmpdir7(), "release-skill-distribute-"));
109294
- worktreePath = join33(tmpBase, "worktree");
109471
+ tmpBase = await mkdtemp10(join32(tmpdir7(), "release-skill-distribute-"));
109472
+ worktreePath = join32(tmpBase, "worktree");
109295
109473
  await exec("git", ["-C", root, "worktree", "add", "--detach", worktreePath, postPublish.tagCommit]);
109296
109474
  } catch (err) {
109297
109475
  await evidence.append({ phase: "worktree", status: "failed", error: boundedOutputTail(err?.stderr ?? err?.message) });
@@ -109440,7 +109618,7 @@ async function distributeRelease(options) {
109440
109618
  "public payload projection: the frozen plan declares no materialize hook and carries no non-empty executionBundle.publicFiles mapping; the payload cannot be staged"
109441
109619
  ));
109442
109620
  }
109443
- const candidateRoot = join33(tmpBase, "projection-candidate");
109621
+ const candidateRoot = join32(tmpBase, "projection-candidate");
109444
109622
  try {
109445
109623
  await mkdir24(candidateRoot, { recursive: true });
109446
109624
  const projected = await projectPublicPayload({
@@ -109772,7 +109950,7 @@ async function distributeRelease(options) {
109772
109950
  // resolution + release-workspace write exclusion). The detached
109773
109951
  // worktree is the execution worktree and never impersonates it.
109774
109952
  releaseWorkspaceRoot,
109775
- evidencePath: join33(runDir, "evidence.jsonl"),
109953
+ evidencePath: join32(runDir, "evidence.jsonl"),
109776
109954
  payloadDir: hookContextProjection.payloadDir,
109777
109955
  exec,
109778
109956
  hookRunner
@@ -110022,7 +110200,7 @@ import { promisify as promisify16 } from "node:util";
110022
110200
  import { mkdir as mkdir25, readFile as readFile40, realpath as realpath24, rm as rm15 } from "node:fs/promises";
110023
110201
  import { mkdtemp as mkdtemp11 } from "node:fs/promises";
110024
110202
  import { tmpdir as tmpdir8 } from "node:os";
110025
- import { join as join34 } from "node:path";
110203
+ import { join as join33 } from "node:path";
110026
110204
  function defaultClock7() {
110027
110205
  return (/* @__PURE__ */ new Date()).toISOString();
110028
110206
  }
@@ -110200,7 +110378,7 @@ async function postVerifyRelease(options) {
110200
110378
  } else {
110201
110379
  await mkdir25(runDir, { recursive: true });
110202
110380
  }
110203
- const runPath = join34(runDir, "release-run.json");
110381
+ const runPath = join33(runDir, "release-run.json");
110204
110382
  const evidence = createEvidenceWriter({ runDir, command: "postverify", clock: clockFn });
110205
110383
  let finalRecordWritten = false;
110206
110384
  const startedAt = clockFn();
@@ -110288,8 +110466,8 @@ async function postVerifyRelease(options) {
110288
110466
  }
110289
110467
  if (dryRun !== true) {
110290
110468
  try {
110291
- tmpBase = await mkdtemp11(join34(tmpdir8(), "release-skill-postverify-"));
110292
- worktreePath = join34(tmpBase, "worktree");
110469
+ tmpBase = await mkdtemp11(join33(tmpdir8(), "release-skill-postverify-"));
110470
+ worktreePath = join33(tmpBase, "worktree");
110293
110471
  await exec("git", ["-C", root, "worktree", "add", "--detach", worktreePath, postPublish.tagCommit]);
110294
110472
  } catch (err) {
110295
110473
  await evidence.append({
@@ -110395,7 +110573,7 @@ async function postVerifyRelease(options) {
110395
110573
  // resolution + release-workspace write exclusion). The detached
110396
110574
  // worktree is the execution worktree and never impersonates it.
110397
110575
  releaseWorkspaceRoot,
110398
- evidencePath: join34(runDir, "evidence.jsonl"),
110576
+ evidencePath: join33(runDir, "evidence.jsonl"),
110399
110577
  exec,
110400
110578
  hookRunner
110401
110579
  });
@@ -110814,9 +110992,9 @@ __export(ship_exports, {
110814
110992
  advanceShip: () => advanceShip
110815
110993
  });
110816
110994
  import { readFile as readFile42, lstat as lstat35, mkdir as mkdir26, rename as rename6, rm as rm17, writeFile as writeFile14 } from "node:fs/promises";
110817
- import { dirname as dirname20, resolve as resolve34 } from "node:path";
110995
+ import { dirname as dirname19, resolve as resolve34 } from "node:path";
110818
110996
  async function writeJsonAtomic(path28, value) {
110819
- await mkdir26(dirname20(path28), { recursive: true });
110997
+ await mkdir26(dirname19(path28), { recursive: true });
110820
110998
  const temp = `${path28}.${process.pid}.${Date.now()}.tmp`;
110821
110999
  const { stateDigest: _oldDigest, ...body } = value;
110822
111000
  const sealed = {
@@ -111835,7 +112013,7 @@ import { execFile as execFileCb20 } from "node:child_process";
111835
112013
  import { promisify as promisify20 } from "node:util";
111836
112014
  import { cp as cp2, copyFile, mkdir as mkdir27, mkdtemp as mkdtemp12, readdir as readdir21, rm as rm18, stat as stat12, writeFile as writeFile15 } from "node:fs/promises";
111837
112015
  import { tmpdir as tmpdir9 } from "node:os";
111838
- import { dirname as dirname21, isAbsolute as isAbsolute24, join as join35 } from "node:path";
112016
+ import { dirname as dirname20, isAbsolute as isAbsolute24, join as join34 } from "node:path";
111839
112017
  function classifyProbeFailure(text) {
111840
112018
  const output = typeof text === "string" ? text : "";
111841
112019
  if (AUTH_FAILURE_PATTERNS3.some((pattern) => pattern.test(output))) return "auth";
@@ -111956,7 +112134,7 @@ async function countFiles(dir) {
111956
112134
  const entries = await readdir21(dir, { withFileTypes: true });
111957
112135
  for (const entry of entries) {
111958
112136
  if (entry.name === ".git") continue;
111959
- const fullPath = join35(dir, entry.name);
112137
+ const fullPath = join34(dir, entry.name);
111960
112138
  if (entry.isDirectory()) {
111961
112139
  total += await countFiles(fullPath);
111962
112140
  } else if (entry.isFile() || entry.isSymbolicLink()) {
@@ -112068,7 +112246,7 @@ function createDistributeGitAdapter(deps = {}) {
112068
112246
  __name(assertMirrorActionShape, "assertMirrorActionShape");
112069
112247
  async function mirror(action) {
112070
112248
  assertMirrorActionShape(action);
112071
- const cloneDir = await mkdtempFn(join35(tmpRoot, TMP_PREFIX3));
112249
+ const cloneDir = await mkdtempFn(join34(tmpRoot, TMP_PREFIX3));
112072
112250
  const git3 = /* @__PURE__ */ __name((args2, options = {}) => exec("git", args2, { cwd: cloneDir, shell: false, timeout: GIT_TIMEOUT_MS3, ...options }), "git");
112073
112251
  try {
112074
112252
  await exec("git", ["clone", "--quiet", action.remoteUrl, cloneDir], {
@@ -112090,7 +112268,7 @@ function createDistributeGitAdapter(deps = {}) {
112090
112268
  }
112091
112269
  for (const entry of await readdir21(cloneDir)) {
112092
112270
  if (entry === ".git") continue;
112093
- await rm18(join35(cloneDir, entry), { recursive: true, force: true });
112271
+ await rm18(join34(cloneDir, entry), { recursive: true, force: true });
112094
112272
  }
112095
112273
  if (action.kind === "payload-mirror") {
112096
112274
  const payloadStat = await stat12(action.payloadDir).catch(() => null);
@@ -112105,13 +112283,13 @@ function createDistributeGitAdapter(deps = {}) {
112105
112283
  sha: action.dependency.sha ?? null,
112106
112284
  dependencyUrl: action.dependency.remoteUrl
112107
112285
  });
112108
- await mkdir27(join35(cloneDir, ".claude-plugin"), { recursive: true });
112109
- await writeFile15(join35(cloneDir, ".claude-plugin", "marketplace.json"), `${JSON.stringify(index, null, 2)}
112286
+ await mkdir27(join34(cloneDir, ".claude-plugin"), { recursive: true });
112287
+ await writeFile15(join34(cloneDir, ".claude-plugin", "marketplace.json"), `${JSON.stringify(index, null, 2)}
112110
112288
  `);
112111
112289
  }
112112
112290
  for (const file of action.staticFiles ?? []) {
112113
- await mkdir27(dirname21(join35(cloneDir, file.to)), { recursive: true });
112114
- await copyFile(file.sourcePath, join35(cloneDir, file.to));
112291
+ await mkdir27(dirname20(join34(cloneDir, file.to)), { recursive: true });
112292
+ await copyFile(file.sourcePath, join34(cloneDir, file.to));
112115
112293
  }
112116
112294
  const payloadFileCount = await countFiles(cloneDir);
112117
112295
  await git3(["add", "-A"]);
@@ -112341,7 +112519,7 @@ __export(attest_exports, {
112341
112519
  recordManualAttestation: () => recordManualAttestation
112342
112520
  });
112343
112521
  import { readFile as readFile43 } from "node:fs/promises";
112344
- import { resolve as resolve35, join as join36 } from "node:path";
112522
+ import { resolve as resolve35, join as join35 } from "node:path";
112345
112523
  async function validateInstalledConsumerClosure({
112346
112524
  root,
112347
112525
  platform,
@@ -112429,7 +112607,7 @@ async function recordManualAttestation(options = {}, injected = {}) {
112429
112607
  throw new ReleaseError(MISSING_PARAMETERS, "attest requires --result <passed|failed>");
112430
112608
  }
112431
112609
  const authorityDir = resolve35(root, ".release-skill", descriptor.directory, plugin);
112432
- const requirementPath = join36(authorityDir, descriptor.requirementFile);
112610
+ const requirementPath = join35(authorityDir, descriptor.requirementFile);
112433
112611
  let requirement;
112434
112612
  try {
112435
112613
  requirement = JSON.parse(await readFile43(requirementPath, "utf8"));
@@ -112482,7 +112660,7 @@ async function recordManualAttestation(options = {}, injected = {}) {
112482
112660
  extraInstalledPaths: installBinding.extraInstalledPaths
112483
112661
  } : {}
112484
112662
  };
112485
- const attestationPath = join36(authorityDir, requirement.attestationFile);
112663
+ const attestationPath = join35(authorityDir, requirement.attestationFile);
112486
112664
  await writeEvidenceAtomic(attestationPath, receipt);
112487
112665
  return {
112488
112666
  command: "attest",
@@ -112517,7 +112695,7 @@ var init_attest = __esm({
112517
112695
 
112518
112696
  // src/artifacts/policy.mjs
112519
112697
  import { readFile as readFile44 } from "node:fs/promises";
112520
- import { join as join37 } from "node:path";
112698
+ import { join as join36 } from "node:path";
112521
112699
  import { createHash as createHash16 } from "node:crypto";
112522
112700
  function validateArtifactPolicy(policy) {
112523
112701
  const ok = _validate(policy);
@@ -112613,7 +112791,7 @@ async function parseSafeYamlWithinRoot(root, policyPath) {
112613
112791
  }
112614
112792
  throw err;
112615
112793
  }
112616
- const fullPath = join37(root, policyPath);
112794
+ const fullPath = join36(root, policyPath);
112617
112795
  let content;
112618
112796
  try {
112619
112797
  content = await readFile44(fullPath, "utf8");
@@ -112728,7 +112906,7 @@ var init_policy = __esm({
112728
112906
 
112729
112907
  // src/artifacts/entry.mjs
112730
112908
  import { lstat as lstat36, readdir as readdir22, readFile as readFile45 } from "node:fs/promises";
112731
- import { join as join38 } from "node:path";
112909
+ import { join as join37 } from "node:path";
112732
112910
  import { promisify as promisify21 } from "node:util";
112733
112911
  import { execFile as execFile14 } from "node:child_process";
112734
112912
  function statToGitMode(stat16) {
@@ -112751,7 +112929,7 @@ async function enumerateTreeEntries(root, dirPath, relBase) {
112751
112929
  const items = await readdir22(dirPath, { withFileTypes: true });
112752
112930
  for (const item of items) {
112753
112931
  if (SKIP_DIRS2.has(item.name)) continue;
112754
- const absPath = join38(dirPath, item.name);
112932
+ const absPath = join37(dirPath, item.name);
112755
112933
  const relPath = relBase ? `${relBase}/${item.name}` : item.name;
112756
112934
  const st = await lstat36(absPath);
112757
112935
  if (st.isSymbolicLink()) {
@@ -112802,7 +112980,7 @@ async function readEntry({ root, path: path28, source = "worktree" } = {}) {
112802
112980
  if (source !== "worktree") {
112803
112981
  throw new ReleaseError(PATH_UNSAFE, `unsupported readEntry source: ${source}`, { source });
112804
112982
  }
112805
- const absPath = join38(root, path28);
112983
+ const absPath = join37(root, path28);
112806
112984
  let st;
112807
112985
  try {
112808
112986
  st = await lstat36(absPath);
@@ -113100,17 +113278,17 @@ var init_graph = __esm({
113100
113278
 
113101
113279
  // src/artifacts/producer-registry.mjs
113102
113280
  import { readFile as readFile46, readdir as readdir23, stat as stat13, mkdir as mkdir28, writeFile as writeFile16, rm as rm19 } from "node:fs/promises";
113103
- import { join as join39 } from "node:path";
113281
+ import { join as join38 } from "node:path";
113104
113282
  import { mkdtemp as mkdtemp13 } from "node:fs/promises";
113105
113283
  import { tmpdir as tmpdir10 } from "node:os";
113106
- import { readFileSync as readFileSync17 } from "node:fs";
113284
+ import { readFileSync as readFileSync15 } from "node:fs";
113107
113285
  function collectStaticImports(filePath, visited = /* @__PURE__ */ new Set()) {
113108
113286
  const abs = new URL(`file://${filePath}`).pathname;
113109
113287
  if (visited.has(abs)) return [];
113110
113288
  visited.add(abs);
113111
113289
  let source;
113112
113290
  try {
113113
- source = readFileSync17(abs, "utf-8");
113291
+ source = readFileSync15(abs, "utf-8");
113114
113292
  } catch {
113115
113293
  return [abs];
113116
113294
  }
@@ -113120,7 +113298,7 @@ function collectStaticImports(filePath, visited = /* @__PURE__ */ new Set()) {
113120
113298
  const dir = abs.replace(/\/[^/]*$/, "");
113121
113299
  while ((match = importRe.exec(source)) !== null) {
113122
113300
  const spec = match[1];
113123
- let resolved = join39(dir, spec);
113301
+ let resolved = join38(dir, spec);
113124
113302
  if (!resolved.endsWith(".mjs")) resolved += ".mjs";
113125
113303
  results.push(...collectStaticImports(resolved, visited));
113126
113304
  }
@@ -113128,7 +113306,7 @@ function collectStaticImports(filePath, visited = /* @__PURE__ */ new Set()) {
113128
113306
  }
113129
113307
  async function createBuiltInProducerRegistry() {
113130
113308
  const producers = /* @__PURE__ */ new Map();
113131
- const lockfilePath = join39(new URL("../../..", import.meta.url).pathname, "pnpm-lock.yaml");
113309
+ const lockfilePath = join38(new URL("../../..", import.meta.url).pathname, "pnpm-lock.yaml");
113132
113310
  let lockfileBytes;
113133
113311
  try {
113134
113312
  lockfileBytes = await readFile46(lockfilePath);
@@ -113168,7 +113346,7 @@ async function readDirEntries(dirPath, relBase = "") {
113168
113346
  const items = await readdir23(dirPath, { withFileTypes: true });
113169
113347
  for (const item of items) {
113170
113348
  if (item.name === ".git") continue;
113171
- const absPath = join39(dirPath, item.name);
113349
+ const absPath = join38(dirPath, item.name);
113172
113350
  const relPath = relBase ? `${relBase}/${item.name}` : item.name;
113173
113351
  const st = await stat13(absPath);
113174
113352
  if (st.isDirectory()) {
@@ -113191,11 +113369,11 @@ async function readDirEntries(dirPath, relBase = "") {
113191
113369
  async function materializeEntries(entries, dirPath) {
113192
113370
  for (const entry of entries) {
113193
113371
  if (!entry.path) continue;
113194
- const targetPath2 = join39(dirPath, entry.path);
113372
+ const targetPath2 = join38(dirPath, entry.path);
113195
113373
  if (entry.type === "tree" || entry.kind === "tree") {
113196
113374
  await mkdir28(targetPath2, { recursive: true });
113197
113375
  } else {
113198
- await mkdir28(join39(targetPath2, ".."), { recursive: true });
113376
+ await mkdir28(join38(targetPath2, ".."), { recursive: true });
113199
113377
  if (entry.content) {
113200
113378
  await writeFile16(targetPath2, entry.content);
113201
113379
  }
@@ -113239,7 +113417,7 @@ async function runProducerClosure({
113239
113417
  graph,
113240
113418
  inputSnapshot,
113241
113419
  artifactIds,
113242
- tempRootFactory = /* @__PURE__ */ __name(async () => mkdtemp13(join39(tmpdir10(), "producer-")), "tempRootFactory")
113420
+ tempRootFactory = /* @__PURE__ */ __name(async () => mkdtemp13(join38(tmpdir10(), "producer-")), "tempRootFactory")
113243
113421
  } = {}) {
113244
113422
  const generatedSet = new Set(graph.topologicalOrder);
113245
113423
  for (const id of artifactIds) {
@@ -113276,7 +113454,7 @@ async function runProducerClosure({
113276
113454
  if (inputEntries) {
113277
113455
  const first = inputEntries[0];
113278
113456
  if (first && first.path) {
113279
- const absPath = first.path.startsWith("/") ? first.path : join39(process.cwd(), first.path);
113457
+ const absPath = first.path.startsWith("/") ? first.path : join38(process.cwd(), first.path);
113280
113458
  try {
113281
113459
  const st = await stat13(absPath);
113282
113460
  if (st.isDirectory()) {
@@ -113702,7 +113880,7 @@ var init_state = __esm({
113702
113880
 
113703
113881
  // src/artifacts/artifact-plan.mjs
113704
113882
  import { writeFile as writeFile17, mkdir as mkdir29, readFile as readFile47, rename as rename7, open as open11 } from "node:fs/promises";
113705
- import { dirname as dirname22 } from "node:path";
113883
+ import { dirname as dirname21 } from "node:path";
113706
113884
  function assemblePlan({
113707
113885
  operation,
113708
113886
  bindings,
@@ -113725,7 +113903,7 @@ function assemblePlan({
113725
113903
  return Object.freeze(plan);
113726
113904
  }
113727
113905
  async function writePlan(plan, outputPath) {
113728
- const dir = dirname22(outputPath);
113906
+ const dir = dirname21(outputPath);
113729
113907
  await mkdir29(dir, { recursive: true });
113730
113908
  const tmpPath = `${outputPath}.tmp`;
113731
113909
  const content = JSON.stringify(plan, null, 2);
@@ -114391,7 +114569,7 @@ var init_adoption = __esm({
114391
114569
  import { promisify as promisify24 } from "node:util";
114392
114570
  import { execFile as execFile17 } from "node:child_process";
114393
114571
  import { readdir as readdir24, stat as stat14, readFile as readFile48 } from "node:fs/promises";
114394
- import { join as join40 } from "node:path";
114572
+ import { join as join39 } from "node:path";
114395
114573
  async function hasNestedGitRoots(root) {
114396
114574
  try {
114397
114575
  const { stdout } = await execFileAsync10(
@@ -114401,9 +114579,9 @@ async function hasNestedGitRoots(root) {
114401
114579
  );
114402
114580
  const dirs = stdout.split("\n").filter((s) => s.length > 0);
114403
114581
  for (const dir of dirs) {
114404
- const absDir = join40(root, dir);
114582
+ const absDir = join39(root, dir);
114405
114583
  try {
114406
- const nestedGit = join40(absDir, ".git");
114584
+ const nestedGit = join39(absDir, ".git");
114407
114585
  await stat14(nestedGit);
114408
114586
  return true;
114409
114587
  } catch {
@@ -114663,7 +114841,7 @@ var init_inspect = __esm({
114663
114841
 
114664
114842
  // src/artifacts/resolution.mjs
114665
114843
  import { mkdir as mkdir30, open as open12, readFile as readFile49, stat as stat15, lstat as lstat37, chmod as chmod6 } from "node:fs/promises";
114666
- import { join as join41, resolve as resolve36, relative as relative28, isAbsolute as isAbsolute25, basename as basename13 } from "node:path";
114844
+ import { join as join40, resolve as resolve36, relative as relative28, isAbsolute as isAbsolute25, basename as basename13 } from "node:path";
114667
114845
  function decodeBuffer(value, label) {
114668
114846
  if (value == null) return null;
114669
114847
  if (Buffer.isBuffer(value)) return value;
@@ -114765,9 +114943,9 @@ function assertSafeArtifactId(id) {
114765
114943
  }
114766
114944
  async function assertNoSymlinksInPath(root, artifactId) {
114767
114945
  const levels = [
114768
- join41(root, ".release-skill"),
114769
- join41(root, ".release-skill", "resolution"),
114770
- join41(root, ".release-skill", "resolution", artifactId)
114946
+ join40(root, ".release-skill"),
114947
+ join40(root, ".release-skill", "resolution"),
114948
+ join40(root, ".release-skill", "resolution", artifactId)
114771
114949
  ];
114772
114950
  for (const dir of levels) {
114773
114951
  try {
@@ -114946,13 +115124,13 @@ async function materializeResolution({
114946
115124
  const template = buildConflictTemplate(artifact.conflict ?? {}, decodedBuffers);
114947
115125
  const templateDigest = sha256Hex(template);
114948
115126
  await assertNoSymlinksInPath(root, artifactId);
114949
- const resolutionDir = join41(root, ".release-skill", "resolution", artifactId);
115127
+ const resolutionDir = join40(root, ".release-skill", "resolution", artifactId);
114950
115128
  await mkdir30(resolutionDir, { recursive: true, mode: 448 });
114951
115129
  const dirStat = await stat15(resolutionDir);
114952
115130
  if ((dirStat.mode & 511) !== 448) {
114953
115131
  await chmod6(resolutionDir, 448);
114954
115132
  }
114955
- const resolvedPath = join41(resolutionDir, `${artifactId}.resolved`);
115133
+ const resolvedPath = join40(resolutionDir, `${artifactId}.resolved`);
114956
115134
  const fh = await open12(resolvedPath, "wx", 384);
114957
115135
  try {
114958
115136
  await fh.write(template, 0, template.length);
@@ -115163,7 +115341,7 @@ __export(artifacts_exports, {
115163
115341
  runArtifactsCommand: () => runArtifactsCommand
115164
115342
  });
115165
115343
  import { readFile as readFile50 } from "node:fs/promises";
115166
- import { join as join42 } from "node:path";
115344
+ import { join as join41 } from "node:path";
115167
115345
  async function runArtifactsCommand({ subcommand, args: args2, root } = {}) {
115168
115346
  if (!VALID_SUBCOMMANDS.has(subcommand)) {
115169
115347
  throw new ReleaseError(
@@ -115306,7 +115484,7 @@ async function handleAdopt({ args: args2, root }) {
115306
115484
  if (artifact.path) {
115307
115485
  const entry = await readEntry({ root, path: artifact.path, source: "worktree" });
115308
115486
  if (entry.kind === "regular") {
115309
- const bytes = await readFile50(join42(root, artifact.path));
115487
+ const bytes = await readFile50(join41(root, artifact.path));
115310
115488
  currentEntries.set(artifact.id, Object.freeze({ ...entry, bytes, content: bytes }));
115311
115489
  } else {
115312
115490
  currentEntries.set(artifact.id, entry);
@@ -115383,7 +115561,7 @@ async function handleBootstrap({ args: args2, root }) {
115383
115561
  if (entry.kind !== "regular") {
115384
115562
  throw new ReleaseError("PLAN_STALE", `artifact is no longer a regular file: ${id}`, { id });
115385
115563
  }
115386
- const bytes = await readFile50(join42(root, artifactPath));
115564
+ const bytes = await readFile50(join41(root, artifactPath));
115387
115565
  currentEntries.set(id, Object.freeze({ ...entry, bytes, content: bytes }));
115388
115566
  }
115389
115567
  let replacementBytes;
@@ -116706,7 +116884,7 @@ Workflow Profiles:
116706
116884
  });
116707
116885
 
116708
116886
  // bin/release-skill-cli.mjs
116709
- import { basename as basename14, dirname as dirname23, join as join43, resolve as resolve38 } from "node:path";
116887
+ import { basename as basename14, dirname as dirname22, join as join42, resolve as resolve38 } from "node:path";
116710
116888
  import { execFile as execFileCb22 } from "node:child_process";
116711
116889
  import { promisify as promisify26 } from "node:util";
116712
116890
 
@@ -117002,10 +117180,10 @@ if (!command && (args.includes("--version") || args.includes("-v"))) {
117002
117180
  if (typeof __bundlePkg !== "undefined") {
117003
117181
  pkg = __bundlePkg;
117004
117182
  } else {
117005
- const { readFileSync: readFileSync18 } = await import("node:fs");
117006
- const { fileURLToPath: fileURLToPath5 } = await import("node:url");
117007
- const pkgPath = join43(dirname23(fileURLToPath5(import.meta.url)), "..", "package.json");
117008
- pkg = JSON.parse(readFileSync18(pkgPath, "utf8"));
117183
+ const { readFileSync: readFileSync16 } = await import("node:fs");
117184
+ const { fileURLToPath: fileURLToPath4 } = await import("node:url");
117185
+ const pkgPath = join42(dirname22(fileURLToPath4(import.meta.url)), "..", "package.json");
117186
+ pkg = JSON.parse(readFileSync16(pkgPath, "utf8"));
117009
117187
  }
117010
117188
  if (hasJson) {
117011
117189
  console.log(JSON.stringify({
@@ -117564,9 +117742,9 @@ if (command === "approve") {
117564
117742
  resolvedDigest = computePlanDigest2(planObj);
117565
117743
  }
117566
117744
  const resolvedPlanPath = resolve38(planPath);
117567
- const planDir = dirname23(resolvedPlanPath);
117568
- const releaseDir = basename14(planDir) === "plans" && basename14(resolvedPlanPath) === `${resolvedDigest}.json` ? dirname23(planDir) : planDir;
117569
- const approvalPath = outputPath ?? join43(releaseDir, "approval-record.json");
117745
+ const planDir = dirname22(resolvedPlanPath);
117746
+ const releaseDir = basename14(planDir) === "plans" && basename14(resolvedPlanPath) === `${resolvedDigest}.json` ? dirname22(planDir) : planDir;
117747
+ const approvalPath = outputPath ?? join42(releaseDir, "approval-record.json");
117570
117748
  const record = await approvePlan2({ planPath, expectedDigest: resolvedDigest, actor, outputPath: approvalPath });
117571
117749
  if (hasJson) {
117572
117750
  console.log(JSON.stringify(record, null, 2));