behavior-contracts 0.7.3 → 0.8.1

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 +33 -1
  7. package/dist/behavior.d.ts.map +1 -1
  8. package/dist/behavior.js +49 -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 +163 -26
  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 +152 -32
  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 +313 -0
  62. package/dist/type-gate.js.map +1 -0
  63. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAGzF,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,UAAU,GACV,qBAAqB,GACrB,kBAAkB,GAClB,+BAA+B,CAAC;AAEpC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,IAAI,EAAE,oBAAoB,CAAC;gBACf,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAOD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,EAAE,EAAE,gBAAgB,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,8BAA8B;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;CAChC;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AA8CD,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,uCAAuC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CAgCrF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAGzF,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,UAAU,GACV,qBAAqB,GACrB,kBAAkB,GAClB,+BAA+B,CAAC;AAEpC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,IAAI,EAAE,oBAAoB,CAAC;gBACf,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAOD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,EAAE,EAAE,gBAAgB,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,8BAA8B;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,cAAc,EAAE,qBAAqB,CAAC;IACtC,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;CAChC;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AA8CD,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,uCAAuC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CAiCrF"}
@@ -25,6 +25,7 @@
25
25
  import { SPEC_VERSIONS } from "../index.js";
26
26
  import { assertPortableComponentGraph } from "../guard.js";
27
27
  import { fingerprintComponentGraph } from "./fingerprint.js";
28
+ import { assertCompiled } from "../provenance.js";
28
29
  export class GeneratorFailure extends Error {
29
30
  code;
30
31
  constructor(code, message) {
@@ -97,6 +98,7 @@ export function generateModule(ir, options) {
97
98
  const plugin = registry.get(options.language);
98
99
  if (!plugin)
99
100
  gfail("UNKNOWN_LANGUAGE", `no emitter registered for language '${options.language}' (registered: ${registeredLanguages().join(", ")}) (fail-closed)`);
101
+ assertCompiled(ir); // SA3/SA7 出自ゲート: codegen 入力も無 token/改竄 IR は NON_COMPILED_IR で fail-closed
100
102
  const validated = validateGeneratorInput(ir);
101
103
  const fingerprint = fingerprintComponentGraph(validated);
102
104
  const specVersions = {
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/generator/core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-php.d.ts","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAyE5D,eAAO,MAAM,UAAU,EAAE,aAKxB,CAAC"}
1
+ {"version":3,"file":"emit-php.d.ts","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAyE5D,eAAO,MAAM,UAAU,EAAE,aAMxB,CAAC"}
@@ -69,6 +69,7 @@ return (object) [
69
69
  }
70
70
  export const phpEmitter = {
71
71
  language: "php",
72
+ classification: "ir-exec", // literal: 可搬 IR を埋め込み runBehavior で動的実行(#128/A6)
72
73
  fileExtension: ".php",
73
74
  defaultRuntimeImport: "BehaviorContracts",
74
75
  emit,
@@ -1 +1 @@
1
- {"version":3,"file":"emit-php.js","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,mDAAmD;AACnD,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO;;;;;;;;;oBASW,WAAW;;;;;yCAKU,YAAY,CAAC,QAAQ,qBAAqB,YAAY,CAAC,UAAU,eAAe,YAAY,CAAC,IAAI;;;mBAGvH,KAAK,CAAC,WAAW,CAAC;;;qBAGhB,KAAK;;;QAGlB,SAAS;;;;sBAIK,aAAa;wBACX,aAAa;kBACnB,aAAa;;;;;;;;sBAQT,aAAa;;;;;;;;;;;;;;;;wEAgBqC,aAAa;;;;;CAKpF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,MAAM;IACrB,oBAAoB,EAAE,mBAAmB;IACzC,IAAI;CACL,CAAC"}
1
+ {"version":3,"file":"emit-php.js","sourceRoot":"","sources":["../../src/generator/emit-php.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,mDAAmD;AACnD,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO;;;;;;;;;oBASW,WAAW;;;;;yCAKU,YAAY,CAAC,QAAQ,qBAAqB,YAAY,CAAC,UAAU,eAAe,YAAY,CAAC,IAAI;;;mBAGvH,KAAK,CAAC,WAAW,CAAC;;;qBAGhB,KAAK;;;QAGlB,SAAS;;;;sBAIK,aAAa;wBACX,aAAa;kBACnB,aAAa;;;;;;;;sBAQT,aAAa;;;;;;;;;;;;;;;;wEAgBqC,aAAa;;;;;CAKpF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,SAAS,EAAE,kDAAkD;IAC7E,aAAa,EAAE,MAAM;IACrB,oBAAoB,EAAE,mBAAmB;IACzC,IAAI;CACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-python.d.ts","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAwE5D,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC"}
1
+ {"version":3,"file":"emit-python.d.ts","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAwE5D,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC"}
@@ -68,6 +68,7 @@ def bind(handlers):
68
68
  }
69
69
  export const pythonEmitter = {
70
70
  language: "python",
71
+ classification: "ir-exec", // literal: 可搬 IR を埋め込み run_behavior で動的実行(#128/A6)
71
72
  fileExtension: ".py",
72
73
  defaultRuntimeImport: "behavior_contracts",
73
74
  emit,
@@ -1 +1 @@
1
- {"version":3,"file":"emit-python.js","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,+CAA+C;AAC/C,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO;;;;;;mBAMU,WAAW;OACvB,aAAa;;;wCAGoB,YAAY,CAAC,QAAQ,mBAAmB,YAAY,CAAC,UAAU,aAAa,YAAY,CAAC,IAAI;;;mBAGlH,KAAK,CAAC,WAAW,CAAC;;;oBAGjB,UAAU;;;OAGvB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCf,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,IAAI;CACL,CAAC"}
1
+ {"version":3,"file":"emit-python.js","sourceRoot":"","sources":["../../src/generator/emit-python.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,+CAA+C;AAC/C,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO;;;;;;mBAMU,WAAW;OACvB,aAAa;;;wCAGoB,YAAY,CAAC,QAAQ,mBAAmB,YAAY,CAAC,UAAU,aAAa,YAAY,CAAC,IAAI;;;mBAGlH,KAAK,CAAC,WAAW,CAAC;;;oBAGjB,UAAU;;;OAGvB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCf,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,SAAS,EAAE,mDAAmD;IAC9E,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,IAAI;CACL,CAAC"}
@@ -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,aAMpC,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;AA2CpB,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AA4QF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAOpC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
@@ -305,6 +305,7 @@ ${views}
305
305
  */
306
306
  export const typescriptTypedEmitter = {
307
307
  language: "typescript-typed",
308
+ classification: "codegen", // typed ts は CODEGEN(ts→IR→生成 ts コード・IR 非在・runtime-free)— #128/A6 で ir-exec から再分類
308
309
  fileExtension: ".ts",
309
310
  defaultRuntimeImport: "behavior-contracts",
310
311
  filenameHint: "behaviors.typed.generated.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"emit-straightline-typed-typescript.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-straightline-typed-typescript.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-typed-native-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-typed-native-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAs5E5D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAwQhF;AAqCD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAMlC,CAAC"}
1
+ {"version":3,"file":"emit-typed-native-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-typed-native-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AA6/E5D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CA6RhF;AAqCD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { GeneratorFailure } from "./core.js";
2
+ import { isControlGate } from "../behavior.js";
2
3
  import { goStraightlineInternals } from "./emit-shared-go.js";
3
4
  import { goTypedInternals } from "./emit-shared-go-typed.js";
4
5
  import { buildTypePlan, deriveTypeRef, findDecl } from "./typed.js";
@@ -119,13 +120,17 @@ function staticStringArrElems(node) {
119
120
  * Value-typed input) FAILS CLOSED — the covered read plane admits NO boxed escape (there is no
120
121
  * `dslcontracts.Value` fallback on the native module). `where` names the emission site for the error.
121
122
  */
122
- function portFieldGoType(node, inputPorts, where = "port", asBinding, plan) {
123
+ function portFieldGoType(node, inputPorts, where = "port", asBinding, plan, typedNodes) {
123
124
  if (staticStringArrElems(node) !== null)
124
125
  return "[]string";
125
126
  // #110: a componentRef port bound to a runtime array input port (with a resolvable elemType) → []ElemT.
126
127
  const arrElem = portArrayElemRef(node, inputPorts, plan);
127
128
  if (arrElem !== null)
128
129
  return `[]${renderTypeRef(arrElem)}`;
130
+ // #129: a leaf port that is a ref into a PRIOR NODE's typed arr outType (node→leaf array dataflow) → []ElemT.
131
+ const priorArr = priorNodeArrElemInfo(node, typedNodes, plan);
132
+ if (priorArr !== null)
133
+ return `[]${renderTypeRef(priorArr.elemRef)}`;
129
134
  const num = numLiteralGoExpr(node);
130
135
  if (num !== null)
131
136
  return Number.isInteger(node) ? "int64" : "float64";
@@ -266,6 +271,10 @@ function isFullyTyped(comp) {
266
271
  if (comp.outputType === undefined)
267
272
  return false;
268
273
  for (const n of comp.body) {
274
+ // #125: a control-gate cond is a typeless skip marker (A3) — it never de-boxes a result, so it is
275
+ // exempt from the "every node carries outType" de-box requirement (matches type-gate's exemption).
276
+ if (isControlGate(n))
277
+ continue;
269
278
  if (n.outType === undefined)
270
279
  return false;
271
280
  }
@@ -385,16 +394,30 @@ function coverageRejectReason(comp) {
385
394
  // to it too. A non-single/connection bindField member is rejected by that shared check.
386
395
  for (const [i] of ep.parallelStageOf) {
387
396
  const n = comp.body[i];
397
+ // #125: a when(...) control-gate cond IS allowed as a parallel-stage member — it is a pure
398
+ // Expression (no dispatch), evaluated in preflight ascending order like the bindField key gate, so
399
+ // its produced_<gate> flag is settled before the stage's gated children dispatch. It carries no
400
+ // handler and no boxed result, so it does not disturb the bounded-concurrency error-precedence
401
+ // protocol (which governs the componentRef fan-out members).
402
+ if (isControlGate(n))
403
+ continue;
388
404
  if (!("component" in n))
389
405
  return `node '${n.id}' is a non-componentRef member of a parallel stage (not native-covered)`;
390
406
  }
391
407
  const bodyIds = new Set(comp.body.map((b) => b.id));
392
408
  for (const n of comp.body) {
393
409
  if ("cond" in n) {
394
- // #108: a cond node is native-covered its `if`/`then`/`else` compile to native expressions via
395
- // the runtime-free NativeExprCompiler (byte-equal to run_behavior's cond lower). If an expression
396
- // is not statically compilable (uncovered op / refOpt / opt operand / type mismatch), the compiler
397
- // fails closed at emit (a loud GeneratorFailure) — never a silent box. cond requires outType.
410
+ // #125: a when(...) control-gate cond (`{if, then:{obj:{ok:true}}, else:null}`) は制御スキップ
411
+ // マーカーで出力データ型を持たない(A3 の意図的 typeless design)— outType を要求しない。gate
412
+ // if native bool へコンパイルし produced_<gate> に写すだけで、分岐内ノードは既存の
413
+ // `parent=gate, bindField:"ok"` skip-gate(run_behavior null-binding skip)が実行選択する。
414
+ if (isControlGate(n))
415
+ continue;
416
+ // #108: a DATA-JOIN cond node (Φ 合流) is native-covered — its `if`/`then`/`else` compile to native
417
+ // expressions via the runtime-free NativeExprCompiler (byte-equal to run_behavior's cond lower). If an
418
+ // expression is not statically compilable (uncovered op / refOpt / opt operand / type mismatch), the
419
+ // compiler fails closed at emit (a loud GeneratorFailure) — never a silent box. A data-join cond
420
+ // requires outType(合流値を de-box する対象だから — control gate だけがこの要求を免除される)。
398
421
  if (n.outType === undefined)
399
422
  return `node '${n.id}' cond has no outType (required to de-box the branch join)`;
400
423
  continue;
@@ -424,6 +447,11 @@ function coverageRejectReason(comp) {
424
447
  // struct-de-plumbed). relationKind:single WITHOUT bindField (the #74/#323 core) IS covered.
425
448
  if (cr.policy !== undefined && cr.policy !== "fail")
426
449
  return `node '${n.id}' componentRef policy '${cr.policy}' (produced-aware output not yet native-covered)`;
450
+ // #125: a when(...) control-gate child (`parent=gate, bindField:"ok"`). Its bindField is the gate's
451
+ // skip signal, NOT a relation data key — so the relationKind constraint below (which governs a
452
+ // relation bindField into a single|connection parent) does not apply. Its skip is driven by the
453
+ // gate's produced_<gate> flag; the child itself can be a plain point read (or a relation read).
454
+ const childOfGate = cr.parent !== undefined && isControlGate(comp.body.find((b) => b.id === cr.parent));
427
455
  // #86 part 1: a relationKind:single child WITH bindField (relationSingle) IS covered. When the
428
456
  // bound parent field is null/absent the child is UNPRODUCED — the produced-aware output lowering
429
457
  // (emitProducedAwareValue) then yields the unproduced rep (null / opt-nil) for a ref/refOpt into
@@ -431,7 +459,7 @@ function coverageRejectReason(comp) {
431
459
  // child is ALSO covered — the connection's unproduced rep is the empty connection {items:[],cursor:null}
432
460
  // (unproducedValue("connection")), which emitProducedAwareValue emits explicitly for a skipped
433
461
  // connection node (a ref into it yields {items:[],cursor:null}, matching run_behavior).
434
- if (cr.bindField !== undefined && cr.relationKind !== "single" && cr.relationKind !== "connection")
462
+ if (!childOfGate && cr.bindField !== undefined && cr.relationKind !== "single" && cr.relationKind !== "connection")
435
463
  return `node '${n.id}' relationKind '${cr.relationKind ?? "point"}' not native-covered (bindField only supports single|connection)`;
436
464
  if (cr.relationKind !== undefined && cr.relationKind !== "single" && cr.relationKind !== "connection")
437
465
  return `relationKind '${cr.relationKind}' not native-covered (node '${n.id}')`;
@@ -452,13 +480,13 @@ function assertTypedCoverage(comp) {
452
480
  throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go combined read (bc#77): component '${comp.name}' is a sequential componentRef read but lacks outType/outputType on every node — the combined emitter de-boxes the RESULT into the node's outType struct, so a covered read MUST be fully typed (bc#45). Add outType annotations, or regenerate on go-straightline-native (boxed result).`);
453
481
  }
454
482
  // ── native ports struct + PortReader ──────────────────────────────────────────────────
455
- function emitPortsStruct(comp, node, asBinding, plan) {
483
+ function emitPortsStruct(comp, node, asBinding, plan, typedNodes) {
456
484
  const structName = portsStructName(comp.name, node.id);
457
485
  const portNames = Object.keys(node.ports);
458
486
  if (portNames.length === 0) {
459
487
  return `// ${structName} — native ports for node '${node.id}' (${node.component}); no ports.\ntype ${structName} struct{}`;
460
488
  }
461
- const fieldTypes = portNames.map((p) => portFieldGoType(node.ports[p], comp.inputPorts, `port '${p}' of node '${node.id}'`, asBinding, plan));
489
+ const fieldTypes = portNames.map((p) => portFieldGoType(node.ports[p], comp.inputPorts, `port '${p}' of node '${node.id}'`, asBinding, plan, typedNodes));
462
490
  const fieldNames = portNames.map(goPortFieldName);
463
491
  const fields = portNames
464
492
  .map((p, i) => `\t${fieldNames[i]} ${fieldTypes[i]} // ${JSON.stringify(p)}`)
@@ -824,6 +852,43 @@ function mapOverElemInfo(comp, node, typedNodes, plan) {
824
852
  function mapOverElemType(comp, node, typedNodes, plan) {
825
853
  return renderTypeRef(mapOverElemInfo(comp, node, typedNodes, plan).elemRef);
826
854
  }
855
+ /**
856
+ * priorNodeArrElemInfo (#129) — resolve a leaf port that is a `ref` into a PRIOR BODY NODE whose
857
+ * annotated `outType` is (or reaches, through a field path) a native array, to its element TypeRef +
858
+ * the native Go slice expression that yields it. This GENERALIZES the `map…over` prior-node-arr
859
+ * dataflow (mapOverElemInfo's first branch) to ANY leaf input port: a fold/dedup leaf whose `items`
860
+ * port is `{ref:["<priorNode>"]}` (or `.items` of a prior connection node) now lowers to `[]ElemT`
861
+ * fed straight from the prior node's typed local — ZERO boxed Value on the read hot path.
862
+ *
863
+ * The element type comes STRICTLY from the prior node's EXPLICIT `outType` annotation walked through
864
+ * typedFieldAccess (BC does NOT infer — consumer-interface C3 / [[graphddb-typed-native-static-link]]):
865
+ * if the head is not a prior body node, or its outType (through the field path) is not an `arr`, this
866
+ * returns null and the caller keeps its existing fail-closed behaviour (never a silent box). A
867
+ * single-segment INPUT-array port (elemType) is a DIFFERENT covered shape (portArrayElemRef) — handled
868
+ * ahead of this. Requires the typedNodes map (prior-node outType TypeRefs) and a TypePlan.
869
+ */
870
+ function priorNodeArrElemInfo(node, typedNodes, plan) {
871
+ if (typedNodes === undefined || plan === undefined)
872
+ return null;
873
+ if (staticArrElems(node) !== null)
874
+ return null; // a static array literal — not a prior-node ref.
875
+ const e = classifyExpr(node);
876
+ if (e.kind !== "ref" || e.opt || e.path.length < 1)
877
+ return null;
878
+ if (!typedNodes.has(e.path[0]))
879
+ return null; // head is not a prior body node → not this shape.
880
+ const baseRef = typedNodes.get(e.path[0]);
881
+ let acc;
882
+ try {
883
+ acc = goTypedInternals.typedFieldAccess(typedLocal(e.path[0]), baseRef, e.path.slice(1), plan);
884
+ }
885
+ catch {
886
+ return null; // the field path does not resolve on the prior node's outType → fail-closed at caller.
887
+ }
888
+ if (acc.ref.kind !== "arr")
889
+ return null; // the prior-node result (through the path) is not an array.
890
+ return { elemRef: acc.ref.elem, overExpr: acc.expr };
891
+ }
827
892
  function classifyPort(node) {
828
893
  if (staticArrElems(node) !== null)
829
894
  return "static";
@@ -1055,7 +1120,7 @@ function emitNativeScalar(node, want, resolveRef) {
1055
1120
  * plane — a boxed escape would re-introduce the bc-runtime coupling this module removes). Returns the
1056
1121
  * struct field initializer (`Field: <expr>`). `resolveRef` resolves a ref head for the scalar path.
1057
1122
  */
1058
- function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan) {
1123
+ function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan, typedNodes) {
1059
1124
  const fieldName = goPortFieldName(pn);
1060
1125
  // #110: a componentRef port bound to a runtime array input port (with elemType) → the native []ElemT,
1061
1126
  // read straight from the concrete input struct (`in.<Field>`) — ZERO boxed Value on the read hot path.
@@ -1067,6 +1132,13 @@ function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan) {
1067
1132
  return `${fieldName}: in.${goFieldName(e.path[0])}`;
1068
1133
  }
1069
1134
  }
1135
+ // #129: a leaf port that is a ref into a PRIOR NODE's typed arr outType (node→leaf array dataflow) →
1136
+ // the native []ElemT read straight off the prior node's typed local (`t_<node>.Field…`) — ZERO boxed
1137
+ // Value on the read hot path. The over-source case (map…over) resolves via mapOverElemInfo; this is
1138
+ // the plain leaf array input port (a fold/dedup leaf whose `items` = a prior node's array result).
1139
+ const priorArr = priorNodeArrElemInfo(expr, typedNodes, plan);
1140
+ if (priorArr !== null)
1141
+ return `${fieldName}: ${priorArr.overExpr}`;
1070
1142
  // change #2: a static string array (projection) → a native `[]string{...}` literal.
1071
1143
  const strArr = staticStringArrElems(expr);
1072
1144
  if (strArr !== null) {
@@ -1176,8 +1248,8 @@ function emitParallelStageArm(comp, stage, atPos, concurrency, metas, typedNodes
1176
1248
  const resolveRef = resolveRefAt(atPos);
1177
1249
  for (const pn of Object.keys(node.ports)) {
1178
1250
  const expr = node.ports[pn];
1179
- const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan);
1180
- inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan));
1251
+ const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan, typedNodes);
1252
+ inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan, typedNodes));
1181
1253
  }
1182
1254
  lines.push(`${ind}ps_${s} = ${structName}{${inits.join(", ")}}`);
1183
1255
  lines.push(`${ind}run_${s} = true`);
@@ -1251,8 +1323,11 @@ function emitNativeRawRunner(comp, plan, flags) {
1251
1323
  const metas = analyzeSequentialOps(cplan.opsLiteral, order);
1252
1324
  const fn = sanitize(comp.name);
1253
1325
  const typedNodes = new Map();
1326
+ // #125: a control-gate cond has NO outType (skip marker) — it never yields a typed data cell, so it
1327
+ // carries no typedNodes entry. Its skip is expressed purely via produced_<gate> (children gate on it).
1254
1328
  for (const n of comp.body)
1255
- typedNodes.set(n.id, deriveTypeRef(n.outType, plan));
1329
+ if (!isControlGate(n))
1330
+ typedNodes.set(n.id, deriveTypeRef(n.outType, plan));
1256
1331
  const idToPos = new Map();
1257
1332
  order.forEach((opIdx, k) => idToPos.set(comp.body[opIdx].id, k));
1258
1333
  const priorNodeAt = (head, atPos) => {
@@ -1311,10 +1386,16 @@ function emitNativeRawRunner(comp, plan, flags) {
1311
1386
  return { expr: `in.${goFieldName(head)}`, scalar };
1312
1387
  };
1313
1388
  for (const k of order.keys()) {
1314
- const id = comp.body[order[k]].id;
1315
- lines.push(`\tvar ${typedLocal(id)} ${renderTypeRef(typedNodes.get(id))}`);
1389
+ const node = comp.body[order[k]];
1390
+ const id = node.id;
1391
+ // #125: a control-gate cond has no typed data cell — only a produced_<gate> flag (its `if` result),
1392
+ // which its gated children read via the existing `if produced_<parent>` skip-gate. A non-gate node
1393
+ // declares its typed local in the SAME line order as before (`var` first — golden-corpus stable).
1394
+ if (!isControlGate(node))
1395
+ lines.push(`\tvar ${typedLocal(id)} ${renderTypeRef(typedNodes.get(id))}`);
1316
1396
  lines.push(`\tproduced_${sanitize(id)} := false`);
1317
- lines.push(`\t_ = ${typedLocal(id)}`);
1397
+ if (!isControlGate(node))
1398
+ lines.push(`\t_ = ${typedLocal(id)}`);
1318
1399
  lines.push(`\t_ = produced_${sanitize(id)}`);
1319
1400
  }
1320
1401
  const idToPosAll = new Map();
@@ -1357,11 +1438,20 @@ function emitNativeRawRunner(comp, plan, flags) {
1357
1438
  lines.push(`\t// ── op '${node.id}' (${node.component}${node.relationKind ? ", relationKind:" + node.relationKind : ""}${node.parent ? ", parent:" + node.parent : ""}) ──`);
1358
1439
  let indent = "\t";
1359
1440
  const closers = [];
1441
+ const parentIsGate = node.parent !== undefined && isControlGate(comp.body.find((b) => b.id === node.parent));
1360
1442
  if (node.parent !== undefined && priorNodeAt(node.parent, k)) {
1361
1443
  lines.push(`${indent}if produced_${sanitize(node.parent)} {`);
1362
1444
  closers.unshift(`${indent}}`);
1363
1445
  indent += "\t";
1364
- if (node.bindField !== undefined) {
1446
+ if (node.bindField !== undefined && parentIsGate) {
1447
+ // #125: a when(...) control-gate parent. gate の bindField:"ok" は run_behavior では成立時
1448
+ // `true` / 不成立時 `null`(→ null-binding skip)。native では produced_<gate>(= gate の `if`)
1449
+ // が既にその skip を担うので、ここに来た時点で gate は成立。bound は skip の sentinel(データ
1450
+ // キーではない — 子の ports は実データ親を参照する)として、非 nil の `*string` を渡す。
1451
+ lines.push(`${indent}gateOK_${s} := "ok"`);
1452
+ lines.push(`${indent}bound_${s} := &gateOK_${s}`);
1453
+ }
1454
+ else if (node.bindField !== undefined) {
1365
1455
  // bind (change #3 — typed produced-aware bound): read the parent struct field DIRECTLY (typed
1366
1456
  // access — no serialize). `bound_<s>` is a TYPED POINTER (`*T`) — nil => UNPRODUCED/skip, non-nil
1367
1457
  // => produced (an empty string is a VALID produced value, a non-nil *string to ""). This is the
@@ -1392,8 +1482,8 @@ function emitNativeRawRunner(comp, plan, flags) {
1392
1482
  const resolveRef = resolveRefAt(k);
1393
1483
  for (const pn of portNames) {
1394
1484
  const expr = node.ports[pn];
1395
- const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan);
1396
- inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan));
1485
+ const fieldGoType = portFieldGoType(expr, comp.inputPorts, `port '${pn}' of node '${node.id}'`, undefined, plan, typedNodes);
1486
+ inits.push(emitPortInit(pn, expr, fieldGoType, resolveRef, comp.inputPorts, plan, typedNodes));
1397
1487
  }
1398
1488
  lines.push(`${indent}ports_${s} := ${structName}{${inits.join(", ")}}`);
1399
1489
  const oc = `row_${s}`;
@@ -1807,7 +1897,6 @@ function goInputHeadRef(head, comp, plan) {
1807
1897
  function emitCondArm(comp, node, atPos, typedNodes, plan, priorNodeAt, zeroOut) {
1808
1898
  const c = node.cond;
1809
1899
  const s = sanitize(node.id);
1810
- const nodeRef = typedNodes.get(node.id);
1811
1900
  const priorHere = (head) => priorNodeAt(head, atPos);
1812
1901
  const resolveHead = (head) => {
1813
1902
  if (priorHere(head))
@@ -1816,8 +1905,31 @@ function emitCondArm(comp, node, atPos, typedNodes, plan, priorNodeAt, zeroOut)
1816
1905
  };
1817
1906
  const be = makeGoExprBackend(zeroOut, resolveHead, plan);
1818
1907
  const compiler = new NativeExprCompiler(be);
1819
- const resolveDecl = (name) => findDecl(plan, name).fields;
1820
1908
  const cond = compiler.compileBool(c.if);
1909
+ // #125: a when(...) control-gate cond は出力データ型を持たない制御スキップマーカー。typed cell へ
1910
+ // 何も materialize せず、`if` を native bool にして produced_<gate> に写すだけ。分岐内ノード
1911
+ // (`parent=gate, bindField:"ok"`)は既存の `if produced_<gate>` skip-gate が実行選択する — gate が
1912
+ // 成立(produced_<gate>=true)で子は走り、不成立で子は skip、run_behavior の null-binding skip と一致。
1913
+ if (isControlGate(node)) {
1914
+ const glines = [];
1915
+ glines.push(`\t// ── control-gate cond '${node.id}'${c.parent ? " (parent:" + c.parent + ")" : ""} — when(...) skip marker (no data type) ──`);
1916
+ let gindent = "\t";
1917
+ const gclosers = [];
1918
+ if (c.parent !== undefined && priorNodeAt(c.parent, atPos)) {
1919
+ glines.push(`${gindent}if produced_${sanitize(c.parent)} {`);
1920
+ gclosers.unshift(`${gindent}}`);
1921
+ gindent += "\t";
1922
+ }
1923
+ // the `if` condition (fallible temps hoisted first — always evaluated); produced_<gate> = its bool.
1924
+ for (const st of cond.stmts)
1925
+ glines.push(`${gindent}${st}`);
1926
+ glines.push(`${gindent}produced_${s} = ${cond.expr}`);
1927
+ for (const cl of gclosers)
1928
+ glines.push(cl);
1929
+ return glines.join("\n");
1930
+ }
1931
+ const nodeRef = typedNodes.get(node.id);
1932
+ const resolveDecl = (name) => findDecl(plan, name).fields;
1821
1933
  const thenC = compiler.compileTo(c.then, nodeRef, resolveDecl);
1822
1934
  const elseC = compiler.compileTo(c.else, nodeRef, resolveDecl);
1823
1935
  const lines = [];
@@ -2214,7 +2326,8 @@ function emit(ctx) {
2214
2326
  const typedNodes = new Map();
2215
2327
  // build the full typed-node map FIRST so a map's over-element resolution can see every node.
2216
2328
  for (const n of c.body)
2217
- typedNodes.set(n.id, deriveTypeRef(n.outType, plan));
2329
+ if (!isControlGate(n))
2330
+ typedNodes.set(n.id, deriveTypeRef(n.outType, plan)); // #125: control-gate は typeless(typedNodes に載せない)
2218
2331
  for (const n of c.body) {
2219
2332
  if ("fanout" in n) {
2220
2333
  // v3: a fanout node emits a per-id element ports struct + a batch struct (like a batched map).
@@ -2229,7 +2342,8 @@ function emit(ctx) {
2229
2342
  // #108: a cond node has NO ports struct (it is a pure Expression — no handler dispatch).
2230
2343
  }
2231
2344
  else {
2232
- structs.push(emitPortsStruct(c, n, undefined, plan));
2345
+ // #129: pass typedNodes so a leaf array port fed by a prior node's arr outType types as []ElemT.
2346
+ structs.push(emitPortsStruct(c, n, undefined, plan, typedNodes));
2233
2347
  }
2234
2348
  }
2235
2349
  // CONCRETE per-node row structs + the per-component handler interface (the fully-concrete seam).
@@ -2355,7 +2469,8 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
2355
2469
  for (const c of native) {
2356
2470
  const typedNodes = new Map();
2357
2471
  for (const n of c.body)
2358
- typedNodes.set(n.id, deriveTypeRef(n.outType, plan));
2472
+ if (!isControlGate(n))
2473
+ typedNodes.set(n.id, deriveTypeRef(n.outType, plan)); // #125: control-gate は typeless(typedNodes に載せない)
2359
2474
  for (const n of c.body) {
2360
2475
  if ("cond" in n)
2361
2476
  continue; // #108: cond has no handler method (pure Expression) — no scripted impl.
@@ -2440,7 +2555,18 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
2440
2555
  const rowT = rawRowStructName(c.name, node.id);
2441
2556
  const decode = emitDecodeRow(c.name, node.id, rowT, ref, plan, emittedDecode, decodeFns, "");
2442
2557
  const nodeBoundT = boundGoType(node, c, typedNodes, plan);
2443
- methodImpls.push(`func (s *ScriptedNativeRaw) ${nodeMethodName(c.name, node.id)}(_ ${portsStructName(c.name, node.id)}, _ ${nodeBoundT}) (${rowT}, bool) {
2558
+ // #129 (TEST glue): if this node has an `items` port and its outType is a bare arr, support the
2559
+ // reference scriptedHandlers' `echo === "items"` — the scripted handler ECHOES the NATIVE `items`
2560
+ // port back as its result. This makes the node→leaf array dataflow test non-vacuous: the leaf's
2561
+ // observed result is exactly the native array that flowed into its ports struct, so a dropped or
2562
+ // boxed native array would diverge from run_behavior. `ports` is named only when the echo path
2563
+ // uses it (else the param stays `_` so a non-echo node compiles clean / unused-param-free).
2564
+ const canEcho = ref.kind === "arr" && Object.prototype.hasOwnProperty.call(node.ports, "items");
2565
+ const portsParam = canEcho ? "ports" : "_";
2566
+ const echoBranch = canEcho
2567
+ ? `\tif src.echo == "items" {\n\t\treturn ${rowT}{Val: ports.${goPortFieldName("items")}}, true\n\t}\n`
2568
+ : "";
2569
+ methodImpls.push(`func (s *ScriptedNativeRaw) ${nodeMethodName(c.name, node.id)}(${portsParam} ${portsStructName(c.name, node.id)}, _ ${nodeBoundT}) (${rowT}, bool) {
2444
2570
  src, ok := s.next(${JSON.stringify(node.component)})
2445
2571
  if !ok {
2446
2572
  return ${rowT}{}, false
@@ -2448,14 +2574,18 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
2448
2574
  if src.isErr {
2449
2575
  return ${rowT}{IsError: true, Err: src.err}, true
2450
2576
  }
2451
- return ${decode}(src.ok), true
2577
+ ${echoBranch} return ${decode}(src.ok), true
2452
2578
  }`);
2453
2579
  }
2454
2580
  }
2455
2581
  const adapter = `// scriptSrc — a scripted per-component outcome (an ok Value or an error), drained in order.
2582
+ // #129: \`echo\` carries the reference scriptedHandlers' \`echo\` directive (e.g. "items") so a scripted
2583
+ // node can ECHO a named input PORT back as its result — used to make the node→leaf array dataflow test
2584
+ // non-vacuous (the leaf handler returns its \`items\` port, so a dropped/boxed native array diverges).
2456
2585
  type scriptSrc struct {
2457
2586
  isErr bool
2458
2587
  err string
2588
+ echo string
2459
2589
  ok ${PKG}.Value
2460
2590
  }
2461
2591
 
@@ -2486,12 +2616,18 @@ func NewScriptedNativeRaw(spec *${PKG}.JObj) (*ScriptedNativeRaw, error) {
2486
2616
  }
2487
2617
  for _, e := range entries {
2488
2618
  eo, _ := e.(*${PKG}.JObj)
2619
+ // #129: an \`echo\` directive names an input port to echo back (mirrors the reference
2620
+ // scriptedHandlers' \`echo === "items"\`). It is drained together with the ok payload.
2621
+ echo := ""
2622
+ if echoNode, has := eo.Get("echo"); has {
2623
+ echo, _ = echoNode.(string)
2624
+ }
2489
2625
  if okNode, has := eo.Get("ok"); has {
2490
2626
  val, derr := ${PKG}.DecodeValue(okNode)
2491
2627
  if derr != nil {
2492
2628
  return nil, derr
2493
2629
  }
2494
- queues[comp] = append(queues[comp], scriptSrc{ok: val})
2630
+ queues[comp] = append(queues[comp], scriptSrc{ok: val, echo: echo})
2495
2631
  continue
2496
2632
  }
2497
2633
  ev, _ := eo.Get("error")
@@ -2603,6 +2739,7 @@ function emitDecodeRow(compName, nodeId, rowT, ref, plan, emitted, out, suffix)
2603
2739
  */
2604
2740
  export const goTypedNativeEmitter = {
2605
2741
  language: "go-typed-native",
2742
+ classification: "codegen", // native: 型付きフラットコード生成・IR/dict 非在(#128/A6)
2606
2743
  fileExtension: ".go",
2607
2744
  defaultRuntimeImport: "github.com/foo-ogawa/behavior-contracts/go/coderuntime",
2608
2745
  filenameHint: "behaviors.typed.native.generated.go",