behavior-contracts 0.7.3 → 0.8.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 (63) hide show
  1. package/README.md +0 -1
  2. package/dist/authoring.d.ts +215 -3
  3. package/dist/authoring.d.ts.map +1 -1
  4. package/dist/authoring.js +269 -8
  5. package/dist/authoring.js.map +1 -1
  6. package/dist/behavior.d.ts +22 -1
  7. package/dist/behavior.d.ts.map +1 -1
  8. package/dist/behavior.js +23 -1
  9. package/dist/behavior.js.map +1 -1
  10. package/dist/bind.d.ts +64 -0
  11. package/dist/bind.d.ts.map +1 -0
  12. package/dist/bind.js +131 -0
  13. package/dist/bind.js.map +1 -0
  14. package/dist/builder.d.ts +30 -88
  15. package/dist/builder.d.ts.map +1 -1
  16. package/dist/builder.js +48 -56
  17. package/dist/builder.js.map +1 -1
  18. package/dist/expr-operator-types.d.ts +89 -0
  19. package/dist/expr-operator-types.d.ts.map +1 -0
  20. package/dist/expr-operator-types.js +134 -0
  21. package/dist/expr-operator-types.js.map +1 -0
  22. package/dist/generator/async-plan.d.ts.map +1 -1
  23. package/dist/generator/async-plan.js +4 -0
  24. package/dist/generator/async-plan.js.map +1 -1
  25. package/dist/generator/core.d.ts +15 -0
  26. package/dist/generator/core.d.ts.map +1 -1
  27. package/dist/generator/core.js +2 -0
  28. package/dist/generator/core.js.map +1 -1
  29. package/dist/generator/emit-php.d.ts.map +1 -1
  30. package/dist/generator/emit-php.js +1 -0
  31. package/dist/generator/emit-php.js.map +1 -1
  32. package/dist/generator/emit-python.d.ts.map +1 -1
  33. package/dist/generator/emit-python.js +1 -0
  34. package/dist/generator/emit-python.js.map +1 -1
  35. package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
  36. package/dist/generator/emit-straightline-typed-typescript.js +1 -0
  37. package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
  38. package/dist/generator/emit-typed-native-go.d.ts.map +1 -1
  39. package/dist/generator/emit-typed-native-go.js +83 -12
  40. package/dist/generator/emit-typed-native-go.js.map +1 -1
  41. package/dist/generator/emit-typed-native-rust.d.ts.map +1 -1
  42. package/dist/generator/emit-typed-native-rust.js +83 -20
  43. package/dist/generator/emit-typed-native-rust.js.map +1 -1
  44. package/dist/generator/emit-typescript.d.ts.map +1 -1
  45. package/dist/generator/emit-typescript.js +24 -8
  46. package/dist/generator/emit-typescript.js.map +1 -1
  47. package/dist/generator/index.d.ts +1 -1
  48. package/dist/generator/index.d.ts.map +1 -1
  49. package/dist/generator/index.js +7 -5
  50. package/dist/generator/index.js.map +1 -1
  51. package/dist/index.d.ts +41 -8
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +27 -6
  54. package/dist/index.js.map +1 -1
  55. package/dist/provenance.d.ts +102 -0
  56. package/dist/provenance.d.ts.map +1 -0
  57. package/dist/provenance.js +128 -0
  58. package/dist/provenance.js.map +1 -0
  59. package/dist/type-gate.d.ts +63 -0
  60. package/dist/type-gate.d.ts.map +1 -0
  61. package/dist/type-gate.js +295 -0
  62. package/dist/type-gate.js.map +1 -0
  63. package/package.json +4 -3
package/dist/authoring.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { SPEC_VERSIONS } from "./index.js";
2
- import { assertPortableComponentGraph } from "./guard.js";
2
+ import { mintCompiled } from "./provenance.js";
3
+ import { assertAllNodeTypesDetermined, canonicalizeType } from "./type-gate.js";
4
+ import { assertPortableComponentGraph, assertPortableTypeNotation, PortabilityError } from "./guard.js";
3
5
  import { buildComponentCore, checkPortableEntry, checkPortNames, checkDeclaredPortTypes, collectNodeIdRefs, DEFAULT_PLAN_CONCURRENCY, } from "./builder.js";
4
6
  export class AuthoringFailure extends Error {
5
7
  code;
@@ -45,6 +47,24 @@ function exprMetaOf(v) {
45
47
  return undefined;
46
48
  return v[EXPR_META];
47
49
  }
50
+ /**
51
+ * `.map` の opts キーの閉集合(**runtime-enumerable SoT**)。{@link MapOptions} の型はここから
52
+ * 導出し(`Record<...> `)、新 opts キーを足すときはここに 1 語追加するのが正。matrix の網羅ゲート
53
+ * (#132)はこの配列から導出するので、SoT にキーを足して matrix にケースが無ければ CI が RED になる。
54
+ * 注: 要素ごと skip の `when` は opts キーではなく callback 内 `when(...)` guard 由来(`map.when` へ
55
+ * lower)なので、ここには含めない(authoring 手段が別。matrix 側で別途カバーする)。
56
+ */
57
+ export const MAP_OPTION_KEYS = ["into", "batched"];
58
+ /**
59
+ * `refsConnection`(v3 fanout)の opts キーの閉集合(**runtime-enumerable SoT**)。graphddb の
60
+ * `@refs` 読みが宣言する dedupe/drop 契約。{@link FanoutOptions} の型はここから導出。新 opts キーは
61
+ * ここに追加するのが正で、matrix 網羅ゲート(#132)がこの配列から導出する(未カバー → CI RED)。
62
+ */
63
+ export const FANOUT_OPTION_KEYS = ["dedupeKey", "drop", "implicitSource"];
64
+ const _mapOptsSync = true;
65
+ const _fanoutOptsSync = true;
66
+ void _mapOptsSync;
67
+ void _fanoutOptsSync;
48
68
  function makeExpr(meta) {
49
69
  return new Proxy({}, {
50
70
  get(_t, prop) {
@@ -64,6 +84,8 @@ function makeExpr(meta) {
64
84
  return (cb, opts) => recordMap(meta, cb, opts);
65
85
  if (prop === "refsConnection")
66
86
  return (cb, opts) => recordFanout(meta, cb, opts);
87
+ if (prop === "as")
88
+ return (t) => recordAs(meta, t);
67
89
  if (meta.refPath === null)
68
90
  afail("COMPUTED_ACCESS", `property '.${prop}' on a computed expression cannot be lowered (bind the value through a component result or restructure the wiring)`);
69
91
  if (meta.isInput && meta.refPath.length === 0)
@@ -257,8 +279,157 @@ export function catalogComponents(catalog) {
257
279
  }
258
280
  return out;
259
281
  }
260
- function recordComponentCall(name, entry, portsIn) {
282
+ export function defineLeaf(name, meta,
283
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
284
+ fn) {
285
+ if (typeof name !== "string" || name === "")
286
+ afail("BAD_LEAF_META", `defineLeaf: name must be a non-empty string`);
287
+ if (!meta || typeof meta !== "object")
288
+ afail("BAD_LEAF_META", `defineLeaf '${name}': meta must be an object with cardinality/ports/output`);
289
+ if (meta.cardinality !== "one" && meta.cardinality !== "many")
290
+ afail("BAD_LEAF_META", `defineLeaf '${name}': cardinality must be "one" or "many"`);
291
+ if (!meta.ports || typeof meta.ports !== "object" || Array.isArray(meta.ports))
292
+ afail("BAD_LEAF_META", `defineLeaf '${name}': ports must be a record of PortableType`);
293
+ if (typeof fn !== "function")
294
+ afail("BAD_LEAF_META", `defineLeaf '${name}': fn (the impl body) must be a function`);
295
+ // runtime PortableType 注記の閉集合検査(guard と同一強度・fail-closed。core が読む唯一の型源)。
296
+ for (const [k, pt] of Object.entries(meta.ports))
297
+ checkPortableTypeMeta(name, `ports.${k}`, pt);
298
+ checkPortableTypeMeta(name, "output", meta.output);
299
+ return { name, meta, fn };
300
+ }
301
+ /** defineLeaf / behaviorComponents の PortableType 注記を fail-closed で検査する。 */
302
+ function checkPortableTypeMeta(leaf, at, t) {
303
+ try {
304
+ assertPortableTypeNotation(t, at);
305
+ }
306
+ catch (e) {
307
+ if (e instanceof PortabilityError)
308
+ afail("BAD_TYPE_NOTATION", `defineLeaf '${leaf}': ${e.message}`);
309
+ throw e;
310
+ }
311
+ }
312
+ /**
313
+ * `PortableType` → `PortSchema.type` 文字列(hand-written catalog と同一の語彙)+
314
+ * elemType の導出。既存 catalog(authoring.test.ts の `kv` / codegen-corpus の inputPorts)は
315
+ * スカラを `"string"`/`"int"`/`"float"`/`"bool"` の TS 風文字列で、配列を
316
+ * `{ type:"array", elemType: <PortableType> }` で書く。この導出はその shape を再現する:
317
+ *
318
+ * - スカラ → `{ type: <scalar> }`
319
+ * - `{opt: T}` → 内側 T の schema に `required:false` を上書き(nullable Port)
320
+ * - `{arr: T}` → `{ type:"array", elemType: T }`(map-over-input の $as 要素型解決源 — bc#101)
321
+ * - `{obj: …}` → `{ type:"object" }`(object Port — 内部 field 型は catalog schema では持たない)
322
+ */
323
+ function portSchemaFromPortable(pt, required) {
324
+ if (typeof pt === "string") {
325
+ const s = { type: pt };
326
+ if (required)
327
+ s.required = true;
328
+ return s;
329
+ }
330
+ if ("opt" in pt) {
331
+ // opt は「省略可 = required:false」。内側の base 型で type を決める。
332
+ const inner = portSchemaFromPortable(pt.opt, false);
333
+ return { ...inner, required: false };
334
+ }
335
+ if ("arr" in pt) {
336
+ const s = { type: "array", elemType: pt.arr };
337
+ if (required)
338
+ s.required = true;
339
+ return s;
340
+ }
341
+ // obj
342
+ const s = { type: "object" };
343
+ if (required)
344
+ s.required = true;
345
+ return s;
346
+ }
347
+ /** cardinality → CatalogOutput.shape(one → "item" / many → "items"。既存語彙と一致)。 */
348
+ function outputShapeFromCardinality(cardinality) {
349
+ return { shape: cardinality === "one" ? "item" : "items" };
350
+ }
351
+ /**
352
+ * catalogEntryFromLeaf — defineLeaf の runtime 注記から `CatalogEntry` を **導出**する
353
+ * (consumer は catalog を手書きしない — §4.1)。
354
+ * - `inputPorts` = 各 Port の PortableType を PortSchema へ射影(scalar/opt/arr/obj)。
355
+ * - `output.shape` = cardinality(one→item / many→items)。
356
+ * - `elemType` = `output`(その leaf が返す要素の確定型。typed codegen / map 要素型の SSoT)。
357
+ * - `portableToIR` / `additionalPorts` は meta から(既定 true / false)。
358
+ */
359
+ export function catalogEntryFromLeaf(def) {
360
+ const inputPorts = {};
361
+ for (const [k, pt] of Object.entries(def.meta.ports)) {
362
+ // opt でラップされた Port は省略可(required:false)、それ以外は required。
363
+ const required = !(typeof pt === "object" && pt !== null && "opt" in pt);
364
+ inputPorts[k] = portSchemaFromPortable(pt, required);
365
+ }
366
+ const entry = {
367
+ name: def.name,
368
+ inputPorts,
369
+ output: outputShapeFromCardinality(def.meta.cardinality),
370
+ portableToIR: def.meta.portableToIR ?? true,
371
+ elemType: def.meta.output,
372
+ };
373
+ if (def.meta.additionalPorts === true)
374
+ entry.additionalPorts = true;
375
+ return entry;
376
+ }
377
+ /**
378
+ * behaviorComponents — `defineLeaf` 結果のレコードから **portable catalog を導出**し、
379
+ * authoring 本体で呼べる leaf コンポーネント関数群を返す(`catalogComponents(catalog)` と
380
+ * **同一の call-shape** `{ [name]: (ports) => Recorded }`・同一の {@link recordComponentCall}
381
+ * 機構)。consumer は catalog も handlers も手書きしない(§4.1 / SA4)。
382
+ *
383
+ * catalog は `defineLeaf` の型付きシグネチャ由来の runtime 注記から機械導出されるため、
384
+ * 手書き catalog と**構造的に同一**(AC1)。派生後の record は既存 catalog 経路と完全に同じ
385
+ * port 検証・lowering を通る。
386
+ */
387
+ export function behaviorComponents(leaves) {
388
+ const out = {};
389
+ for (const key of Object.keys(leaves)) {
390
+ const def = leaves[key];
391
+ const entry = catalogEntryFromLeaf(def);
392
+ // SA8: leaf impl(型付き静的関数の本体)を record 時にフレームのレジストリへ登録する。
393
+ // handlers 手注入を廃し、bind 時にこの registry から name→impl を自動 dispatch する(bind.ts)。
394
+ out[key] = (ports) => recordComponentCall(entry.name, entry, ports, def.fn);
395
+ }
396
+ return out;
397
+ }
398
+ /**
399
+ * deriveCatalog — `defineLeaf` レコードから `Catalog`(name → CatalogEntry)を導出する
400
+ * (guard / typed codegen / fingerprint の SSoT を得たい consumer 向け。`behaviorComponents`
401
+ * が内部で使うのと同一の {@link catalogEntryFromLeaf} 射影)。
402
+ */
403
+ export function deriveCatalog(leaves) {
404
+ const catalog = {};
405
+ for (const def of Object.values(leaves))
406
+ catalog[def.name] = catalogEntryFromLeaf(def);
407
+ return catalog;
408
+ }
409
+ /**
410
+ * baseOutTypeFromEntry — catalog エントリの base ノード結果型を導出する。`elemType` は leaf の
411
+ * **要素型**なので、ノード結果の確定型は `output.shape` で包む:
412
+ * - `item`(既定)→ 要素型そのもの。
413
+ * - `items` → `{arr: 要素型}`(リスト結果)。
414
+ * - `connection` → `{obj:{items:{arr:要素型}, cursor:{opt:"string"}}}`(connection 結果)。
415
+ * `elemType` が無いエントリ(手書き catalog 等)は undefined(=未確定 → ゲートが UNTYPED_NODE)。
416
+ */
417
+ function baseOutTypeFromEntry(entry) {
418
+ if (entry.elemType === undefined)
419
+ return undefined;
420
+ const shape = entry.output?.shape ?? "item";
421
+ if (shape === "items")
422
+ return { arr: entry.elemType };
423
+ if (shape === "connection")
424
+ return { obj: { items: { arr: entry.elemType }, cursor: { opt: "string" } } };
425
+ return entry.elemType; // item(単一)
426
+ }
427
+ function recordComponentCall(name, entry, portsIn, impl) {
261
428
  const f = requireFrame(`component '${name}'`);
429
+ // SA8: behaviorComponents 由来の leaf 呼びは impl を持つ → フレームのレジストリへ登録(自動 bind の出所)。
430
+ // catalogComponents(生 Catalog・impl 無し)由来は impl=undefined = 登録しない(bind は不可)。
431
+ if (impl !== undefined)
432
+ f.registry[name] = impl;
262
433
  checkPortableEntry(name, entry, afail);
263
434
  if (!portsIn || typeof portsIn !== "object" || Array.isArray(portsIn) || exprMetaOf(portsIn))
264
435
  afail("BAD_PORT_VALUE", `component '${name}': ports must be a plain object literal`);
@@ -276,8 +447,12 @@ function recordComponentCall(name, entry, portsIn) {
276
447
  afail("MAP_MULTI_COMPONENT", `method '${f.method}': a .map callback must invoke exactly one component (got a second call: '${name}')`);
277
448
  f.pendingMap.component = name;
278
449
  f.pendingMap.ports = ports;
279
- // callback 内でこの要素結果へさらに配線することはできない(record は構造のみ)。
280
- return opExpr(null);
450
+ // callback leaf の base 要素型を捕捉(`.as` 未指定時の確定型 — recordMap/recordFanout が使う)。
451
+ f.pendingMap.baseElemType = entry.elemType;
452
+ // callback 内でこの要素結果へさらに配線することはできない(record は構造のみ)が、
453
+ // `.as<T>(t)` による要素の確定型注記だけは受ける(mapResult recorder — recordAs が
454
+ // pendingMap.outType へ回す)。
455
+ return makeExpr({ node: null, refPath: null, refOp: "ref", isInput: false, mapResult: true });
281
456
  }
282
457
  const bf = ensureGate(f);
283
458
  const deps = collectNodeIdRefs(ports, f.nodeIds);
@@ -288,9 +463,64 @@ function recordComponentCall(name, entry, portsIn) {
288
463
  node.parent = wire.parent;
289
464
  if (wire.bindField !== undefined)
290
465
  node.bindField = wire.bindField;
466
+ // base 出力型を leaf の catalog `elemType`(A1 の defineLeaf 由来)からノードへ焼く(SA5 の
467
+ // 「leaf の base 型は signature 由来」= 確定)。elemType は**要素型**なので、ノード結果の型は
468
+ // leaf の output.shape で包む(item=要素そのもの / items=`{arr:要素}` / connection=`{obj:{items,cursor}}`)。
469
+ // projection 等で型が変わる点は後段の `.as<T>()` が recordAs で上書きする(配列/要素の別も consumer が
470
+ // 確定させる)。catalog に elemType が無い(手書き catalog 等)ノードは outType 未確定のまま残り、
471
+ // 全ノード型確定ゲート(type-gate.ts)が `UNTYPED_NODE` で名指して落とす。
472
+ const baseOut = baseOutTypeFromEntry(entry);
473
+ if (baseOut !== undefined)
474
+ node.outType = baseOut;
291
475
  f.nodes.push(node);
292
476
  return nodeHandle(id);
293
477
  }
478
+ // ── `.as<T>(t)`(inline 確定型注記 — SA5 / scp-only-authoring-contract §4.4)──────────
479
+ /**
480
+ * recordAs — node 結果 recorder の `.as<T>(t)` を lower する。projection / 合成で base 型
481
+ * (leaf signature 由来)から**確定型が変わる点**を consumer が inline で確定させる surface。
482
+ *
483
+ * TS の型は実行時に消去されるため(consumer-interface.md C3・不変)、BC core は**推論しない**:
484
+ * `.as` は引数の runtime `PortableType`(可搬型記法の閉集合)だけを読み、それを対象 body
485
+ * ノードの `outType` に書き込む。TS の generic `<T>` は呼び出し側で `t` に束縛され(型が
486
+ * 矛盾すれば tsc エラー)、runtime へは `t`(= SSoT)だけが渡る。注記は「推論結果」ではなく
487
+ * 「consumer が静的に確定した型」であり、後段(A3 の UNTYPED_NODE gate / typed codegen)が読む。
488
+ *
489
+ * `.as` は **node 結果 recorder(componentRef / map / fanout の結果)** にのみ適用できる。
490
+ * `$` 入力参照・演算結果(`concat(...)` 等)は body ノードを持たず注記先が無いため
491
+ * `BAD_AS_TARGET` で fail-closed(型未確定の穴を作らない = SA5)。map/fanout コールバック内の
492
+ * leaf 結果への `.as` は、要素の確定型として pendingMap に記録し、畳まれた MapNode/FanoutNode の
493
+ * `outType` に載せる。
494
+ */
495
+ function recordAs(meta, t) {
496
+ const f = requireFrame(".as");
497
+ // runtime PortableType の閉集合検査(guard と同一強度・fail-closed)。TS の型消去後に
498
+ // core が読むのはこの runtime 注記だけ(推論しない)。
499
+ try {
500
+ assertPortableTypeNotation(t, `.as`);
501
+ }
502
+ catch (e) {
503
+ if (e instanceof PortabilityError)
504
+ afail("BAD_TYPE_NOTATION", `method '${f.method}': .as<T>(t) — ${e.message}`);
505
+ throw e;
506
+ }
507
+ // map/fanout コールバック内の component 結果: 要素の確定型を pendingMap へ記録する
508
+ // (要素は単一 Map/Fanout ノードに畳まれるため、body ノードは未生成 — outType は畳み時に載る)。
509
+ if (meta.mapResult && f.pendingMap) {
510
+ f.pendingMap.outType = t;
511
+ return makeExpr(meta); // 同じ map 結果 recorder(callback 内でさらに配線はしない)。
512
+ }
513
+ // node 結果 recorder は refPath[0] が現フレームの body ノード id(nodeHandle で作られる)。
514
+ const id = meta.refPath !== null && meta.refPath.length === 1 ? meta.refPath[0] : null;
515
+ const node = id !== null ? f.nodes.find((n) => n.id === id) : undefined;
516
+ if (!node)
517
+ afail("BAD_AS_TARGET", `method '${f.method}': .as<T>(t) can only annotate a component/map/fanout result node (not a '$' input reference, a projected field, or a computed expression)`);
518
+ // 対象ノード種に応じて outType を書き込む(ComponentRefNode / MapNode / FanoutNode いずれも
519
+ // outType を持つ。CondNode は Φ 合流で `.as` の対象になり得るため同様に outType を持つ)。
520
+ node.outType = t;
521
+ // 注記後も同じ node 結果 recorder を返す(後続配線・Output 参照に使える)。
522
+ return makeExpr(meta);
523
+ }
294
524
  // ── structured control: Map(ネイティブ `.map` を lower)───────────────────────────
295
525
  function recordMap(overMeta, cb, opts) {
296
526
  const f = requireFrame(".map");
@@ -314,7 +544,7 @@ function recordMap(overMeta, cb, opts) {
314
544
  }
315
545
  const as = `$e${f.mapSeq++}`;
316
546
  const binding = makeExpr({ node: { ref: [as] }, refPath: [as], refOp: "ref", isInput: false });
317
- f.pendingMap = { as, component: null, ports: null, when: undefined };
547
+ f.pendingMap = { as, component: null, ports: null, when: undefined, outType: undefined, baseElemType: undefined };
318
548
  let pm;
319
549
  try {
320
550
  cb(binding);
@@ -343,6 +573,14 @@ function recordMap(overMeta, cb, opts) {
343
573
  node.map.batched = true;
344
574
  if (deps.length > 0)
345
575
  node.map.parent = deps[0];
576
+ // callback 内 `.as<T>(t)` で確定した要素型を map ノードの outType に載せる(§4.4。
577
+ // `into` 指定時は augment 済みリストの要素型 — consumer が確定させた形をそのまま採る)。
578
+ // `.as` 未指定時は leaf の base 要素型(catalog elemType)にフォールバック(SA5 の base 型確定)。
579
+ // map ノードの outType は**要素型**(配列ラップ前)で持つ既存規約に従う(native emitter は
580
+ // 配列型をここから合成する)。`into` 指定時は要素型注記が必須(base では augment 後の型を導けない)。
581
+ const mapElem = pm.outType !== undefined ? pm.outType : opts?.into !== undefined ? undefined : pm.baseElemType;
582
+ if (mapElem !== undefined)
583
+ node.outType = mapElem;
346
584
  f.nodes.push(node);
347
585
  return nodeHandle(id);
348
586
  }
@@ -377,7 +615,7 @@ function recordFanout(overMeta, cb, opts) {
377
615
  afail("FANOUT_NOT_LOWERABLE", `method '${f.method}': refsConnection 'implicitSource' must be a non-empty string when present`);
378
616
  const as = `$e${f.mapSeq++}`;
379
617
  const binding = makeExpr({ node: { ref: [as] }, refPath: [as], refOp: "ref", isInput: false });
380
- f.pendingMap = { as, component: null, ports: null, when: undefined };
618
+ f.pendingMap = { as, component: null, ports: null, when: undefined, outType: undefined, baseElemType: undefined };
381
619
  let pm;
382
620
  try {
383
621
  cb(binding);
@@ -410,6 +648,12 @@ function recordFanout(overMeta, cb, opts) {
410
648
  node.fanout.implicitSource = opts.implicitSource;
411
649
  if (deps.length > 0)
412
650
  node.fanout.parent = deps[0];
651
+ // callback 内 `.as<T>(t)` で確定した**要素型**を connection outType へ包む
652
+ // (fanout は常に connection: `{obj:{items:{arr:<elem>}, cursor:{opt:"string"}}}` — behavior.ts §5.2)。
653
+ // `.as` 未指定時は leaf の base 要素型(catalog elemType)にフォールバック(SA5 の base 型確定)。
654
+ const fanElem = pm.outType !== undefined ? pm.outType : pm.baseElemType;
655
+ if (fanElem !== undefined)
656
+ node.outType = { obj: { items: { arr: fanElem }, cursor: { opt: "string" } } };
413
657
  f.nodes.push(node);
414
658
  return nodeHandle(id);
415
659
  }
@@ -786,6 +1030,11 @@ export function compileBehaviors(cls, opts = {}) {
786
1030
  }
787
1031
  const instance = new cls();
788
1032
  const components = [];
1033
+ // SA8: 1 クラス = 1 レジストリ(全メソッドの leaf 呼びで共有)。record 時に behaviorComponents 由来の
1034
+ // impl が name→fn で溜まり、compile 末尾で IR handle の side-channel へ退避する(IR 本体には載らない)。
1035
+ // null-proto: leaf 名が 'toString'/'constructor' 等でも prototype 継承キーと混ざらない(bind ゲートの
1036
+ // 完全性検査・dispatch lookup の健全性)。
1037
+ const registry = Object.create(null);
789
1038
  for (const method of methodNames) {
790
1039
  const frame = {
791
1040
  method,
@@ -796,6 +1045,7 @@ export function compileBehaviors(cls, opts = {}) {
796
1045
  mapSeq: 0,
797
1046
  branchStack: [],
798
1047
  pendingMap: null,
1048
+ registry,
799
1049
  };
800
1050
  const dollar = makeExpr({ node: { ref: [] }, refPath: [], refOp: "ref", isInput: true });
801
1051
  currentFrame = frame;
@@ -822,11 +1072,22 @@ export function compileBehaviors(cls, opts = {}) {
822
1072
  //(Kahn levels)・決定的正規化(キーソート)・Guard 自己検査は recorder 経路と
823
1073
  // データ登録経路(buildComponentDefinition)の単一実装。catalog port 照合は
824
1074
  // record 時(recordComponentCall)に同じ共有関数で済ませているため catalog は渡さない。
825
- components.push(buildComponentCore({ name: method, inputPorts, body: frame.nodes, output }, { concurrency: opts.concurrency ?? DEFAULT_PLAN_CONCURRENCY }));
1075
+ const component = buildComponentCore({ name: method, inputPorts, body: frame.nodes, output }, { concurrency: opts.concurrency ?? DEFAULT_PLAN_CONCURRENCY });
1076
+ // SA5 全ノード型確定ゲート(#125): 全 body ノードの outType と output(Φ 合成)の全フィールド型が
1077
+ // 一意に確定していることを網羅検査し(未確定は UNTYPED_NODE で fail-closed)、確定済みノード型から
1078
+ // outputType を構造伝播で導出する(推論ではない)。導出型を canonical 化して component に載せることで、
1079
+ // compile 産 IR が「全ノード + component が型付き」= native codegen が端まで型付きフラット化できる状態
1080
+ // (consumer-interface.md §2.3 / bc#77 isFullyTyped)になる。
1081
+ component.outputType = canonicalizeType(assertAllNodeTypesDetermined(component));
1082
+ components.push(component);
826
1083
  }
827
1084
  const ir = { irVersion: 1, exprVersion: opts.exprVersion ?? SPEC_VERSIONS.expression, components };
828
1085
  assertPortableComponentGraph(ir); // fail-closed 自己検査(P0-2 Guard を必ず通す)
829
- return ir;
1086
+ // SA1/SA2: compile seam だけが token を刻んで opaque handle に封じる(consumer は forge 不能)。
1087
+ // 実行時 token(provenance.ts)+ 型 brand(index.ts)の二重の門で手組み IR を排除する。
1088
+ // SA8: 捕捉した name→leaf impl レジストリを handle の side-channel に退避する(IR 本体・fingerprint・
1089
+ // JSON には載らない = C4)。bindBehaviors が完全性ゲート後にここから自動 dispatch する。
1090
+ return mintCompiled(ir, registry);
830
1091
  }
831
1092
  // ── effect 導出(consumer の CQRS 層のための共有ヘルパ — authoring は effect 非依存)────
832
1093
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"authoring.js","sourceRoot":"","sources":["../src/authoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authoring.js","sourceRoot":"","sources":["../src/authoring.ts"],"names":[],"mappings":"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"}
@@ -216,6 +216,15 @@ export interface CondNode {
216
216
  */
217
217
  outType?: PortableType;
218
218
  }
219
+ /**
220
+ * body ノード種別の閉集合(**値の runtime-enumerable SoT**)。型 {@link BodyNode} はこの 4 種の
221
+ * union で、`nodeKind` の返り値・網羅検査はこの配列から導出する(POLICY_KINDS / RELATION_KINDS と
222
+ * 同型の SoT パターン — plan.ts)。新 body ノード種を足すときはここに 1 語追加するのが正であり、
223
+ * これを SoT にすることで「新ノード種が matrix 未カバーのまま緑」になる穴を塞ぐ(#132)。
224
+ */
225
+ export declare const BODY_NODE_KINDS: readonly ["componentRef", "map", "cond", "fanout"];
226
+ /** body ノード種別({@link BODY_NODE_KINDS} から導出)。 */
227
+ export type BodyNodeKind = (typeof BODY_NODE_KINDS)[number];
219
228
  export type BodyNode = ComponentRefNode | MapNode | CondNode | FanoutNode;
220
229
  /** 合成コンポーネント定義(=公開メソッド, §5)。 */
221
230
  export interface Component {
@@ -298,7 +307,15 @@ export declare function fanoutDedupDrop(alignedBodies: Value[], spec: FanoutDedu
298
307
  /**
299
308
  * runBehavior — component-graph IR の統合実行 IF(§7)。
300
309
  *
301
- * @param ir component-graph 可搬 IR。
310
+ * @internal **低レベル IR 実行プリミティブ(consumer authoring surface ではない — #128/A6)。**
311
+ * 0.8.0 の consumer 向け実行契約は {@link bindBehaviors}(登録 → 自動 dispatch)であり、handlers を
312
+ * 呼び出しごとに手注入する `runBehavior` は authoring surface から外す(consumer-interface.md §2.2/SA8)。
313
+ * これは撤去はしない: 生成 literal/typed モジュール(`bind`/`bindAsync` の中身)と conformance/test
314
+ * harness が依然として叩く BC 内部の**規範 IR 実行 runtime**である(IR 実行モデル = literal のみ。
315
+ * codegen 側は静的直呼びで本関数を経由しない)。入口では {@link assertCompiled} を通した compile 済み
316
+ * handle だけを受ける(無 token/改竄 IR は `NON_COMPILED_IR`、SA7)。
317
+ *
318
+ * @param ir component-graph 可搬 IR(compile 済み handle — SA7 出自ゲート対象)。
302
319
  * @param handlers 専用コンポーネント handler registry(catalog名 → 実装。境界注入)。
303
320
  * @param input エントリ component の inputPorts 束縛(param 値)。
304
321
  * @param entry 実行する component 名(省略時は先頭 component)。
@@ -315,6 +332,10 @@ export declare function runBehavior(ir: ComponentGraphIR, handlers: Handlers, in
315
332
  /**
316
333
  * runBehaviorAsync — runBehavior の非同期版(bc#23)。handler が Promise を返せる。
317
334
  *
335
+ * @internal **低レベル IR 実行プリミティブ(consumer authoring surface ではない — #128/A6)。**
336
+ * {@link runBehavior} と同じく consumer 向け実行契約は {@link bindBehaviors}(`bindAsync`)である。
337
+ * 本関数は生成 literal/typed モジュールと test harness が叩く BC 内部の規範 async IR 実行 runtime。
338
+ *
318
339
  * plan の stage 実行を {@link runPlanAsync} に委譲することで、同一 stage 内の兄弟ノードを
319
340
  * `plan.concurrency` を上限とした bounded 並列で実行する(旧 graphddb の sibling relation
320
341
  * query thread-overlap の回復)。map ノード**内部**の要素反復は宣言どおり逐次
@@ -1 +1 @@
1
- {"version":3,"file":"behavior.d.ts","sourceRoot":"","sources":["../src/behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"behavior.d.ts","sourceRoot":"","sources":["../src/behavior.ts"],"names":[],"mappings":"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"}