behavior-contracts 0.8.0 → 0.8.2

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 (62) hide show
  1. package/dist/authoring.d.ts +3 -0
  2. package/dist/authoring.d.ts.map +1 -1
  3. package/dist/authoring.js +7 -0
  4. package/dist/authoring.js.map +1 -1
  5. package/dist/behavior.d.ts +15 -0
  6. package/dist/behavior.d.ts.map +1 -1
  7. package/dist/behavior.js +26 -0
  8. package/dist/behavior.js.map +1 -1
  9. package/dist/expr-operator-types.d.ts.map +1 -1
  10. package/dist/expr-operator-types.js +2 -0
  11. package/dist/expr-operator-types.js.map +1 -1
  12. package/dist/generator/emit-shared-go-typed.d.ts.map +1 -1
  13. package/dist/generator/emit-shared-go-typed.js +130 -4
  14. package/dist/generator/emit-shared-go-typed.js.map +1 -1
  15. package/dist/generator/emit-shared-rust-typed.d.ts.map +1 -1
  16. package/dist/generator/emit-shared-rust-typed.js +49 -1
  17. package/dist/generator/emit-shared-rust-typed.js.map +1 -1
  18. package/dist/generator/emit-shared-typescript-typed.d.ts +83 -0
  19. package/dist/generator/emit-shared-typescript-typed.d.ts.map +1 -0
  20. package/dist/generator/emit-shared-typescript-typed.js +259 -0
  21. package/dist/generator/emit-shared-typescript-typed.js.map +1 -0
  22. package/dist/generator/emit-shared-typescript.d.ts.map +1 -1
  23. package/dist/generator/emit-shared-typescript.js +88 -0
  24. package/dist/generator/emit-shared-typescript.js.map +1 -1
  25. package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
  26. package/dist/generator/emit-straightline-typed-typescript.js +2 -0
  27. package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
  28. package/dist/generator/emit-typed-native-go.d.ts.map +1 -1
  29. package/dist/generator/emit-typed-native-go.js +250 -26
  30. package/dist/generator/emit-typed-native-go.js.map +1 -1
  31. package/dist/generator/emit-typed-native-rust.d.ts.map +1 -1
  32. package/dist/generator/emit-typed-native-rust.js +244 -25
  33. package/dist/generator/emit-typed-native-rust.js.map +1 -1
  34. package/dist/generator/emit-typescript-native.d.ts +56 -0
  35. package/dist/generator/emit-typescript-native.d.ts.map +1 -0
  36. package/dist/generator/emit-typescript-native.js +44 -0
  37. package/dist/generator/emit-typescript-native.js.map +1 -0
  38. package/dist/generator/index.d.ts +2 -0
  39. package/dist/generator/index.d.ts.map +1 -1
  40. package/dist/generator/index.js +6 -0
  41. package/dist/generator/index.js.map +1 -1
  42. package/dist/generator/native-expr.d.ts +17 -0
  43. package/dist/generator/native-expr.d.ts.map +1 -1
  44. package/dist/generator/native-expr.js +82 -2
  45. package/dist/generator/native-expr.js.map +1 -1
  46. package/dist/generator/straightline.d.ts +22 -1
  47. package/dist/generator/straightline.d.ts.map +1 -1
  48. package/dist/generator/straightline.js +25 -7
  49. package/dist/generator/straightline.js.map +1 -1
  50. package/dist/generator/typed.d.ts +5 -0
  51. package/dist/generator/typed.d.ts.map +1 -1
  52. package/dist/generator/typed.js +8 -0
  53. package/dist/generator/typed.js.map +1 -1
  54. package/dist/guard.d.ts +2 -1
  55. package/dist/guard.d.ts.map +1 -1
  56. package/dist/guard.js +6 -5
  57. package/dist/guard.js.map +1 -1
  58. package/dist/type-gate.d.ts +1 -1
  59. package/dist/type-gate.d.ts.map +1 -1
  60. package/dist/type-gate.js +45 -24
  61. package/dist/type-gate.js.map +1 -1
  62. package/package.json +1 -1
@@ -0,0 +1,259 @@
1
+ import { deriveTypeRef } from "./typed.js";
2
+ // ── decls / renderTypeRef (shared discipline with the #46 oracle) ───────────────────────────
3
+ /** Render a TypeRef to a TS type annotation (scalar/opt/arr inline; obj → named interface ref). */
4
+ export function renderTypeRef(ref) {
5
+ switch (ref.kind) {
6
+ case "scalar":
7
+ switch (ref.scalar) {
8
+ case "string":
9
+ return "string";
10
+ case "int":
11
+ case "float":
12
+ return "number"; // TS has no integer type — erasure oracle (same as typescript-typed)
13
+ case "bool":
14
+ return "boolean";
15
+ case "null":
16
+ return "null";
17
+ }
18
+ break;
19
+ case "opt":
20
+ return `(${renderTypeRef(ref.inner)} | null)`;
21
+ case "arr":
22
+ return `${renderTypeRef(ref.elem)}[]`;
23
+ case "named":
24
+ return ref.name;
25
+ case "map":
26
+ return `Record<string, ${renderTypeRef(ref.value)}>`; // {map:V} — dynamic-key map (bc#{map:V})
27
+ }
28
+ throw new Error(`ts-native typed emit: unrenderable TypeRef ${JSON.stringify(ref)}`); // unreachable (closed set)
29
+ }
30
+ /** Emit the named interface declarations (decls order = deterministic). */
31
+ export function emitTypeDecls(plan) {
32
+ if (plan.decls.length === 0)
33
+ return "";
34
+ return plan.decls
35
+ .map((d) => {
36
+ const fields = d.fields.map((f) => ` ${JSON.stringify(f.name)}: ${renderTypeRef(f.type)};`).join("\n");
37
+ return `export interface ${d.name} {\n${fields}\n}`;
38
+ })
39
+ .join("\n\n");
40
+ }
41
+ // ── name discipline (deterministic) ─────────────────────────────────────────────────────────
42
+ function sanitize(name) {
43
+ return name.replace(/[^A-Za-z0-9_$]/g, "_");
44
+ }
45
+ /** Marshaller function name for a named interface (`marshalT0`). */
46
+ function marshalName(structName) {
47
+ return `marshal${structName}`;
48
+ }
49
+ // ── runtime-materialization hooks (bc#135 — TS side of the seam) ─────────────────────────────
50
+ /**
51
+ * materializeExpr — materialize a raw `Value` expression into a value of the annotated `ref`:
52
+ * - named (obj) → `marshalT*(rawExpr)` (the shape walk),
53
+ * - arr → `(rawExpr as Value[]).map((e) => <materialize e as elem>)`,
54
+ * - opt → `(rawExpr === null ? null : <materialize as inner>)`,
55
+ * - scalar → typed cast `(rawExpr as <ts type>)`.
56
+ * Under TS erasure the scalar cast is a no-op — that IS the handler Value boundary (expected).
57
+ */
58
+ export function materializeExpr(rawExpr, ref, _plan) {
59
+ switch (ref.kind) {
60
+ case "named":
61
+ return `${marshalName(ref.name)}(${rawExpr})`;
62
+ case "arr":
63
+ return `(${rawExpr} as Value[]).map((__e): ${renderTypeRef(ref.elem)} => ${materializeExpr("__e", ref.elem, _plan)})`;
64
+ case "opt":
65
+ return `(${rawExpr} === null ? null : ${materializeExpr(rawExpr, ref.inner, _plan)})`;
66
+ case "scalar":
67
+ return `(${rawExpr} as unknown as ${renderTypeRef(ref)})`;
68
+ case "map":
69
+ // {map:V} — materialize each dynamic-key value; keys pass through (string).
70
+ return `Object.fromEntries(Object.entries(${rawExpr} as Record<string, Value>).map(([__k, __v]): [string, ${renderTypeRef(ref.value)}] => [__k, ${materializeExpr("__v", ref.value, _plan)}]))`;
71
+ }
72
+ }
73
+ /**
74
+ * emitMarshallers — for every named interface T*, a `marshalT*(v: Value): T*` that materializes a
75
+ * boxed `Value` into the declared interface by reading each declared field (the de-interpreted shape
76
+ * walk). Deterministic (decls order). Empty when there are no named decls.
77
+ */
78
+ export function emitMarshallers(plan) {
79
+ if (plan.decls.length === 0)
80
+ return "";
81
+ return plan.decls
82
+ .map((d) => {
83
+ const fn = marshalName(d.name);
84
+ // Read the boxed Value as a record once, then materialize each declared field to its typed value.
85
+ const fields = d.fields
86
+ .map((f) => {
87
+ const raw = `__o[${JSON.stringify(f.name)}]`;
88
+ return ` ${JSON.stringify(f.name)}: ${materializeExpr(raw, f.type, plan)},`;
89
+ })
90
+ .join("\n");
91
+ return `// ${fn} — materialize a boxed Value into ${d.name} by reading each declared field (de-interpreted
92
+ // shape walk; the leaf \`as\` is the handler Value boundary — a no-op under TS erasure).
93
+ export function ${fn}(__v: Value): ${d.name} {
94
+ const __o = __v as Record<string, Value>;
95
+ return {
96
+ ${fields}
97
+ };
98
+ }`;
99
+ })
100
+ .join("\n\n");
101
+ }
102
+ /**
103
+ * typedFieldAccess — static typed field access on an already-materialized base (`base["f"]["g"]`).
104
+ * Returns the access expression and the type reached (per the plan decls). tsc checks the path
105
+ * against the interface (a field not on the interface is a compile error — the non-vacuous pin).
106
+ */
107
+ export function typedFieldAccess(baseExpr, baseRef, fields, plan) {
108
+ let expr = baseExpr;
109
+ let ref = baseRef;
110
+ for (const f of fields) {
111
+ expr = `${expr}[${JSON.stringify(f)}]`;
112
+ ref = fieldTypeOf(ref, f, plan);
113
+ }
114
+ return { expr, ref };
115
+ }
116
+ /** The type reached by taking field `f` off a named (obj) TypeRef; throws if not on the interface. */
117
+ function fieldTypeOf(ref, f, plan) {
118
+ if (ref.kind !== "named")
119
+ throw new Error(`ts-native typed emit: field access '.${f}' on a non-obj type`);
120
+ const decl = plan.decls.find((d) => d.name === ref.name);
121
+ const field = decl?.fields.find((x) => x.name === f);
122
+ if (!field)
123
+ throw new Error(`ts-native typed emit: field '.${f}' is not declared on interface ${ref.name}`);
124
+ return field.type;
125
+ }
126
+ /**
127
+ * serializeTyped — identity at the boundary. In TS the typed value IS already the canonical JS shape
128
+ * (erasure), so no re-serialization is needed for the equivalence pin: the straight-line body produced
129
+ * the canonical Value and the marshaller returned the same value retyped.
130
+ */
131
+ export function serializeTyped(typedExpr, _ref, _plan) {
132
+ return typedExpr;
133
+ }
134
+ /** The TS runtime-materialization TypedMaterializer (bc#135) — the seam go/rust also ride. */
135
+ export const tsNativeTypedMaterializer = {
136
+ emitTypeDecls,
137
+ renderTypeRef,
138
+ emitMarshallers,
139
+ materializeExpr,
140
+ typedFieldAccess,
141
+ serializeTyped,
142
+ };
143
+ // ── the reachable typed layer (interfaces + marshallers + typed output + bindTyped) ─────────
144
+ /** A component is native-typed-covered iff it declares an `outputType` (a typed output to materialize). */
145
+ function coveredComponents(ctx) {
146
+ return ctx.ir.components.filter((c) => c.outputType !== undefined);
147
+ }
148
+ /**
149
+ * emitOutputMarshaller — `marshalOutput_<name>(raw: Value): <outputType>` for a covered component.
150
+ * Materializes the straight-line body's assembled output value into the declared `outputType`. The
151
+ * body already produced the correct runtime value; this retypes it through the shape walk so the
152
+ * typed surface is `tsc`-checked. Runtime-equivalent (same value, retyped) under erasure.
153
+ */
154
+ function emitOutputMarshaller(comp, plan, mat, derive) {
155
+ const ref = derive(comp.outputType, plan);
156
+ const fn = `marshalOutput_${sanitize(comp.name)}`;
157
+ const annot = mat.renderTypeRef(ref);
158
+ const materialize = mat.materializeExpr("__raw", ref, plan);
159
+ return `// ${fn} — materialize component '${comp.name}' output into its declared outputType (${annot}).
160
+ // The straight-line body already produced the canonical Value; this retypes it (tsc-checked shape
161
+ // walk). Runtime-equivalent under erasure (same value, retyped) — the equivalence pin holds.
162
+ export function ${fn}(__raw: Value): ${annot} {
163
+ return ${materialize};
164
+ }`;
165
+ }
166
+ /**
167
+ * emitNativeTypedLayer — the REACHABLE typed layer appended to the straight-line runtime body:
168
+ * interfaces + marshallers + per-component output marshallers + a `bindTyped`/`bindTypedAsync` facade
169
+ * that runs the straight-line `bind()` runner and materializes each covered component's result into
170
+ * its `outputType`. This is what makes the typed layer live (not a dead oracle): the `as` boundary and
171
+ * typed field access are on a real typed entry path that `tsc --strict` verifies.
172
+ */
173
+ export function emitNativeTypedLayer(ctx, plan, mat, derive) {
174
+ const decls = mat.emitTypeDecls(plan);
175
+ const marshallers = mat.emitMarshallers ? mat.emitMarshallers(plan) : "";
176
+ const covered = coveredComponents(ctx);
177
+ const outMarshallers = covered.map((c) => emitOutputMarshaller(c, plan, mat, derive)).join("\n\n");
178
+ // bindTyped arms: run the straight-line runner for the component, materialize its result into the
179
+ // component outputType. Components without an outputType keep the raw straight-line callable.
180
+ const typedArms = covered
181
+ .map((c) => {
182
+ const ref = derive(c.outputType, plan);
183
+ const annot = mat.renderTypeRef(ref);
184
+ return ` ${JSON.stringify(c.name)}: (input?: Scope): ${annot} => marshalOutput_${sanitize(c.name)}(__runners[${JSON.stringify(c.name)}](input)),`;
185
+ })
186
+ .join("\n");
187
+ const typedAsyncArms = covered
188
+ .map((c) => {
189
+ const ref = derive(c.outputType, plan);
190
+ const annot = mat.renderTypeRef(ref);
191
+ return ` ${JSON.stringify(c.name)}: async (input?: Scope): Promise<${annot}> => marshalOutput_${sanitize(c.name)}(await __runners[${JSON.stringify(c.name)}](input)),`;
192
+ })
193
+ .join("\n");
194
+ // The typed bind return type: a mapped object over the covered component names.
195
+ const typedReturn = covered
196
+ .map((c) => {
197
+ const ref = derive(c.outputType, plan);
198
+ return ` ${JSON.stringify(c.name)}: (input?: Scope) => ${mat.renderTypeRef(ref)};`;
199
+ })
200
+ .join("\n");
201
+ const typedAsyncReturn = covered
202
+ .map((c) => {
203
+ const ref = derive(c.outputType, plan);
204
+ return ` ${JSON.stringify(c.name)}: (input?: Scope) => Promise<${mat.renderTypeRef(ref)}>;`;
205
+ })
206
+ .join("\n");
207
+ return `
208
+ // ── native typed layer (bc#135 — TS native codegen) ────────────────────────────────────────
209
+ // TS is type-erased: the executable path is the straight-line bind/bindAsync above (byte-identical
210
+ // to typescript-typed's runtime). This layer adds a REACHABLE, tsc-checked typed surface: interfaces
211
+ // derived from the portable outType/outputType, marshallers that materialize a boxed Value into those
212
+ // interfaces by walking the declared shape (the leaf \`as\` is the handler Value boundary — a no-op
213
+ // under erasure), and bindTyped()/bindTypedAsync() facades that run the straight-line runner and
214
+ // materialize each covered component's result into its declared outputType. tsc --strict proves the
215
+ // node results, cross-node field access, and assembled output conform to the declared types; the
216
+ // runtime stays byte-identical to the straight-line body (the equivalence pin).
217
+
218
+ ${decls}
219
+
220
+ ${marshallers}
221
+
222
+ ${outMarshallers}
223
+
224
+ /** BindTyped — the covered components as typed callables (result typed as the component outputType). */
225
+ export interface BindTyped {
226
+ ${typedReturn}
227
+ }
228
+
229
+ /** BindTypedAsync — as BindTyped, awaiting async handlers. */
230
+ export interface BindTypedAsync {
231
+ ${typedAsyncReturn}
232
+ }
233
+
234
+ /**
235
+ * bindTyped — inject handlers and get one TYPED callable per covered component. Runs the same
236
+ * interpreter-free straight-line runner as bind() (boundary injection; no per-node dispatch, no
237
+ * IR-walk), then materializes the component result into its declared outputType. The materialization
238
+ * is tsc-checked; under TS erasure it is runtime-equivalent to bind() (same value, retyped).
239
+ */
240
+ export function bindTyped(handlers: Handlers): BindTyped {
241
+ const __runners = bind(handlers);
242
+ return {
243
+ ${typedArms}
244
+ };
245
+ }
246
+
247
+ /**
248
+ * bindTypedAsync — as bindTyped, awaiting async handlers. Covered components' results are materialized
249
+ * into their declared outputType after the straight-line async runner settles.
250
+ */
251
+ export function bindTypedAsync(handlers: AsyncHandlers): BindTypedAsync {
252
+ const __runners = bindAsync(handlers);
253
+ return {
254
+ ${typedAsyncArms}
255
+ };
256
+ }
257
+ `;
258
+ }
259
+ //# sourceMappingURL=emit-shared-typescript-typed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-shared-typescript-typed.js","sourceRoot":"","sources":["../../src/generator/emit-shared-typescript-typed.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,aAAa,EAAuD,MAAM,YAAY,CAAC;AAGhG,+FAA+F;AAE/F,mGAAmG;AACnG,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC;gBAClB,KAAK,KAAK,CAAC;gBACX,KAAK,OAAO;oBACV,OAAO,QAAQ,CAAC,CAAC,qEAAqE;gBACxF,KAAK,MAAM;oBACT,OAAO,SAAS,CAAC;gBACnB,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,MAAM;QACR,KAAK,KAAK;YACR,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,KAAK,KAAK;YACR,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,KAAK,OAAO;YACV,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,kBAAkB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,yCAAyC;IACnG,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B;AACnH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxG,OAAO,oBAAoB,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,CAAC;IACtD,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,+FAA+F;AAE/F,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,oEAAoE;AACpE,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO,UAAU,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,gGAAgG;AAEhG;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,GAAY,EAAE,KAAe;IAC5E,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC;QAChD,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,2BAA2B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QACxH,KAAK,KAAK;YACR,OAAO,IAAI,OAAO,sBAAsB,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;QACxF,KAAK,QAAQ;YACX,OAAO,IAAI,OAAO,kBAAkB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5D,KAAK,KAAK;YACR,4EAA4E;YAC5E,OAAO,qCAAqC,OAAO,yDAAyD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACpM,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,kGAAkG;QAClG,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,OAAO,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACjF,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,MAAM,EAAE,qCAAqC,CAAC,CAAC,IAAI;;kBAE9C,EAAE,iBAAiB,CAAC,CAAC,IAAI;;;EAGzC,MAAM;;EAEN,CAAC;IACC,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,IAAc;IAEd,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QACvC,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,sGAAsG;AACtG,SAAS,WAAW,CAAC,GAAY,EAAE,CAAS,EAAE,IAAc;IAC1D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,qBAAqB,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,kCAAkC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5G,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,IAAa,EAAE,KAAe;IAC9E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,aAAa;IACb,aAAa;IACb,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,cAAc;CACf,CAAC;AAEF,+FAA+F;AAE/F,2GAA2G;AAC3G,SAAS,iBAAiB,CAAC,GAAgB;IACzC,OAAO,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,IAAe,EACf,IAAc,EACd,GAAsB,EACtB,MAA4B;IAE5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAA0B,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,GAAG,CAAC,eAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7D,OAAO,MAAM,EAAE,6BAA6B,IAAI,CAAC,IAAI,0CAA0C,KAAK;;;kBAGpF,EAAE,mBAAmB,KAAK;WACjC,WAAW;EACpB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAgB,EAChB,IAAc,EACd,GAAsB,EACtB,MAA4B;IAE5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnG,kGAAkG;IAClG,8FAA8F;IAC9F,MAAM,SAAS,GAAG,OAAO;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAA0B,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,KAAK,qBAAqB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACvJ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,cAAc,GAAG,OAAO;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAA0B,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,oCAAoC,KAAK,sBAAsB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAC5K,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,gFAAgF;IAChF,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAA0B,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;IACtF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,gBAAgB,GAAG,OAAO;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAA0B,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/F,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;;;;;;;EAWP,KAAK;;EAEL,WAAW;;EAEX,cAAc;;;;EAId,WAAW;;;;;EAKX,gBAAgB;;;;;;;;;;;;EAYhB,SAAS;;;;;;;;;;;EAWT,cAAc;;;CAGf,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-shared-typescript.d.ts","sourceRoot":"","sources":["../../src/generator/emit-shared-typescript.ts"],"names":[],"mappings":"AAmCA,OAAO,EASL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAuiC3B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,mBAA6B,CAAC;AAClE,oFAAoF;AACpF,eAAO,MAAM,QAAQ,YAAQ,CAAC;AAC9B,uDAAuD;AACvD,eAAO,MAAM,YAAY,aAAY,CAAC"}
1
+ {"version":3,"file":"emit-shared-typescript.d.ts","sourceRoot":"","sources":["../../src/generator/emit-shared-typescript.ts"],"names":[],"mappings":"AAmCA,OAAO,EASL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AA4pC3B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,mBAA6B,CAAC;AAClE,oFAAoF;AACpF,eAAO,MAAM,QAAQ,YAAQ,CAAC;AAC9B,uDAAuD;AACvD,eAAO,MAAM,YAAY,aAAY,CAAC"}
@@ -92,6 +92,7 @@ const usage = {
92
92
  slCat: false,
93
93
  planTypes: false, // Exec/AsyncExec/OpSpec/RelationKind(RunPlan 経路のみ)
94
94
  handlerType: false, // Handler/AsyncHandler(handler を呼ぶ component の run_* param 型)
95
+ fanoutDedupDrop: false, // #135: fanout の dedup/drop SSoT(fanoutDedupDrop)を import する
95
96
  };
96
97
  function resetUsage() {
97
98
  for (const k of Object.keys(usage))
@@ -340,6 +341,9 @@ function emitSeqOpExec(op, plan, ctx, hvars, aw, lines, indent, bindVar, bindRea
340
341
  else if (op.kind === "map") {
341
342
  emitSeqMap(op, plan, ctx, hvars, aw, inner, bodyIndent, store);
342
343
  }
344
+ else if (op.kind === "fanout") {
345
+ emitSeqFanout(op, plan, ctx, hvars, aw, inner, bodyIndent, store);
346
+ }
343
347
  else {
344
348
  // componentRef: ports 構築(1 回)→ 解決済み handler 直呼び → policy 解釈。
345
349
  const hv = hvars.get(op.component);
@@ -511,6 +515,88 @@ function emitSeqMap(op, plan, ctx, hvars, aw, out, ind, store) {
511
515
  out.push(...finish);
512
516
  }
513
517
  }
518
+ /**
519
+ * emitSeqFanout (#135) — fanout(refsConnection)を逐次直線で綴じる。behavior.ts の fanout 物理層
520
+ * (fanoutPortsItems → 1回 batched handler → fanoutWrap)を直線展開する:
521
+ * 1. `over`(id-list)を評価し配列でなければ FANOUT_OVER_NOT_ARRAY。
522
+ * 2. 各要素を `as` に束縛し item ports を評価して items[] を組む。
523
+ * 3. items が空なら connection {items:[], cursor:null}(handler 非呼び出し — interpreter と一致)。
524
+ * 4. handler({items}) を1回呼び、policy 解釈(fail/retry/continue)。
525
+ * 5. ok は items と整列必須(FANOUT_BATCH_RESULT_MISMATCH)。fanoutDedupDrop(dedup/drop/strip の
526
+ * SSoT — 手コピー禁止)で items へ落とし、{items, cursor:null} に wrap。
527
+ * NO run_behavior / NO embedded IR: dedup/drop は fanoutDedupDrop(named runtime helper)を直呼び。
528
+ */
529
+ function emitSeqFanout(op, plan, ctx, hvars, aw, out, ind, store) {
530
+ const i = op.index;
531
+ const meta = ctx.metas[i];
532
+ const f = plan.component.body[i].fanout;
533
+ const id = op.id;
534
+ const s = sanitize(id);
535
+ const hv = hvars.get(op.component);
536
+ const asKey = JSON.stringify(f.as);
537
+ usage.behaviorFailure = true;
538
+ usage.fanoutDedupDrop = true;
539
+ const elVar = `el_${s}`;
540
+ const mscopeVar = `mscope_${s}`;
541
+ const portsVar = `ports_${s}`;
542
+ const fiVar = `fi_${s}`;
543
+ const over = `over_${s}`;
544
+ const itemsVar = `items_${s}`;
545
+ const outcomeVar = `fo_${s}`;
546
+ const bodiesVar = `bodies_${s}`;
547
+ // item ports が scope($as 束縛以外)を読むなら要素ごとに mscope を組む(map と同型)。
548
+ const fanoutNeedsScope = Object.keys(f.ports).some((k) => {
549
+ const cls = classifyExpr(f.ports[k]);
550
+ const needs = (e) => e.kind === "dynamic" ? !isScopeFree(e.node) : e.kind === "concat" ? e.parts.some(needs) : false;
551
+ return needs(cls);
552
+ });
553
+ const baseScopeExpr = ctx.scopeVar ?? "input";
554
+ const fanoutCtx = { ...ctx, mapAs: { as: f.as, elVar, mscopeVar } };
555
+ const mscopeLine = fanoutNeedsScope
556
+ ? [`${ind} const ${mscopeVar}: Scope = { ...${baseScopeExpr}, [${asKey}]: ${elVar} };`]
557
+ : [];
558
+ const portLines = (ind2) => {
559
+ if (op.ports.length === 0)
560
+ return [`${ind2}const ${portsVar}: Record<string, Value> = {};`];
561
+ return [
562
+ `${ind2}const ${portsVar}: Record<string, Value> = {`,
563
+ ...op.ports.map((p) => `${ind2} ${JSON.stringify(p.name)}: ${emitSeqExpr(f.ports[p.name], fanoutCtx)},`),
564
+ `${ind2}};`,
565
+ ];
566
+ };
567
+ // 1+2: over → items[](各要素 ports)。
568
+ out.push(`${ind}const ${over} = ${emitSeqExpr(f.over, ctx)};`);
569
+ out.push(`${ind}if (!Array.isArray(${over})) throw new BehaviorFailure("FANOUT_OVER_NOT_ARRAY", ${JSON.stringify(`fanout '${id}': 'over' did not evaluate to an array`)});`);
570
+ out.push(`${ind}const ${itemsVar}: Value[] = [];`);
571
+ out.push(`${ind}for (let ${fiVar} = 0; ${fiVar} < (${over} as Value[]).length; ${fiVar}++) {`);
572
+ out.push(`${ind} const ${elVar} = (${over} as Value[])[${fiVar}];`);
573
+ out.push(...mscopeLine, ...portLines(`${ind} `));
574
+ out.push(`${ind} ${itemsVar}.push(${portsVar});`);
575
+ out.push(`${ind}}`);
576
+ // dedupeKey/drop/implicitSource は生成時定数(fanoutDedupDrop SSoT へそのまま渡す)。
577
+ const specLit = `{ dedupeKey: ${JSON.stringify(f.dedupeKey)}, drop: ${JSON.stringify(f.drop)}${f.implicitSource !== undefined ? `, implicitSource: ${JSON.stringify(f.implicitSource)}` : ""} }`;
578
+ // 3: items 空 → connection 空(handler 非呼び出し)。else: handler 1回 → policy → align → dedupeDrop → wrap。
579
+ const connVar = `conn_${s}`;
580
+ out.push(`${ind}let ${connVar}: Value;`);
581
+ out.push(`${ind}if (${itemsVar}.length === 0) {`);
582
+ out.push(`${ind} ${connVar} = { items: [], cursor: null };`);
583
+ out.push(`${ind}} else {`);
584
+ out.push(`${ind} if (!${hv}) throw new BehaviorFailure("UNKNOWN_COMPONENT", ${JSON.stringify(`component '${op.component}' has no handler (fail-closed)`)});`);
585
+ out.push(`${ind} const ${outcomeVar} = ${aw}${hv}({ items: ${itemsVar} }, { nodeId: ${JSON.stringify(id)}, component: ${JSON.stringify(op.component)} });`);
586
+ const contFlag = meta.policy === "continue";
587
+ if (contFlag) {
588
+ // continue: エラー時は未生成(skip)— canSkip なので local/ok は既に false。ok のみ dedupeDrop。
589
+ out.push(...policyLines(outcomeVar, id, meta, `${ind} `, [`${connVar} = { items: [], cursor: null };`]));
590
+ // policyLines(continue) は `if (error) { <skip> } else {` を返す。ok 枝を綴じる。
591
+ out.push(`${ind} if (!Array.isArray(${outcomeVar}.ok) || ${outcomeVar}.ok.length !== ${itemsVar}.length)`, `${ind} throw new BehaviorFailure("FANOUT_BATCH_RESULT_MISMATCH", \`fanout '${id}': batched handler must return a list aligned to the deduped id list (want \${${itemsVar}.length}, got \${Array.isArray(${outcomeVar}.ok) ? ${outcomeVar}.ok.length : typeof ${outcomeVar}.ok})\`);`, `${ind} const ${bodiesVar} = fanoutDedupDrop(${outcomeVar}.ok as Value[], ${specLit});`, `${ind} ${connVar} = { items: ${bodiesVar}, cursor: null };`, `${ind} }`);
592
+ }
593
+ else {
594
+ out.push(...policyLines(outcomeVar, id, meta, `${ind} `, []));
595
+ out.push(`${ind} if (!Array.isArray(${outcomeVar}.ok) || ${outcomeVar}.ok.length !== ${itemsVar}.length)`, `${ind} throw new BehaviorFailure("FANOUT_BATCH_RESULT_MISMATCH", \`fanout '${id}': batched handler must return a list aligned to the deduped id list (want \${${itemsVar}.length}, got \${Array.isArray(${outcomeVar}.ok) ? ${outcomeVar}.ok.length : typeof ${outcomeVar}.ok})\`);`, `${ind} const ${bodiesVar} = fanoutDedupDrop(${outcomeVar}.ok as Value[], ${specLit});`, `${ind} ${connVar} = { items: ${bodiesVar}, cursor: null };`);
596
+ }
597
+ out.push(`${ind}}`);
598
+ store(connVar, ind, out);
599
+ }
514
600
  /**
515
601
  * emitSequentialFn — 逐次 plan の component を素の文列として綴じる(bc#75 の核)。
516
602
  * RunPlan / ops テーブル / exec closure / per-op ID 探索 / per-expression scope snapshot は無い。
@@ -864,6 +950,8 @@ function emitModule(plans, ctx) {
864
950
  valueImports.push("ExprFailure");
865
951
  if (usage.cgp)
866
952
  valueImports.push(`codegenPrimitives as ${CGP}`);
953
+ if (usage.fanoutDedupDrop)
954
+ valueImports.push("fanoutDedupDrop"); // #135: fanout dedup/drop SSoT
867
955
  if (usage.runPlan)
868
956
  valueImports.push("runPlan");
869
957
  if (usage.runPlanAsync)
@@ -1 +1 @@
1
- {"version":3,"file":"emit-shared-typescript.js","sourceRoot":"","sources":["../../src/generator/emit-shared-typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-shared-typescript.js","sourceRoot":"","sources":["../../src/generator/emit-shared-typescript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-straightline-typed-typescript.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAyB,QAAQ,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA2CpB,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AA4QF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAOpC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"emit-straightline-typed-typescript.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAyB,QAAQ,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA6CpB,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AA4QF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAOpC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
@@ -23,6 +23,8 @@ function renderTypeRef(ref) {
23
23
  return `(${renderTypeRef(ref.inner)} | null)`;
24
24
  case "arr":
25
25
  return `${renderTypeRef(ref.elem)}[]`;
26
+ case "map":
27
+ return `Record<string, ${renderTypeRef(ref.value)}>`;
26
28
  case "named":
27
29
  return ref.name;
28
30
  }