release-skill 0.9.3 → 0.9.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.
Files changed (53) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codebuddy-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +29 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +47 -15
  10. package/README.zh-CN.md +42 -15
  11. package/adapters/claude/.claude-plugin/marketplace.json +1 -1
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/consumer-contract-vectors.json +7 -7
  14. package/adapters/claude/bin/foundation-resource-binding.json +1 -1
  15. package/adapters/claude/bin/release-skill.bundle.mjs +651 -190
  16. package/adapters/claude/skills/release-help/SKILL.md +10 -3
  17. package/adapters/claude/skills/release-prepare/SKILL.md +11 -3
  18. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  19. package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
  20. package/adapters/codex/bin/foundation-resource-binding.json +1 -1
  21. package/adapters/codex/bin/release-skill.bundle.mjs +651 -190
  22. package/adapters/codex/skills/release-help/SKILL.md +10 -3
  23. package/adapters/codex/skills/release-prepare/SKILL.md +11 -3
  24. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  25. package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
  26. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  27. package/adapters/kimi/bin/release-skill.bundle.mjs +651 -190
  28. package/adapters/kimi/skills/release-help/SKILL.md +10 -3
  29. package/adapters/kimi/skills/release-prepare/SKILL.md +11 -3
  30. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  31. package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
  32. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  33. package/adapters/workbuddy/bin/release-skill.bundle.mjs +651 -190
  34. package/adapters/workbuddy/skills/release-help/SKILL.md +10 -3
  35. package/adapters/workbuddy/skills/release-prepare/SKILL.md +11 -3
  36. package/bin/consumer-contract-vectors.json +7 -7
  37. package/bin/foundation-resource-binding.json +1 -1
  38. package/bin/release-skill-cli.mjs +26 -2
  39. package/bin/release-skill.bundle.mjs +651 -190
  40. package/package.json +4 -4
  41. package/platform-manifest.json +4 -4
  42. package/references/.render-manifest.json +4 -4
  43. package/references/01-state-machine.md +18 -0
  44. package/references/02-project-config.md +20 -0
  45. package/skills/release-help/SKILL.md +10 -3
  46. package/skills/release-prepare/SKILL.md +11 -3
  47. package/skills-src/release-help/SKILL.md +10 -3
  48. package/skills-src/release-prepare/SKILL.md +11 -3
  49. package/src/commands/post-release-local.mjs +169 -16
  50. package/src/commands/prepare.mjs +183 -7
  51. package/src/commands/ship.mjs +164 -2
  52. package/src/core/foundation-plugin-verification.mjs +22 -2
  53. package/src/producers/foundation-resource-projection.mjs +3 -3
@@ -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.9.3"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.4"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "89f84bcd1ad3059c3590a490101b83f8fae25fe0f428345969fdc33f8600b18e";
14
+ const __bundleSourceDigest = "f9cf3c6e981293ac4d26c870433f0d8cad33e8a838e48d0d9c027f2cefe8bec6";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -48,16 +48,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
48
48
  mod
49
49
  ));
50
50
 
51
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/version.mjs
51
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/version.mjs
52
52
  var init_version = __esm({
53
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/version.mjs"() {
53
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/version.mjs"() {
54
54
  }
55
55
  });
56
56
 
57
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/stability.mjs
57
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/stability.mjs
58
58
  var CAPABILITY_MATURITY_LEVELS, CANDIDATE_PROMOTION_POLICY, HISTORICAL_CANDIDATE_MIGRATION_POLICY;
59
59
  var init_stability = __esm({
60
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/stability.mjs"() {
60
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/stability.mjs"() {
61
61
  CAPABILITY_MATURITY_LEVELS = Object.freeze([
62
62
  "experimental",
63
63
  "candidate",
@@ -100,7 +100,7 @@ var init_stability = __esm({
100
100
  }
101
101
  });
102
102
 
103
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/errors.mjs
103
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/errors.mjs
104
104
  import { readFileSync } from "node:fs";
105
105
  function deepFreeze(obj) {
106
106
  if (obj === null || typeof obj !== "object") return obj;
@@ -118,7 +118,7 @@ function isRegisteredErrorCode(code) {
118
118
  }
119
119
  var ERROR_REGISTRY, CODE_INDEX, ContractsError, ERROR_CODES;
120
120
  var init_errors = __esm({
121
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/errors.mjs"() {
121
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/errors.mjs"() {
122
122
  __name(deepFreeze, "deepFreeze");
123
123
  ERROR_REGISTRY = deepFreeze(JSON.parse(
124
124
  readFileSync(new URL("./error-codes.json", import.meta.url), "utf8")
@@ -140,7 +140,7 @@ var init_errors = __esm({
140
140
  }
141
141
  });
142
142
 
143
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/registry.mjs
143
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/registry.mjs
144
144
  import { readFileSync as readFileSync2 } from "node:fs";
145
145
  function deepFreeze2(obj) {
146
146
  if (obj === null || typeof obj !== "object") return obj;
@@ -164,7 +164,7 @@ function findSchemaByObject(object, registry = REGISTRY) {
164
164
  }
165
165
  var REGISTRY;
166
166
  var init_registry = __esm({
167
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/registry.mjs"() {
167
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/registry.mjs"() {
168
168
  init_errors();
169
169
  __name(deepFreeze2, "deepFreeze");
170
170
  REGISTRY = deepFreeze2(JSON.parse(
@@ -8245,7 +8245,7 @@ var require__ = __commonJS({
8245
8245
  }
8246
8246
  });
8247
8247
 
8248
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/validator.mjs
8248
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/validator.mjs
8249
8249
  import { readFileSync as readFileSync3 } from "node:fs";
8250
8250
  function detectDialect(schema2) {
8251
8251
  const uri = schema2 && schema2.$schema;
@@ -8374,7 +8374,7 @@ function validateDocument(document2, { schemaId, schema: schema2, dialect, polic
8374
8374
  }
8375
8375
  var import_ajv, import__, SUPPORTED_DIALECTS, DIALECT_CONSTRUCTORS, VALIDATION_POLICIES, DATE_TIME_PATTERN, instanceCache, packageSchemasCache;
8376
8376
  var init_validator = __esm({
8377
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/validator.mjs"() {
8377
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/validator.mjs"() {
8378
8378
  import_ajv = __toESM(require_ajv(), 1);
8379
8379
  import__ = __toESM(require__(), 1);
8380
8380
  init_errors();
@@ -8418,7 +8418,7 @@ var init_validator = __esm({
8418
8418
  }
8419
8419
  });
8420
8420
 
8421
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/kernel.mjs
8421
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/kernel.mjs
8422
8422
  import { readFileSync as readFileSync4 } from "node:fs";
8423
8423
  function deepFreeze3(obj) {
8424
8424
  if (obj === null || typeof obj !== "object") return obj;
@@ -8433,7 +8433,7 @@ function deepFreeze3(obj) {
8433
8433
  }
8434
8434
  var import_ajv2, KERNEL, paramsAjv;
8435
8435
  var init_kernel = __esm({
8436
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/kernel.mjs"() {
8436
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/kernel.mjs"() {
8437
8437
  import_ajv2 = __toESM(require_ajv(), 1);
8438
8438
  __name(deepFreeze3, "deepFreeze");
8439
8439
  KERNEL = deepFreeze3(JSON.parse(
@@ -8443,11 +8443,11 @@ var init_kernel = __esm({
8443
8443
  }
8444
8444
  });
8445
8445
 
8446
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/fixtures.mjs
8446
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/fixtures.mjs
8447
8447
  import { readdirSync, readFileSync as readFileSync5 } from "node:fs";
8448
8448
  var FIXTURE_CLASSES, FIXTURES_DIR;
8449
8449
  var init_fixtures = __esm({
8450
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/fixtures.mjs"() {
8450
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/fixtures.mjs"() {
8451
8451
  init_errors();
8452
8452
  init_registry();
8453
8453
  init_kernel();
@@ -8457,11 +8457,11 @@ var init_fixtures = __esm({
8457
8457
  }
8458
8458
  });
8459
8459
 
8460
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/checker.mjs
8460
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/checker.mjs
8461
8461
  import { readFileSync as readFileSync6 } from "node:fs";
8462
8462
  var RULES_DOCUMENT, CHECK_TYPES, MANDATORY_RULES, RULE_BUDGET;
8463
8463
  var init_checker = __esm({
8464
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/checker.mjs"() {
8464
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/checker.mjs"() {
8465
8465
  init_errors();
8466
8466
  init_registry();
8467
8467
  init_fixtures();
@@ -8480,7 +8480,7 @@ var init_checker = __esm({
8480
8480
  }
8481
8481
  });
8482
8482
 
8483
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/consumer-contract-vectors.mjs
8483
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/consumer-contract-vectors.mjs
8484
8484
  import { readFileSync as readFileSync7 } from "node:fs";
8485
8485
  function deepFreeze4(value) {
8486
8486
  if (value === null || typeof value !== "object" || Object.isFrozen(value)) return value;
@@ -8490,7 +8490,7 @@ function deepFreeze4(value) {
8490
8490
  }
8491
8491
  var VECTOR_SCHEMA, VECTOR_REGISTRY, VECTOR_SETS;
8492
8492
  var init_consumer_contract_vectors = __esm({
8493
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/consumer-contract-vectors.mjs"() {
8493
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/consumer-contract-vectors.mjs"() {
8494
8494
  init_errors();
8495
8495
  init_validator();
8496
8496
  VECTOR_SCHEMA = JSON.parse(readFileSync7(
@@ -8508,10 +8508,10 @@ var init_consumer_contract_vectors = __esm({
8508
8508
  }
8509
8509
  });
8510
8510
 
8511
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs
8511
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs
8512
8512
  var TOKEN_ESTIMATE_CONSUMPTION_ERROR_KIND, RECORD_KIND, TOKEN_ESTIMATE_CONSUMPTION, TOKEN_ESTIMATE_CONSUMPTION_REASONS;
8513
8513
  var init_token_estimate_consumption = __esm({
8514
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs"() {
8514
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/token-estimate-consumption.mjs"() {
8515
8515
  init_errors();
8516
8516
  TOKEN_ESTIMATE_CONSUMPTION_ERROR_KIND = "token-estimate-consumption-failed";
8517
8517
  RECORD_KIND = "skill-family.token-estimate-record";
@@ -8543,7 +8543,7 @@ var init_token_estimate_consumption = __esm({
8543
8543
  }
8544
8544
  });
8545
8545
 
8546
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/audit-surface.mjs
8546
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/audit-surface.mjs
8547
8547
  import { createHash } from "node:crypto";
8548
8548
  import { readFileSync as readFileSync8 } from "node:fs";
8549
8549
  function canonicalJson(value) {
@@ -8582,7 +8582,7 @@ function digestDocument(value, { algorithm = "sha256" } = {}) {
8582
8582
  }
8583
8583
  var AUDIT_DIGEST_ALGORITHMS, BASELINE_PIN_KINDS;
8584
8584
  var init_audit_surface = __esm({
8585
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/audit-surface.mjs"() {
8585
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/audit-surface.mjs"() {
8586
8586
  init_errors();
8587
8587
  init_registry();
8588
8588
  init_kernel();
@@ -8599,19 +8599,19 @@ var init_audit_surface = __esm({
8599
8599
  }
8600
8600
  });
8601
8601
 
8602
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/source-authority.mjs
8602
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/source-authority.mjs
8603
8603
  var SUBJECT_KEYS;
8604
8604
  var init_source_authority = __esm({
8605
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/source-authority.mjs"() {
8605
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/source-authority.mjs"() {
8606
8606
  init_validator();
8607
8607
  SUBJECT_KEYS = Object.freeze(["filename", "packageName", "sha256", "version"]);
8608
8608
  }
8609
8609
  });
8610
8610
 
8611
- // ../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/index.mjs
8611
+ // ../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/index.mjs
8612
8612
  var CONTRACT_OBJECTS, CONTRACT_BOUNDARY;
8613
8613
  var init_src = __esm({
8614
- "../../node_modules/.pnpm/skill-family-contracts@0.15.0/node_modules/skill-family-contracts/src/index.mjs"() {
8614
+ "../../node_modules/.pnpm/skill-family-contracts@0.16.0/node_modules/skill-family-contracts/src/index.mjs"() {
8615
8615
  init_stability();
8616
8616
  init_errors();
8617
8617
  init_registry();
@@ -8677,7 +8677,7 @@ var init_src = __esm({
8677
8677
  }
8678
8678
  });
8679
8679
 
8680
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs
8680
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs
8681
8681
  function mechanismError(kind, message, extraDetails) {
8682
8682
  const values = Object.values(HARNESS_ERROR_KINDS);
8683
8683
  if (!values.includes(kind)) {
@@ -8688,7 +8688,7 @@ function mechanismError(kind, message, extraDetails) {
8688
8688
  }
8689
8689
  var HARNESS_ERROR_KINDS, HarnessError;
8690
8690
  var init_errors2 = __esm({
8691
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs"() {
8691
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/errors.mjs"() {
8692
8692
  init_src();
8693
8693
  HARNESS_ERROR_KINDS = Object.freeze({
8694
8694
  INVALID_PATH: "invalid-path",
@@ -8765,7 +8765,7 @@ var init_errors2 = __esm({
8765
8765
  }
8766
8766
  });
8767
8767
 
8768
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs
8768
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs
8769
8769
  import { lstat, readFile, realpath, stat } from "node:fs/promises";
8770
8770
  import path from "node:path";
8771
8771
  import process2 from "node:process";
@@ -8996,7 +8996,7 @@ async function readFileContained(root, relPath, { encoding } = {}) {
8996
8996
  }
8997
8997
  var WINDOWS_DRIVE_PATTERN, WINDOWS_UNC_PATTERN, POSIX_UNC_PATTERN, ANCHOR_REALPATH_ATTEMPTS, testHooks;
8998
8998
  var init_paths = __esm({
8999
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs"() {
8999
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/paths.mjs"() {
9000
9000
  init_errors2();
9001
9001
  WINDOWS_DRIVE_PATTERN = /^[A-Za-z]:/;
9002
9002
  WINDOWS_UNC_PATTERN = /^\\\\/;
@@ -9015,7 +9015,7 @@ var init_paths = __esm({
9015
9015
  }
9016
9016
  });
9017
9017
 
9018
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs
9018
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs
9019
9019
  import { createHash as createHash2 } from "node:crypto";
9020
9020
  import path2 from "node:path";
9021
9021
  function digestBytes(bytes) {
@@ -9113,7 +9113,7 @@ async function computeResourceClosure({ root, resources } = {}) {
9113
9113
  }
9114
9114
  var CLOSURE_KIND, CLOSURE_SCHEMA_VERSION, DIGEST_ALGORITHM, ROLES;
9115
9115
  var init_closure = __esm({
9116
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs"() {
9116
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/closure.mjs"() {
9117
9117
  init_errors2();
9118
9118
  init_paths();
9119
9119
  CLOSURE_KIND = "skill-family.resource-closure";
@@ -9126,7 +9126,7 @@ var init_closure = __esm({
9126
9126
  }
9127
9127
  });
9128
9128
 
9129
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/native/loader.mjs
9129
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/native/loader.mjs
9130
9130
  import { createHash as createHash3 } from "node:crypto";
9131
9131
  import { constants as FS_CONSTANTS } from "node:fs";
9132
9132
  import { lstat as lstat2, open, readFile as readFile2, readdir, realpath as realpath2 } from "node:fs/promises";
@@ -9209,7 +9209,7 @@ async function loadNativeBoundReadAddon() {
9209
9209
  }
9210
9210
  var PACKAGE_ROOT, MANIFEST_PATH, SHA256_PATTERN, EXPECTED_EXPORTS, PLATFORM_KEYS;
9211
9211
  var init_loader = __esm({
9212
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/native/loader.mjs"() {
9212
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/native/loader.mjs"() {
9213
9213
  PACKAGE_ROOT = path3.dirname(fileURLToPath(import.meta.url));
9214
9214
  MANIFEST_PATH = path3.join(PACKAGE_ROOT, "prebuild-manifest.json");
9215
9215
  SHA256_PATTERN = /^[0-9a-f]{64}$/u;
@@ -9224,7 +9224,7 @@ var init_loader = __esm({
9224
9224
  }
9225
9225
  });
9226
9226
 
9227
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/bound-read.mjs
9227
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/bound-read.mjs
9228
9228
  import { constants as FS_CONSTANTS2 } from "node:fs";
9229
9229
  import { lstat as lstat3, open as open2, realpath as realpath3 } from "node:fs/promises";
9230
9230
  import path4 from "node:path";
@@ -9449,7 +9449,7 @@ async function readFileBound(root, relPath, { rootBinding, encoding, expectedSha
9449
9449
  }
9450
9450
  var SHA256_PATTERN2, ROOT_BINDING_KIND, ROOT_BINDING_BASIS, MEMBER_POLICY_FAILURE_REASONS, MEMBER_POLICY_FAILURE_REASON_SET;
9451
9451
  var init_bound_read = __esm({
9452
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/bound-read.mjs"() {
9452
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/bound-read.mjs"() {
9453
9453
  init_src();
9454
9454
  init_closure();
9455
9455
  init_errors2();
@@ -9481,7 +9481,7 @@ var init_bound_read = __esm({
9481
9481
  }
9482
9482
  });
9483
9483
 
9484
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/filesystem-observation.mjs
9484
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/filesystem-observation.mjs
9485
9485
  import path5 from "node:path";
9486
9486
  import { lstat as lstat4, readdir as readdir2, readlink } from "node:fs/promises";
9487
9487
  function compareUnicodeCodePoints(left, right) {
@@ -9705,7 +9705,7 @@ async function observeFilesystemTree({ root, rootBinding, symlinkPolicy } = {})
9705
9705
  }
9706
9706
  var SHA256_PATTERN3, SYMLINK_POLICY_KEYS;
9707
9707
  var init_filesystem_observation = __esm({
9708
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/filesystem-observation.mjs"() {
9708
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/filesystem-observation.mjs"() {
9709
9709
  init_src();
9710
9710
  init_closure();
9711
9711
  init_errors2();
@@ -9725,7 +9725,7 @@ var init_filesystem_observation = __esm({
9725
9725
  }
9726
9726
  });
9727
9727
 
9728
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/executable-identity.mjs
9728
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/executable-identity.mjs
9729
9729
  import { lstat as lstat5, readlink as readlink2 } from "node:fs/promises";
9730
9730
  import path6 from "node:path";
9731
9731
  import { TextDecoder as TextDecoder2 } from "node:util";
@@ -10127,7 +10127,7 @@ async function observeExecutableIdentity(input = {}) {
10127
10127
  }
10128
10128
  var POSIX, SHA256_PATTERN4, MAX_SYMLINK_DEPTH, MAX_SYMLINK_BYTES, ROOT_BINDING_KEYS, INPUT_KEYS, LOOKUP_KEYS, WINDOWS_DRIVE, decoder;
10129
10129
  var init_executable_identity = __esm({
10130
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/executable-identity.mjs"() {
10130
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/executable-identity.mjs"() {
10131
10131
  init_src();
10132
10132
  init_closure();
10133
10133
  init_errors2();
@@ -10176,7 +10176,7 @@ var init_executable_identity = __esm({
10176
10176
  }
10177
10177
  });
10178
10178
 
10179
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs
10179
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs
10180
10180
  import { constants as FS_CONSTANTS3 } from "node:fs";
10181
10181
  import { lstat as lstat6, open as open3 } from "node:fs/promises";
10182
10182
  function sameIdentity(left, right) {
@@ -10277,7 +10277,7 @@ async function readFileStrict(root, relPath, { encoding, expectedSha256 } = {})
10277
10277
  }
10278
10278
  var SHA256_HEX_PATTERN;
10279
10279
  var init_strict_read = __esm({
10280
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs"() {
10280
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/strict-read.mjs"() {
10281
10281
  init_closure();
10282
10282
  init_errors2();
10283
10283
  init_paths();
@@ -10287,7 +10287,7 @@ var init_strict_read = __esm({
10287
10287
  }
10288
10288
  });
10289
10289
 
10290
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs
10290
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs
10291
10291
  function redactUrlCredentials(value) {
10292
10292
  let url;
10293
10293
  if (value instanceof URL) {
@@ -10307,13 +10307,13 @@ function redactUrlCredentials(value) {
10307
10307
  }
10308
10308
  var REDACTED_URL_PLACEHOLDER;
10309
10309
  var init_url_redaction = __esm({
10310
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs"() {
10310
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/url-redaction.mjs"() {
10311
10311
  REDACTED_URL_PLACEHOLDER = "[redacted-url]";
10312
10312
  __name(redactUrlCredentials, "redactUrlCredentials");
10313
10313
  }
10314
10314
  });
10315
10315
 
10316
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs
10316
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs
10317
10317
  import { createHash as createHash4, randomBytes } from "node:crypto";
10318
10318
  import { constants as FS_CONSTANTS4 } from "node:fs";
10319
10319
  import { link, lstat as lstat7, mkdir, open as open4, realpath as realpath4, rename, rm, unlink } from "node:fs/promises";
@@ -10778,7 +10778,7 @@ async function writeFileAtomic(root, relPath, data, { mode = 420 } = {}) {
10778
10778
  }
10779
10779
  var testHooks2;
10780
10780
  var init_atomic = __esm({
10781
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs"() {
10781
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/atomic.mjs"() {
10782
10782
  init_errors2();
10783
10783
  init_paths();
10784
10784
  testHooks2 = null;
@@ -10804,7 +10804,7 @@ var init_atomic = __esm({
10804
10804
  }
10805
10805
  });
10806
10806
 
10807
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs
10807
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs
10808
10808
  import { createHash as createHash5, randomBytes as randomBytes2 } from "node:crypto";
10809
10809
  import { constants as FS_CONSTANTS5 } from "node:fs";
10810
10810
  import { lstat as lstat8, open as open5, realpath as realpath5, unlink as unlink2 } from "node:fs/promises";
@@ -10962,7 +10962,7 @@ async function recoverFilesystemLock(root, relPath, { expectedTokenDigest, confi
10962
10962
  }
10963
10963
  var TOKEN_PATTERN;
10964
10964
  var init_token_lock = __esm({
10965
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs"() {
10965
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-lock.mjs"() {
10966
10966
  init_errors2();
10967
10967
  init_atomic();
10968
10968
  init_paths();
@@ -10981,7 +10981,7 @@ var init_token_lock = __esm({
10981
10981
  }
10982
10982
  });
10983
10983
 
10984
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs
10984
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs
10985
10985
  import { createHash as createHash6 } from "node:crypto";
10986
10986
  import { lstat as lstat9, mkdir as mkdir2, mkdtemp, readdir as readdir3, readFile as readFile3, rm as rm2, writeFile } from "node:fs/promises";
10987
10987
  import os from "node:os";
@@ -11127,7 +11127,7 @@ async function materializeBaseline({ baselineDir, baselineDigest, prefix = "sf-b
11127
11127
  }
11128
11128
  var TEST_HOOKS, DIGEST_PATTERN;
11129
11129
  var init_baseline = __esm({
11130
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs"() {
11130
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/baseline.mjs"() {
11131
11131
  init_errors2();
11132
11132
  TEST_HOOKS = { beforePostDigest: void 0 };
11133
11133
  __name(runTestHook3, "runTestHook");
@@ -11139,7 +11139,7 @@ var init_baseline = __esm({
11139
11139
  }
11140
11140
  });
11141
11141
 
11142
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs
11142
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs
11143
11143
  import fsPromises from "node:fs/promises";
11144
11144
  import os2 from "node:os";
11145
11145
  import path10 from "node:path";
@@ -11204,7 +11204,7 @@ async function withTemporaryWorkspace(fn, options) {
11204
11204
  }
11205
11205
  var CLEANUP_OPTIONS, TemporaryWorkspace;
11206
11206
  var init_workspace = __esm({
11207
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs"() {
11207
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/workspace.mjs"() {
11208
11208
  init_baseline();
11209
11209
  init_errors2();
11210
11210
  init_paths();
@@ -11323,28 +11323,28 @@ var init_workspace = __esm({
11323
11323
  }
11324
11324
  });
11325
11325
 
11326
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs
11326
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs
11327
11327
  import path11 from "node:path";
11328
11328
  var init_chokepoint = __esm({
11329
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs"() {
11329
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/chokepoint.mjs"() {
11330
11330
  init_errors2();
11331
11331
  init_paths();
11332
11332
  }
11333
11333
  });
11334
11334
 
11335
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs
11335
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs
11336
11336
  var init_validation = __esm({
11337
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs"() {
11337
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/validation.mjs"() {
11338
11338
  init_src();
11339
11339
  init_errors2();
11340
11340
  }
11341
11341
  });
11342
11342
 
11343
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs
11343
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs
11344
11344
  import path12 from "node:path";
11345
11345
  var POLICY_SCHEMA_ID;
11346
11346
  var init_surface_scan = __esm({
11347
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs"() {
11347
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/surface-scan.mjs"() {
11348
11348
  init_src();
11349
11349
  init_errors2();
11350
11350
  init_paths();
@@ -11353,12 +11353,12 @@ var init_surface_scan = __esm({
11353
11353
  }
11354
11354
  });
11355
11355
 
11356
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs
11356
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs
11357
11357
  import path13 from "node:path";
11358
11358
  import { readFileSync as readFileSync9, readdirSync as readdirSync2, statSync } from "node:fs";
11359
11359
  var WRITE_FS_VERBS, WRITE_FS_APIS, DECLARED_READ_SURFACE_RULES, RESULT_GUARANTEES;
11360
11360
  var init_declared_read_surface = __esm({
11361
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs"() {
11361
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/declared-read-surface.mjs"() {
11362
11362
  init_errors2();
11363
11363
  WRITE_FS_VERBS = ["writeFile", "appendFile", "mkdir", "rm", "unlink", "rename", "copyFile"];
11364
11364
  WRITE_FS_APIS = WRITE_FS_VERBS.map((verb) => `${verb}Sync`).concat([
@@ -33492,7 +33492,7 @@ var require_dist2 = __commonJS({
33492
33492
  }
33493
33493
  });
33494
33494
 
33495
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs
33495
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs
33496
33496
  import { mkdtempSync, rmSync, writeFileSync, lstatSync, readlinkSync } from "node:fs";
33497
33497
  import os3 from "node:os";
33498
33498
  import path14 from "node:path";
@@ -33780,7 +33780,7 @@ function scanTreeJsonContent(ctx, relPath, bytes) {
33780
33780
  }
33781
33781
  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;
33782
33782
  var init_structured_scan = __esm({
33783
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs"() {
33783
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/structured-scan.mjs"() {
33784
33784
  init_src();
33785
33785
  import_ipaddr = __toESM(require_ipaddr(), 1);
33786
33786
  import_lockfile = __toESM(require_lib18(), 1);
@@ -33836,10 +33836,10 @@ var init_structured_scan = __esm({
33836
33836
  }
33837
33837
  });
33838
33838
 
33839
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs
33839
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs
33840
33840
  var GUARANTEES, TOKEN_GUARANTEES, CJK_CODE_POINT_RANGES;
33841
33841
  var init_token_estimate = __esm({
33842
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs"() {
33842
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/token-estimate.mjs"() {
33843
33843
  GUARANTEES = Object.freeze([
33844
33844
  "covers-content-text-only",
33845
33845
  "no-model-calls",
@@ -33863,7 +33863,7 @@ var init_token_estimate = __esm({
33863
33863
  }
33864
33864
  });
33865
33865
 
33866
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs
33866
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs
33867
33867
  import { constants as FS_CONSTANTS6 } from "node:fs";
33868
33868
  import {
33869
33869
  link as link2,
@@ -33880,7 +33880,7 @@ import path15 from "node:path";
33880
33880
  import process6 from "node:process";
33881
33881
  var STATE_GENESIS_DIGEST, EVENT_SCHEMA_ID, SNAPSHOT_SCHEMA_ID;
33882
33882
  var init_state_store = __esm({
33883
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs"() {
33883
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/state-store.mjs"() {
33884
33884
  init_src();
33885
33885
  init_errors2();
33886
33886
  init_validation();
@@ -33890,16 +33890,16 @@ var init_state_store = __esm({
33890
33890
  }
33891
33891
  });
33892
33892
 
33893
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs
33893
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs
33894
33894
  var init_budget_guard = __esm({
33895
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs"() {
33895
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/budget-guard.mjs"() {
33896
33896
  init_errors2();
33897
33897
  init_token_lock();
33898
33898
  init_state_store();
33899
33899
  }
33900
33900
  });
33901
33901
 
33902
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs
33902
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs
33903
33903
  import { spawn as nodeSpawn } from "node:child_process";
33904
33904
  import { constants as FS_CONSTANTS7, existsSync, readFileSync as readFileSync10, statSync as statSync2, writeFileSync as writeFileSync2, renameSync } from "node:fs";
33905
33905
  import { open as openFile, readdir as readdir5, realpath as realpath7, stat as stat2 } from "node:fs/promises";
@@ -34848,7 +34848,7 @@ async function superviseProcess(options, deps = {}) {
34848
34848
  }
34849
34849
  var WATCHDOG_REASONS, TERMINATION_REASONS, PROCESS_STATUSES, ENVELOPE_GUARANTEES, ENVELOPE_KIND, TRACE_KIND, TIMEOUT_POLICY_FIELDS, TIMEOUT_WATCHDOG_REASONS, OUTPUT_LIMIT_FIELDS, MAX_SAFE_OUTPUT_BYTES, RAW_SINK_FIELDS, defaultDeps, WATCHDOG_TO_TERMINATION;
34850
34850
  var init_supervise_process = __esm({
34851
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs"() {
34851
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/supervise-process.mjs"() {
34852
34852
  init_errors2();
34853
34853
  WATCHDOG_REASONS = Object.freeze([
34854
34854
  "max_seconds",
@@ -34982,7 +34982,7 @@ var init_supervise_process = __esm({
34982
34982
  }
34983
34983
  });
34984
34984
 
34985
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs
34985
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs
34986
34986
  function schemaIdFor(objectName) {
34987
34987
  const registration = findSchemaByObject(objectName);
34988
34988
  if (!registration) {
@@ -34995,7 +34995,7 @@ function schemaIdFor(objectName) {
34995
34995
  }
34996
34996
  var REQUEST_ENVELOPE, REQUEST_SCHEMA_ID, RESULT_SCHEMA_ID;
34997
34997
  var init_request = __esm({
34998
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs"() {
34998
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/request.mjs"() {
34999
34999
  init_src();
35000
35000
  init_errors2();
35001
35001
  init_validation();
@@ -35009,14 +35009,14 @@ var init_request = __esm({
35009
35009
  }
35010
35010
  });
35011
35011
 
35012
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs
35012
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs
35013
35013
  import { constants } from "node:fs";
35014
35014
  import { access, lstat as lstat11, mkdtemp as mkdtemp2, readFile as readFile4, realpath as realpath8, rename as rename3, rm as rm3 } from "node:fs/promises";
35015
35015
  import path17 from "node:path";
35016
35016
  import { spawnSync } from "node:child_process";
35017
35017
  var SCHEMAS;
35018
35018
  var init_host = __esm({
35019
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs"() {
35019
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/host.mjs"() {
35020
35020
  init_src();
35021
35021
  init_atomic();
35022
35022
  init_closure();
@@ -35030,12 +35030,12 @@ var init_host = __esm({
35030
35030
  }
35031
35031
  });
35032
35032
 
35033
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/peer-adapter.mjs
35033
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/peer-adapter.mjs
35034
35034
  import { lstat as lstat12, opendir } from "node:fs/promises";
35035
35035
  import { TextDecoder as TextDecoder3 } from "node:util";
35036
35036
  import path18 from "node:path";
35037
35037
  var init_peer_adapter = __esm({
35038
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/peer-adapter.mjs"() {
35038
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/peer-adapter.mjs"() {
35039
35039
  init_src();
35040
35040
  init_paths();
35041
35041
  init_bound_read();
@@ -35044,10 +35044,10 @@ var init_peer_adapter = __esm({
35044
35044
  }
35045
35045
  });
35046
35046
 
35047
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/package.json
35047
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/package.json
35048
35048
  var package_default;
35049
35049
  var init_package = __esm({
35050
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/package.json"() {
35050
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/package.json"() {
35051
35051
  package_default = {
35052
35052
  "//": '~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".',
35053
35053
  author: "\u5E7F\u5DDE\u5E02\u98CE\u8377\u79D1\u6280\u6709\u9650\u516C\u53F8",
@@ -35060,7 +35060,7 @@ var init_package = __esm({
35060
35060
  dependencies: {
35061
35061
  "@pnpm/lockfile.fs": "1001.1.35",
35062
35062
  "ipaddr.js": "2.5.0",
35063
- "skill-family-contracts": "0.15.0",
35063
+ "skill-family-contracts": "0.16.0",
35064
35064
  yaml: "2.9.0"
35065
35065
  },
35066
35066
  description: "Thin Node.js mechanism runtime for Skill Family engineering contracts.",
@@ -35099,7 +35099,7 @@ var init_package = __esm({
35099
35099
  url: "https://github.com/ifoohoo/skill-family-harness-node.git"
35100
35100
  },
35101
35101
  type: "module",
35102
- version: "0.15.0",
35102
+ version: "0.16.0",
35103
35103
  scripts: {
35104
35104
  check: "node --test",
35105
35105
  test: "node --test"
@@ -35108,19 +35108,19 @@ var init_package = __esm({
35108
35108
  }
35109
35109
  });
35110
35110
 
35111
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report-version.mjs
35111
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report-version.mjs
35112
35112
  var REPORT_RENDERER_VERSION;
35113
35113
  var init_report_version = __esm({
35114
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report-version.mjs"() {
35114
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report-version.mjs"() {
35115
35115
  init_package();
35116
35116
  REPORT_RENDERER_VERSION = package_default.version;
35117
35117
  }
35118
35118
  });
35119
35119
 
35120
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs
35120
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs
35121
35121
  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;
35122
35122
  var init_report = __esm({
35123
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs"() {
35123
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/report.mjs"() {
35124
35124
  init_src();
35125
35125
  init_closure();
35126
35126
  init_errors2();
@@ -35238,31 +35238,31 @@ var init_report = __esm({
35238
35238
  }
35239
35239
  });
35240
35240
 
35241
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication-loader.mjs
35241
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication-loader.mjs
35242
35242
  var init_fixed_set_publication_loader = __esm({
35243
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication-loader.mjs"() {
35243
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication-loader.mjs"() {
35244
35244
  init_loader();
35245
35245
  }
35246
35246
  });
35247
35247
 
35248
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication.mjs
35248
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication.mjs
35249
35249
  import { createHash as createHash8 } from "node:crypto";
35250
35250
  import { constants as FS_CONSTANTS8 } from "node:fs";
35251
35251
  import { lstat as lstat13, open as open7, readdir as readdir6, realpath as realpath9 } from "node:fs/promises";
35252
35252
  import path19 from "node:path";
35253
35253
  var ZERO_DIGEST;
35254
35254
  var init_fixed_set_publication = __esm({
35255
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication.mjs"() {
35255
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/fixed-set-publication.mjs"() {
35256
35256
  init_src();
35257
35257
  init_fixed_set_publication_loader();
35258
35258
  ZERO_DIGEST = "0".repeat(64);
35259
35259
  }
35260
35260
  });
35261
35261
 
35262
- // ../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs
35262
+ // ../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs
35263
35263
  var HARNESS_CAPABILITIES, HARNESS_EXCLUSIONS;
35264
35264
  var init_src2 = __esm({
35265
- "../../node_modules/.pnpm/skill-family-harness-node@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs"() {
35265
+ "../../node_modules/.pnpm/skill-family-harness-node@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-harness-node/src/index.mjs"() {
35266
35266
  init_version();
35267
35267
  init_errors2();
35268
35268
  init_paths();
@@ -37092,7 +37092,7 @@ var init_release_assets = __esm({
37092
37092
  }
37093
37093
  });
37094
37094
 
37095
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs
37095
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs
37096
37096
  function kitError(kind, message, extraDetails) {
37097
37097
  const values = Object.values(KIT_ERROR_KINDS);
37098
37098
  if (!values.includes(kind)) {
@@ -37117,7 +37117,7 @@ function invalidParamsError(message, extraDetails) {
37117
37117
  }
37118
37118
  var KIT_ERROR_KINDS, KitError, REFUSED_MUTATION_FLAGS;
37119
37119
  var init_errors4 = __esm({
37120
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs"() {
37120
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/errors.mjs"() {
37121
37121
  init_src();
37122
37122
  KIT_ERROR_KINDS = Object.freeze({
37123
37123
  // scaffold
@@ -37215,13 +37215,13 @@ var init_errors4 = __esm({
37215
37215
  }
37216
37216
  });
37217
37217
 
37218
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs
37218
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs
37219
37219
  import { spawnSync as spawnSync2 } from "node:child_process";
37220
37220
  import { readFile as readFile6 } from "node:fs/promises";
37221
37221
  import path20 from "node:path";
37222
37222
  var GIT_STATUS_ARGS, GIT_LS_FILES_ARGS, GIT_CHECK_IGNORE_ARGS, GIT_READ_ONLY_ALLOWLIST;
37223
37223
  var init_gitprobe = __esm({
37224
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs"() {
37224
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/gitprobe.mjs"() {
37225
37225
  GIT_STATUS_ARGS = Object.freeze([
37226
37226
  "--no-optional-locks",
37227
37227
  "-c",
@@ -37253,13 +37253,13 @@ var init_gitprobe = __esm({
37253
37253
  }
37254
37254
  });
37255
37255
 
37256
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs
37256
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs
37257
37257
  import { readFileSync as readFileSync12 } from "node:fs";
37258
37258
  import path21 from "node:path";
37259
37259
  import { fileURLToPath as fileURLToPath3 } from "node:url";
37260
37260
  var APACHE_2_TEXT, MIT_TEMPLATE;
37261
37261
  var init_licensing = __esm({
37262
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs"() {
37262
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/licensing.mjs"() {
37263
37263
  init_src2();
37264
37264
  init_src();
37265
37265
  init_errors4();
@@ -37274,7 +37274,7 @@ var init_licensing = __esm({
37274
37274
  }
37275
37275
  });
37276
37276
 
37277
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs
37277
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs
37278
37278
  import { lstat as lstat16, readdir as readdir8, readFile as readFile7, stat as stat3 } from "node:fs/promises";
37279
37279
  import path22 from "node:path";
37280
37280
  async function resolveTargetRoot(rootInput) {
@@ -37427,7 +37427,7 @@ async function loadTargetFacts(root) {
37427
37427
  }
37428
37428
  var OPAQUE_DIRECTORIES, DEFAULT_HANDWRITTEN_PATTERNS;
37429
37429
  var init_workspace2 = __esm({
37430
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs"() {
37430
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/workspace.mjs"() {
37431
37431
  init_errors4();
37432
37432
  OPAQUE_DIRECTORIES = Object.freeze([".git", "node_modules"]);
37433
37433
  DEFAULT_HANDWRITTEN_PATTERNS = Object.freeze([
@@ -37453,12 +37453,12 @@ var init_workspace2 = __esm({
37453
37453
  }
37454
37454
  });
37455
37455
 
37456
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs
37456
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs
37457
37457
  import { lstat as lstat17, readFile as readFile8 } from "node:fs/promises";
37458
37458
  import { TextDecoder as TextDecoder4 } from "node:util";
37459
37459
  var UTF8_STRICT_DECODER, MIGRATION_MANIFEST_SCHEMA_ID, MIGRATION_MANIFEST_STATES, EXCEPTION_REQUIRED_FIELDS, MIGRATION_STATES, REQUIRED_FOUNDATION_PACKAGES, CAPABILITY_DISPOSITIONS, CONSUMER_VERIFICATION_NOT_EVALUATED, VERIFICATION_EVIDENCE_KINDS;
37460
37460
  var init_migration = __esm({
37461
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs"() {
37461
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/migration.mjs"() {
37462
37462
  init_src();
37463
37463
  init_src2();
37464
37464
  init_workspace2();
@@ -37508,10 +37508,10 @@ var init_migration = __esm({
37508
37508
  }
37509
37509
  });
37510
37510
 
37511
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/package.json
37511
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/package.json
37512
37512
  var package_default2;
37513
37513
  var init_package2 = __esm({
37514
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/package.json"() {
37514
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/package.json"() {
37515
37515
  package_default2 = {
37516
37516
  "//": '~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".',
37517
37517
  author: "\u5E7F\u5DDE\u5E02\u98CE\u8377\u79D1\u6280\u6709\u9650\u516C\u53F8",
@@ -37522,8 +37522,8 @@ var init_package2 = __esm({
37522
37522
  url: "https://github.com/ifoohoo/skill-family-engineering-kit/issues"
37523
37523
  },
37524
37524
  dependencies: {
37525
- "skill-family-contracts": "0.15.0",
37526
- "skill-family-harness-node": "0.15.0"
37525
+ "skill-family-contracts": "0.16.0",
37526
+ "skill-family-harness-node": "0.16.0"
37527
37527
  },
37528
37528
  description: "Build-time scaffold, adoption planning, projection, and checks.",
37529
37529
  engines: {
@@ -37565,7 +37565,7 @@ var init_package2 = __esm({
37565
37565
  url: "https://github.com/ifoohoo/skill-family-engineering-kit.git"
37566
37566
  },
37567
37567
  type: "module",
37568
- version: "0.15.0",
37568
+ version: "0.16.0",
37569
37569
  scripts: {
37570
37570
  check: "node --test",
37571
37571
  test: "node --test"
@@ -37574,22 +37574,22 @@ var init_package2 = __esm({
37574
37574
  }
37575
37575
  });
37576
37576
 
37577
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/version.mjs
37577
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/version.mjs
37578
37578
  var KIT_VERSION;
37579
37579
  var init_version2 = __esm({
37580
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/version.mjs"() {
37580
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/version.mjs"() {
37581
37581
  init_package2();
37582
37582
  KIT_VERSION = package_default2.version;
37583
37583
  }
37584
37584
  });
37585
37585
 
37586
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/capability-assessment.mjs
37586
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/capability-assessment.mjs
37587
37587
  import { lstat as lstat18, readFile as readFile9 } from "node:fs/promises";
37588
37588
  import path23 from "node:path";
37589
37589
  import { fileURLToPath as fileURLToPath4 } from "node:url";
37590
37590
  var ADOPTION_SCOPES, LOCALES, MODES, DEFAULT_CATALOG_DIR, DECISION_REQUIREMENTS;
37591
37591
  var init_capability_assessment = __esm({
37592
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/capability-assessment.mjs"() {
37592
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/capability-assessment.mjs"() {
37593
37593
  init_src();
37594
37594
  init_src2();
37595
37595
  init_errors4();
@@ -37613,11 +37613,11 @@ var init_capability_assessment = __esm({
37613
37613
  }
37614
37614
  });
37615
37615
 
37616
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs
37616
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs
37617
37617
  import { readFile as readFile10 } from "node:fs/promises";
37618
37618
  var KIT_TOOL_NAME, PROJECT_MANIFEST_PATH, MANAGED_LOCK_PATH, PROJECTION_MANIFEST_PATH, IDENTITY_RECORD_PATH, PUBLIC_BOUNDARY_DECLARATION_PATH, PLATFORM_SUBSET_DECLARATION_PATH;
37619
37619
  var init_skeleton = __esm({
37620
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs"() {
37620
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skeleton.mjs"() {
37621
37621
  init_src();
37622
37622
  init_src2();
37623
37623
  init_errors4();
@@ -37635,12 +37635,12 @@ var init_skeleton = __esm({
37635
37635
  }
37636
37636
  });
37637
37637
 
37638
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs
37638
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs
37639
37639
  import { readdir as readdir9 } from "node:fs/promises";
37640
37640
  import path24 from "node:path";
37641
37641
  var IDENTITY_SOURCE_PRIORITY;
37642
37642
  var init_identity_check = __esm({
37643
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs"() {
37643
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/identity-check.mjs"() {
37644
37644
  init_src2();
37645
37645
  init_licensing();
37646
37646
  IDENTITY_SOURCE_PRIORITY = Object.freeze([
@@ -37656,11 +37656,11 @@ var init_identity_check = __esm({
37656
37656
  }
37657
37657
  });
37658
37658
 
37659
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs
37659
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs
37660
37660
  import { readFileSync as readFileSync13 } from "node:fs";
37661
37661
  var CHECK_CLASSES, DOCUMENT_STATES;
37662
37662
  var init_check = __esm({
37663
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs"() {
37663
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/check.mjs"() {
37664
37664
  init_src();
37665
37665
  init_src2();
37666
37666
  init_errors4();
@@ -37689,10 +37689,10 @@ var init_check = __esm({
37689
37689
  }
37690
37690
  });
37691
37691
 
37692
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs
37692
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs
37693
37693
  import path25 from "node:path";
37694
37694
  var init_adopt_plan = __esm({
37695
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs"() {
37695
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/adopt-plan.mjs"() {
37696
37696
  init_src();
37697
37697
  init_src2();
37698
37698
  init_check();
@@ -37705,12 +37705,12 @@ var init_adopt_plan = __esm({
37705
37705
  }
37706
37706
  });
37707
37707
 
37708
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs
37708
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs
37709
37709
  import { lstat as lstat19 } from "node:fs/promises";
37710
37710
  import path26 from "node:path";
37711
37711
  var CORE_CHECK_SECURITY_KINDS, CLASS_READ_PATHS;
37712
37712
  var init_core_check = __esm({
37713
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs"() {
37713
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/core-check.mjs"() {
37714
37714
  init_errors4();
37715
37715
  init_check();
37716
37716
  init_skeleton();
@@ -37746,10 +37746,10 @@ var init_core_check = __esm({
37746
37746
  }
37747
37747
  });
37748
37748
 
37749
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs
37749
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs
37750
37750
  var ENTRY_FORMS, ENTRY_SIDE_EFFECT_CLASSES;
37751
37751
  var init_entry_check = __esm({
37752
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs"() {
37752
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/entry-check.mjs"() {
37753
37753
  init_src2();
37754
37754
  init_src();
37755
37755
  init_errors4();
@@ -37760,11 +37760,11 @@ var init_entry_check = __esm({
37760
37760
  }
37761
37761
  });
37762
37762
 
37763
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs
37763
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs
37764
37764
  import { lstat as lstat20, readFile as readFile11 } from "node:fs/promises";
37765
37765
  import path27 from "node:path";
37766
37766
  var init_relock = __esm({
37767
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs"() {
37767
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/relock.mjs"() {
37768
37768
  init_src2();
37769
37769
  init_errors4();
37770
37770
  init_skeleton();
@@ -37774,7 +37774,7 @@ var init_relock = __esm({
37774
37774
  }
37775
37775
  });
37776
37776
 
37777
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs
37777
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs
37778
37778
  import {
37779
37779
  chmod,
37780
37780
  lstat as lstat21,
@@ -39113,7 +39113,7 @@ async function runProjection({ root, manifest: manifestInput, candidateRoot, fau
39113
39113
  }
39114
39114
  var SHA256_HEX_PATTERN2, V2_KIND, OWNER_KIND, TARGET_FACTS_CONTROL_PATHS, PROJECTION_AUTHORITY_BINDING_KINDS, BASE64_PATTERN;
39115
39115
  var init_projection = __esm({
39116
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs"() {
39116
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/projection.mjs"() {
39117
39117
  init_src();
39118
39118
  init_src2();
39119
39119
  init_errors4();
@@ -39186,12 +39186,12 @@ var init_projection = __esm({
39186
39186
  }
39187
39187
  });
39188
39188
 
39189
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs
39189
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs
39190
39190
  import process7 from "node:process";
39191
39191
  import { lstat as lstat22, readFile as readFile13, realpath as realpath12, rm as rm5, stat as stat5 } from "node:fs/promises";
39192
39192
  import path29 from "node:path";
39193
39193
  var init_report2 = __esm({
39194
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs"() {
39194
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/report.mjs"() {
39195
39195
  init_src2();
39196
39196
  init_src();
39197
39197
  init_errors4();
@@ -39199,11 +39199,11 @@ var init_report2 = __esm({
39199
39199
  }
39200
39200
  });
39201
39201
 
39202
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs
39202
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs
39203
39203
  import { lstat as lstat23, mkdir as mkdir4, readdir as readdir11 } from "node:fs/promises";
39204
39204
  import path30 from "node:path";
39205
39205
  var init_scaffold = __esm({
39206
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs"() {
39206
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/scaffold.mjs"() {
39207
39207
  init_src();
39208
39208
  init_src2();
39209
39209
  init_errors4();
@@ -39213,11 +39213,11 @@ var init_scaffold = __esm({
39213
39213
  }
39214
39214
  });
39215
39215
 
39216
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs
39216
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs
39217
39217
  import path31 from "node:path";
39218
39218
  var CAPABILITIES, DRIVERS, HOST_DRIVER_IDS;
39219
39219
  var init_host_drivers = __esm({
39220
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs"() {
39220
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-drivers.mjs"() {
39221
39221
  init_src2();
39222
39222
  CAPABILITIES = Object.freeze(["cli", "version", "payload", "registry", "discover", "enabled", "reload", "smoke", "uninstall"]);
39223
39223
  DRIVERS = Object.freeze({
@@ -39228,7 +39228,7 @@ var init_host_drivers = __esm({
39228
39228
  }
39229
39229
  });
39230
39230
 
39231
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs
39231
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs
39232
39232
  import { realpathSync as realpathSync2 } from "node:fs";
39233
39233
  import { fileURLToPath as fileURLToPath5 } from "node:url";
39234
39234
  function bundledHostProfilesRoot() {
@@ -39311,7 +39311,7 @@ async function resolveHostId(options = {}) {
39311
39311
  }
39312
39312
  var HOST_DESCRIPTOR_SCHEMA_ID, HOST_REGISTRY_SCHEMA_ID, HOST_ID_PATTERN;
39313
39313
  var init_host_profiles = __esm({
39314
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs"() {
39314
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-profiles.mjs"() {
39315
39315
  init_src();
39316
39316
  init_src2();
39317
39317
  init_errors4();
@@ -39331,10 +39331,10 @@ var init_host_profiles = __esm({
39331
39331
  }
39332
39332
  });
39333
39333
 
39334
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs
39334
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs
39335
39335
  import path32 from "node:path";
39336
39336
  var init_host2 = __esm({
39337
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs"() {
39337
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host.mjs"() {
39338
39338
  init_src();
39339
39339
  init_src2();
39340
39340
  init_errors4();
@@ -39343,7 +39343,7 @@ var init_host2 = __esm({
39343
39343
  }
39344
39344
  });
39345
39345
 
39346
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification-drivers.mjs
39346
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification-drivers.mjs
39347
39347
  import path33 from "node:path";
39348
39348
  function nativeStage(name, commands) {
39349
39349
  return Object.freeze({
@@ -39549,7 +39549,7 @@ function qoderJsonOk(stdoutText) {
39549
39549
  }
39550
39550
  var CONTROLLED_NATIVE_LIFECYCLE_FIXTURE_PROTOCOL, NATIVE_TREE_ROLES, QODER_NATIVE_LIFECYCLE, WORKBUDDY_NATIVE_LIFECYCLE, KIMI_DRIVER, WORKBUDDY_DRIVER, CLAUDE_DRIVER, CODEX_DRIVER, QODER_DRIVER, BUILT_IN_HOST_VERIFICATION_DRIVERS;
39551
39551
  var init_host_verification_drivers = __esm({
39552
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification-drivers.mjs"() {
39552
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification-drivers.mjs"() {
39553
39553
  CONTROLLED_NATIVE_LIFECYCLE_FIXTURE_PROTOCOL = "skill-family.controlled-native-lifecycle-fixture/v1";
39554
39554
  NATIVE_TREE_ROLES = Object.freeze({
39555
39555
  preflight: Object.freeze([]),
@@ -39715,11 +39715,11 @@ var init_host_verification_drivers = __esm({
39715
39715
  }
39716
39716
  });
39717
39717
 
39718
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification.mjs
39718
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification.mjs
39719
39719
  import { lstat as lstat24, mkdir as mkdir5, readdir as readdir12, realpath as realpath13, stat as stat6 } from "node:fs/promises";
39720
39720
  import path34 from "node:path";
39721
39721
  var init_host_verification = __esm({
39722
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification.mjs"() {
39722
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/host-verification.mjs"() {
39723
39723
  init_src();
39724
39724
  init_src2();
39725
39725
  init_errors4();
@@ -39728,7 +39728,7 @@ var init_host_verification = __esm({
39728
39728
  }
39729
39729
  });
39730
39730
 
39731
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/plugin-verification.mjs
39731
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/plugin-verification.mjs
39732
39732
  import { mkdir as mkdir6, readdir as readdir13, realpath as realpath14, stat as stat7 } from "node:fs/promises";
39733
39733
  import path35 from "node:path";
39734
39734
  function fail3(message, details = {}) {
@@ -40371,7 +40371,7 @@ async function runPluginVerification({ request, bindings, hostsRoot } = {}) {
40371
40371
  }
40372
40372
  var REQUEST_SCHEMA, RESULT_SCHEMA, ACTION, SHA256, COMMIT, NATIVE_LIFECYCLE_STAGES;
40373
40373
  var init_plugin_verification = __esm({
40374
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/plugin-verification.mjs"() {
40374
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/plugin-verification.mjs"() {
40375
40375
  init_src();
40376
40376
  init_src2();
40377
40377
  init_errors4();
@@ -40436,11 +40436,11 @@ var init_plugin_verification = __esm({
40436
40436
  }
40437
40437
  });
40438
40438
 
40439
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skill-family-directory-verification.mjs
40439
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skill-family-directory-verification.mjs
40440
40440
  import { mkdir as mkdir7, readdir as readdir14, realpath as realpath15, stat as stat8 } from "node:fs/promises";
40441
40441
  import path36 from "node:path";
40442
40442
  var init_skill_family_directory_verification = __esm({
40443
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skill-family-directory-verification.mjs"() {
40443
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/skill-family-directory-verification.mjs"() {
40444
40444
  init_src();
40445
40445
  init_src2();
40446
40446
  init_errors4();
@@ -40449,12 +40449,12 @@ var init_skill_family_directory_verification = __esm({
40449
40449
  }
40450
40450
  });
40451
40451
 
40452
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/qualification.mjs
40452
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/qualification.mjs
40453
40453
  import { lstat as lstat25, mkdir as mkdir8, readdir as readdir15, realpath as realpath16, stat as stat9 } from "node:fs/promises";
40454
40454
  import path37 from "node:path";
40455
40455
  var QUALIFICATION_NOTICE;
40456
40456
  var init_qualification = __esm({
40457
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/qualification.mjs"() {
40457
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/qualification.mjs"() {
40458
40458
  init_src();
40459
40459
  init_src();
40460
40460
  init_src2();
@@ -40469,10 +40469,10 @@ var init_qualification = __esm({
40469
40469
  }
40470
40470
  });
40471
40471
 
40472
- // ../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs
40472
+ // ../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs
40473
40473
  var TOP_LEVEL_COMMANDS, FORBIDDEN_SIDE_EFFECTS, COMMAND_SIDE_EFFECTS, KIT_EXIT_CODES;
40474
40474
  var init_src3 = __esm({
40475
- "../../node_modules/.pnpm/skill-family-engineering-kit@0.15.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs"() {
40475
+ "../../node_modules/.pnpm/skill-family-engineering-kit@0.16.0_@pnpm+logger@1001.0.1/node_modules/skill-family-engineering-kit/src/index.mjs"() {
40476
40476
  init_src();
40477
40477
  init_adopt_plan();
40478
40478
  init_check();
@@ -47797,7 +47797,17 @@ function isSafeRelativePath(value) {
47797
47797
  return typeof value === "string" && value.length > 0 && !value.startsWith("/") && !value.includes("\\") && !value.includes(":") && !value.includes("\0") && value.split("/").every((part) => part.length > 0 && part !== "." && part !== "..");
47798
47798
  }
47799
47799
  function decodeCanonicalBase64(value) {
47800
- if (typeof value !== "string" || !BASE64_PATTERN2.test(value)) return null;
47800
+ if (typeof value !== "string" || value.length % 4 !== 0) return null;
47801
+ let paddingStart = -1;
47802
+ for (let index = 0; index < value.length; index += 1) {
47803
+ const code = value.charCodeAt(index);
47804
+ if (code === 61) {
47805
+ if (paddingStart === -1) paddingStart = index;
47806
+ continue;
47807
+ }
47808
+ if (paddingStart !== -1 || !(code >= 65 && code <= 90 || code >= 97 && code <= 122 || code >= 48 && code <= 57 || code === 43 || code === 47)) return null;
47809
+ }
47810
+ if (paddingStart !== -1 && value.length - paddingStart > 2 || paddingStart !== -1 && paddingStart % 4 < 2) return null;
47801
47811
  const decoded = Buffer.from(value, "base64");
47802
47812
  return decoded.toString("base64") === value ? decoded : null;
47803
47813
  }
@@ -48075,7 +48085,7 @@ async function verifyFrozenPluginWithFoundation({
48075
48085
  ...extraInstallAudit.extraInstalledLinks.length > 0 ? { extraInstalledLinks: extraInstallAudit.extraInstalledLinks } : {}
48076
48086
  };
48077
48087
  }
48078
- var FOUNDATION_PLUGIN_DRIVER_VERSION, SHA256_PATTERN5, BASE64_PATTERN2;
48088
+ var FOUNDATION_PLUGIN_DRIVER_VERSION, SHA256_PATTERN5;
48079
48089
  var init_foundation_plugin_verification = __esm({
48080
48090
  async "src/core/foundation-plugin-verification.mjs"() {
48081
48091
  init_src();
@@ -48086,7 +48096,6 @@ var init_foundation_plugin_verification = __esm({
48086
48096
  init_errors3();
48087
48097
  FOUNDATION_PLUGIN_DRIVER_VERSION = "1.0.0";
48088
48098
  SHA256_PATTERN5 = /^[0-9a-f]{64}$/u;
48089
- BASE64_PATTERN2 = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u;
48090
48099
  __name(isSafeRelativePath, "isSafeRelativePath");
48091
48100
  __name(decodeCanonicalBase64, "decodeCanonicalBase64");
48092
48101
  __name(hasExactKeys, "hasExactKeys");
@@ -129351,6 +129360,123 @@ async function runPreHookPublicSurfaceGate({
129351
129360
  } finally {
129352
129361
  }
129353
129362
  }
129363
+ function prepareRetryPathArg(path40) {
129364
+ return relative26(process.cwd(), resolve31(path40)) || ".";
129365
+ }
129366
+ function buildPrepareRetryArgv(options, unitIds) {
129367
+ const argv = [
129368
+ "release-skill",
129369
+ "prepare",
129370
+ "--root",
129371
+ prepareRetryPathArg(options.root)
129372
+ ];
129373
+ if (typeof options.version === "string" && options.version.length > 0) {
129374
+ argv.push("--target-version", options.version);
129375
+ }
129376
+ argv.push(options.offline ? "--offline" : "--online");
129377
+ if (options.production) argv.push("--production");
129378
+ argv.push("--workflow", options.workflow);
129379
+ if (typeof options.testSelection === "string") {
129380
+ argv.push("--test-selection", options.testSelection);
129381
+ }
129382
+ if (typeof options.output === "string") {
129383
+ argv.push("--output", prepareRetryPathArg(options.output));
129384
+ }
129385
+ if (options.hookCache === false) argv.push("--no-hook-cache");
129386
+ for (const unitId of unitIds) argv.push("--unit", unitId);
129387
+ return argv;
129388
+ }
129389
+ function buildDeferredReleaseDiagnostics(options, deferredUnitIds) {
129390
+ if (deferredUnitIds.length === 0) return null;
129391
+ return {
129392
+ deferredUnitIds: [...deferredUnitIds],
129393
+ nextPrepareArgv: buildPrepareRetryArgv(options, deferredUnitIds)
129394
+ };
129395
+ }
129396
+ function resolveRequestedReleaseUnits(config, requestedUnitIds, retryOptions) {
129397
+ const availableUnits = config.releaseUnits ?? [];
129398
+ const availableUnitIds = availableUnits.map((unit) => unit.id);
129399
+ if (requestedUnitIds === void 0) {
129400
+ return {
129401
+ explicit: false,
129402
+ selectedUnits: availableUnits,
129403
+ selectedUnitIds: availableUnitIds,
129404
+ deferredUnitIds: [],
129405
+ receiptSelected: Boolean(config.publicSourceAuthorityReceipt)
129406
+ };
129407
+ }
129408
+ if (!Array.isArray(requestedUnitIds) || requestedUnitIds.length === 0) {
129409
+ throw new ReleaseError(
129410
+ CONFIG_INVALID,
129411
+ "explicit release-unit selection must contain at least one unit id",
129412
+ { requestedUnitIds, availableUnitIds }
129413
+ );
129414
+ }
129415
+ const invalidUnitIds = requestedUnitIds.filter(
129416
+ (unitId) => typeof unitId !== "string" || unitId.length === 0
129417
+ );
129418
+ const seen = /* @__PURE__ */ new Set();
129419
+ const duplicateUnitIds = [];
129420
+ for (const unitId of requestedUnitIds) {
129421
+ if (seen.has(unitId) && !duplicateUnitIds.includes(unitId)) duplicateUnitIds.push(unitId);
129422
+ seen.add(unitId);
129423
+ }
129424
+ const availableSet = new Set(availableUnitIds);
129425
+ const unknownUnitIds = requestedUnitIds.filter(
129426
+ (unitId) => typeof unitId === "string" && unitId.length > 0 && !availableSet.has(unitId)
129427
+ );
129428
+ if (invalidUnitIds.length > 0 || duplicateUnitIds.length > 0 || unknownUnitIds.length > 0) {
129429
+ throw new ReleaseError(
129430
+ CONFIG_INVALID,
129431
+ "release-unit selection contains empty, duplicate, or unknown unit ids",
129432
+ {
129433
+ requestedUnitIds,
129434
+ availableUnitIds,
129435
+ invalidUnitIds,
129436
+ duplicateUnitIds,
129437
+ unknownUnitIds
129438
+ }
129439
+ );
129440
+ }
129441
+ const selectedSet = new Set(requestedUnitIds);
129442
+ const selectedUnits = availableUnits.filter((unit) => selectedSet.has(unit.id));
129443
+ const selectedUnitIds = selectedUnits.map((unit) => unit.id);
129444
+ const deferredUnitIds = availableUnitIds.filter((unitId) => !selectedSet.has(unitId));
129445
+ const deferredReleaseDiagnostics = buildDeferredReleaseDiagnostics(retryOptions, deferredUnitIds);
129446
+ const receipt = config.publicSourceAuthorityReceipt;
129447
+ let receiptSelected = false;
129448
+ if (receipt) {
129449
+ const receiptSet = /* @__PURE__ */ new Set([receipt.coordinatorUnitId, ...receipt.subjectUnitIds]);
129450
+ const dependencyUnitIds = availableUnitIds.filter((unitId) => receiptSet.has(unitId));
129451
+ receiptSelected = dependencyUnitIds.some((unitId) => selectedSet.has(unitId));
129452
+ if (receiptSelected) {
129453
+ const missingUnitIds = dependencyUnitIds.filter((unitId) => !selectedSet.has(unitId));
129454
+ if (missingUnitIds.length > 0) {
129455
+ const retryUnitIds = availableUnitIds.filter(
129456
+ (unitId) => selectedSet.has(unitId) || receiptSet.has(unitId)
129457
+ );
129458
+ throw new ReleaseError(
129459
+ GATE_FAILED,
129460
+ "release-unit selection does not include the complete public source-authority dependency closure",
129461
+ {
129462
+ selectedUnitIds,
129463
+ missingUnitIds,
129464
+ dependencyUnitIds,
129465
+ retryArgv: buildPrepareRetryArgv(retryOptions, retryUnitIds)
129466
+ }
129467
+ );
129468
+ }
129469
+ }
129470
+ }
129471
+ return {
129472
+ explicit: true,
129473
+ selectedUnits,
129474
+ selectedUnitIds,
129475
+ deferredUnitIds,
129476
+ deferredReleaseDiagnostics,
129477
+ receiptSelected
129478
+ };
129479
+ }
129354
129480
  async function prepareRelease(options) {
129355
129481
  const {
129356
129482
  root,
@@ -129364,7 +129490,8 @@ async function prepareRelease(options) {
129364
129490
  production = false,
129365
129491
  workflow = "full",
129366
129492
  observePreviousPublicBaselineFn,
129367
- testSelection = "full"
129493
+ testSelection = "full",
129494
+ unitIds
129368
129495
  } = options ?? {};
129369
129496
  const WORKFLOW_KINDS2 = /* @__PURE__ */ new Set(["full", "docs", "config", "marketplace"]);
129370
129497
  if (!WORKFLOW_KINDS2.has(workflow)) {
@@ -129438,7 +129565,20 @@ async function prepareRelease(options) {
129438
129565
  try {
129439
129566
  await evidence.append({ phase: "config", status: "started" });
129440
129567
  const { config, configPath, configDigest } = await loadProjectConfig({ root: realRoot });
129441
- const adoptionWarnings = collectExpectedPublicSurfaceAdoptionWarnings(config);
129568
+ const releaseSelection = resolveRequestedReleaseUnits(config, unitIds, {
129569
+ root,
129570
+ version,
129571
+ offline,
129572
+ production,
129573
+ workflow,
129574
+ testSelection: typeof options?.testSelection === "string" ? testSelection : void 0,
129575
+ output,
129576
+ hookCache: options?.hookCache
129577
+ });
129578
+ const configUnits = releaseSelection.selectedUnits;
129579
+ const selectedConfig = { ...config, releaseUnits: configUnits };
129580
+ const selectedUnitIdSet = new Set(releaseSelection.selectedUnitIds);
129581
+ const adoptionWarnings = collectExpectedPublicSurfaceAdoptionWarnings(selectedConfig);
129442
129582
  const runWarnings = [...adoptionWarnings];
129443
129583
  await evidence.append({
129444
129584
  phase: "config",
@@ -129453,6 +129593,16 @@ async function prepareRelease(options) {
129453
129593
  ...warning
129454
129594
  });
129455
129595
  }
129596
+ if (releaseSelection.explicit) {
129597
+ await evidence.append({
129598
+ phase: "release-scope",
129599
+ status: "selected",
129600
+ mode: "selected",
129601
+ selectedUnitIds: releaseSelection.selectedUnitIds,
129602
+ deferredUnitIds: releaseSelection.deferredUnitIds,
129603
+ ...releaseSelection.deferredReleaseDiagnostics ? { nextPrepareArgv: releaseSelection.deferredReleaseDiagnostics.nextPrepareArgv } : {}
129604
+ });
129605
+ }
129456
129606
  await evidence.append({ phase: "bundle-freshness", status: "started" });
129457
129607
  const bundleFreshnessFn = options.bundleFreshnessFn ?? assertBundleFreshness;
129458
129608
  let bundleFreshness;
@@ -129500,7 +129650,6 @@ async function prepareRelease(options) {
129500
129650
  "consumer-verify"
129501
129651
  ]
129502
129652
  });
129503
- const configUnits = config.releaseUnits ?? [];
129504
129653
  const resolvedVersions = await resolveAllUnitVersions(
129505
129654
  configUnits,
129506
129655
  realRoot,
@@ -129629,7 +129778,7 @@ async function prepareRelease(options) {
129629
129778
  hooks: declaredHooks.map((h) => `${h.name}: ${h.executable} ${h.args.join(" ")}`)
129630
129779
  });
129631
129780
  }
129632
- const declaredVerificationGates = config.verificationGates ?? [];
129781
+ const declaredVerificationGates = (config.verificationGates ?? []).filter((gate) => selectedUnitIdSet.has(gate.scope.unit));
129633
129782
  if (declaredVerificationGates.length > 0) {
129634
129783
  await evidence.append({
129635
129784
  phase: "verification-gate-authorization",
@@ -129709,7 +129858,7 @@ async function prepareRelease(options) {
129709
129858
  });
129710
129859
  }
129711
129860
  await runPreHookPublicSurfaceGate({
129712
- config,
129861
+ config: selectedConfig,
129713
129862
  root: realRoot,
129714
129863
  resolvedVersions,
129715
129864
  evidence,
@@ -130079,7 +130228,7 @@ async function prepareRelease(options) {
130079
130228
  }
130080
130229
  }
130081
130230
  const { unitResults, snapshotDigests } = await processSnapshots(
130082
- config,
130231
+ selectedConfig,
130083
130232
  realRoot,
130084
130233
  evidence,
130085
130234
  runDir,
@@ -130351,7 +130500,7 @@ async function prepareRelease(options) {
130351
130500
  }
130352
130501
  }
130353
130502
  let publicSourceAuthorityReceipt = null;
130354
- if (config.publicSourceAuthorityReceipt) {
130503
+ if (config.publicSourceAuthorityReceipt && releaseSelection.receiptSelected) {
130355
130504
  if (workflow === "config" && configDecision?.publishPath === "no-publish-needed") {
130356
130505
  await evidence.append({
130357
130506
  phase: "public-source-authority-receipt",
@@ -130536,7 +130685,7 @@ async function prepareRelease(options) {
130536
130685
  totalFindingCount: 0
130537
130686
  }
130538
130687
  } : {},
130539
- verificationGates: config.verificationGates ?? [],
130688
+ verificationGates: declaredVerificationGates,
130540
130689
  snapshotDigest: overallSnapshotDigest,
130541
130690
  ...humanConsumersStrategy ? { humanConsumersStrategy } : {},
130542
130691
  ...production ? {
@@ -130597,6 +130746,13 @@ async function prepareRelease(options) {
130597
130746
  completedAt: clock ? clock() : (/* @__PURE__ */ new Date()).toISOString()
130598
130747
  });
130599
130748
  const nextSteps = [];
130749
+ if (releaseSelection.explicit && releaseSelection.deferredUnitIds.length > 0) {
130750
+ nextSteps.push({
130751
+ code: "DEFERRED_RELEASE_UNITS",
130752
+ message: `Prepare the deferred release units separately: ${releaseSelection.deferredUnitIds.join(", ")}`,
130753
+ argv: releaseSelection.deferredReleaseDiagnostics.nextPrepareArgv
130754
+ });
130755
+ }
130600
130756
  if (!production) {
130601
130757
  nextSteps.push({
130602
130758
  code: "NON_PRODUCTION_PLAN_NOT_PUBLISHABLE",
@@ -130608,7 +130764,14 @@ async function prepareRelease(options) {
130608
130764
  planDigest,
130609
130765
  evidenceDir,
130610
130766
  warnings: runWarnings,
130611
- nextSteps
130767
+ nextSteps,
130768
+ ...releaseSelection.explicit ? {
130769
+ releaseScope: {
130770
+ mode: "selected",
130771
+ selectedUnitIds: releaseSelection.selectedUnitIds,
130772
+ deferredUnitIds: releaseSelection.deferredUnitIds
130773
+ }
130774
+ } : {}
130612
130775
  };
130613
130776
  } catch (err) {
130614
130777
  try {
@@ -130704,6 +130867,10 @@ var init_prepare = __esm({
130704
130867
  __name(resolveDistributionManifestFacts, "resolveDistributionManifestFacts");
130705
130868
  __name(runPrepareSkillResourceClosureGate, "runPrepareSkillResourceClosureGate");
130706
130869
  __name(runPreHookPublicSurfaceGate, "runPreHookPublicSurfaceGate");
130870
+ __name(prepareRetryPathArg, "prepareRetryPathArg");
130871
+ __name(buildPrepareRetryArgv, "buildPrepareRetryArgv");
130872
+ __name(buildDeferredReleaseDiagnostics, "buildDeferredReleaseDiagnostics");
130873
+ __name(resolveRequestedReleaseUnits, "resolveRequestedReleaseUnits");
130707
130874
  __name(prepareRelease, "prepareRelease");
130708
130875
  }
130709
130876
  });
@@ -130789,6 +130956,13 @@ __export(post_release_local_exports, {
130789
130956
  import { access as access2 } from "node:fs/promises";
130790
130957
  import { homedir } from "node:os";
130791
130958
  import { join as join27, relative as relative27 } from "node:path";
130959
+ function attachFoundationFailure(error, { envelope, stdout }) {
130960
+ Object.defineProperties(error, {
130961
+ foundationEnvelope: { value: envelope, enumerable: false },
130962
+ foundationStdout: { value: stdout, enumerable: false }
130963
+ });
130964
+ return error;
130965
+ }
130792
130966
  function actionTarget(plan, action, host) {
130793
130967
  const parameters = action.parameters ?? {};
130794
130968
  const sourceDescriptor = parameters.sourceDescriptor ?? {};
@@ -130963,7 +131137,7 @@ async function defaultRun(command2, args2, options = {}) {
130963
131137
  watchdogReason: envelope.watchdogReason,
130964
131138
  ...envelope.evidence?.spawnError ? { spawnError: envelope.evidence.spawnError } : {}
130965
131139
  };
130966
- throw error;
131140
+ throw attachFoundationFailure(error, { envelope, stdout });
130967
131141
  }
130968
131142
  return { stdout, stderr };
130969
131143
  }, { prefix: "release-skill-host-command-" });
@@ -131003,6 +131177,64 @@ function parseJson2(stdout, label) {
131003
131177
  throw new Error(`${label} did not return JSON`);
131004
131178
  }
131005
131179
  }
131180
+ function foundationEnvelopeFromError(error) {
131181
+ return error?.foundationEnvelope ?? null;
131182
+ }
131183
+ function foundationStdoutFromError(error) {
131184
+ return error?.foundationStdout ?? null;
131185
+ }
131186
+ function isCodeBuddyResidualEnvelope(error) {
131187
+ const envelope = foundationEnvelopeFromError(error);
131188
+ const evidence = envelope?.evidence;
131189
+ const signals = evidence?.signalSequence;
131190
+ const signal = signals?.[0];
131191
+ return envelope?.ok === false && envelope.exitStatus === 124 && envelope.processStatus === "TERMINATED" && envelope.terminationReason === "child_exit" && envelope.watchdogReason === "residual_process_group" && evidence?.childExitCode === 0 && (evidence.childSignal === null || evidence.childSignal === void 0) && evidence.residualGroupCleanupCompleted === true && evidence.forcedKill === false && evidence.outputLimitExceeded === null && Array.isArray(signals) && signals.length === 1 && signal?.signal === "SIGTERM" && signal.requestedMode === "process_group" && signal.successfulMode === "process_group";
131192
+ }
131193
+ function isCodeBuddyReadCommand(target, command2, args2) {
131194
+ return target.host === "codebuddy" && (command2 === "codebuddy" || command2 === "cbc" || command2 === CODEBUDDY_MACOS_PATH) && Array.isArray(args2) && (args2.every((value, index) => value === CODEBUDDY_PLUGIN_LIST_ARGS[index]) && args2.length === CODEBUDDY_PLUGIN_LIST_ARGS.length || args2.every((value, index) => value === CODEBUDDY_MARKETPLACE_LIST_ARGS[index]) && args2.length === CODEBUDDY_MARKETPLACE_LIST_ARGS.length);
131195
+ }
131196
+ function isCodeBuddyWriteCommand(target, command2, args2, kind) {
131197
+ if (target.host !== "codebuddy" || !["codebuddy", "cbc", CODEBUDDY_MACOS_PATH].includes(command2)) return false;
131198
+ const expected = kind === "marketplace-update" ? ["plugin", "marketplace", "update", target.marketplace] : ["plugin", "update", `${target.plugin}@${target.marketplace}`, "--scope", "user"];
131199
+ return Array.isArray(args2) && args2.length === expected.length && args2.every((value, index) => value === expected[index]);
131200
+ }
131201
+ async function runCodeBuddyRead(target, command2, args2, label, env, run6) {
131202
+ try {
131203
+ return { output: await run6(command2, [...args2], { env }), recovered: false };
131204
+ } catch (error) {
131205
+ if (!isCodeBuddyReadCommand(target, command2, args2) || !isCodeBuddyResidualEnvelope(error)) throw error;
131206
+ const residualStdout = foundationStdoutFromError(error);
131207
+ if (typeof residualStdout !== "string") throw error;
131208
+ parseJson2(residualStdout, label);
131209
+ return {
131210
+ output: { stdout: residualStdout, stderr: "" },
131211
+ recovered: true
131212
+ };
131213
+ }
131214
+ }
131215
+ function exactCodeBuddyMarketplaceObservation(target, stdout) {
131216
+ const parsed = parseJson2(stdout, `${target.host} marketplace list`);
131217
+ if (!Array.isArray(parsed)) throw new Error(`${target.host} marketplace list did not return an array`);
131218
+ const matches = parsed.filter((entry) => entry?.name === target.marketplace);
131219
+ if (matches.length !== 1) {
131220
+ throw new Error(`${target.host} marketplace list did not contain exactly one ${target.marketplace}`);
131221
+ }
131222
+ if (matches[0].type !== "git") {
131223
+ throw new Error(`${target.host} marketplace ${target.marketplace} is not a git marketplace`);
131224
+ }
131225
+ return { installed: true, exact: true, found: matches[0] };
131226
+ }
131227
+ async function observeCodeBuddyMarketplaceAfterResidual(target, command2, env, run6) {
131228
+ const observed = await runCodeBuddyRead(
131229
+ target,
131230
+ command2,
131231
+ CODEBUDDY_MARKETPLACE_LIST_ARGS,
131232
+ `${target.host} marketplace list`,
131233
+ env,
131234
+ run6
131235
+ );
131236
+ return exactCodeBuddyMarketplaceObservation(target, observed.output.stdout);
131237
+ }
131006
131238
  function exactPluginObservation(target, stdout) {
131007
131239
  const selector = `${target.plugin}@${target.marketplace}`;
131008
131240
  const parsed = parseJson2(stdout, `${target.host} plugin list`);
@@ -131120,7 +131352,8 @@ async function runStructuredUpdate(target, detected, run6, {
131120
131352
  }) {
131121
131353
  if (target.host === "codebuddy" || target.host === "workbuddy") {
131122
131354
  const env2 = hostEnvironment(target.host);
131123
- const listed = await run6(detected.command, ["plugin", "list", "--json"], { env: env2 });
131355
+ const listedObservation = target.host === "codebuddy" ? await runCodeBuddyRead(target, detected.command, CODEBUDDY_PLUGIN_LIST_ARGS, `${target.host} plugin list`, env2, run6) : { output: await run6(detected.command, [...CODEBUDDY_PLUGIN_LIST_ARGS], { env: env2 }), recovered: false };
131356
+ const listed = listedObservation.output;
131124
131357
  const observed = exactPluginObservation(target, listed.stdout);
131125
131358
  if (target.sourceForm !== "bundled-family" || target.pluginRepo !== target.marketplaceRepo || target.pluginCommit !== target.marketplaceCommit) {
131126
131359
  return {
@@ -131128,7 +131361,13 @@ async function runStructuredUpdate(target, detected, run6, {
131128
131361
  reason: `${target.host} source identity is not eligible for a frozen bundled-family update`
131129
131362
  };
131130
131363
  }
131131
- if (observed.exact) return { status: "ALREADY_CURRENT", version: target.version };
131364
+ if (observed.exact) {
131365
+ return {
131366
+ status: "ALREADY_CURRENT",
131367
+ version: target.version,
131368
+ ...listedObservation.recovered ? { residualRecovery: true } : {}
131369
+ };
131370
+ }
131132
131371
  if (!observed.installed) {
131133
131372
  return {
131134
131373
  status: "MANUAL_REQUIRED",
@@ -131158,18 +131397,54 @@ async function runStructuredUpdate(target, detected, run6, {
131158
131397
  reason: `${target.host} frozen tag and mutable ref do not both resolve to ${target.pluginCommit}`
131159
131398
  };
131160
131399
  }
131161
- await run6(detected.command, ["plugin", "marketplace", "update", target.marketplace], { env: env2 });
131162
- await run6(detected.command, [
131163
- "plugin",
131164
- "update",
131165
- `${target.plugin}@${target.marketplace}`,
131166
- "--scope",
131167
- "user"
131168
- ], { env: env2 });
131169
- const afterList = await run6(detected.command, ["plugin", "list", "--json"], { env: env2 });
131170
- const after2 = exactPluginObservation(target, afterList.stdout);
131400
+ let marketplaceRecovered = false;
131401
+ try {
131402
+ await run6(detected.command, ["plugin", "marketplace", "update", target.marketplace], { env: env2 });
131403
+ } catch (error) {
131404
+ if (!isCodeBuddyWriteCommand(target, detected.command, ["plugin", "marketplace", "update", target.marketplace], "marketplace-update") || !isCodeBuddyResidualEnvelope(error)) throw error;
131405
+ await observeCodeBuddyMarketplaceAfterResidual(target, detected.command, env2, run6);
131406
+ marketplaceRecovered = true;
131407
+ }
131408
+ let after2;
131409
+ let pluginRecovered = false;
131410
+ try {
131411
+ await run6(detected.command, [
131412
+ "plugin",
131413
+ "update",
131414
+ `${target.plugin}@${target.marketplace}`,
131415
+ "--scope",
131416
+ "user"
131417
+ ], { env: env2 });
131418
+ } catch (error) {
131419
+ if (!isCodeBuddyWriteCommand(target, detected.command, [
131420
+ "plugin",
131421
+ "update",
131422
+ `${target.plugin}@${target.marketplace}`,
131423
+ "--scope",
131424
+ "user"
131425
+ ], "plugin-update") || !isCodeBuddyResidualEnvelope(error)) throw error;
131426
+ const afterList = await runCodeBuddyRead(
131427
+ target,
131428
+ detected.command,
131429
+ CODEBUDDY_PLUGIN_LIST_ARGS,
131430
+ `${target.host} plugin list`,
131431
+ env2,
131432
+ run6
131433
+ );
131434
+ after2 = exactPluginObservation(target, afterList.output.stdout);
131435
+ pluginRecovered = true;
131436
+ }
131437
+ if (!pluginRecovered) {
131438
+ const afterList = target.host === "codebuddy" ? await runCodeBuddyRead(target, detected.command, CODEBUDDY_PLUGIN_LIST_ARGS, `${target.host} plugin list`, env2, run6) : { output: await run6(detected.command, [...CODEBUDDY_PLUGIN_LIST_ARGS], { env: env2 }), recovered: false };
131439
+ after2 = exactPluginObservation(target, afterList.output.stdout);
131440
+ }
131171
131441
  if (!after2.exact) throw new Error(`${target.host} did not update to the frozen plugin identity`);
131172
- return { status: "UPDATED", version: target.version, restartRequired: true };
131442
+ return {
131443
+ status: "UPDATED",
131444
+ version: target.version,
131445
+ restartRequired: true,
131446
+ ...marketplaceRecovered || listedObservation.recovered || pluginRecovered ? { residualRecovery: true } : {}
131447
+ };
131173
131448
  }
131174
131449
  const command2 = detected.command;
131175
131450
  const env = hostEnvironment(target.host);
@@ -131245,9 +131520,9 @@ expect {
131245
131520
  timeout { exit 95 }
131246
131521
  eof { exit 96 }
131247
131522
  }
131248
- expect -re {> $}
131523
+ expect -re $promptPattern
131249
131524
  }
131250
- -re {> $} {}
131525
+ -re $promptPattern {}
131251
131526
  timeout { exit 93 }
131252
131527
  eof { exit 94 }
131253
131528
  }
@@ -131259,8 +131534,9 @@ foreach variable {RELEASE_SKILL_KIMI_COMMAND RELEASE_SKILL_KIMI_INSTALL_URL RELE
131259
131534
  set kimiCommand $env(RELEASE_SKILL_KIMI_COMMAND)
131260
131535
  set installUrl $env(RELEASE_SKILL_KIMI_INSTALL_URL)
131261
131536
  set removePlugin $env(RELEASE_SKILL_KIMI_REMOVE_PLUGIN)
131537
+ set promptPattern {(?:(?:^|\\r|\\n)> |(?:^|\\r|\\n)(?:\\033\\[[0-9;?]*[ -/]*[@-~])*\u2502[ \\t]*>[ \\t]*\u2502(?:\\033\\[[0-9;?]*[ -/]*[@-~])*)(?![^\\n]|\\n)}
131262
131538
  spawn $kimiCommand
131263
- expect -re {> $}
131539
+ expect -re $promptPattern
131264
131540
  ${removeCommand}send -- "/plugins install $installUrl\\r"
131265
131541
  expect {
131266
131542
  -nocase -re {trust and install} {
@@ -131273,9 +131549,9 @@ expect {
131273
131549
  timeout { exit 91 }
131274
131550
  eof { exit 92 }
131275
131551
  }
131276
- expect -re {> $}
131552
+ expect -re $promptPattern
131277
131553
  send -- "/reload\\r"
131278
- expect -re {> $}
131554
+ expect -re $promptPattern
131279
131555
  send -- "/exit\\r"
131280
131556
  expect eof
131281
131557
  `;
@@ -131402,6 +131678,8 @@ function aggregateStatus(results) {
131402
131678
  }
131403
131679
  function failedHostResult(target, error) {
131404
131680
  const message = error?.message ?? String(error);
131681
+ const details = error?.details;
131682
+ const publicDetails = details && typeof details === "object" && !Array.isArray(details) ? Object.fromEntries(Object.entries(details).filter(([key]) => key !== "foundationEnvelope" && key !== "foundationStdout" && key !== "foundationStderr")) : details;
131405
131683
  return {
131406
131684
  host: target.host,
131407
131685
  unitId: target.unitId,
@@ -131409,7 +131687,7 @@ function failedHostResult(target, error) {
131409
131687
  error: message,
131410
131688
  reason: typeof error?.reason === "string" ? error.reason : message,
131411
131689
  ...error?.code !== void 0 ? { code: error.code } : {},
131412
- ...error?.details !== void 0 ? { details: error.details } : {}
131690
+ ...publicDetails !== void 0 ? { details: publicDetails } : {}
131413
131691
  };
131414
131692
  }
131415
131693
  async function updateLocalHostPlugins({
@@ -131468,7 +131746,7 @@ async function updateLocalHostPlugins({
131468
131746
  releaseStatusChanged: false
131469
131747
  };
131470
131748
  }
131471
- var HOSTS_BY_ACTION, DISTRIBUTION_BY_ACTION, BRANCH_ACTION_INCLUDED, CODEBUDDY_MACOS_PATH, SAFE_ENV_KEYS;
131749
+ var HOSTS_BY_ACTION, DISTRIBUTION_BY_ACTION, BRANCH_ACTION_INCLUDED, CODEBUDDY_MACOS_PATH, SAFE_ENV_KEYS, CODEBUDDY_PLUGIN_LIST_ARGS, CODEBUDDY_MARKETPLACE_LIST_ARGS;
131472
131750
  var init_post_release_local = __esm({
131473
131751
  async "src/commands/post-release-local.mjs"() {
131474
131752
  init_src2();
@@ -131511,6 +131789,9 @@ var init_post_release_local = __esm({
131511
131789
  "CODEX_HOME",
131512
131790
  "KIMI_CONFIG_DIR"
131513
131791
  ]);
131792
+ CODEBUDDY_PLUGIN_LIST_ARGS = Object.freeze(["plugin", "list", "--json"]);
131793
+ CODEBUDDY_MARKETPLACE_LIST_ARGS = Object.freeze(["plugin", "marketplace", "list"]);
131794
+ __name(attachFoundationFailure, "attachFoundationFailure");
131514
131795
  __name(actionTarget, "actionTarget");
131515
131796
  __name(pluginTargets, "pluginTargets");
131516
131797
  __name(assertExecutableTarget, "assertExecutableTarget");
@@ -131522,6 +131803,14 @@ var init_post_release_local = __esm({
131522
131803
  __name(commandAvailable, "commandAvailable");
131523
131804
  __name(defaultDetect, "defaultDetect");
131524
131805
  __name(parseJson2, "parseJson");
131806
+ __name(foundationEnvelopeFromError, "foundationEnvelopeFromError");
131807
+ __name(foundationStdoutFromError, "foundationStdoutFromError");
131808
+ __name(isCodeBuddyResidualEnvelope, "isCodeBuddyResidualEnvelope");
131809
+ __name(isCodeBuddyReadCommand, "isCodeBuddyReadCommand");
131810
+ __name(isCodeBuddyWriteCommand, "isCodeBuddyWriteCommand");
131811
+ __name(runCodeBuddyRead, "runCodeBuddyRead");
131812
+ __name(exactCodeBuddyMarketplaceObservation, "exactCodeBuddyMarketplaceObservation");
131813
+ __name(observeCodeBuddyMarketplaceAfterResidual, "observeCodeBuddyMarketplaceAfterResidual");
131525
131814
  __name(exactPluginObservation, "exactPluginObservation");
131526
131815
  __name(normalizeGitSource, "normalizeGitSource");
131527
131816
  __name(observeMarketplace, "observeMarketplace");
@@ -138331,6 +138620,70 @@ __export(ship_exports, {
138331
138620
  });
138332
138621
  import { readFile as readFile45, lstat as lstat45, mkdir as mkdir30 } from "node:fs/promises";
138333
138622
  import { basename as basename14, dirname as dirname21, resolve as resolve37 } from "node:path";
138623
+ function normalizeNewShipUnitIds(releaseUnits, requestedUnitIds) {
138624
+ if (requestedUnitIds === void 0) return void 0;
138625
+ const availableUnitIds = (releaseUnits ?? []).map((unit) => unit.id);
138626
+ if (!Array.isArray(requestedUnitIds) || requestedUnitIds.length === 0) {
138627
+ throw new ReleaseError(
138628
+ CONFIG_INVALID,
138629
+ "explicit ship release-unit selection must contain at least one unit id",
138630
+ { requestedUnitIds, availableUnitIds }
138631
+ );
138632
+ }
138633
+ const requestedSet = new Set(requestedUnitIds);
138634
+ const invalid5 = requestedUnitIds.filter((unitId) => typeof unitId !== "string" || unitId.length === 0);
138635
+ const unknown = requestedUnitIds.filter((unitId) => !availableUnitIds.includes(unitId));
138636
+ if (invalid5.length > 0 || requestedSet.size !== requestedUnitIds.length || unknown.length > 0) {
138637
+ throw new ReleaseError(
138638
+ CONFIG_INVALID,
138639
+ "ship release-unit selection contains empty, duplicate, or unknown unit ids",
138640
+ { requestedUnitIds, availableUnitIds }
138641
+ );
138642
+ }
138643
+ return availableUnitIds.filter((unitId) => requestedSet.has(unitId));
138644
+ }
138645
+ function sameUnitSelection(left, right) {
138646
+ return Array.isArray(left) && Array.isArray(right) && left.length === right.length && new Set(left).size === left.length && new Set(right).size === right.length && left.every((unitId) => right.includes(unitId));
138647
+ }
138648
+ function sameUnitOrder(left, right) {
138649
+ return Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((unitId, index) => unitId === right[index]);
138650
+ }
138651
+ function unitScopeMismatch(statePath, stateUnitIds, requestedUnitIds, message) {
138652
+ return new ReleaseError(
138653
+ GATE_FAILED,
138654
+ message,
138655
+ {
138656
+ reason: "SHIP_STATE_UNIT_SCOPE_MISMATCH",
138657
+ statePath,
138658
+ stateUnitIds: stateUnitIds ?? null,
138659
+ requestedUnitIds: requestedUnitIds ?? null
138660
+ }
138661
+ );
138662
+ }
138663
+ function assertFrozenPlanUnitScope({ statePath, stateUnitIds, expectedUnitIds, plan }) {
138664
+ const planUnitIds = (plan.units ?? []).map((unit) => unit.id);
138665
+ const exactMatch = Array.isArray(expectedUnitIds) && planUnitIds.length === expectedUnitIds.length && planUnitIds.every((unitId, index) => unitId === expectedUnitIds[index]);
138666
+ if (!exactMatch) {
138667
+ throw unitScopeMismatch(
138668
+ statePath,
138669
+ stateUnitIds,
138670
+ planUnitIds,
138671
+ "ship state release-unit scope does not match frozen plan.units"
138672
+ );
138673
+ }
138674
+ }
138675
+ async function readFrozenPlanForUnitScope(planPath, statePath, stateUnitIds) {
138676
+ try {
138677
+ return JSON.parse(await readFile45(planPath, "utf8"));
138678
+ } catch (error) {
138679
+ throw unitScopeMismatch(
138680
+ statePath,
138681
+ stateUnitIds,
138682
+ null,
138683
+ `cannot verify ship state release-unit scope against frozen plan: ${error.message}`
138684
+ );
138685
+ }
138686
+ }
138334
138687
  async function writeJsonAtomic(path40, value) {
138335
138688
  await mkdir30(dirname21(path40), { recursive: true });
138336
138689
  const { stateDigest: _oldDigest, ...body } = value;
@@ -138407,6 +138760,7 @@ function publicState2(state) {
138407
138760
  ...state.hooks && state.hooks.length > 0 ? {
138408
138761
  hooks: state.hooks
138409
138762
  } : {},
138763
+ ...state.selectedUnitIds ? { selectedUnitIds: state.selectedUnitIds } : {},
138410
138764
  ...state.planPath ? {
138411
138765
  planPath: state.planPath,
138412
138766
  planDigest: state.planDigest,
@@ -138553,12 +138907,31 @@ async function advanceShip(options = {}, injected = {}) {
138553
138907
  );
138554
138908
  }
138555
138909
  }
138910
+ if (state && options.unitIds !== void 0) {
138911
+ if (!Array.isArray(state.selectedUnitIds)) {
138912
+ throw unitScopeMismatch(
138913
+ statePath,
138914
+ null,
138915
+ options.unitIds,
138916
+ "an existing full-scope or legacy ship state cannot acquire --unit; provide a new --state path"
138917
+ );
138918
+ }
138919
+ if (!sameUnitSelection(state.selectedUnitIds, options.unitIds)) {
138920
+ throw unitScopeMismatch(
138921
+ statePath,
138922
+ state.selectedUnitIds,
138923
+ options.unitIds,
138924
+ "ship state release-unit scope does not match the requested --unit values"
138925
+ );
138926
+ }
138927
+ }
138556
138928
  if (state?.gitTransport) {
138557
138929
  process.env.RELEASE_SKILL_GIT_TRANSPORT = state.gitTransport;
138558
138930
  }
138559
138931
  if (!state) {
138560
138932
  const loaded = await deps.loadProjectConfig({ root });
138561
138933
  const hooks = Object.keys(loaded.config.hooks ?? {}).sort();
138934
+ const selectedUnitIds = normalizeNewShipUnitIds(loaded.config.releaseUnits, options.unitIds);
138562
138935
  state = {
138563
138936
  schemaVersion: 2,
138564
138937
  root,
@@ -138566,6 +138939,7 @@ async function advanceShip(options = {}, injected = {}) {
138566
138939
  targetVersion: options.targetVersion ?? null,
138567
138940
  configDigest: loaded.configDigest,
138568
138941
  hooks,
138942
+ ...selectedUnitIds ? { selectedUnitIds } : {},
138569
138943
  status: "NEW",
138570
138944
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
138571
138945
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -138577,8 +138951,52 @@ async function advanceShip(options = {}, injected = {}) {
138577
138951
  state.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
138578
138952
  await writeJsonAtomic(statePath, state);
138579
138953
  }
138954
+ if (state.planPath && Array.isArray(state.selectedUnitIds)) {
138955
+ const frozenPlan = await readFrozenPlanForUnitScope(
138956
+ state.planPath,
138957
+ statePath,
138958
+ state.selectedUnitIds
138959
+ );
138960
+ assertFrozenPlanUnitScope({
138961
+ statePath,
138962
+ stateUnitIds: state.selectedUnitIds,
138963
+ expectedUnitIds: state.selectedUnitIds,
138964
+ plan: frozenPlan
138965
+ });
138966
+ }
138580
138967
  if (state.status === "NEW") {
138581
138968
  const loaded = await deps.loadProjectConfig({ root });
138969
+ let stateChanged = false;
138970
+ if (Array.isArray(state.selectedUnitIds)) {
138971
+ const normalizedStateUnitIds = normalizeNewShipUnitIds(
138972
+ loaded.config.releaseUnits,
138973
+ state.selectedUnitIds
138974
+ );
138975
+ if (!sameUnitSelection(normalizedStateUnitIds, state.selectedUnitIds)) {
138976
+ throw unitScopeMismatch(
138977
+ statePath,
138978
+ state.selectedUnitIds,
138979
+ normalizedStateUnitIds,
138980
+ "ship state release-unit scope no longer matches project configuration"
138981
+ );
138982
+ }
138983
+ if (!sameUnitOrder(normalizedStateUnitIds, state.selectedUnitIds)) {
138984
+ if (state.planPath) {
138985
+ throw unitScopeMismatch(
138986
+ statePath,
138987
+ state.selectedUnitIds,
138988
+ normalizedStateUnitIds,
138989
+ "frozen ship state release-unit order no longer matches project configuration"
138990
+ );
138991
+ }
138992
+ state = {
138993
+ ...state,
138994
+ selectedUnitIds: normalizedStateUnitIds,
138995
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
138996
+ };
138997
+ stateChanged = true;
138998
+ }
138999
+ }
138582
139000
  if (loaded.configDigest !== state.configDigest) {
138583
139001
  const hooks = Object.keys(loaded.config.hooks ?? {}).sort();
138584
139002
  state = {
@@ -138588,8 +139006,9 @@ async function advanceShip(options = {}, injected = {}) {
138588
139006
  status: "NEW",
138589
139007
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
138590
139008
  };
138591
- await writeJsonAtomic(statePath, state);
139009
+ stateChanged = true;
138592
139010
  }
139011
+ if (stateChanged) await writeJsonAtomic(statePath, state);
138593
139012
  const prepared = await deps.prepareRelease({
138594
139013
  root,
138595
139014
  version: state.targetVersion ?? void 0,
@@ -138597,11 +139016,23 @@ async function advanceShip(options = {}, injected = {}) {
138597
139016
  production: true,
138598
139017
  hooksAuthorized: true,
138599
139018
  verificationGatesAuthorized: true,
138600
- hookCache: true
138601
- });
139019
+ hookCache: true,
139020
+ ...state.selectedUnitIds ? { unitIds: state.selectedUnitIds } : {}
139021
+ });
139022
+ let frozenPlan = null;
139023
+ if (Array.isArray(state.selectedUnitIds) || deps.preflightGitTransports) {
139024
+ frozenPlan = Array.isArray(state.selectedUnitIds) ? await readFrozenPlanForUnitScope(prepared.planPath, statePath, state.selectedUnitIds) : JSON.parse(await readFile45(prepared.planPath, "utf8"));
139025
+ }
139026
+ if (Array.isArray(state.selectedUnitIds)) {
139027
+ assertFrozenPlanUnitScope({
139028
+ statePath,
139029
+ stateUnitIds: state.selectedUnitIds,
139030
+ expectedUnitIds: state.selectedUnitIds,
139031
+ plan: frozenPlan
139032
+ });
139033
+ }
138602
139034
  let transportPreflight = null;
138603
139035
  if (deps.preflightGitTransports) {
138604
- const frozenPlan = JSON.parse(await readFile45(prepared.planPath, "utf8"));
138605
139036
  transportPreflight = await deps.preflightGitTransports(frozenPlan);
138606
139037
  process.env.RELEASE_SKILL_GIT_TRANSPORT = transportPreflight.transport;
138607
139038
  }
@@ -138841,6 +139272,12 @@ var init_ship = __esm({
138841
139272
  init_postpublish();
138842
139273
  await init_post_release_local();
138843
139274
  init_errors3();
139275
+ __name(normalizeNewShipUnitIds, "normalizeNewShipUnitIds");
139276
+ __name(sameUnitSelection, "sameUnitSelection");
139277
+ __name(sameUnitOrder, "sameUnitOrder");
139278
+ __name(unitScopeMismatch, "unitScopeMismatch");
139279
+ __name(assertFrozenPlanUnitScope, "assertFrozenPlanUnitScope");
139280
+ __name(readFrozenPlanForUnitScope, "readFrozenPlanForUnitScope");
138844
139281
  __name(writeJsonAtomic, "writeJsonAtomic");
138845
139282
  __name(readState, "readState");
138846
139283
  __name(defaultDependencies, "defaultDependencies");
@@ -144942,7 +145379,7 @@ Options:
144942
145379
  performs an append-only hooks edit of an existing config (create-once is untouched)
144943
145380
  --select-hooks <ids> Comma-separated proposal ids to adopt (propose-hooks mode)
144944
145381
  --foundation-profile <path> Explicit foundation postPublish profile JSON (proposal input only; never auto-applied)
144945
- --unit <id> Release unit whose declared release documents are refreshed (docs refresh)
145382
+ --unit <id> Select a release unit for prepare/ship (repeatable); docs refresh accepts one unit
144946
145383
  --confirm-refresh <sha256:...> Confirm the exact dry-run refreshDigest before any document write
144947
145384
  --ack-local-document-write Acknowledge the explicit local release-document write (docs refresh --write)
144948
145385
  --platform <id> Legacy attestation platform: kimi or codebuddy
@@ -145117,6 +145554,7 @@ if (command === "ship" && (args.includes("--help") || args.includes("-h"))) {
145117
145554
  options: {
145118
145555
  targetVersion: "--target-version <version>",
145119
145556
  state: "--state <path>",
145557
+ unit: "--unit <id> (repeatable before plan freeze)",
145120
145558
  approve: "--approve --actor <name>"
145121
145559
  },
145122
145560
  message: "Repeat the same command to resume from the same state. For parallel or cross-session versions, use .release-skill/ships/<version>.json."
@@ -145130,6 +145568,7 @@ Usage:
145130
145568
  Options:
145131
145569
  --target-version <version> Specify the target version
145132
145570
  --state <path> Specify the durable state file
145571
+ --unit <id> Select a release unit before plan freeze (repeatable)
145133
145572
  --approve --actor <name> Approve the plan bound to the current state
145134
145573
 
145135
145574
  Repeat the same command to resume from the same state.
@@ -145324,6 +145763,7 @@ function printShipApprovalSummary(result2) {
145324
145763
  const summary = result2.approvalSummary;
145325
145764
  if (!summary) return;
145326
145765
  console.log("Approval summary:");
145766
+ console.log(` This approval covers only these release units: ${(summary.units ?? []).map((unit) => unit.id).join(", ") || "none"}`);
145327
145767
  for (const unit of summary.units ?? []) {
145328
145768
  console.log(` Unit ${unit.id} ${unit.targetVersion}`);
145329
145769
  console.log(` Public repo: ${unit.publicRepo}`);
@@ -145354,6 +145794,13 @@ if (command === "ship") {
145354
145794
  return idx !== -1 && args[idx + 1] ? args[idx + 1] : void 0;
145355
145795
  }, "value");
145356
145796
  const root = resolve41(value("--root") ?? process.cwd());
145797
+ const hasUnitSelection = args.includes("--unit");
145798
+ const unitIds = [];
145799
+ for (let i = 0; i < args.length; i += 1) {
145800
+ if (args[i] === "--unit") {
145801
+ unitIds.push(args[i + 1] && !args[i + 1].startsWith("--") ? args[i + 1] : "");
145802
+ }
145803
+ }
145357
145804
  const postpublishApprovalPaths = [];
145358
145805
  for (let i = 0; i < args.length; i += 1) {
145359
145806
  if (args[i] === "--hook-approval" && args[i + 1]) {
@@ -145393,6 +145840,7 @@ if (command === "ship") {
145393
145840
  planApprovalDigest: value("--approve-plan"),
145394
145841
  actor: value("--actor"),
145395
145842
  adapterRegistry,
145843
+ ...hasUnitSelection ? { unitIds } : {},
145396
145844
  ...postpublishApprovalPaths.length > 0 ? { postpublishApprovalPaths } : {}
145397
145845
  });
145398
145846
  if (hasJson) {
@@ -145515,6 +145963,13 @@ if (command === "prepare") {
145515
145963
  const output = outputIdx !== -1 && args[outputIdx + 1] ? resolve41(args[outputIdx + 1]) : void 0;
145516
145964
  const runDirIdx = args.indexOf("--run-dir");
145517
145965
  const runDir = runDirIdx !== -1 && args[runDirIdx + 1] ? resolve41(args[runDirIdx + 1]) : void 0;
145966
+ const hasUnitSelection = args.includes("--unit");
145967
+ const unitIds = [];
145968
+ for (let i = 0; i < args.length; i += 1) {
145969
+ if (args[i] === "--unit") {
145970
+ unitIds.push(args[i + 1] && !args[i + 1].startsWith("--") ? args[i + 1] : "");
145971
+ }
145972
+ }
145518
145973
  try {
145519
145974
  const { prepareRelease: prepareRelease2 } = await init_prepare().then(() => prepare_exports);
145520
145975
  const { readFile: readFileFs } = await import("node:fs/promises");
@@ -145529,7 +145984,8 @@ if (command === "prepare") {
145529
145984
  workflow,
145530
145985
  testSelection,
145531
145986
  output,
145532
- runDir
145987
+ runDir,
145988
+ ...hasUnitSelection ? { unitIds } : {}
145533
145989
  });
145534
145990
  const planContent = await readFileFs(result2.planPath, "utf8");
145535
145991
  const plan = JSON.parse(planContent);
@@ -145553,7 +146009,8 @@ if (command === "prepare") {
145553
146009
  unitId: action.unitId
145554
146010
  })),
145555
146011
  warnings: result2.warnings,
145556
- nextSteps: result2.nextSteps ?? []
146012
+ nextSteps: result2.nextSteps ?? [],
146013
+ ...result2.releaseScope ? { releaseScope: result2.releaseScope } : {}
145557
146014
  }, null, 2));
145558
146015
  } else {
145559
146016
  for (const warning of result2.warnings) {
@@ -145563,7 +146020,11 @@ if (command === "prepare") {
145563
146020
  console.log(`Plan digest: ${result2.planDigest}`);
145564
146021
  console.log(`Evidence: ${result2.evidenceDir}`);
145565
146022
  for (const step of result2.nextSteps ?? []) {
145566
- console.log(`Next [${step.code}] ${step.message}`);
146023
+ console.log(`Next [${step.code}] ${step.message}${step.argv ? ` (${step.argv.join(" ")})` : ""}`);
146024
+ }
146025
+ if (result2.releaseScope) {
146026
+ console.log(`Release scope: ${result2.releaseScope.selectedUnitIds.join(", ")}`);
146027
+ console.log(`Deferred units: ${result2.releaseScope.deferredUnitIds.join(", ") || "none"}`);
145567
146028
  }
145568
146029
  if (plan.workflowKind && plan.workflowKind !== "full") {
145569
146030
  console.log(`Workflow: ${plan.workflowKind}`);