@sublang/slc 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +100 -131
  2. package/dist/app.d.ts +20 -20
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +37 -30
  5. package/dist/app.js.map +1 -1
  6. package/dist/artifacts.d.ts +6 -6
  7. package/dist/artifacts.d.ts.map +1 -1
  8. package/dist/artifacts.js +9 -9
  9. package/dist/artifacts.js.map +1 -1
  10. package/dist/cli.js +3 -3
  11. package/dist/cligent-agent.d.ts +1 -1
  12. package/dist/cligent-agent.js +5 -5
  13. package/dist/compiled-executor.d.ts +14 -6
  14. package/dist/compiled-executor.d.ts.map +1 -1
  15. package/dist/compiled-executor.js +133 -31
  16. package/dist/compiled-executor.js.map +1 -1
  17. package/dist/config-file.d.ts +10 -6
  18. package/dist/config-file.d.ts.map +1 -1
  19. package/dist/config-file.js +23 -10
  20. package/dist/config-file.js.map +1 -1
  21. package/dist/config.d.ts +22 -18
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/config.js +90 -27
  24. package/dist/config.js.map +1 -1
  25. package/dist/emitted-imports.d.ts +14 -0
  26. package/dist/emitted-imports.d.ts.map +1 -1
  27. package/dist/emitted-imports.js +63 -7
  28. package/dist/emitted-imports.js.map +1 -1
  29. package/dist/entry-module.d.ts +5 -3
  30. package/dist/entry-module.d.ts.map +1 -1
  31. package/dist/entry-module.js +41 -13
  32. package/dist/entry-module.js.map +1 -1
  33. package/dist/execution.d.ts +10 -10
  34. package/dist/execution.d.ts.map +1 -1
  35. package/dist/execution.js +13 -13
  36. package/dist/execution.js.map +1 -1
  37. package/dist/hash.js +2 -2
  38. package/dist/host-capabilities.d.ts +115 -0
  39. package/dist/host-capabilities.d.ts.map +1 -0
  40. package/dist/host-capabilities.js +507 -0
  41. package/dist/host-capabilities.js.map +1 -0
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +1 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/interpreter.d.ts +2 -2
  47. package/dist/interpreter.d.ts.map +1 -1
  48. package/dist/interpreter.js +7 -7
  49. package/dist/invocation.d.ts +6 -6
  50. package/dist/invocation.d.ts.map +1 -1
  51. package/dist/invocation.js +1 -1
  52. package/dist/link.d.ts +4 -4
  53. package/dist/link.d.ts.map +1 -1
  54. package/dist/link.js +11 -11
  55. package/dist/link.js.map +1 -1
  56. package/dist/phase-runner.d.ts +4 -4
  57. package/dist/phase-runner.js +9 -9
  58. package/dist/phase.d.ts +4 -4
  59. package/dist/phase.d.ts.map +1 -1
  60. package/dist/phase.js +7 -7
  61. package/dist/phase.js.map +1 -1
  62. package/dist/pin-closure.d.ts +35 -7
  63. package/dist/pin-closure.d.ts.map +1 -1
  64. package/dist/pin-closure.js +135 -21
  65. package/dist/pin-closure.js.map +1 -1
  66. package/dist/pin-currency.d.ts +9 -4
  67. package/dist/pin-currency.d.ts.map +1 -1
  68. package/dist/pin-currency.js +57 -20
  69. package/dist/pin-currency.js.map +1 -1
  70. package/dist/pin-generate.d.ts +7 -7
  71. package/dist/pin-generate.d.ts.map +1 -1
  72. package/dist/pin-generate.js +14 -8
  73. package/dist/pin-generate.js.map +1 -1
  74. package/dist/pin-inputs.d.ts +41 -0
  75. package/dist/pin-inputs.d.ts.map +1 -0
  76. package/dist/pin-inputs.js +179 -0
  77. package/dist/pin-inputs.js.map +1 -0
  78. package/dist/pin-paths.d.ts +1 -1
  79. package/dist/pin-paths.js +4 -4
  80. package/dist/pin-paths.js.map +1 -1
  81. package/dist/pins.d.ts +4 -4
  82. package/dist/pins.d.ts.map +1 -1
  83. package/dist/pins.js +5 -5
  84. package/dist/pins.js.map +1 -1
  85. package/dist/pipeline.d.ts +5 -5
  86. package/dist/pipeline.js +10 -10
  87. package/dist/playbook-contract.d.ts +53 -5
  88. package/dist/playbook-contract.d.ts.map +1 -1
  89. package/dist/playbook-contract.js +70 -21
  90. package/dist/playbook-contract.js.map +1 -1
  91. package/dist/playbook-ports.d.ts +9 -9
  92. package/dist/playbook-ports.d.ts.map +1 -1
  93. package/dist/playbook-ports.js +6 -4
  94. package/dist/playbook-ports.js.map +1 -1
  95. package/dist/progress.d.ts +8 -9
  96. package/dist/progress.d.ts.map +1 -1
  97. package/dist/progress.js +3 -3
  98. package/dist/progress.js.map +1 -1
  99. package/dist/resolver.d.ts +9 -9
  100. package/dist/resolver.d.ts.map +1 -1
  101. package/dist/resolver.js +12 -12
  102. package/dist/resolver.js.map +1 -1
  103. package/dist/reviewing-agent.d.ts +18 -0
  104. package/dist/reviewing-agent.d.ts.map +1 -0
  105. package/dist/reviewing-agent.js +295 -0
  106. package/dist/reviewing-agent.js.map +1 -0
  107. package/dist/runner.d.ts +1 -1
  108. package/dist/runner.d.ts.map +1 -1
  109. package/dist/runner.js +195 -80
  110. package/dist/runner.js.map +1 -1
  111. package/dist/slc.config.template.yaml +6 -2
  112. package/dist/verify-coverage.d.ts +4 -3
  113. package/dist/verify-coverage.d.ts.map +1 -1
  114. package/dist/verify-coverage.js +509 -71
  115. package/dist/verify-coverage.js.map +1 -1
  116. package/dist/verify.d.ts +111 -15
  117. package/dist/verify.d.ts.map +1 -1
  118. package/dist/verify.js +656 -59
  119. package/dist/verify.js.map +1 -1
  120. package/package.json +3 -3
@@ -23,18 +23,23 @@ export interface PinEvaluationOptions {
23
23
  observePath?: (path: string) => void;
24
24
  }
25
25
  /**
26
- * Evaluates every pin in `<pipelineDir>/slc.pins.json` (PIN-1..PIN-6).
26
+ * Evaluates every pin in `<pipelineDir>/slc.pins.json` (pinning-1..pinning-6).
27
27
  *
28
28
  * @returns `{}` when the file is absent (no pins), `{ malformed }` when the file
29
29
  * is unparseable or invalid at the file level, or `{ path, verdicts }` with a
30
30
  * per-phase verdict otherwise.
31
31
  */
32
32
  export declare function evaluatePins(pipelineDir: string): Promise<PinsResult>;
33
- /** Evaluates every record and prevents one malformed record from coexisting with a current one. */
33
+ /**
34
+ * Validates the shared sidecar, then evaluates every record and prevents one
35
+ * malformed record from coexisting with a current one.
36
+ *
37
+ * @throws {PinError} when shared sidecar metadata is malformed at file level.
38
+ */
34
39
  export declare function evaluatePinFile(pipelineDir: string, file: PinFile, opts?: PinEvaluationOptions): Promise<Record<string, PinVerdict>>;
35
40
  /**
36
- * Evaluates one phase's pin record against the committed files (PIN-2..PIN-6,
37
- * PIN-13).
41
+ * Evaluates one phase's pin record against the committed files (pinning-2..pinning-6,
42
+ * pinning-13).
38
43
  *
39
44
  * Structural defects are reported as `malformed` before currency is judged, so a
40
45
  * record that is both malformed and stale reports `malformed`.
@@ -1 +1 @@
1
- {"version":3,"file":"pin-currency.d.ts","sourceRoot":"","sources":["../src/pin-currency.ts"],"names":[],"mappings":"AA4CA,OAAO,EAIL,KAAK,OAAO,EAGZ,KAAK,SAAS,EAEf,MAAM,WAAW,CAAC;AAMnB,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB3E;AAED,mGAAmG;AACnG,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAwBrC;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,UAAU,CAAC,CAuIrB;AA6FD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBxB;AA0JD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,MAAM,CAAC,CAajB"}
1
+ {"version":3,"file":"pin-currency.d.ts","sourceRoot":"","sources":["../src/pin-currency.ts"],"names":[],"mappings":"AAkDA,OAAO,EAIL,KAAK,OAAO,EAGZ,KAAK,SAAS,EAEf,MAAM,WAAW,CAAC;AAMnB,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAwB3E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAsCrC;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,UAAU,CAAC,CAErB;AA4QD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBxB;AA0JD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,MAAM,CAAC,CAajB"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
3
  /**
4
4
  * Pin-currency engine: the per-phase verdict that drives compiled selection
5
- * (PIN-1..PIN-6, PIN-13; DR-007).
5
+ * (pinning-1..pinning-6, pinning-13; DR-007).
6
6
  *
7
7
  * Given a pipeline directory, {@link evaluatePins} loads `slc.pins.json` and, for
8
8
  * each pinned phase, combines the validator stages into a verdict: `current` when
@@ -16,19 +16,21 @@
16
16
  * target by a deterministic `sha256:` tree hash over its files' sorted relative
17
17
  * paths and contents. Beyond existing and matching its recorded hash, the
18
18
  * compiled artifact must resolve to the linked `playbook` format — a module
19
- * exposing the runtime factory — or the phase is stale (PIN-13). See
20
- * specs/dev/pinning.md.
19
+ * exposing the runtime factory — or the phase is stale (pinning-13). See
20
+ * specs/packages/pinning.md.
21
21
  */
22
22
  import { lstat, readFile, readdir, readlink } from 'node:fs/promises';
23
- import { basename, dirname, isAbsolute, join, relative, resolve, sep, } from 'node:path';
23
+ import { basename as hostBasename, dirname, isAbsolute, join, relative, resolve, sep, } from 'node:path';
24
+ import { basename as posixBasename } from 'node:path/posix';
24
25
  import { hashFile, hashTreeRecords, isHash, serializeTreeRecord, } from './hash.js';
25
26
  import { resolvesToPlaybook } from './phase-runner.js';
26
- import { closureMatchesRecord } from './pin-closure.js';
27
+ import { closureMatchesRecord, deriveClosure, derivedClosureMatchesRecord, } from './pin-closure.js';
28
+ import { loadPinInputsFile } from './pin-inputs.js';
27
29
  import { resolvePinPath } from './pin-paths.js';
28
30
  import { PinError, loadPinFile, } from './pins.js';
29
31
  import { isBarePackageSpecifier, resolveRuntimePackage, } from './runtime-package.js';
30
32
  /**
31
- * Evaluates every pin in `<pipelineDir>/slc.pins.json` (PIN-1..PIN-6).
33
+ * Evaluates every pin in `<pipelineDir>/slc.pins.json` (pinning-1..pinning-6).
32
34
  *
33
35
  * @returns `{}` when the file is absent (no pins), `{ malformed }` when the file
34
36
  * is unparseable or invalid at the file level, or `{ path, verdicts }` with a
@@ -48,14 +50,31 @@ export async function evaluatePins(pipelineDir) {
48
50
  if (loaded.file === undefined) {
49
51
  return {};
50
52
  }
51
- const verdicts = await evaluatePinFile(pipelineDir, loaded.file);
52
- return { path: loaded.path, verdicts };
53
+ try {
54
+ const verdicts = await evaluatePinFile(pipelineDir, loaded.file);
55
+ return { path: loaded.path, verdicts };
56
+ }
57
+ catch (error) {
58
+ if (error instanceof PinError) {
59
+ return { path: loaded.path, malformed: error.message };
60
+ }
61
+ throw error;
62
+ }
53
63
  }
54
- /** Evaluates every record and prevents one malformed record from coexisting with a current one. */
64
+ /**
65
+ * Validates the shared sidecar, then evaluates every record and prevents one
66
+ * malformed record from coexisting with a current one.
67
+ *
68
+ * @throws {PinError} when shared sidecar metadata is malformed at file level.
69
+ */
55
70
  export async function evaluatePinFile(pipelineDir, file, opts = {}) {
71
+ const pinInputs = await loadPinInputsFile(pipelineDir, file.pathBoundary.path);
72
+ if (pinInputs.path !== undefined) {
73
+ opts.observePath?.(pinInputs.path);
74
+ }
56
75
  const verdicts = Object.create(null);
57
76
  for (const [phase, record] of Object.entries(file.pins)) {
58
- verdicts[phase] = await evaluatePin(pipelineDir, file, phase, record, opts);
77
+ verdicts[phase] = await evaluatePinRecord(pipelineDir, file, phase, record, opts, pinInputs);
59
78
  }
60
79
  const malformedPhase = Object.entries(verdicts).find(([, verdict]) => verdict.status === 'malformed');
61
80
  if (malformedPhase !== undefined) {
@@ -70,13 +89,16 @@ export async function evaluatePinFile(pipelineDir, file, opts = {}) {
70
89
  return verdicts;
71
90
  }
72
91
  /**
73
- * Evaluates one phase's pin record against the committed files (PIN-2..PIN-6,
74
- * PIN-13).
92
+ * Evaluates one phase's pin record against the committed files (pinning-2..pinning-6,
93
+ * pinning-13).
75
94
  *
76
95
  * Structural defects are reported as `malformed` before currency is judged, so a
77
96
  * record that is both malformed and stale reports `malformed`.
78
97
  */
79
98
  export async function evaluatePin(pipelineDir, file, phase, record, opts = {}) {
99
+ return evaluatePinRecord(pipelineDir, file, phase, record, opts);
100
+ }
101
+ async function evaluatePinRecord(pipelineDir, file, phase, record, opts, preloadedPinInputs) {
80
102
  const boundary = file.pathBoundary.path;
81
103
  try {
82
104
  // Structural (malformed) checks first.
@@ -109,8 +131,20 @@ export async function evaluatePin(pipelineDir, file, phase, record, opts = {}) {
109
131
  if (bundleMalformed !== null) {
110
132
  return malformed(bundleMalformed);
111
133
  }
134
+ // A present sidecar is structural pin metadata. Validate its complete
135
+ // shape and boundary, then prederive an applicable sidecar entry, before
136
+ // any byte-currency check so malformed input is never masked by an
137
+ // independently stale recorded file (pinning-18, pinning-20).
138
+ const pinInputs = preloadedPinInputs ?? (await loadPinInputsFile(pipelineDir, boundary));
139
+ if (pinInputs.path !== undefined) {
140
+ opts.observePath?.(pinInputs.path);
141
+ }
142
+ const derivedSidecarClosure = pinInputs.file !== undefined &&
143
+ Object.hasOwn(pinInputs.file.closures, phase)
144
+ ? await deriveClosure(pipelineDir, boundary, record.definition.path, phase, opts.observePath, pinInputs)
145
+ : undefined;
112
146
  // Currency (stale) checks. resolvePinPath throws PinError for a bad path,
113
- // which the catch below maps to malformed (PIN-5).
147
+ // which the catch below maps to malformed (pinning-5).
114
148
  for (const [field, ref] of recordedFileRefs(record)) {
115
149
  const reason = await fileStale(pipelineDir, boundary, ref, field, opts.observePath);
116
150
  if (reason !== null) {
@@ -125,13 +159,16 @@ export async function evaluatePin(pipelineDir, file, phase, record, opts = {}) {
125
159
  if (bundleLayout !== null) {
126
160
  return stale(bundleLayout);
127
161
  }
128
- // The hash-verified artifact must resolve to the linked `phase` format (PIN-13).
162
+ // The hash-verified artifact must resolve to the linked `playbook` format (pinning-13).
129
163
  const artifactFormat = await artifactFormatStale(pipelineDir, boundary, record.artifact, opts.observePath);
130
164
  if (artifactFormat !== null) {
131
165
  return stale(artifactFormat);
132
166
  }
133
- if (!(await closureMatchesRecord(pipelineDir, boundary, record, opts.observePath))) {
134
- return stale("the semantic-input closure differs from the definition's ## Pin Inputs");
167
+ const closureMatches = derivedSidecarClosure === undefined
168
+ ? await closureMatchesRecord(pipelineDir, boundary, record, phase, opts.observePath, pinInputs)
169
+ : derivedClosureMatchesRecord(pipelineDir, boundary, record, derivedSidecarClosure);
170
+ if (!closureMatches) {
171
+ return stale('the semantic-input closure differs from its applicable sidecar or inline declaration');
135
172
  }
136
173
  const linkStale = await linkTargetStale(pipelineDir, boundary, record.linkTarget, 'linkTarget', opts.observePath);
137
174
  if (linkStale !== null) {
@@ -158,8 +195,8 @@ function phaseRecordMalformed(phase, record) {
158
195
  const expectedDefinition = `${phase}.md`;
159
196
  const expectedBundle = `${phase}.slc`;
160
197
  const expectedArtifact = `${expectedBundle}/${phase}.playbook.ts`;
161
- if (record.definition.path !== expectedDefinition) {
162
- return `pin key "${phase}" requires definition path "${expectedDefinition}"`;
198
+ if (posixBasename(record.definition.path) !== expectedDefinition) {
199
+ return `pin key "${phase}" requires definition basename "${expectedDefinition}"`;
163
200
  }
164
201
  if (record.artifactBundle.path !== expectedBundle) {
165
202
  return `pin key "${phase}" requires artifactBundle path "${expectedBundle}"`;
@@ -221,7 +258,7 @@ function artifactBundleMalformed(pipelineDir, boundary, record) {
221
258
  * being reviewed is actually the runnable FSM/GEARS/verification bundle.
222
259
  */
223
260
  export async function artifactBundleLayoutIssue(bundleRoot, artifactPath) {
224
- const entry = basename(artifactPath);
261
+ const entry = hostBasename(artifactPath);
225
262
  if (!entry.endsWith('.playbook.ts')) {
226
263
  return `artifact is not a canonical .playbook.ts entry module (${entry})`;
227
264
  }
@@ -249,7 +286,7 @@ export async function artifactBundleLayoutIssue(bundleRoot, artifactPath) {
249
286
  }
250
287
  /**
251
288
  * Returns a stale reason when the compiled artifact's bytes do not resolve to the
252
- * linked `playbook` format, or `null` when they do (PIN-13). The caller has already
289
+ * linked `playbook` format, or `null` when they do (pinning-13). The caller has already
253
290
  * verified the artifact exists and matches its recorded hash.
254
291
  */
255
292
  async function artifactFormatStale(pipelineDir, boundary, artifact, observePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"pin-currency.js","sourceRoot":"","sources":["../src/pin-currency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pin-currency.js","sourceRoot":"","sources":["../src/pin-currency.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type PinExternalInput, type PinLinkTarget, type PinProducer, type PinRecord, type PinRuntimeDependency } from './pins.js';
2
2
  /** The committed inputs that produced one compiled phase, to pin (DR-007). */
3
3
  export interface PinSpec {
4
- /** Pipeline-dir-relative path to the phase definition. */
4
+ /** Portable pipeline-relative locator to the phase definition, inside the boundary. */
5
5
  definition: string;
6
6
  /** Pipeline-dir-relative path to the compiled `.playbook.ts` entry module. */
7
7
  artifact: string;
@@ -22,25 +22,25 @@ export interface PinSpec {
22
22
  /** Provenance of the producing run; never a currency input. */
23
23
  producer?: PinProducer;
24
24
  }
25
- /** Options for pin generation (PIN-15). */
25
+ /** Options for pin generation (pinning-15). */
26
26
  export interface PinGenerateOptions {
27
27
  /**
28
28
  * The recorded path boundary, a relative POSIX path from the pipeline
29
29
  * directory; defaults to `.`. A wider boundary (e.g. `../..`) lets a pin
30
- * record a link target outside the pipeline directory, such as the installed
31
- * package module the artifacts were linked against.
30
+ * record a definition, semantic input, dependency, or link target outside the
31
+ * pipeline directory, such as an installed package module.
32
32
  */
33
33
  boundary?: string;
34
34
  }
35
35
  /**
36
36
  * Generates a current {@link PinRecord} for one phase from its committed inputs
37
- * (PIN-15). The definition is recorded separately; the rest of its `## Pin Inputs`
38
- * closure becomes the enumerated `semanticInputs`.
37
+ * (pinning-15). The definition is recorded separately; the rest of its
38
+ * applicable sidecar or inline closure becomes the enumerated `semanticInputs`.
39
39
  */
40
40
  export declare function generatePinRecord(pipelineDir: string, spec: PinSpec, opts?: PinGenerateOptions): Promise<PinRecord>;
41
41
  /**
42
42
  * Writes the pin index `<pipelineDir>/slc.pins.json` for the given phase records
43
- * and returns its path (PIN-15).
43
+ * and returns its path (pinning-15).
44
44
  */
45
45
  export declare function writePinFile(pipelineDir: string, pins: Readonly<Record<string, PinRecord>>, opts?: PinGenerateOptions): Promise<string>;
46
46
  //# sourceMappingURL=pin-generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pin-generate.d.ts","sourceRoot":"","sources":["../src/pin-generate.ts"],"names":[],"mappings":"AA0BA,OAAO,EAKL,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAC1B,MAAM,WAAW,CAAC;AAGnB,8EAA8E;AAC9E,MAAM,WAAW,OAAO;IACtB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,UAAU,EAAE;QACV,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,yFAAyF;IACzF,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,SAAS,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,EAAE,CAAC;IACxE,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAKD,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAoIpB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACzC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAUjB"}
1
+ {"version":3,"file":"pin-generate.d.ts","sourceRoot":"","sources":["../src/pin-generate.ts"],"names":[],"mappings":"AA4BA,OAAO,EAKL,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAC1B,MAAM,WAAW,CAAC;AAGnB,8EAA8E;AAC9E,MAAM,WAAW,OAAO;IACtB,uFAAuF;IACvF,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,UAAU,EAAE;QACV,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,yFAAyF;IACzF,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,SAAS,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,EAAE,CAAC;IACxE,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAKD,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAyIpB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACzC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAUjB"}
@@ -2,20 +2,22 @@
2
2
  // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
3
  /**
4
4
  * Pin generation: the explicit build-and-review flow that writes `slc.pins.json`
5
- * (PIN-15; DR-007).
5
+ * (pinning-15, pinning-17; DR-007, DR-026).
6
6
  *
7
7
  * This is the inverse of the currency validator: given a built and reviewed
8
8
  * compiled artifact, {@link generatePinRecord} records — over committed bytes —
9
9
  * the definition, compiled entry module and reviewed artifact bundle, the
10
- * semantic-input closure derived from the definition's `## Pin Inputs`, and the
11
- * link-target identity, so the resulting record validates as current.
10
+ * semantic-input closure derived from its applicable sidecar or inline
11
+ * declaration, and the link-target identity, so the resulting record validates
12
+ * as current.
12
13
  * {@link writePinFile} writes the pin index for a pipeline directory. Generation
13
14
  * is invoked only by an explicit build-and-review step, never during an ordinary
14
15
  * pipeline run; `slc` does not regenerate or rewrite pins per invocation
15
- * (DR-007 lifecycle). See specs/dev/pinning.md.
16
+ * (DR-007 lifecycle). See specs/packages/pinning.md.
16
17
  */
17
18
  import { writeFile } from 'node:fs/promises';
18
19
  import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
20
+ import { basename as posixBasename } from 'node:path/posix';
19
21
  import { messageOf } from './errors.js';
20
22
  import { hashFile } from './hash.js';
21
23
  import { deriveClosure } from './pin-closure.js';
@@ -27,13 +29,13 @@ import { resolveRuntimePackage } from './runtime-package.js';
27
29
  const BOUNDARY = '.';
28
30
  /**
29
31
  * Generates a current {@link PinRecord} for one phase from its committed inputs
30
- * (PIN-15). The definition is recorded separately; the rest of its `## Pin Inputs`
31
- * closure becomes the enumerated `semanticInputs`.
32
+ * (pinning-15). The definition is recorded separately; the rest of its
33
+ * applicable sidecar or inline closure becomes the enumerated `semanticInputs`.
32
34
  */
33
35
  export async function generatePinRecord(pipelineDir, spec, opts = {}) {
34
36
  const boundary = opts.boundary ?? BOUNDARY;
35
37
  const definitionResolved = resolvePinPath(pipelineDir, boundary, spec.definition, 'definition');
36
- const closure = await deriveClosure(pipelineDir, boundary, spec.definition);
38
+ const closure = await deriveClosure(pipelineDir, boundary, spec.definition, phaseName(spec.definition));
37
39
  const semanticInputs = await Promise.all([...closure]
38
40
  .filter((resolved) => resolved !== definitionResolved)
39
41
  .sort()
@@ -110,7 +112,7 @@ export async function generatePinRecord(pipelineDir, spec, opts = {}) {
110
112
  }
111
113
  /**
112
114
  * Writes the pin index `<pipelineDir>/slc.pins.json` for the given phase records
113
- * and returns its path (PIN-15).
115
+ * and returns its path (pinning-15).
114
116
  */
115
117
  export async function writePinFile(pipelineDir, pins, opts = {}) {
116
118
  const file = {
@@ -126,4 +128,8 @@ export async function writePinFile(pipelineDir, pins, opts = {}) {
126
128
  function toPosix(path) {
127
129
  return path.split(sep).join('/');
128
130
  }
131
+ function phaseName(definitionPath) {
132
+ const name = posixBasename(definitionPath);
133
+ return name.endsWith('.md') ? name.slice(0, -'.md'.length) : name;
134
+ }
129
135
  //# sourceMappingURL=pin-generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pin-generate.js","sourceRoot":"","sources":["../src/pin-generate.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,QAAQ,GAOT,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AA0B7D,mEAAmE;AACnE,MAAM,QAAQ,GAAG,GAAG,CAAC;AAarB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,IAAa,EACb,OAA2B,EAAE;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC3C,MAAM,kBAAkB,GAAG,cAAc,CACvC,WAAW,EACX,QAAQ,EACR,IAAI,CAAC,UAAU,EACf,YAAY,CACb,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAE5E,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,CAAC,GAAG,OAAO,CAAC;SACT,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,kBAAkB,CAAC;SACrD,IAAI,EAAE;SACN,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpE,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,gBAAgB,GAAG,cAAc,CACrC,WAAW,EACX,QAAQ,EACR,IAAI,CAAC,QAAQ,EACb,UAAU,CACX,CAAC;IACF,MAAM,sBAAsB,GAAG,cAAc,CAC3C,WAAW,EACX,QAAQ,EACR,IAAI,CAAC,cAAc,EACnB,gBAAgB,CACjB,CAAC;IACF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAC5E,IACE,gBAAgB,KAAK,EAAE;QACvB,gBAAgB,KAAK,IAAI;QACzB,gBAAgB,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QACvC,UAAU,CAAC,gBAAgB,CAAC;QAC5B,OAAO,CAAC,gBAAgB,CAAC,KAAK,GAAG,EACjC,CAAC;QACD,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,sBAAsB,EACtB,gBAAgB,CACjB,CAAC;IACF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,YAAY,GAAG,cAAc,CACjC,WAAW,EACX,QAAQ,EACR,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,oBAAoB,CACrB,CAAC;IACF,MAAM,QAAQ,GACZ,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM;QAC7B,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEnC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,cAAc,CAC7B,WAAW,EACX,QAAQ,EACR,UAAU,CAAC,OAAO,EAClB,6BAA6B,CAC9B,CAAC;QACF,MAAM,kBAAkB,GACtB,UAAU,CAAC,IAAI,KAAK,MAAM;YACxB,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC;YAC1B,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,8DAA8D,CAC/D,CAAC;YACJ,CAAC;YACD,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,qBAAqB,CAC9B,gBAAgB,EAChB,UAAU,CAAC,SAAS,CACrB,CAAC,IAAI,CAAC;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,oDAAoD,SAAS,CAAC,KAAK,CAAC,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,8DAA8D,UAAU,CAAC,SAAS,GAAG,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IACzD,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,UAAU,GAAkB;QAChC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;QAC1B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;QAChC,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC5C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,MAAM,QAAQ,CAAC,kBAAkB,CAAC;SACzC;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACzE,cAAc,EAAE;YACd,IAAI,EAAE,IAAI,CAAC,cAAc;YACzB,IAAI,EAAE,MAAM,QAAQ,CAAC,sBAAsB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACvE;QACD,cAAc;QACd,cAAc,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAChD,mBAAmB;QACnB,UAAU;QACV,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,IAAyC,EACzC,OAA2B,EAAE;IAE7B,MAAM,IAAI,GAAY;QACpB,MAAM,EAAE,UAAU;QAClB,aAAa,EAAE,kBAAkB;QACjC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;QACjD,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE;KAClB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"pin-generate.js","sourceRoot":"","sources":["../src/pin-generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { PinError } from './pins.js';
2
+ /** Optional per-pipeline semantic-input declaration filename (DR-026). */
3
+ export declare const PIN_INPUTS_FILE = "slc.pin-inputs.json";
4
+ /** The only supported semantic-input declaration schema (DR-026). */
5
+ export declare const PIN_INPUTS_SCHEMA = "sublang.slc.pin-inputs.v1";
6
+ /** Parsed SLC-owned semantic-input declarations. */
7
+ export interface PinInputsFile {
8
+ schema: string;
9
+ closures: Record<string, string[]>;
10
+ }
11
+ /** A loaded declaration and its path, or neither when the sidecar is absent. */
12
+ export interface LoadedPinInputs {
13
+ path?: string;
14
+ file?: PinInputsFile;
15
+ }
16
+ /** A tolerant boundary inspection used by runtime protected-input discovery. */
17
+ export interface InspectedPinInputs extends LoadedPinInputs {
18
+ /** Resolved members by entry and source order; invalid members stay absent. */
19
+ resolvedClosures: Record<string, Array<string | undefined>>;
20
+ /** First boundary failure in file order, when any member is invalid. */
21
+ issue?: PinError;
22
+ }
23
+ /**
24
+ * Loads and validates `<pipelineDir>/slc.pin-inputs.json` (pinning-18).
25
+ *
26
+ * Every closure path is validated inside `boundary`, including paths belonging
27
+ * to phases other than the one a caller is about to derive.
28
+ */
29
+ export declare function loadPinInputsFile(pipelineDir: string, boundary: string): Promise<LoadedPinInputs>;
30
+ /**
31
+ * Reads the complete sidecar structure and inspects every member boundary.
32
+ *
33
+ * Unlike {@link loadPinInputsFile}, a member boundary failure is returned with
34
+ * every independently valid resolved member. Structural failures still throw
35
+ * because no trustworthy sidecar member list can be recovered; closure
36
+ * inspection may separately recover inline paths for conservative protection.
37
+ */
38
+ export declare function inspectPinInputsFile(pipelineDir: string, boundary: string): Promise<InspectedPinInputs>;
39
+ /** Parses strict sidecar JSON and validates its complete field shape. */
40
+ export declare function parsePinInputsFile(source: string, path?: string): PinInputsFile;
41
+ //# sourceMappingURL=pin-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin-inputs.d.ts","sourceRoot":"","sources":["../src/pin-inputs.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,0EAA0E;AAC1E,eAAO,MAAM,eAAe,wBAAwB,CAAC;AACrD,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5D,wEAAwE;IACxE,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAS1B;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAiC7B;AAqCD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAwB,GAC7B,aAAa,CAqBf"}
@@ -0,0 +1,179 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
+ /**
4
+ * SLC-owned semantic-input closure declarations (pinning-17, pinning-18;
5
+ * DR-026).
6
+ *
7
+ * A pipeline's optional `slc.pin-inputs.json` maps a phase or pass name to its
8
+ * complete flattened local semantic-input closure, excluding the separately
9
+ * recorded definition. Strict loading validates every declared path; tolerant
10
+ * inspection also retains independently valid paths for runtime protection.
11
+ */
12
+ import { lstat, readFile } from 'node:fs/promises';
13
+ import { join } from 'node:path';
14
+ import { errorCode, messageOf } from './errors.js';
15
+ import { resolvePinPath } from './pin-paths.js';
16
+ import { isPortablePhaseName } from './phase.js';
17
+ import { PinError } from './pins.js';
18
+ /** Optional per-pipeline semantic-input declaration filename (DR-026). */
19
+ export const PIN_INPUTS_FILE = 'slc.pin-inputs.json';
20
+ /** The only supported semantic-input declaration schema (DR-026). */
21
+ export const PIN_INPUTS_SCHEMA = 'sublang.slc.pin-inputs.v1';
22
+ /**
23
+ * Loads and validates `<pipelineDir>/slc.pin-inputs.json` (pinning-18).
24
+ *
25
+ * Every closure path is validated inside `boundary`, including paths belonging
26
+ * to phases other than the one a caller is about to derive.
27
+ */
28
+ export async function loadPinInputsFile(pipelineDir, boundary) {
29
+ const inspected = await inspectPinInputsFile(pipelineDir, boundary);
30
+ if (inspected.issue !== undefined) {
31
+ throw inspected.issue;
32
+ }
33
+ if (inspected.path === undefined || inspected.file === undefined) {
34
+ return {};
35
+ }
36
+ return { path: inspected.path, file: inspected.file };
37
+ }
38
+ /**
39
+ * Reads the complete sidecar structure and inspects every member boundary.
40
+ *
41
+ * Unlike {@link loadPinInputsFile}, a member boundary failure is returned with
42
+ * every independently valid resolved member. Structural failures still throw
43
+ * because no trustworthy sidecar member list can be recovered; closure
44
+ * inspection may separately recover inline paths for conservative protection.
45
+ */
46
+ export async function inspectPinInputsFile(pipelineDir, boundary) {
47
+ const loaded = await readPinInputsFile(pipelineDir);
48
+ const resolvedClosures = Object.create(null);
49
+ if (loaded.file === undefined) {
50
+ return { resolvedClosures };
51
+ }
52
+ let issue;
53
+ for (const [phase, closure] of Object.entries(loaded.file.closures)) {
54
+ const resolved = [];
55
+ resolvedClosures[phase] = resolved;
56
+ for (let index = 0; index < closure.length; index++) {
57
+ try {
58
+ resolved[index] = resolvePinPath(pipelineDir, boundary, closure[index], `${loaded.path}.closures.${phase}[${index}]`);
59
+ }
60
+ catch (error) {
61
+ if (!(error instanceof PinError))
62
+ throw error;
63
+ issue ??= error;
64
+ }
65
+ }
66
+ }
67
+ return {
68
+ ...loaded,
69
+ resolvedClosures,
70
+ ...(issue === undefined ? {} : { issue }),
71
+ };
72
+ }
73
+ /** Reads and structurally validates the sidecar without resolving members. */
74
+ async function readPinInputsFile(pipelineDir) {
75
+ const path = join(pipelineDir, PIN_INPUTS_FILE);
76
+ let info;
77
+ try {
78
+ info = await lstat(path);
79
+ }
80
+ catch (error) {
81
+ if (errorCode(error) === 'ENOENT')
82
+ return {};
83
+ throw new PinError('pin-invalid', `${path} cannot be inspected: ${errorCode(error)}`);
84
+ }
85
+ if (!info.isFile() || info.isSymbolicLink()) {
86
+ throw new PinError('pin-invalid', `${path} must be a regular non-symbolic-link file`);
87
+ }
88
+ let source;
89
+ try {
90
+ source = await readFile(path, 'utf8');
91
+ }
92
+ catch (error) {
93
+ throw new PinError('pin-invalid', `${path} cannot be read: ${errorCode(error)}`);
94
+ }
95
+ const file = parsePinInputsFile(source, path);
96
+ return { path, file };
97
+ }
98
+ /** Parses strict sidecar JSON and validates its complete field shape. */
99
+ export function parsePinInputsFile(source, path = PIN_INPUTS_FILE) {
100
+ let raw;
101
+ try {
102
+ raw = JSON.parse(source);
103
+ }
104
+ catch (error) {
105
+ throw new PinError('pin-parse', `${path} is not valid JSON: ${messageOf(error)}`);
106
+ }
107
+ const input = requireObject(raw, path);
108
+ rejectUnknownKeys(input, new Set(['schema', 'closures']), path);
109
+ const schema = requireString(input.schema, `${path}.schema`);
110
+ if (schema !== PIN_INPUTS_SCHEMA) {
111
+ throw invalid(`${path}.schema`, `must be "${PIN_INPUTS_SCHEMA}"`);
112
+ }
113
+ return {
114
+ schema,
115
+ closures: normalizeClosures(input.closures, `${path}.closures`),
116
+ };
117
+ }
118
+ function normalizeClosures(value, path) {
119
+ const input = requireObject(value, path);
120
+ const closures = Object.create(null);
121
+ for (const [phase, rawClosure] of Object.entries(input)) {
122
+ if (phase !== 'link' && !isPortablePhaseName(phase)) {
123
+ throw invalid(`${path}.${phase}`, 'key must be "link" or a portable phase/pass name');
124
+ }
125
+ const values = requireArray(rawClosure, `${path}.${phase}`);
126
+ const closure = [];
127
+ const seen = new Set();
128
+ for (let index = 0; index < values.length; index++) {
129
+ const item = `${path}.${phase}[${index}]`;
130
+ const declared = requirePortablePath(values[index], item);
131
+ if (seen.has(declared)) {
132
+ throw invalid(item, `duplicates closure path "${declared}"`);
133
+ }
134
+ seen.add(declared);
135
+ closure.push(declared);
136
+ }
137
+ closures[phase] = closure;
138
+ }
139
+ return closures;
140
+ }
141
+ function requireObject(value, path) {
142
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
143
+ throw invalid(path, 'must be an object');
144
+ }
145
+ return value;
146
+ }
147
+ function requireArray(value, path) {
148
+ if (!Array.isArray(value)) {
149
+ throw invalid(path, 'must be an array');
150
+ }
151
+ return value;
152
+ }
153
+ function requireString(value, path) {
154
+ if (typeof value !== 'string' || value.length === 0) {
155
+ throw invalid(path, 'must be a non-empty string');
156
+ }
157
+ return value;
158
+ }
159
+ function requirePortablePath(value, path) {
160
+ const result = requireString(value, path);
161
+ if (result.includes('\\') ||
162
+ result.includes('\0') ||
163
+ result.startsWith('/') ||
164
+ /^[a-zA-Z]:/.test(result)) {
165
+ throw invalid(path, 'must be a non-empty portable relative POSIX path');
166
+ }
167
+ return result;
168
+ }
169
+ function rejectUnknownKeys(value, allowed, path) {
170
+ for (const key of Object.keys(value)) {
171
+ if (!allowed.has(key)) {
172
+ throw invalid(`${path}.${key}`, 'is an unknown field');
173
+ }
174
+ }
175
+ }
176
+ function invalid(field, detail) {
177
+ return new PinError('pin-invalid', `${field} ${detail}`);
178
+ }
179
+ //# sourceMappingURL=pin-inputs.js.map