@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
@@ -1,19 +1,75 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
3
  /**
4
- * Deterministic load-integrity check for emitted modules (VERIFY-18).
4
+ * Deterministic link-object import settlement and load-integrity checks for
5
+ * emitted modules (pipeline-40, verification-18).
5
6
  *
6
7
  * A linked artifact is code whose relative imports Node resolves with exact
7
8
  * specifiers — `./workflow.fsm.js` does not find `workflow.fsm.ts`. An
8
- * agent-performed link can emit the wrong extension, and a compile that
9
- * reports success for a module that cannot load defers the failure to the
10
- * first `playbook run`. This check reads the emitted module and requires
11
- * every relative specifier to name an existing file beside it.
9
+ * agent-performed link can emit the wrong extension for its object import. The
10
+ * host settles that exact edge mechanically against a `.js` or `.ts` sibling
11
+ * that currently exists, then requires every relative specifier to name an
12
+ * existing file beside it. A genuinely unloadable module still fails before
13
+ * the first `playbook run`.
12
14
  */
13
- import { existsSync } from 'node:fs';
14
- import { readFile } from 'node:fs/promises';
15
+ import { existsSync, statSync } from 'node:fs';
16
+ import { readFile, writeFile } from 'node:fs/promises';
15
17
  import { dirname, resolve } from 'node:path';
16
18
  const IMPORT_SPECIFIER = /\bfrom\s+(['"])([^'"\n]+)\1|\bimport\s*\(\s*(['"])([^'"\n]+)\3\s*\)|\bimport\s+(['"])([^'"\n]+)\5/g;
19
+ const isRegularFile = (path) => statSync(path, { throwIfNoEntry: false })?.isFile() ?? false;
20
+ /**
21
+ * Settles relative `.js`/`.ts` imports of the link's object artifacts from the
22
+ * files that actually exist beside an emitted module. A materialized
23
+ * JavaScript sibling wins; otherwise the declared TypeScript object's sibling
24
+ * is used when present. Unrelated imports and object specifiers with neither
25
+ * sibling are left for
26
+ * {@link unresolvableRelativeImports} to reject.
27
+ */
28
+ export async function reconcileLinkObjectImportSpecifiers(modulePath, objectPaths) {
29
+ const source = await readFile(modulePath, 'utf8');
30
+ const dir = dirname(modulePath);
31
+ const emittedPath = resolve(modulePath);
32
+ const objectStems = new Set(objectPaths
33
+ .map((path) => resolve(path))
34
+ .filter((path) => path.endsWith('.js') || path.endsWith('.ts'))
35
+ .map((path) => path.slice(0, -3)));
36
+ const rewrites = [];
37
+ let cursor = 0;
38
+ let reconciled = '';
39
+ for (const match of source.matchAll(IMPORT_SPECIFIER)) {
40
+ const specifier = match[2] ?? match[4] ?? match[6];
41
+ if (specifier === undefined || match.index === undefined)
42
+ continue;
43
+ if (!specifier.startsWith('./') && !specifier.startsWith('../'))
44
+ continue;
45
+ if (!specifier.endsWith('.js') && !specifier.endsWith('.ts'))
46
+ continue;
47
+ const stem = specifier.slice(0, -3);
48
+ if (!objectStems.has(resolve(dir, stem)))
49
+ continue;
50
+ const jsSpecifier = `${stem}.js`;
51
+ const tsSpecifier = `${stem}.ts`;
52
+ const jsPath = resolve(dir, jsSpecifier);
53
+ const tsPath = resolve(dir, tsSpecifier);
54
+ const preferred = jsPath !== emittedPath && isRegularFile(jsPath)
55
+ ? jsSpecifier
56
+ : tsPath !== emittedPath && isRegularFile(tsPath)
57
+ ? tsSpecifier
58
+ : specifier;
59
+ if (preferred === specifier)
60
+ continue;
61
+ const specifierIndex = match[0].indexOf(specifier);
62
+ const start = match.index + specifierIndex;
63
+ reconciled += source.slice(cursor, start) + preferred;
64
+ cursor = start + specifier.length;
65
+ rewrites.push({ from: specifier, to: preferred });
66
+ }
67
+ if (rewrites.length > 0) {
68
+ reconciled += source.slice(cursor);
69
+ await writeFile(modulePath, reconciled, 'utf8');
70
+ }
71
+ return rewrites;
72
+ }
17
73
  /**
18
74
  * The relative import specifiers of a `.ts`/`.js` module that do not resolve
19
75
  * to an existing file from the module's own directory, in source order.
@@ -1 +1 @@
1
- {"version":3,"file":"emitted-imports.js","sourceRoot":"","sources":["../src/emitted-imports.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,gBAAgB,GACpB,oGAAoG,CAAC;AAEvG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,SAAS;QAC1E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"emitted-imports.js","sourceRoot":"","sources":["../src/emitted-imports.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,11 @@ export interface EmitEntryModuleOptions {
14
14
  /** Emits the entry module and returns its path. */
15
15
  export declare function emitEntryModule(opts: EmitEntryModuleOptions): Promise<string>;
16
16
  /**
17
- * The gears `Players:` declaration, verbatim in source order (SELFHOST-15).
18
- * Alias declarations (`` `A` = `B` | `C` ``) are launcher options, not
19
- * required roles, and are excluded.
17
+ * The gears role declaration, verbatim in source order (self-hosting-15).
18
+ * Playbook 10 renames the section `Players:` to `Roles:` and removes aliasing;
19
+ * both headings are read so schema-1 and schema-3 sources emit the same way.
20
+ * A schema-1 alias declaration (`` `A` = `B` | `C` ``) is a launcher option,
21
+ * not a required role, and is excluded.
20
22
  */
21
23
  export declare function declaredPlayers(gears: string): string[];
22
24
  //# sourceMappingURL=entry-module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-module.d.ts","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"AAwBA,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBvD"}
1
+ {"version":3,"file":"entry-module.d.ts","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"AAwBA,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBvD"}
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
3
  /**
4
- * Deterministic entry-module emission (DR-014, DR-017, SELFHOST-15).
4
+ * Deterministic entry-module emission (DR-014, DR-017, self-hosting-15).
5
5
  *
6
6
  * After a successful full-link of the `playbook` pipeline, {@link
7
7
  * emitEntryModule} writes `<cwd>/<basename>.ts`: an erasable-TypeScript module
@@ -13,11 +13,11 @@
13
13
  * factory behind the DR-017 role-binding boundary, which maps the linked
14
14
  * runtime's lowercased player ids back to the declared role ids at the
15
15
  * session's `callPlayer` port. `playbook run ./<basename>.ts "<task>"`
16
- * consumes it unchanged (SELFHOST-14). See specs/dev/self-hosting.md.
16
+ * consumes it unchanged (self-hosting-14). See specs/packages/self-hosting.md.
17
17
  */
18
18
  import { readFile, writeFile } from 'node:fs/promises';
19
19
  import { join } from 'node:path';
20
- import { parseGearsItems } from './verify.js';
20
+ import { inspectGearsRoleContract, parseGearsItems } from './verify.js';
21
21
  /** Emits the entry module and returns its path. */
22
22
  export async function emitEntryModule(opts) {
23
23
  const gears = await readFile(opts.gearsPath, 'utf8');
@@ -35,6 +35,11 @@ export async function emitEntryModule(opts) {
35
35
  }
36
36
  const hasScript = parseGearsItems(gears).some((item) => item.actor === 'script');
37
37
  const intent = deriveIntent(text) ?? opts.basename;
38
+ // A `Roles:` source compiles to a schema-3 artifact whose linked factory
39
+ // takes configured options plus live host capabilities; a `Players:` source
40
+ // keeps the schema-1 entry contract (DR-024).
41
+ const roleContract = inspectGearsRoleContract(gears);
42
+ const schema3 = roleContract.generation === 'schema-3';
38
43
  const path = join(opts.cwd, `${opts.basename}.ts`);
39
44
  await writeFile(path, renderEntryModule({
40
45
  basename: opts.basename,
@@ -42,21 +47,25 @@ export async function emitEntryModule(opts) {
42
47
  players,
43
48
  hasScript,
44
49
  intent,
50
+ schema3,
51
+ concurrentRoleSets: schema3 ? roleContract.concurrentRoleSets : [],
45
52
  }), 'utf8');
46
53
  return path;
47
54
  }
48
55
  /**
49
- * The gears `Players:` declaration, verbatim in source order (SELFHOST-15).
50
- * Alias declarations (`` `A` = `B` | `C` ``) are launcher options, not
51
- * required roles, and are excluded.
56
+ * The gears role declaration, verbatim in source order (self-hosting-15).
57
+ * Playbook 10 renames the section `Players:` to `Roles:` and removes aliasing;
58
+ * both headings are read so schema-1 and schema-3 sources emit the same way.
59
+ * A schema-1 alias declaration (`` `A` = `B` | `C` ``) is a launcher option,
60
+ * not a required role, and is excluded.
52
61
  */
53
62
  export function declaredPlayers(gears) {
54
63
  const players = [];
55
64
  let inBlock = false;
56
65
  for (const line of gears.split('\n')) {
57
- // Gears render the declaration either as a `Players:` line or as a
58
- // markdown `Players` heading; both carry the same source declaration.
59
- if (/^(?:#{1,6}\s+Players|Players:)\s*$/.test(line.trim())) {
66
+ // Gears render the declaration either as a `Players:`/`Roles:` line or as
67
+ // the matching markdown heading; all carry the same source declaration.
68
+ if (/^(?:#{1,6}\s+(?:Players|Roles)|(?:Players|Roles):)\s*$/.test(line.trim())) {
60
69
  inBlock = true;
61
70
  continue;
62
71
  }
@@ -109,6 +118,24 @@ function renderEntryModule(spec) {
109
118
  const cwdWiring = spec.hasScript
110
119
  ? `{\n ...validated,\n cwd: validated.cwd ?? process.cwd(),\n }`
111
120
  : `validated`;
121
+ // A schema-3 linked factory takes exactly `configuredOptions` and live
122
+ // `hostCapabilities`; a schema-1 factory keeps its single options argument
123
+ // under its own historical dependency closure (DR-024).
124
+ // Both aliases come from the artifact's own factory signature, so the entry
125
+ // imports no host-owned type: a schema-3 input carries `configuredOptions`
126
+ // and `hostCapabilities`, a schema-1 input is the options object itself.
127
+ const runtimeOptionsAlias = spec.schema3
128
+ ? `type RuntimeOptions = FactoryInput['configuredOptions'];\ntype HostCapabilities = FactoryInput['hostCapabilities'];`
129
+ : `type RuntimeOptions = FactoryInput;`;
130
+ const schema3Param = spec.schema3
131
+ ? `,\n hostCapabilities: HostCapabilities`
132
+ : '';
133
+ const factoryArgument = spec.schema3
134
+ ? `{\n configuredOptions: ${cwdWiring},\n hostCapabilities,\n }`
135
+ : cwdWiring;
136
+ const schemaMembers = spec.schema3
137
+ ? `\n artifactSchema: 3,\n runtimeProfile: 'composed-v3',\n concurrentRoleSets: ${JSON.stringify(spec.concurrentRoleSets)} as readonly (readonly string[])[],`
138
+ : '';
112
139
  return `// SPDX-License-Identifier: Apache-2.0
113
140
  // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
114
141
  //
@@ -119,7 +146,8 @@ function renderEntryModule(spec) {
119
146
 
120
147
  import createPlaybookRuntime from './${spec.bundleLeaf}/${spec.basename}.playbook.ts';
121
148
 
122
- type RuntimeOptions = NonNullable<Parameters<typeof createPlaybookRuntime>[0]>;
149
+ type FactoryInput = NonNullable<Parameters<typeof createPlaybookRuntime>[0]>;
150
+ ${runtimeOptionsAlias}
123
151
 
124
152
  const ALLOWED_OPTION_KEYS: readonly string[] = ${allowed};
125
153
 
@@ -194,12 +222,12 @@ function validateOptions(value: unknown): RuntimeOptions {
194
222
  const entry = {
195
223
  id: ${sourceString(spec.basename)},
196
224
  command: ${sourceString(spec.basename)},
197
- intent: ${sourceString(spec.intent)},
225
+ intent: ${sourceString(spec.intent)},${schemaMembers}
198
226
  requiredRoleIds: [...REQUIRED_ROLE_IDS],
199
227
  validateOptions,
200
- createRuntime(options: { captainOptions?: unknown }) {
228
+ createRuntime(options: { captainOptions?: unknown }${schema3Param}) {
201
229
  const validated = validateOptions(options.captainOptions);
202
- return withRoleBinding(createPlaybookRuntime(${cwdWiring}));
230
+ return withRoleBinding(createPlaybookRuntime(${factoryArgument}));
203
231
  },
204
232
  };
205
233
 
@@ -1 +1 @@
1
- {"version":3,"file":"entry-module.js","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry-module.js","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- /** An opaque link option pair (PIPE-14), structurally compatible with the CLI's LinkOption. */
1
+ /** An opaque link option pair (pipeline-14), structurally compatible with the CLI's LinkOption. */
2
2
  export interface LinkOptionPair {
3
3
  name: string;
4
4
  value: string;
5
5
  }
6
6
  /**
7
- * Host-supplied update-mode context for a compile step (DR-021, INCR-15).
7
+ * Host-supplied update-mode context for a compile step (DR-021, incremental-compilation-15).
8
8
  *
9
9
  * The existing target file is the previously accepted output; the executor is
10
10
  * asked to update it rather than regenerate from scratch. Purely an
@@ -22,13 +22,13 @@ export interface UpdateContext {
22
22
  }
23
23
  /**
24
24
  * Renders the host-owned update instruction shared by interpreted prompts and
25
- * compiled performing prompts (INCR-16).
25
+ * compiled performing prompts (incremental-compilation-16).
26
26
  */
27
27
  export declare function updateContextLines(update: UpdateContext, target: string): string[];
28
28
  /** What a phase execution is asked to produce: a compile target or a linked artifact. */
29
29
  export type ExecuteRequest = {
30
30
  kind: 'compile';
31
- /** Path to the phase definition, the semantic source of truth (PHEXEC-2). */
31
+ /** Path to the phase definition, the semantic source of truth (phase-execution-2). */
32
32
  definitionPath: string;
33
33
  source: string;
34
34
  target: string;
@@ -38,11 +38,11 @@ export type ExecuteRequest = {
38
38
  * rewrites the source toward (DR-013). Protected like definitions.
39
39
  */
40
40
  references?: readonly string[];
41
- /** Update-mode context; absent for a fresh compile (DR-021, INCR-15). */
41
+ /** Update-mode context; absent for a fresh compile (DR-021, incremental-compilation-15). */
42
42
  update?: UpdateContext;
43
43
  } | {
44
44
  kind: 'link';
45
- /** Path to the `link.md` definition, the semantic source of truth (PHEXEC-2). */
45
+ /** Path to the `link.md` definition, the semantic source of truth (phase-execution-2). */
46
46
  definitionPath: string;
47
47
  objects: string[];
48
48
  linkTarget: string;
@@ -60,7 +60,7 @@ export interface ExecutorResult {
60
60
  export interface PhaseExecutor {
61
61
  run(request: ExecuteRequest, signal: AbortSignal): Promise<ExecutorResult>;
62
62
  }
63
- /** A failure naming the phase, target path, and reasons (PHEXEC-9). */
63
+ /** A failure naming the phase, target path, and reasons (phase-execution-9). */
64
64
  export interface FailureReport {
65
65
  phase: string;
66
66
  target: string;
@@ -89,7 +89,7 @@ export declare function assertSafeTarget(target: string, protectedPaths: readonl
89
89
  export declare function pathsAlias(left: string, right: string): Promise<boolean>;
90
90
  /**
91
91
  * Runs a single phase through the execution boundary: generic mechanics only,
92
- * plus the DR-003 generic checks and blocked protocol (PHEXEC-1, PHEXEC-4..9).
92
+ * plus the DR-003 generic checks and blocked protocol (phase-execution-1, phase-execution-4..9).
93
93
  */
94
94
  export declare function runPhase(opts: {
95
95
  request: ExecuteRequest;
@@ -104,10 +104,10 @@ export declare function runPhase(opts: {
104
104
  aliasInputs?: readonly string[];
105
105
  /** Host state transition that must succeed immediately before executor work. */
106
106
  beforeExecute?: () => void | Promise<void>;
107
- /** Re-checks that the pipeline chain still infers; throws when it no longer does (PHEXEC-5). */
107
+ /** Re-checks that the pipeline chain still infers; throws when it no longer does (phase-execution-5). */
108
108
  revalidate?: () => void | Promise<void>;
109
109
  signal?: AbortSignal;
110
110
  }): Promise<PhaseResult>;
111
- /** Renders a failure report as a multi-line diagnostic string (PHEXEC-9). */
111
+ /** Renders a failure report as a multi-line diagnostic string (phase-execution-9). */
112
112
  export declare function formatFailureReport(report: FailureReport): string;
113
113
  //# sourceMappingURL=execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"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"}
package/dist/execution.js CHANGED
@@ -3,22 +3,22 @@
3
3
  /**
4
4
  * Execution boundary orchestrator and generic checks (DR-003).
5
5
  *
6
- * `runPhase` performs only generic mechanics (PHEXEC-1): it snapshots the
7
- * protected inputs, runs an injected {@link PhaseExecutor} (interpreted in
8
- * IR-001 Task 9, compiled later), then applies the generic checks — the target
9
- * exists and its extension matches the declared one (PHEXEC-4); the source,
6
+ * `runPhase` performs only generic mechanics (phase-execution-1): it snapshots the
7
+ * protected inputs, runs an injected {@link PhaseExecutor} (interpreted or
8
+ * compiled), then applies the generic checks — the target
9
+ * exists and its extension matches the declared one (phase-execution-4); the source,
10
10
  * objects, link target, and the chain's definition files are unchanged; and an
11
11
  * optional `revalidate` hook confirms the pipeline chain still infers, catching
12
- * added/removed phase files (PHEXEC-5). Input-mutating write-scope violations
13
- * are caught after any executor outcome (PHEXEC-3, PHEXEC-6). A `blocked` or
12
+ * added/removed phase files (phase-execution-5). Input-mutating write-scope violations
13
+ * are caught after any executor outcome (phase-execution-3, phase-execution-6). A `blocked` or
14
14
  * `error` result, a thrown executor, or any failed check becomes a failure
15
- * report naming the phase, target, and reasons (PHEXEC-7, PHEXEC-9).
15
+ * report naming the phase, target, and reasons (phase-execution-7, phase-execution-9).
16
16
  *
17
- * The executor honors PHEXEC-2 by treating the passed definition as the
17
+ * The executor honors phase-execution-2 by treating the passed definition as the
18
18
  * semantic source of truth. The host refuses target/input aliases and verifies
19
19
  * protected inputs afterward; sandboxing arbitrary unrelated writes remains a
20
20
  * host capability outside this boundary.
21
- * See specs/dev/phase-execution.md.
21
+ * See specs/packages/phase-execution.md.
22
22
  */
23
23
  import { createHash } from 'node:crypto';
24
24
  import { lstat, readFile, readdir, readlink, realpath, stat, } from 'node:fs/promises';
@@ -26,7 +26,7 @@ import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep, }
26
26
  import { errorCode, isAbsentPathError, messageOf } from './errors.js';
27
27
  /**
28
28
  * Renders the host-owned update instruction shared by interpreted prompts and
29
- * compiled performing prompts (INCR-16).
29
+ * compiled performing prompts (incremental-compilation-16).
30
30
  */
31
31
  export function updateContextLines(update, target) {
32
32
  const diff = update.diff === null
@@ -77,7 +77,7 @@ export async function pathsAlias(left, right) {
77
77
  }
78
78
  /**
79
79
  * Runs a single phase through the execution boundary: generic mechanics only,
80
- * plus the DR-003 generic checks and blocked protocol (PHEXEC-1, PHEXEC-4..9).
80
+ * plus the DR-003 generic checks and blocked protocol (phase-execution-1, phase-execution-4..9).
81
81
  */
82
82
  export async function runPhase(opts) {
83
83
  const { request, phase, targetExt, executor } = opts;
@@ -145,7 +145,7 @@ export async function runPhase(opts) {
145
145
  }
146
146
  // Protected inputs and chain definitions are re-checked after any outcome, so
147
147
  // a mutation is caught even when the executor blocks, errors, or throws
148
- // (PHEXEC-5, PHEXEC-6).
148
+ // (phase-execution-5, phase-execution-6).
149
149
  const after = await snapshot(protectedPaths);
150
150
  for (const path of protectedPaths) {
151
151
  if (before.get(path) !== after.get(path)) {
@@ -165,7 +165,7 @@ export async function runPhase(opts) {
165
165
  }
166
166
  return { ok: true, target, diagnostics: result?.diagnostics ?? [] };
167
167
  }
168
- /** Renders a failure report as a multi-line diagnostic string (PHEXEC-9). */
168
+ /** Renders a failure report as a multi-line diagnostic string (phase-execution-9). */
169
169
  export function formatFailureReport(report) {
170
170
  const lines = [`slc: phase "${report.phase}" failed at "${report.target}"`];
171
171
  for (const reason of report.reasons) {
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"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"}
package/dist/hash.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
3
  /**
4
- * Exact-byte SHA-256 hashing for pin currency (PIN-2, PIN-3; DR-007).
4
+ * Exact-byte SHA-256 hashing for pin currency (pinning-2, pinning-3; DR-007).
5
5
  *
6
6
  * Hashes are SHA-256 over the exact file bytes — with no line-ending or other
7
7
  * text normalization — written as `sha256:` followed by 64 lowercase hexadecimal
@@ -9,7 +9,7 @@
9
9
  * recorded hashes against, so any byte difference (including a line-ending
10
10
  * change) yields a different hash. The DR-003 write-scope snapshot in
11
11
  * `execution.ts` keeps its own raw-hex helper; this module owns the pin format.
12
- * See specs/dev/pinning.md.
12
+ * See specs/packages/pinning.md.
13
13
  */
14
14
  import { createHash } from 'node:crypto';
15
15
  import { readFile } from 'node:fs/promises';
@@ -0,0 +1,115 @@
1
+ /** Minimal structural view of the engine-owned boundary seed. */
2
+ export interface EffectBoundarySeed {
3
+ readonly boundaryId: string;
4
+ readonly runtimeSessionId: string;
5
+ readonly sourceStateId: string;
6
+ readonly sourceOutcomeSchema: unknown;
7
+ /** Repository dispositions declared by the boundary's outcome arms. */
8
+ readonly dispositions?: readonly string[];
9
+ readonly [key: string]: unknown;
10
+ }
11
+ export type RepositoryReceiptClassification = 'unchanged' | 'one-descendant-commit' | 'multiple-commits' | 'rewritten-or-non-descendant' | 'worktree-only-change' | 'concurrent-or-foreign-change' | 'observation-ambiguous';
12
+ export interface RepositoryObservation {
13
+ readonly worktree: string;
14
+ readonly gitDir: string;
15
+ readonly head: string;
16
+ readonly projection: Readonly<Record<string, unknown>>;
17
+ readonly projectionDigest: string;
18
+ }
19
+ export interface RepositoryReceipt {
20
+ readonly classification: RepositoryReceiptClassification;
21
+ readonly baseline: RepositoryObservation;
22
+ readonly after?: RepositoryObservation;
23
+ readonly commitOid?: string;
24
+ }
25
+ /** The engine's ordered effect ledger; revision is zero exactly when empty. */
26
+ export interface EffectLedgerSnapshot {
27
+ readonly schemaVersion: 1;
28
+ readonly revision: number;
29
+ readonly boundaries: readonly unknown[];
30
+ readonly logicalOperations: readonly unknown[];
31
+ }
32
+ export interface HostCapabilities {
33
+ readonly repository: unknown;
34
+ readonly effectLedger: unknown;
35
+ }
36
+ /** Runs one Git command and returns its stdout; throws on nonzero exit. */
37
+ export type GitRunner = (args: readonly string[]) => string;
38
+ /** The null Git OID, reported before a repository has its first commit. */
39
+ export declare const NULL_GIT_OID: string;
40
+ /**
41
+ * Builds a repository observation whose digest matches the engine's rule
42
+ * exactly: `sha256:` over `JSON.stringify(projection)`. Callers supply the
43
+ * worktree paths, HEAD, and the dirty-state projection; a repository with no
44
+ * commit yet reports the null OID, which is what the engine's canonical-OID
45
+ * check expects. The projection is required: an empty projection asserts a
46
+ * clean worktree, so it must come from a real status observation such as
47
+ * {@link observeGitWorktree}, never from a default.
48
+ */
49
+ export declare function observeWorktree(opts: {
50
+ readonly worktree: string;
51
+ readonly gitDir: string;
52
+ readonly head: string;
53
+ readonly projection: Readonly<Record<string, unknown>>;
54
+ }): RepositoryObservation;
55
+ /**
56
+ * Observes one Git worktree: HEAD plus a path-keyed projection of every
57
+ * dirty or untracked entry, derived from `git status --porcelain` with
58
+ * content identities so a change is visible even when the status code alone
59
+ * would not move. Mirrors the reference host's status-derived projection in
60
+ * reduced form: one sample, index identities from `ls-files -s`, worktree
61
+ * identities from `hash-object`.
62
+ */
63
+ export declare function observeGitWorktree(opts: {
64
+ readonly worktree: string;
65
+ readonly gitDir: string;
66
+ readonly run: GitRunner;
67
+ }): RepositoryObservation;
68
+ /**
69
+ * Classifies what one governed operation did to a repository, which is the
70
+ * judgement the engine matches against the state's declared
71
+ * `repositoryDisposition`. Mirrors the engine reference's
72
+ * `classifyRepositoryReceipt` decision order: an identical observation is
73
+ * `unchanged`; any change under all-`unchanged` dispositions is
74
+ * `concurrent-or-foreign-change`; a same-HEAD change is `worktree-only-change`
75
+ * only when it preserves every baseline entry and a commit arm is declared;
76
+ * a moved HEAD is one descendant commit only when ancestry proves exactly one
77
+ * new commit and the dirty projection is preserved; everything the observation
78
+ * cannot prove is `observation-ambiguous`.
79
+ */
80
+ export declare function classifyGitChange(opts: {
81
+ readonly baseline: RepositoryObservation;
82
+ readonly after: RepositoryObservation;
83
+ /** The boundary's declared dispositions; assume every arm when omitted. */
84
+ readonly dispositions?: readonly string[];
85
+ readonly run: GitRunner;
86
+ }): RepositoryReceiptClassification;
87
+ /** An empty ledger: revision zero exactly when both ordered ledgers are empty. */
88
+ export declare function emptyEffectLedger(): EffectLedgerSnapshot;
89
+ /**
90
+ * Capabilities whose repository and effect-mutation seams reject. Correct
91
+ * wherever the artifact declares no governed player state (DR-024).
92
+ */
93
+ export declare function failClosedHostCapabilities(): HostCapabilities;
94
+ /**
95
+ * Capabilities that run governed operations against a real worktree, observing
96
+ * it before and after so the engine receives a classified receipt. The engine
97
+ * owns each boundary's identity — it re-checks the source state and outcome
98
+ * schema on completion — so the seed it supplies is completed, never replaced.
99
+ *
100
+ * The boundary is recorded in the ledger when the operation starts, before the
101
+ * completion callback runs, so the engine's semantic correction budget can
102
+ * find and spend it through `writeAhead` mid-completion (DR-025, DR-028); the
103
+ * settlement then replaces the started record with the receipt and exactly the
104
+ * evidence the completion callback returned. A completion carrying a deferred
105
+ * Boss-question binding appends the reciprocal logical operation and settles
106
+ * `deferredStatus: 'bound'` (DR-005, DR-040).
107
+ */
108
+ export declare function worktreeHostCapabilities(opts: {
109
+ readonly playbookId: string;
110
+ readonly observe: () => RepositoryObservation;
111
+ readonly classify?: (baseline: RepositoryObservation, after: RepositoryObservation, context: {
112
+ readonly dispositions?: readonly string[];
113
+ }) => RepositoryReceiptClassification;
114
+ }): HostCapabilities;
115
+ //# sourceMappingURL=host-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-capabilities.d.ts","sourceRoot":"","sources":["../src/host-capabilities.ts"],"names":[],"mappings":"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"}