@scriptc/compiler 0.0.7 → 0.0.9

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 (94) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +13 -0
  2. package/dist/backend/cc.js +14 -0
  3. package/dist/backend/cc.js.map +1 -1
  4. package/dist/backend/emission/emit-exprs.js +155 -6
  5. package/dist/backend/emission/emit-exprs.js.map +1 -1
  6. package/dist/backend/emission/emit-island.js +9 -1
  7. package/dist/backend/emission/emit-island.js.map +1 -1
  8. package/dist/backend/emission/emit-stmts.js +3 -1
  9. package/dist/backend/emission/emit-stmts.js.map +1 -1
  10. package/dist/backend/emission/emit-types.d.ts +3 -0
  11. package/dist/backend/emission/emit-types.js +12 -0
  12. package/dist/backend/emission/emit-types.js.map +1 -1
  13. package/dist/backend/emission/emit-walkers.d.ts +7 -5
  14. package/dist/backend/emission/emit-walkers.js +45 -18
  15. package/dist/backend/emission/emit-walkers.js.map +1 -1
  16. package/dist/backend/emission/emitter.d.ts +1 -1
  17. package/dist/backend/emission/emitter.js +35 -10
  18. package/dist/backend/emission/emitter.js.map +1 -1
  19. package/dist/backend/emission/may-throw.js +4 -3
  20. package/dist/backend/emission/may-throw.js.map +1 -1
  21. package/dist/backend/llvm/emitter.js +300 -18
  22. package/dist/backend/llvm/emitter.js.map +1 -1
  23. package/dist/diagnostics/diagnostic.d.ts +98 -11
  24. package/dist/diagnostics/diagnostic.js +185 -25
  25. package/dist/diagnostics/diagnostic.js.map +1 -1
  26. package/dist/frontend/lib-contract.d.ts +24 -6
  27. package/dist/frontend/lib-contract.js +125 -44
  28. package/dist/frontend/lib-contract.js.map +1 -1
  29. package/dist/frontend/lowering/lower-assert.js +16 -0
  30. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  31. package/dist/frontend/lowering/lower-builtins.d.ts +11 -0
  32. package/dist/frontend/lowering/lower-builtins.js +127 -4
  33. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  34. package/dist/frontend/lowering/lower-calls.d.ts +77 -18
  35. package/dist/frontend/lowering/lower-calls.js +978 -44
  36. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  37. package/dist/frontend/lowering/lower-classes.d.ts +14 -1
  38. package/dist/frontend/lowering/lower-classes.js +112 -16
  39. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  40. package/dist/frontend/lowering/lower-containers.d.ts +4 -2
  41. package/dist/frontend/lowering/lower-containers.js +236 -44
  42. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  43. package/dist/frontend/lowering/lower-emitter.js +55 -1
  44. package/dist/frontend/lowering/lower-emitter.js.map +1 -1
  45. package/dist/frontend/lowering/lower-exprs.d.ts +26 -3
  46. package/dist/frontend/lowering/lower-exprs.js +507 -47
  47. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  48. package/dist/frontend/lowering/lower-island.d.ts +7 -0
  49. package/dist/frontend/lowering/lower-island.js +71 -10
  50. package/dist/frontend/lowering/lower-island.js.map +1 -1
  51. package/dist/frontend/lowering/lower-mixins.d.ts +1 -1
  52. package/dist/frontend/lowering/lower-mixins.js +1 -1
  53. package/dist/frontend/lowering/lower-modules.js +95 -4
  54. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  55. package/dist/frontend/lowering/lower-stmts.js +866 -56
  56. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  57. package/dist/frontend/lowering/lower-stream.js +28 -2
  58. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  59. package/dist/frontend/lowering/lowerer.d.ts +85 -17
  60. package/dist/frontend/lowering/lowerer.js +459 -37
  61. package/dist/frontend/lowering/lowerer.js.map +1 -1
  62. package/dist/frontend/lowering/surfaces.js +20 -3
  63. package/dist/frontend/lowering/surfaces.js.map +1 -1
  64. package/dist/frontend/npm-static-rewrite.d.ts +7 -2
  65. package/dist/frontend/npm-static-rewrite.js +566 -138
  66. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  67. package/dist/frontend/npm-static.js +11 -2
  68. package/dist/frontend/npm-static.js.map +1 -1
  69. package/dist/frontend/program.js +5 -5
  70. package/dist/frontend/program.js.map +1 -1
  71. package/dist/frontend/shared.d.ts +6 -1
  72. package/dist/frontend/shared.js +46 -1
  73. package/dist/frontend/shared.js.map +1 -1
  74. package/dist/frontend/types.d.ts +28 -1
  75. package/dist/frontend/types.js +304 -10
  76. package/dist/frontend/types.js.map +1 -1
  77. package/dist/index.d.ts +2 -1
  78. package/dist/index.js +181 -26
  79. package/dist/index.js.map +1 -1
  80. package/dist/ir/nodes.d.ts +159 -9
  81. package/dist/ir/nodes.js +76 -6
  82. package/dist/ir/nodes.js.map +1 -1
  83. package/dist/ir/validate.js +93 -14
  84. package/dist/ir/validate.js.map +1 -1
  85. package/dist/library/profile.d.ts +17 -3
  86. package/dist/library/profile.js +38 -9
  87. package/dist/library/profile.js.map +1 -1
  88. package/dist/library/sidecar.js +162 -43
  89. package/dist/library/sidecar.js.map +1 -1
  90. package/dist/library/trap-teaching.d.ts +11 -0
  91. package/dist/library/trap-teaching.js +49 -0
  92. package/dist/library/trap-teaching.js.map +1 -0
  93. package/package.json +2 -2
  94. package/surface-manifest.json +46 -4
@@ -68,10 +68,20 @@ export interface LibraryProfile {
68
68
  * identity: two compiles under different profiles are different
69
69
  * builds). */
70
70
  profileBytes: Uint8Array;
71
- /** Profile-supplied teaching text appended to refusals (the ratified
72
- * SC4004/SC4005 rider): keyed by diagnostic code ("SC4005"), with
73
- * "async" accepted as the shared key for both async-surface codes. */
71
+ /** Profile-supplied teaching text (the ratified SC4004/SC4005 rider,
72
+ * extended by the structured trap-teaching encoding): keyed by diagnostic
73
+ * code ("SC4005"), with "async" accepted as the shared key for both
74
+ * async-surface codes. Refusal teachings ride the diagnostic hint;
75
+ * runtime-trap teachings become the structured sink message's text
76
+ * field. Keys and values are validated free of the encoding's reserved
77
+ * bytes (0x01/0x1F) — keys as bare tokens, never for registry membership
78
+ * (embedder code spaces are the embedder's; SC is the compiler's). */
74
79
  teachings: Readonly<Record<string, string>>;
80
+ /** Profile-supplied remediation text, keyed like `teachings`: the
81
+ * structured trap-teaching message's optional fourth field — the whole
82
+ * field is absent from the assembled bytes when the profile supplies
83
+ * none. Same reserved-byte validation as `teachings`. */
84
+ remediations: Readonly<Record<string, string>>;
75
85
  }
76
86
  /** Parse + validate a profile file. Returns the profile or the SC4001
77
87
  * diagnostics (one per problem found before parsing had to stop). */
@@ -86,3 +96,7 @@ export declare function loadLibraryProfile(profilePath: string): {
86
96
  * SC4004/SC4005 carry profile-supplied guidance naming the embedder's
87
97
  * sanctioned alternative). Falls back to the shared "async" key. */
88
98
  export declare function profileTeaching(profile: LibraryProfile, code: string): string | undefined;
99
+ /** The profile's remediation text for one code — the structured
100
+ * trap-teaching message's optional fourth field. No shared-key fallback:
101
+ * a remediation names one code's fix. */
102
+ export declare function profileRemediation(profile: LibraryProfile, code: string): string | undefined;
@@ -27,9 +27,12 @@
27
27
  * // (see below); absent =
28
28
  * // no sidecar is emitted
29
29
  * "determinism": { ... } // ask-5 surface, reserved;
30
- * // only `teachings` is read
30
+ * // only `teachings` and
31
+ * // `remediations` are read
31
32
  * // today (the SC4004/SC4005
32
- * // teaching rider)
33
+ * // teaching rider + the
34
+ * // structured trap-teaching
35
+ * // encoding's text sources)
33
36
  * }
34
37
  *
35
38
  * The `sidecar` section (ask 2): when present, the same invocation that
@@ -286,18 +289,37 @@ export function loadLibraryProfile(profilePath) {
286
289
  }
287
290
  exportNames.add(e.export);
288
291
  });
289
- // Ask-5 surface: only the teachings rider is read today; everything
290
- // else under `determinism` is reserved and ignored.
292
+ // Ask-5 surface: only the teachings and remediations riders are read
293
+ // today; everything else under `determinism` is reserved and ignored.
294
+ // Both maps feed the structured trap-teaching encoding, which reserves
295
+ // 0x01 (the version marker) and 0x1F (the field separator): a key or
296
+ // value carrying either would corrupt the assembled sink message, so
297
+ // both are refused at load. Keys are diagnostic codes validated ONLY
298
+ // as tokens free of the reserved bytes — embedder code spaces belong
299
+ // to the embedder (SC is the compiler registry's); membership is
300
+ // never checked here.
291
301
  const teachings = {};
302
+ const remediations = {};
292
303
  const det = p["determinism"];
293
304
  if (det !== undefined && det !== null && typeof det === "object" && !Array.isArray(det)) {
294
- const t = det["teachings"];
295
- if (t !== undefined && t !== null && typeof t === "object" && !Array.isArray(t)) {
305
+ const readRider = (rider, into) => {
306
+ const t = det[rider];
307
+ if (t === undefined || t === null || typeof t !== "object" || Array.isArray(t))
308
+ return;
296
309
  for (const [k, v] of Object.entries(t)) {
297
- if (typeof v === "string")
298
- teachings[k] = v;
310
+ if (typeof v !== "string")
311
+ continue;
312
+ if (/[\u0001\u001f]/.test(k)) {
313
+ throw new ProfileError(`'determinism.${rider}' key ${JSON.stringify(k)} contains a reserved byte — 0x01 and 0x1F are the structured trap encoding's marker and separator; a code must be a plain token`);
314
+ }
315
+ if (/[\u0001\u001f]/.test(v)) {
316
+ throw new ProfileError(`'determinism.${rider}.${k}' contains a reserved byte — 0x01 and 0x1F are the structured trap encoding's marker and separator; teaching and remediation text must be plain UTF-8`);
317
+ }
318
+ into[k] = v;
299
319
  }
300
- }
320
+ };
321
+ readRider("teachings", teachings);
322
+ readRider("remediations", remediations);
301
323
  }
302
324
  const entry = isAbsolute(entryRel) ? entryRel : resolve(dirname(profilePath), entryRel);
303
325
  return {
@@ -316,6 +338,7 @@ export function loadLibraryProfile(profilePath) {
316
338
  sidecar,
317
339
  profileBytes: bytes,
318
340
  teachings,
341
+ remediations,
319
342
  },
320
343
  };
321
344
  }
@@ -331,4 +354,10 @@ export function loadLibraryProfile(profilePath) {
331
354
  export function profileTeaching(profile, code) {
332
355
  return profile.teachings[code] ?? (code === "SC4004" || code === "SC4005" ? profile.teachings["async"] : undefined);
333
356
  }
357
+ /** The profile's remediation text for one code — the structured
358
+ * trap-teaching message's optional fourth field. No shared-key fallback:
359
+ * a remediation names one code's fix. */
360
+ export function profileRemediation(profile, code) {
361
+ return profile.remediations[code];
362
+ }
334
363
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/library/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/library/profile.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,18 @@
16
16
  * sorted order (the ratified record-field-order ruling: the IR's sorted
17
17
  * canonicalization is storage; AST order is the contract).
18
18
  *
19
+ * Order must be DERIVABLE FROM ONE DECLARATION SITE or the build refuses
20
+ * (ask 3's define-or-refuse rule): declaration merging into a tabled type
21
+ * refuses with every site named (SC4010), conditional/mapped types
22
+ * producing a tabled type refuse (SC4011), and a union COMPOSED of other
23
+ * kind-tagged unions (`type Msg = A | B` — the reducer-composition
24
+ * pattern) is allowed with a pinned order: depth-first source order of
25
+ * the constituent declarations (A's arms in A's own declaration order,
26
+ * then B's), an arm name appearing in several constituents keeping its
27
+ * FIRST occurrence. A type alias of a named type is transparent: the
28
+ * table derives from the aliased declaration, the alias adds no entry
29
+ * and no reordering.
30
+ *
19
31
  * Not-yet facts emit the schema's stated absent forms, never invented
20
32
  * values: `integer_slots` is `[]` with every numeric slot spelled `f64`
21
33
  * (the pre-ask-4 sequencing the schema names valid — the empty list is
@@ -26,7 +38,7 @@ import { Buffer } from "node:buffer";
26
38
  import { readFileSync } from "node:fs";
27
39
  import { dirname, isAbsolute, join, relative, sep } from "node:path";
28
40
  import { fileURLToPath } from "node:url";
29
- import { libSidecarDiag } from "../diagnostics/diagnostic.js";
41
+ import { libSidecarComputedDiag, libSidecarDiag, libSidecarMergedDiag } from "../diagnostics/diagnostic.js";
30
42
  import { BUILD_ID_SEED, hex16, lengthPrefixedStream, SOURCE_HASH_SEED, wyhash64 } from "./wyhash.js";
31
43
  /** The sidecar schema's format this emitter writes. */
32
44
  export const SIDECAR_FORMAT = 1;
@@ -107,29 +119,38 @@ export function abiExportSuffixes(profile) {
107
119
  }
108
120
  function classify(decl, index) {
109
121
  const s = decl.shape;
110
- if (s.k === "unsupported")
111
- return { c: "unsupported", why: s.text, decl, index };
122
+ if (s.k === "unsupported") {
123
+ return s.computed === undefined
124
+ ? { c: "unsupported", why: s.text, decl, index }
125
+ : { c: "unsupported", why: s.text, computed: s.computed, decl, index };
126
+ }
112
127
  if (s.k === "object") {
113
128
  return { c: "struct", storage: decl.form === "interface" ? "node" : "value", fields: s.fields, decl, index };
114
129
  }
130
+ if (decl.form === "alias" && s.k === "ref")
131
+ return { c: "alias", target: s.name, decl, index };
115
132
  if (decl.form === "alias" && s.k === "stringLit")
116
133
  return { c: "enum", members: [s.text], decl, index };
117
134
  if (decl.form === "alias" && s.k === "union") {
118
135
  if (s.parts.every((p) => p.k === "stringLit")) {
119
136
  return { c: "enum", members: s.parts.map((p) => p.text), decl, index };
120
137
  }
121
- const arms = [];
138
+ const parts = [];
122
139
  for (const p of s.parts) {
140
+ if (p.k === "ref") {
141
+ parts.push({ p: "ref", name: p.name, loc: decl.loc });
142
+ continue;
143
+ }
123
144
  if (p.k !== "object") {
124
- return { c: "unsupported", why: "a union mixing non-object constituents (a tagged union's arms are object literals with a string-literal 'kind')", decl, index };
145
+ return { c: "unsupported", why: "a union mixing non-object constituents (a tagged union's arms are object literals with a string-literal 'kind', or references to other kind-tagged unions)", decl, index };
125
146
  }
126
147
  const kindField = p.fields.find((f) => f.name === "kind");
127
148
  if (kindField === undefined || kindField.shape.k !== "stringLit" || kindField.optional) {
128
149
  return { c: "unsupported", why: "a union constituent without a non-optional string-literal 'kind' discriminant", decl, index };
129
150
  }
130
- arms.push({ name: kindField.shape.text, fields: p.fields.filter((f) => f.name !== "kind"), loc: kindField.loc });
151
+ parts.push({ p: "arm", name: kindField.shape.text, fields: p.fields.filter((f) => f.name !== "kind"), loc: kindField.loc });
131
152
  }
132
- return { c: "tagged", arms, decl, index };
153
+ return { c: "tagged", parts, decl, index };
133
154
  }
134
155
  return { c: "unsupported", why: `a shape outside the sidecar's vocabulary (${s.k})`, decl, index };
135
156
  }
@@ -142,35 +163,125 @@ class SidecarError extends Error {
142
163
  this.loc = loc;
143
164
  }
144
165
  }
166
+ /** A refusal that carries its own minted diagnostic (SC4010/SC4011 —
167
+ * the SC4009 default rides SidecarError). */
168
+ class SidecarRefusal extends Error {
169
+ diag;
170
+ constructor(diag) {
171
+ super(diag.message);
172
+ this.diag = diag;
173
+ }
174
+ }
145
175
  class Projector {
146
176
  facts;
147
177
  config;
148
178
  entryLoc;
149
179
  byName = new Map();
180
+ multiSite = new Map();
150
181
  table = new Map();
151
182
  inProgress = new Set();
183
+ flatArms = new Map();
184
+ flattening = new Set();
152
185
  synthCounter = 0;
153
186
  constructor(facts, config, entryLoc) {
154
187
  this.facts = facts;
155
188
  this.config = config;
156
189
  this.entryLoc = entryLoc;
157
- facts.types.forEach((decl, index) => {
158
- if (this.byName.has(decl.name)) {
159
- throw new SidecarError(`the entry module declares '${decl.name}' twice — the type table has one namespace`, decl.loc);
160
- }
161
- this.byName.set(decl.name, classify(decl, index));
162
- });
190
+ // facts.types carries one entry per name (a repeated exported name is
191
+ // a multi-site fact, refused below when the name is actually used).
192
+ facts.types.forEach((decl, index) => this.byName.set(decl.name, classify(decl, index)));
193
+ for (const m of facts.multiSiteTypes)
194
+ this.multiSite.set(m.name, m.sites);
163
195
  }
164
196
  lookup(name, loc) {
165
197
  const c = this.byName.get(name);
166
198
  if (c === undefined) {
167
- throw new SidecarError(`'${name}' is not an exported type declaration of the entry module`, loc);
199
+ throw new SidecarError(`'${name}' is not an exported type declaration of the program's modules`, loc);
200
+ }
201
+ // Define-or-refuse: a name whose members gather from several
202
+ // declaration sites has no single-source order — refuse the moment
203
+ // the contract touches it, naming every site (SC4010).
204
+ const sites = this.multiSite.get(name);
205
+ if (sites !== undefined) {
206
+ throw new SidecarRefusal(libSidecarMergedDiag(name, sites, c.decl.loc));
168
207
  }
169
208
  if (c.c === "unsupported") {
209
+ if (c.computed !== undefined) {
210
+ throw new SidecarRefusal(libSidecarComputedDiag(name, c.computed, c.decl.loc));
211
+ }
170
212
  throw new SidecarError(`'${name}' cannot join the type table: it is ${c.why}`, c.decl.loc);
171
213
  }
172
214
  return c;
173
215
  }
216
+ /** Follow `type A = B` alias chains to the aliased declaration: the
217
+ * table derives from the target's declaration site, and the alias
218
+ * introduces no entry and no reordering. */
219
+ resolve(name, loc) {
220
+ const seen = new Set();
221
+ let cur = name;
222
+ for (;;) {
223
+ if (seen.has(cur)) {
224
+ throw new SidecarError(`the type alias chain through '${name}' is cyclic`, loc);
225
+ }
226
+ seen.add(cur);
227
+ const c = this.lookup(cur, loc);
228
+ if (c.c !== "alias")
229
+ return { name: cur, c };
230
+ cur = c.target;
231
+ }
232
+ }
233
+ /** A kind-tagged union's arms, its reference constituents flattened
234
+ * DEPTH-FIRST IN SOURCE ORDER (the ask-3 composition rule, pinned by
235
+ * conformance): an inline arm lands where it is spelled; a constituent
236
+ * union contributes its own (recursively flattened) arms, in its own
237
+ * declaration order, at the position of the reference. An arm name
238
+ * arriving from several constituents keeps its FIRST occurrence; a
239
+ * repeat among one declaration's own inline arms stays a refusal. */
240
+ unionArms(unionName, loc) {
241
+ const memo = this.flatArms.get(unionName);
242
+ if (memo !== undefined)
243
+ return memo;
244
+ if (this.flattening.has(unionName)) {
245
+ throw new SidecarError(`union composition is cyclic through '${unionName}' — a union cannot spread itself`, loc);
246
+ }
247
+ const c = this.lookup(unionName, loc);
248
+ if (c.c !== "tagged") {
249
+ throw new SidecarError(`'${unionName}' is not a kind-tagged union of object literals`, c.decl.loc);
250
+ }
251
+ this.flattening.add(unionName);
252
+ try {
253
+ const out = [];
254
+ const originOf = new Map();
255
+ for (const part of c.parts) {
256
+ if (part.p === "arm") {
257
+ const origin = originOf.get(part.name);
258
+ if (origin === unionName) {
259
+ throw new SidecarError(`union '${unionName}' repeats arm '${part.name}'`, part.loc);
260
+ }
261
+ if (origin !== undefined)
262
+ continue; // an earlier constituent's arm — first occurrence wins
263
+ originOf.set(part.name, unionName);
264
+ out.push({ name: part.name, fields: part.fields, loc: part.loc });
265
+ continue;
266
+ }
267
+ const r = this.resolve(part.name, part.loc);
268
+ if (r.c.c !== "tagged") {
269
+ throw new SidecarError(`constituent '${part.name}' of union '${unionName}' is not a kind-tagged union — only kind-tagged unions compose by reference`, part.loc);
270
+ }
271
+ for (const arm of this.unionArms(r.name, part.loc)) {
272
+ if (originOf.has(arm.name))
273
+ continue; // first occurrence wins under depth-first order
274
+ originOf.set(arm.name, r.name);
275
+ out.push(arm);
276
+ }
277
+ }
278
+ this.flatArms.set(unionName, out);
279
+ return out;
280
+ }
281
+ finally {
282
+ this.flattening.delete(unionName);
283
+ }
284
+ }
174
285
  /** Project a syntactic field to a TypeRef, tabling every named type it
175
286
  * references. `container`/`member` seed synthesized names. */
176
287
  fieldRef(field, container) {
@@ -205,20 +316,22 @@ class Projector {
205
316
  throw new SidecarError(`'${container}.${member}' is an inline union — declare it as a named kind-tagged union (or a string-literal-union enum) and reference it by name`, loc);
206
317
  }
207
318
  case "ref": {
208
- const c = this.lookup(shape.name, loc);
209
- if (c.c === "struct") {
210
- this.tableNamed(shape.name, loc);
211
- return { kind: c.storage, name: shape.name };
319
+ // Aliases are transparent: the table entry (and its order) is the
320
+ // ALIASED declaration's, under the aliased declaration's name.
321
+ const r = this.resolve(shape.name, loc);
322
+ if (r.c.c === "struct") {
323
+ this.tableNamed(r.name, loc);
324
+ return { kind: r.c.storage, name: r.name };
212
325
  }
213
- if (c.c === "enum") {
214
- this.tableNamed(shape.name, loc);
215
- return { kind: "enum", name: shape.name };
326
+ if (r.c.c === "enum") {
327
+ this.tableNamed(r.name, loc);
328
+ return { kind: "enum", name: r.name };
216
329
  }
217
- if (shape.name === this.config.msg) {
218
- throw new SidecarError(`'${container}.${member}' references the designated msg union '${shape.name}' — the msg union is the dispatch surface, not a table type`, loc);
330
+ if (r.name === this.config.msg) {
331
+ throw new SidecarError(`'${container}.${member}' references the designated msg union '${r.name}' — the msg union is the dispatch surface, not a table type`, loc);
219
332
  }
220
- this.tableNamed(shape.name, loc);
221
- return { kind: "union", name: shape.name };
333
+ this.tableNamed(r.name, loc);
334
+ return { kind: "union", name: r.name };
222
335
  }
223
336
  case "object":
224
337
  return { kind: "value", name: this.tableSynthesized(container, member, shape.fields, loc) };
@@ -247,6 +360,12 @@ class Projector {
247
360
  throw new SidecarError(`the contract type graph is cyclic through '${name}' — recursive contract types cannot encode`, loc);
248
361
  }
249
362
  const c = this.lookup(name, loc);
363
+ if (c.c === "alias") {
364
+ // Callers table resolved names; a designation reaching here through
365
+ // an alias still tables the aliased declaration, nothing else.
366
+ this.tableNamed(this.resolve(name, loc).name, loc);
367
+ return;
368
+ }
250
369
  this.inProgress.add(name);
251
370
  try {
252
371
  if (c.c === "enum") {
@@ -273,13 +392,11 @@ class Projector {
273
392
  this.table.set(name, { kind: "struct", entry, anchor: c.index, sub: -1 });
274
393
  return;
275
394
  }
276
- // A named tagged union (never the msg union — fenced above).
395
+ // A named tagged union (never the msg union — fenced above), its
396
+ // arms flattened depth-first (composition + the repeat refusal live
397
+ // in unionArms).
277
398
  const entry = { name, arms: [] };
278
- const seen = new Set();
279
- for (const arm of c.arms) {
280
- if (seen.has(arm.name))
281
- throw new SidecarError(`union '${name}' repeats arm '${arm.name}'`, arm.loc);
282
- seen.add(arm.name);
399
+ for (const arm of this.unionArms(name, loc)) {
283
400
  entry.arms.push({ name: arm.name, payload: this.armPayloadRef(name, arm) });
284
401
  }
285
402
  this.table.set(name, { kind: "union", entry, anchor: c.index, sub: -1 });
@@ -400,23 +517,22 @@ export function buildSidecar(input) {
400
517
  }
401
518
  projector.tableNamed(config.model, entryLoc);
402
519
  const modelFieldNames = new Set(modelClass.fields.map((f) => f.name));
403
- // The msg union: declaration-order arms, positional wire tags, at
404
- // most 256 arms (tags ride a u8).
520
+ // The msg union: declaration-order arms (composed constituents
521
+ // flattened depth-first in source order, first occurrence winning a
522
+ // duplicated arm name — the reducer-composition rule), positional
523
+ // wire tags, at most 256 arms (tags ride a u8).
405
524
  const msgClass = projector.lookup(config.msg, entryLoc);
406
525
  if (msgClass.c !== "tagged") {
407
526
  throw new SidecarError(`the profile designates msg '${config.msg}', which is not a kind-tagged union of object literals`, msgClass.decl.loc);
408
527
  }
409
- if (msgClass.arms.length > 256) {
410
- throw new SidecarError(`msg union '${config.msg}' declares ${msgClass.arms.length} arms — wire tags ride a u8, so at most 256 are permitted`, msgClass.decl.loc);
411
- }
412
- const seenArms = new Set();
413
- const msgArms = [];
414
- for (const arm of msgClass.arms) {
415
- if (seenArms.has(arm.name))
416
- throw new SidecarError(`msg union '${config.msg}' repeats arm '${arm.name}'`, arm.loc);
417
- seenArms.add(arm.name);
418
- msgArms.push({ name: arm.name, payload: projector.msgDescriptor(config.msg, arm) });
528
+ const flatArms = projector.unionArms(config.msg, entryLoc);
529
+ if (flatArms.length > 256) {
530
+ throw new SidecarError(`msg union '${config.msg}' declares ${flatArms.length} arms — wire tags ride a u8, so at most 256 are permitted`, msgClass.decl.loc);
419
531
  }
532
+ const msgArms = flatArms.map((arm) => ({
533
+ name: arm.name,
534
+ payload: projector.msgDescriptor(config.msg, arm),
535
+ }));
420
536
  const armByName = new Map(msgArms.map((a) => [a.name, a.payload]));
421
537
  // Helpers: exported functions taking the model first, in declaration
422
538
  // order (the array index is the ABI call index), minus the designated
@@ -559,6 +675,9 @@ export function buildSidecar(input) {
559
675
  return { ok: true, doc, json: JSON.stringify(doc, null, 2) + "\n" };
560
676
  }
561
677
  catch (e) {
678
+ if (e instanceof SidecarRefusal) {
679
+ return { ok: false, diagnostics: [e.diag] };
680
+ }
562
681
  if (e instanceof SidecarError) {
563
682
  return { ok: false, diagnostics: [libSidecarDiag(e.detail, e.loc)] };
564
683
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/library/sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/library/sidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** The structured-message version marker (byte 0). A future encoding
2
+ * revision bumps the marker byte — the marker IS the version. */
3
+ export declare const TRAP_TEACHING_MARKER = "\u0001";
4
+ /** The field separator between text, code, symbol, and remediation. */
5
+ export declare const TRAP_TEACHING_SEP = "\u001F";
6
+ /** Assemble one structured trap-teaching message. Every field must already
7
+ * be free of the two reserved bytes — profile-supplied text is validated at
8
+ * profile load (SC4001), and the compiler's own texts, codes, and symbols
9
+ * never contain control bytes — so a violation here is an internal error,
10
+ * never a user-reportable state. */
11
+ export declare function assembleTrapTeaching(text: string, code: string, symbol: string, remediation?: string): string;