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.
- package/README.md +0 -1
- package/dist/authoring.d.ts +215 -3
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.js +269 -8
- package/dist/authoring.js.map +1 -1
- package/dist/behavior.d.ts +22 -1
- package/dist/behavior.d.ts.map +1 -1
- package/dist/behavior.js +23 -1
- package/dist/behavior.js.map +1 -1
- package/dist/bind.d.ts +64 -0
- package/dist/bind.d.ts.map +1 -0
- package/dist/bind.js +131 -0
- package/dist/bind.js.map +1 -0
- package/dist/builder.d.ts +30 -88
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +48 -56
- package/dist/builder.js.map +1 -1
- package/dist/expr-operator-types.d.ts +89 -0
- package/dist/expr-operator-types.d.ts.map +1 -0
- package/dist/expr-operator-types.js +134 -0
- package/dist/expr-operator-types.js.map +1 -0
- package/dist/generator/async-plan.d.ts.map +1 -1
- package/dist/generator/async-plan.js +4 -0
- package/dist/generator/async-plan.js.map +1 -1
- package/dist/generator/core.d.ts +15 -0
- package/dist/generator/core.d.ts.map +1 -1
- package/dist/generator/core.js +2 -0
- package/dist/generator/core.js.map +1 -1
- package/dist/generator/emit-php.d.ts.map +1 -1
- package/dist/generator/emit-php.js +1 -0
- package/dist/generator/emit-php.js.map +1 -1
- package/dist/generator/emit-python.d.ts.map +1 -1
- package/dist/generator/emit-python.js +1 -0
- package/dist/generator/emit-python.js.map +1 -1
- package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
- package/dist/generator/emit-straightline-typed-typescript.js +1 -0
- package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
- package/dist/generator/emit-typed-native-go.d.ts.map +1 -1
- package/dist/generator/emit-typed-native-go.js +83 -12
- package/dist/generator/emit-typed-native-go.js.map +1 -1
- package/dist/generator/emit-typed-native-rust.d.ts.map +1 -1
- package/dist/generator/emit-typed-native-rust.js +83 -20
- package/dist/generator/emit-typed-native-rust.js.map +1 -1
- package/dist/generator/emit-typescript.d.ts.map +1 -1
- package/dist/generator/emit-typescript.js +24 -8
- package/dist/generator/emit-typescript.js.map +1 -1
- package/dist/generator/index.d.ts +1 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +7 -5
- package/dist/generator/index.js.map +1 -1
- package/dist/index.d.ts +41 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -6
- package/dist/index.js.map +1 -1
- package/dist/provenance.d.ts +102 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +128 -0
- package/dist/provenance.js.map +1 -0
- package/dist/type-gate.d.ts +63 -0
- package/dist/type-gate.d.ts.map +1 -0
- package/dist/type-gate.js +295 -0
- package/dist/type-gate.js.map +1 -0
- package/package.json +4 -3
package/dist/behavior.js
CHANGED
|
@@ -19,7 +19,15 @@
|
|
|
19
19
|
* 参照名+Port配線だけが載り、実装(副作用・SDK)は載らない(C4)。
|
|
20
20
|
*/
|
|
21
21
|
import { evaluate as evaluateExpression } from "./expr-eval.js";
|
|
22
|
+
import { assertCompiled } from "./provenance.js";
|
|
22
23
|
import { runPlan, runPlanAsync, } from "./plan.js";
|
|
24
|
+
/**
|
|
25
|
+
* body ノード種別の閉集合(**値の runtime-enumerable SoT**)。型 {@link BodyNode} はこの 4 種の
|
|
26
|
+
* union で、`nodeKind` の返り値・網羅検査はこの配列から導出する(POLICY_KINDS / RELATION_KINDS と
|
|
27
|
+
* 同型の SoT パターン — plan.ts)。新 body ノード種を足すときはここに 1 語追加するのが正であり、
|
|
28
|
+
* これを SoT にすることで「新ノード種が matrix 未カバーのまま緑」になる穴を塞ぐ(#132)。
|
|
29
|
+
*/
|
|
30
|
+
export const BODY_NODE_KINDS = ["componentRef", "map", "cond", "fanout"];
|
|
23
31
|
export class BehaviorFailure extends Error {
|
|
24
32
|
code;
|
|
25
33
|
constructor(code, message) {
|
|
@@ -216,7 +224,15 @@ function writeUnproduced(states, ops, body, results) {
|
|
|
216
224
|
/**
|
|
217
225
|
* runBehavior — component-graph IR の統合実行 IF(§7)。
|
|
218
226
|
*
|
|
219
|
-
* @
|
|
227
|
+
* @internal **低レベル IR 実行プリミティブ(consumer authoring surface ではない — #128/A6)。**
|
|
228
|
+
* 0.8.0 の consumer 向け実行契約は {@link bindBehaviors}(登録 → 自動 dispatch)であり、handlers を
|
|
229
|
+
* 呼び出しごとに手注入する `runBehavior` は authoring surface から外す(consumer-interface.md §2.2/SA8)。
|
|
230
|
+
* これは撤去はしない: 生成 literal/typed モジュール(`bind`/`bindAsync` の中身)と conformance/test
|
|
231
|
+
* harness が依然として叩く BC 内部の**規範 IR 実行 runtime**である(IR 実行モデル = literal のみ。
|
|
232
|
+
* codegen 側は静的直呼びで本関数を経由しない)。入口では {@link assertCompiled} を通した compile 済み
|
|
233
|
+
* handle だけを受ける(無 token/改竄 IR は `NON_COMPILED_IR`、SA7)。
|
|
234
|
+
*
|
|
235
|
+
* @param ir component-graph 可搬 IR(compile 済み handle — SA7 出自ゲート対象)。
|
|
220
236
|
* @param handlers 専用コンポーネント handler registry(catalog名 → 実装。境界注入)。
|
|
221
237
|
* @param input エントリ component の inputPorts 束縛(param 値)。
|
|
222
238
|
* @param entry 実行する component 名(省略時は先頭 component)。
|
|
@@ -230,6 +246,7 @@ function writeUnproduced(states, ops, body, results) {
|
|
|
230
246
|
* (観測結果は本関数と byte 一致 — 本関数が規範実装)。
|
|
231
247
|
*/
|
|
232
248
|
export function runBehavior(ir, handlers, input = {}, entry) {
|
|
249
|
+
assertCompiled(ir); // SA7 出自ゲート: 手組み/無 token/改竄 IR は NON_COMPILED_IR で fail-closed
|
|
233
250
|
const comp = resolveEntry(ir, entry);
|
|
234
251
|
const body = comp.body;
|
|
235
252
|
const idToIndex = new Map();
|
|
@@ -342,6 +359,10 @@ export function runBehavior(ir, handlers, input = {}, entry) {
|
|
|
342
359
|
/**
|
|
343
360
|
* runBehaviorAsync — runBehavior の非同期版(bc#23)。handler が Promise を返せる。
|
|
344
361
|
*
|
|
362
|
+
* @internal **低レベル IR 実行プリミティブ(consumer authoring surface ではない — #128/A6)。**
|
|
363
|
+
* {@link runBehavior} と同じく consumer 向け実行契約は {@link bindBehaviors}(`bindAsync`)である。
|
|
364
|
+
* 本関数は生成 literal/typed モジュールと test harness が叩く BC 内部の規範 async IR 実行 runtime。
|
|
365
|
+
*
|
|
345
366
|
* plan の stage 実行を {@link runPlanAsync} に委譲することで、同一 stage 内の兄弟ノードを
|
|
346
367
|
* `plan.concurrency` を上限とした bounded 並列で実行する(旧 graphddb の sibling relation
|
|
347
368
|
* query thread-overlap の回復)。map ノード**内部**の要素反復は宣言どおり逐次
|
|
@@ -356,6 +377,7 @@ export function runBehavior(ir, handlers, input = {}, entry) {
|
|
|
356
377
|
* `concurrency: 1` の plan を出荷する(concurrency は plan 構造の一部 — execution-plan.md §3)。
|
|
357
378
|
*/
|
|
358
379
|
export async function runBehaviorAsync(ir, handlers, input = {}, entry) {
|
|
380
|
+
assertCompiled(ir); // SA7 出自ゲート: 手組み/無 token/改竄 IR は NON_COMPILED_IR で fail-closed
|
|
359
381
|
const comp = resolveEntry(ir, entry);
|
|
360
382
|
const body = comp.body;
|
|
361
383
|
const idToIndex = new Map();
|
package/dist/behavior.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behavior.js","sourceRoot":"","sources":["../src/behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAA0B,MAAM,gBAAgB,CAAC;AACxF,OAAO,EACL,OAAO,EACP,YAAY,GAQb,MAAM,WAAW,CAAC;AAuRnB,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,IAAI,CAAsB;IAC1B,YAAY,IAAyB,EAAE,OAAe;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,SAAS,KAAK,CAAC,IAAyB,EAAE,OAAe;IACvD,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,CAAW;IAC3B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC;IAC5C,KAAK,CAAC,mBAAmB,EAAE,cAAe,CAAqB,CAAC,EAAE,IAAI,GAAG,uCAAuC,CAAC,CAAC;AACpH,CAAC;AAED,oDAAoD;AACpD,SAAS,UAAU,CAAC,CAAW;IAC7B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,CAAW;IAChC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjE,OAAO,CAAC,CAAC,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,CAAW;IAC7B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAW;IACnC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAChD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;IAC1C,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,CAAC,CAAC,YAAY,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,KAA8B,EAAE,KAAY;IAC7D,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mDAAmD;AACnD,SAAS,YAAY,CAAC,EAAoB,EAAE,KAAc;IACxD,MAAM,IAAI,GAAG,KAAK;QAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;QAC7C,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,eAAe,EAAE,cAAc,KAAK,IAAI,SAAS,mBAAmB,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,SAAS,QAAQ,CAAC,IAAgB,EAAE,SAA8B;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,IAAI,GAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,EAAE,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,SAAS,iBAAiB,CAAC,IAAY,EAAE,CAAQ,EAAE,IAAY;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;QACxC,KAAK,CACH,2BAA2B,EAC3B,QAAQ,IAAI,gEAAgE,IAAI,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CACnI,CAAC;IACJ,OAAO,CAAC,CAAC;AACX,CAAC;AA4BD,MAAM,UAAU,eAAe,CAAC,aAAsB,EAAE,IAAyB;IAC/E,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,IAA8B,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;QACvD,+EAA+E;QAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,SAAS;YACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC;YAC1D,SAAS;QACX,CAAC;QACD,8CAA8C;QAC9C,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,sDAAsD;QACtD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;YACzF,MAAM,IAAI,GAA0B,EAAE,GAAG,GAAG,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,EAAU,EACV,CAAuB,EACvB,SAAsB;IAEtB,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACtB,KAAK,CAAC,uBAAuB,EAAE,WAAW,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;IAC3F,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAU,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,CAAuB,EAAE,UAAiB,EAAE,IAAY;IACxF,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IACnH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,SAAS,kBAAkB,CAAC,IAAY,EAAE,CAAQ,EAAE,IAAY;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;QACxC,KAAK,CACH,8BAA8B,EAC9B,WAAW,IAAI,8EAA8E,IAAI,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CACpJ,CAAC;IACJ,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,IAAY,EACZ,IAAY,EACZ,IAAa,EACb,OAAiB,EACjB,SAAkB;IAElB,MAAM,SAAS,GAAY,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,KAAK,CACH,6BAA6B,EAC7B,QAAQ,IAAI,+CAA+C,CAAC,oBAAoB,CACjF,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,EAAE,GAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8DAA8D;AAC9D,SAAS,eAAe,CACtB,MAA4B,EAC5B,GAAa,EACb,IAAgB,EAChB,OAA8B;IAE9B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CACzB,EAAoB,EACpB,QAAkB,EAClB,QAAe,EAAE,EACjB,KAAc;IAEd,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAa,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEhD,uEAAuE;IACvE,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAU,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAS,CAAC,EAAE,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,kEAAkE;YAClE,MAAM,CAAC,GAAI,IAAiB,CAAC,IAAI,CAAC;YAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,GAAI,IAAgB,CAAC,GAAG,CAAC;YAChC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,KAAK,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBACV,KAAK,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC;YACxF,MAAM,GAAG,GAAe,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;YAElE,sFAAsF;YACtF,MAAM,IAAI,GAAG,CAAC,EAAS,EAAE,KAAY,EAAW,EAAE,CAChD,CAAC,CAAC,IAAI,KAAK,SAAS;gBACpB,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;YACtE,MAAM,OAAO,GAAa,EAAE,CAAC,CAAC,yCAAyC;YAEvE,IAAI,SAAkB,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvB,4DAA4D;gBAC5D,MAAM,KAAK,GAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBACrB,MAAM,KAAK,GAAU,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;wBAAE,OAAO;oBAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,SAAS,GAAG,EAAE,CAAC,CAAC,wCAAwC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;oBACxC,IAAI,OAAO,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC,CAAC,4BAA4B;oBACpE,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,MAAM,KAAK,GAAU,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;wBAAE,SAAS;oBAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtD,IAAI,OAAO,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC,CAAC,4BAA4B;oBACpE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,iFAAiF;YACjF,0EAA0E;YAC1E,MAAM,CAAC,GAAI,IAAmB,CAAC,MAAM,CAAC;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBACV,KAAK,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC;YACxF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9E,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC,CAAC,4BAA4B;YACpE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,CAAC;QAED,eAAe;QACf,MAAM,EAAE,GAAG,IAAwB,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO;YACV,KAAK,CAAC,mBAAmB,EAAE,cAAc,EAAE,CAAC,SAAS,gCAAgC,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,sEAAsE;IACtE,+CAA+C;IAC/C,MAAM,WAAW,GAAS,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,IAAI,OAAO;YAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,GAA6B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAE5C,yDAAyD;IACzD,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEhD,qCAAqC;IACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAoB,EACpB,QAAuB,EACvB,QAAe,EAAE,EACjB,KAAc;IAEd,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAa,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEhD,uEAAuE;IACvE,kDAAkD;IAClD,6CAA6C;IAC7C,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAU,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1D,kDAAkD;IAClD,iEAAiE;IACjE,wBAAwB;IACxB,MAAM,IAAI,GAAc,KAAK,EAAE,EAAE,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,kEAAkE;YAClE,MAAM,CAAC,GAAI,IAAiB,CAAC,IAAI,CAAC;YAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,GAAI,IAAgB,CAAC,GAAG,CAAC;YAChC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,KAAK,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBACV,KAAK,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC;YACxF,MAAM,GAAG,GAAe,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;YAElE,sFAAsF;YACtF,MAAM,IAAI,GAAG,CAAC,EAAS,EAAE,KAAY,EAAW,EAAE,CAChD,CAAC,CAAC,IAAI,KAAK,SAAS;gBACpB,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;YACtE,MAAM,OAAO,GAAa,EAAE,CAAC,CAAC,yCAAyC;YAEvE,IAAI,SAAkB,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvB,4DAA4D;gBAC5D,MAAM,KAAK,GAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBACrB,MAAM,KAAK,GAAU,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;wBAAE,OAAO;oBAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,SAAS,GAAG,EAAE,CAAC,CAAC,wCAAwC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;oBAC9C,IAAI,OAAO,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC,CAAC,iCAAiC;oBACzE,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,MAAM,KAAK,GAAU,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;wBAAE,SAAS;oBAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC5D,IAAI,OAAO,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC,CAAC,iCAAiC;oBACzE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,0DAA0D;YAC1D,MAAM,CAAC,GAAI,IAAmB,CAAC,MAAM,CAAC;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBACV,KAAK,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC;YACxF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACpF,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC,CAAC,iCAAiC;YACzE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,CAAC;QAED,eAAe;QACf,MAAM,EAAE,GAAG,IAAwB,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO;YACV,KAAK,CAAC,mBAAmB,EAAE,cAAc,EAAE,CAAC,SAAS,gCAAgC,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,yDAAyD;IACzD,uDAAuD;IACvD,4CAA4C;IAC5C,MAAM,WAAW,GAAc,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,IAAI,OAAO;YAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,GAA6B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAEvD,yDAAyD;IACzD,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEhD,qCAAqC;IACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"behavior.js","sourceRoot":"","sources":["../src/behavior.ts"],"names":[],"mappings":"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"}
|
package/dist/bind.d.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bind.ts — 登録 → 自動 bind → run(handlers 手注入の廃止・bind 時完全性ゲート — SA8 / #126)。
|
|
3
|
+
*
|
|
4
|
+
* ## 何を変えるか(consumer-facing コントラクトの一線)
|
|
5
|
+
*
|
|
6
|
+
* 従来: consumer が呼び出しごとに `runBehavior(ir, handlers, input)` の **`handlers` dict を手組み**
|
|
7
|
+
* して name→impl を注入していた。SA8 はこれを廃止する:
|
|
8
|
+
* - leaf 実装は `defineLeaf(name, meta, fn)`(A1)で **1 回だけ**型付き静的関数として登録する。
|
|
9
|
+
* - `compileBehaviors` が record 中に使われた leaf の impl を捕捉し、IR handle の side-channel
|
|
10
|
+
* (provenance.ts の非列挙 REGISTRY — **IR 本体には載らない = C4**)に退避する。
|
|
11
|
+
* - consumer は `bindBehaviors(compiled, ctx)` を **1 回**呼ぶ。bind は name→impl の**完全性**を
|
|
12
|
+
* 検査(欠落は fail-closed *AT BIND*)してから runnable を返し、`.run(method, input)` /
|
|
13
|
+
* `.runAsync(method, input)` が registry から name→impl を自動 dispatch する。
|
|
14
|
+
* - **注入するのは `ctx`(環境境界 = SDK client / config / hooks)だけ**。name→function は注入しない。
|
|
15
|
+
*
|
|
16
|
+
* ## bind 時完全性ゲート(遅延 UNKNOWN_COMPONENT の解消)
|
|
17
|
+
*
|
|
18
|
+
* 従来 `runBehavior` は未登録 leaf を**実行時**に初めて `UNKNOWN_COMPONENT` で落としていた(遅延 fail —
|
|
19
|
+
* 分岐に隠れた leaf は実行されるまで見つからない)。bind ゲートは IR が参照する**全** leaf 名に
|
|
20
|
+
* impl があるかを bind 時に一括検査し、欠落を `MISSING_LEAF_IMPL` で**実行前に** loud reject する
|
|
21
|
+
* (codegen 側はリンカが同じ完全性を保証 — 対称。SA8 / consumer-interface.md §2.3)。
|
|
22
|
+
*
|
|
23
|
+
* ## 低レベル dispatch は不変
|
|
24
|
+
*
|
|
25
|
+
* plan/dispatch エンジン({@link runBehavior} / {@link runBehaviorAsync})は**変えない**。bind は
|
|
26
|
+
* registry の impl を既存 `Handler`(`(ports, ctx) => ExecOutcome`)へ adapt して runBehavior に渡す
|
|
27
|
+
* 薄い層である(impl の**出所**を per-call dict から registry へ替え、bind ゲートを足しただけ)。
|
|
28
|
+
* `runBehavior` 自体は test harness が scripted outcome を注入するための低レベル primitive として残る。
|
|
29
|
+
*/
|
|
30
|
+
import type { ComponentGraphIR } from "./index.js";
|
|
31
|
+
import type { Value, Scope } from "./expr-eval.js";
|
|
32
|
+
export type BindFailureCode = "MISSING_LEAF_IMPL" | "AMBIGUOUS_DISPATCH" | "NO_REGISTRY";
|
|
33
|
+
export declare class BindFailure extends Error {
|
|
34
|
+
code: BindFailureCode;
|
|
35
|
+
constructor(code: BindFailureCode, message: string);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* BoundBehaviors — bind 済み runnable(`bindBehaviors` の戻り)。完全性ゲートは bind 時に 1 回済み。
|
|
39
|
+
* `.run` / `.runAsync` は registry から name→impl を自動 dispatch する(handlers 手注入は無い)。
|
|
40
|
+
*/
|
|
41
|
+
export interface BoundBehaviors {
|
|
42
|
+
/**
|
|
43
|
+
* run — component(=公開メソッド名)を同期実行する。leaf は registry から自動 dispatch し、
|
|
44
|
+
* bind 時に閉じ込めた `ctx` を各 impl に渡す。
|
|
45
|
+
* @param method 実行する component 名(省略時は先頭 component)。
|
|
46
|
+
* @param input エントリ component の inputPorts 束縛。
|
|
47
|
+
*/
|
|
48
|
+
run(method?: string, input?: Scope): Value;
|
|
49
|
+
/** runAsync — {@link run} の非同期版(impl が Promise を返せる)。観測結果は run と等価。 */
|
|
50
|
+
runAsync(method?: string, input?: Scope): Promise<Value>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* bindBehaviors — 登録 → 自動 bind の consumer 入口(SA8 / #126)。
|
|
54
|
+
*
|
|
55
|
+
* compile 済み handle の side-channel から name→impl レジストリを読み、**bind 時完全性ゲート**を
|
|
56
|
+
* 1 回実行(IR が参照する全 leaf 名に impl があるか — 欠落は `MISSING_LEAF_IMPL` で**実行前に**
|
|
57
|
+
* fail-closed)してから runnable を返す。以降 `.run` / `.runAsync` は registry から自動 dispatch し、
|
|
58
|
+
* 注入は `ctx`(環境境界)だけ。**handlers dict を手組みする必要はない**(SA8)。
|
|
59
|
+
*
|
|
60
|
+
* @param compiled `compileBehaviors` が返した opaque handle(token + impl レジストリを内蔵)。
|
|
61
|
+
* @param ctx 環境境界注入(SDK client / config / hooks)。全 leaf impl の第2引数に渡る。
|
|
62
|
+
*/
|
|
63
|
+
export declare function bindBehaviors(compiled: ComponentGraphIR, ctx?: unknown): BoundBehaviors;
|
|
64
|
+
//# sourceMappingURL=bind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAMnD,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,oBAAoB,GACpB,aAAa,CAAC;AAElB,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,eAAe,CAAC;gBACV,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAKnD;AA0FD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,GAAE,OAAY,GAAG,cAAc,CA0C3F"}
|
package/dist/bind.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { runBehavior, runBehaviorAsync } from "./behavior.js";
|
|
2
|
+
import { assertCompiled, getLeafImplRegistry } from "./provenance.js";
|
|
3
|
+
export class BindFailure extends Error {
|
|
4
|
+
code;
|
|
5
|
+
constructor(code, message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.name = "BindFailure";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function bindFail(code, message) {
|
|
12
|
+
throw new BindFailure(code, message);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* IR の leaf 参照を全 component から収集し、name→dispatch 形態({@link LeafRef})を返す。
|
|
16
|
+
* fanout は常に batched、`map.batched:true` は batched、それ以外(componentRef / 非 batched map)は
|
|
17
|
+
* 非 batched。cond は leaf を呼ばない。key 集合が bind 時完全性ゲートの検査対象、`LeafRef` が adapter の
|
|
18
|
+
* batched 再構成の指示(曖昧なら bind で loud reject)。
|
|
19
|
+
*/
|
|
20
|
+
function referencedLeafNames(ir) {
|
|
21
|
+
const names = new Map();
|
|
22
|
+
const mark = (name, batched) => {
|
|
23
|
+
const ref = names.get(name) ?? { batched: false, nonBatched: false };
|
|
24
|
+
if (batched)
|
|
25
|
+
ref.batched = true;
|
|
26
|
+
else
|
|
27
|
+
ref.nonBatched = true;
|
|
28
|
+
names.set(name, ref);
|
|
29
|
+
};
|
|
30
|
+
for (const comp of ir.components) {
|
|
31
|
+
for (const n of comp.body) {
|
|
32
|
+
if ("fanout" in n)
|
|
33
|
+
mark(n.fanout.component, true); // fanout は常に batched dispatch
|
|
34
|
+
else if ("map" in n)
|
|
35
|
+
mark(n.map.component, n.map.batched === true);
|
|
36
|
+
else if ("cond" in n)
|
|
37
|
+
continue;
|
|
38
|
+
else
|
|
39
|
+
mark(n.component, false);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return names;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* registry の leaf impl(`defineLeaf` の**per-element 型付き静的関数** `(p, ctx) => value`)を、
|
|
46
|
+
* 既存 `Handler`(`(ports, ctx) => ExecOutcome`)へ adapt する。`ctx` は bind 時に閉じ込めた環境境界を
|
|
47
|
+
* 全 impl に渡す(name→function は注入しない — SA8)。
|
|
48
|
+
*
|
|
49
|
+
* batched ABI の機械的再構成: runBehavior は `map.batched` / fanout ノードで handler を
|
|
50
|
+
* `handler({items:[<各要素の評価済み ports>…]}, ctx)` と **1 回**呼び、items と整列した結果リストを
|
|
51
|
+
* 期待する。一方 `defineLeaf` の impl は **per-element**(型付きシグネチャ = 1 要素の Port → 1 要素の
|
|
52
|
+
* 出力)。両者の橋渡しは bind の責務とし、batched 参照される leaf は impl を各 item へ写して整列リストを
|
|
53
|
+
* 組む(consumer は impl 本体だけを per-element で書き、`{items}` ループを手書きしない)。`batched` フラグ
|
|
54
|
+
* は IR ノード種から導出済み({@link referencedLeafNames})。
|
|
55
|
+
*/
|
|
56
|
+
function adaptHandlers(registry, refs, ctx) {
|
|
57
|
+
// null-proto: behavior.ts の `handlers[name]` lookup が prototype メソッド(Object.prototype.toString 等)を
|
|
58
|
+
// 拾わないようにする(leaf 名 'constructor' 等で `if (!handler)` が誤って通るのを防ぐ)。
|
|
59
|
+
const handlers = Object.create(null);
|
|
60
|
+
for (const name of Object.keys(registry)) {
|
|
61
|
+
const impl = registry[name];
|
|
62
|
+
// 曖昧性(batched & 非 batched の混在)は bind ゲートで既に reject 済み → 一意な形態に確定。
|
|
63
|
+
const batched = refs.get(name)?.batched === true;
|
|
64
|
+
handlers[name] = (ports) => {
|
|
65
|
+
if (batched) {
|
|
66
|
+
const items = ports.items;
|
|
67
|
+
return { ok: items.map((it) => impl(it, ctx)) };
|
|
68
|
+
}
|
|
69
|
+
return { ok: impl(ports, ctx) };
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return handlers;
|
|
73
|
+
}
|
|
74
|
+
/** async 版 adapter(impl が Promise を返してもよい — runBehaviorAsync が await する)。 */
|
|
75
|
+
function adaptAsyncHandlers(registry, refs, ctx) {
|
|
76
|
+
const handlers = {};
|
|
77
|
+
for (const name of Object.keys(registry)) {
|
|
78
|
+
const impl = registry[name];
|
|
79
|
+
const batched = refs.get(name)?.batched === true;
|
|
80
|
+
handlers[name] = async (ports) => {
|
|
81
|
+
if (batched) {
|
|
82
|
+
const items = ports.items;
|
|
83
|
+
return { ok: (await Promise.all(items.map((it) => impl(it, ctx)))) };
|
|
84
|
+
}
|
|
85
|
+
return { ok: (await impl(ports, ctx)) };
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return handlers;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* bindBehaviors — 登録 → 自動 bind の consumer 入口(SA8 / #126)。
|
|
92
|
+
*
|
|
93
|
+
* compile 済み handle の side-channel から name→impl レジストリを読み、**bind 時完全性ゲート**を
|
|
94
|
+
* 1 回実行(IR が参照する全 leaf 名に impl があるか — 欠落は `MISSING_LEAF_IMPL` で**実行前に**
|
|
95
|
+
* fail-closed)してから runnable を返す。以降 `.run` / `.runAsync` は registry から自動 dispatch し、
|
|
96
|
+
* 注入は `ctx`(環境境界)だけ。**handlers dict を手組みする必要はない**(SA8)。
|
|
97
|
+
*
|
|
98
|
+
* @param compiled `compileBehaviors` が返した opaque handle(token + impl レジストリを内蔵)。
|
|
99
|
+
* @param ctx 環境境界注入(SDK client / config / hooks)。全 leaf impl の第2引数に渡る。
|
|
100
|
+
*/
|
|
101
|
+
export function bindBehaviors(compiled, ctx = {}) {
|
|
102
|
+
assertCompiled(compiled); // 出自ゲート: 手組み/無 token IR は NON_COMPILED_IR で fail-closed
|
|
103
|
+
const registry = getLeafImplRegistry(compiled);
|
|
104
|
+
if (registry === undefined)
|
|
105
|
+
bindFail("NO_REGISTRY", "bindBehaviors: the compiled handle carries no leaf-impl registry (author leaves via defineLeaf/behaviorComponents and compile with compileBehaviors — a boundary-adopted IR from loadCompiledIR has no in-process impls; use codegen static linking instead)");
|
|
106
|
+
// ── bind 時完全性ゲート(SA8): IR 参照 leaf 名の impl 網羅を実行前に検査(fail-closed)─────
|
|
107
|
+
// `Object.hasOwn` を使う(`name in registry` は prototype 継承キー — 'toString'/'constructor' 等の
|
|
108
|
+
// leaf 名で false-positive を招き、impl 不在を silent に通してしまう)。
|
|
109
|
+
const referenced = referencedLeafNames(compiled);
|
|
110
|
+
const missing = [...referenced.keys()].filter((name) => !Object.hasOwn(registry, name));
|
|
111
|
+
if (missing.length > 0)
|
|
112
|
+
bindFail("MISSING_LEAF_IMPL", `bindBehaviors: the IR references leaf component(s) with no registered impl: ${missing
|
|
113
|
+
.map((m) => `'${m}'`)
|
|
114
|
+
.join(", ")} — every referenced leaf must be registered via defineLeaf before bind (fail-closed at bind, not lazily at run)`);
|
|
115
|
+
// 同名 leaf が batched と非 batched の両方で参照される IR は、per-element impl({@link BoundLeafImpl})を
|
|
116
|
+
// handler へ写す際 name 単位で dispatch 形態を一意に決められない(runtime ABI が per-element / {items} で
|
|
117
|
+
// 異なり、per-call の信頼できる判別信号が無い)。silent に誤 dispatch せず bind で loud reject する。
|
|
118
|
+
const ambiguous = [...referenced.entries()].filter(([, r]) => r.batched && r.nonBatched).map(([n]) => n);
|
|
119
|
+
if (ambiguous.length > 0)
|
|
120
|
+
bindFail("AMBIGUOUS_DISPATCH", `bindBehaviors: leaf(s) ${ambiguous
|
|
121
|
+
.map((m) => `'${m}'`)
|
|
122
|
+
.join(", ")} are referenced BOTH batched (map.batched / fanout) and non-batched (componentRef / plain map) — a per-element impl cannot be dispatched unambiguously under both ABIs from one registry entry (split into distinct leaf names, one per dispatch shape)`);
|
|
123
|
+
// adapter は bind で 1 回だけ組む(handlers dict は registry + batched フラグから機械導出)。
|
|
124
|
+
const handlers = adaptHandlers(registry, referenced, ctx);
|
|
125
|
+
const asyncHandlers = adaptAsyncHandlers(registry, referenced, ctx);
|
|
126
|
+
return {
|
|
127
|
+
run: (method, input = {}) => runBehavior(compiled, handlers, input, method),
|
|
128
|
+
runAsync: (method, input = {}) => runBehaviorAsync(compiled, asyncHandlers, input, method),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=bind.js.map
|
package/dist/bind.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"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"}
|
package/dist/builder.d.ts
CHANGED
|
@@ -1,63 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* builder.ts —
|
|
3
|
-
* bc#26)+ recorder 経路(`compileBehaviors`)と共有する検証・正規化 core。
|
|
2
|
+
* builder.ts — component-graph の検証・正規化・plan 導出の **内部 core**。
|
|
4
3
|
*
|
|
5
|
-
* ##
|
|
4
|
+
* ## SCP-only 化(0.8.0・#127/A5)— データ登録 IF は撤去済み
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* かつて存在した公開「データ登録」IF(`buildComponentDefinition` / `ComponentDefinitionData` /
|
|
7
|
+
* `BuildComponentDefinitionOptions` / `BuilderFailure`)は **0.8.0 で完全撤去**した
|
|
8
|
+
* (scp-only-authoring-contract.md §SA6・§7 step 3)。生 IR を手組みして登録する経路(route B)は
|
|
9
|
+
* フラットな意味グラフを壊す矛盾の根源であり、IR の唯一の正規生産者を compile seam
|
|
10
|
+
* (`compileBehaviors`)に一本化するための撤去である(§1.2)。**internal 猶予も残さない**(§SA6)。
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* **データとして登録**し({@link buildComponentDefinition})、検証済み・正準化済みの
|
|
16
|
-
* `Component`(`components[]` エントリ)を受け取る。
|
|
12
|
+
* このモジュールが今も所有するのは、その **検証・正規化・plan 導出の共有 core**({@link buildComponentCore}
|
|
13
|
+
* と周辺ヘルパ)だけで、これは **`compileBehaviors`(authoring.ts)が lowering の末尾で委譲する
|
|
14
|
+
* internal な実装**である。**公開されるのは何も無い**(builder のシンボルは index.ts から export しない)。
|
|
17
15
|
*
|
|
18
|
-
* ##
|
|
19
|
-
*
|
|
20
|
-
* - 呼び出し側指定の **node id**(任意文字列 — consumer が意味論を持たせてよい。例:
|
|
21
|
-
* graphddb の resultPath 由来 `"root"` / `"groups.items.group.permissions.items"`)。
|
|
22
|
-
* - body ノード種 `componentRef`(`parent` / `bindField` / `relationKind` / `policy` 込み)/
|
|
23
|
-
* `map`(v2 語彙 `when` / `into` / `batched` 込み)/ `cond`。
|
|
24
|
-
* - **動的 port 群**(`item.<field>` / `key.<attr>` / `changes.<field>` /
|
|
25
|
-
* `condition.equals.<field>` 等の flatten キー): catalog エントリの
|
|
26
|
-
* {@link CatalogEntry.additionalPorts} `: true`(opt-in)で受容する。既定は fail-closed
|
|
27
|
-
* (未宣言 port は `UNKNOWN_PORT`)。**宣言済み port は additionalPorts に関わらず検査**
|
|
28
|
-
* される(required / スカラリテラル型)。
|
|
29
|
-
* - `inputPorts` / `output` / `plan`(省略時は依存から導出。`plan: null` は「plan なし」=
|
|
30
|
-
* runBehavior の逐次 fallback — graphddb transaction 形)。
|
|
31
|
-
*
|
|
32
|
-
* ## 検証・正規化(B-2)
|
|
16
|
+
* ## core が担う検証・正規化(`buildComponentCore` — recorder 経路が委譲)
|
|
33
17
|
*
|
|
34
18
|
* 1. **構造検証**: ノード種・許可キー集合(未知キーは fail-closed)・id 一意性・
|
|
35
19
|
* id と input port 名の衝突禁止(runBehavior の flat scope が曖昧になる)・parent 実在・
|
|
36
20
|
* 依存の非循環・**参照 root の実在**(`{ref:[root,…]}` の root は body ノード id /
|
|
37
21
|
* 宣言 input port / その map 自身の `as` 束縛のみ — fail-closed `UNKNOWN_REF`)。
|
|
38
|
-
* 2. **catalog
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
22
|
+
* 2. **catalog 照合**(recorder 経路は record 時に共有関数で照合済みのため core には catalog を
|
|
23
|
+
* 渡さないが、共有関数 {@link checkPortableEntry} / {@link checkPortNames} /
|
|
24
|
+
* {@link checkDeclaredPortTypes} は当モジュールが保持する)。
|
|
25
|
+
* 3. **plan**: 省略時は依存から導出(Kahn levels)。指定時は被覆(各 index がちょうど 1 stage)と
|
|
26
|
+
* 依存順序(dep の stage < node の stage)を検証。
|
|
42
27
|
* 4. **決定的正規化**: 全 object キーを code-point 順にソートして再構築(配列順序は保持)。
|
|
43
28
|
* **構造的に同じ入力データ(キー挿入順が違っても)→ byte 同一の出力**(consumer の
|
|
44
29
|
* golden 規律を壊さない)。入力データは変異しない。
|
|
45
30
|
* 5. `assertPortableComponentGraph` を内部適用(fail-closed の自己検査、P0-2 Guard)。
|
|
46
31
|
*
|
|
47
|
-
* ## recorder
|
|
32
|
+
* ## recorder 経路との単一実装
|
|
48
33
|
*
|
|
49
34
|
* `compileBehaviors` は lowering の末尾(Component 組み立て・plan 導出・正規化・Guard)を
|
|
50
35
|
* {@link buildComponentCore} に委譲し、catalog port 照合は record 時に
|
|
51
36
|
* {@link checkPortableEntry} / {@link checkPortNames} / {@link checkDeclaredPortTypes} を
|
|
52
|
-
*
|
|
37
|
+
* 共有する。これらの内部関数の検証・正規化は `compileBehaviors` 経由で網羅的に行使される。
|
|
53
38
|
*/
|
|
54
39
|
import type { BodyNode, Catalog, CatalogEntry, Component, PortSchema } from "./behavior.js";
|
|
55
40
|
import type { ExecutionPlanSpec } from "./plan.js";
|
|
56
|
-
export type BuilderFailureCode = "INVALID_DEFINITION" | "INVALID_NODE" | "DUPLICATE_NODE_ID" | "UNKNOWN_PARENT" | "DEPENDENCY_CYCLE" | "UNKNOWN_COMPONENT" | "NOT_PORTABLE_COMPONENT" | "UNKNOWN_PORT" | "MISSING_PORT" | "PORT_TYPE_MISMATCH" | "UNKNOWN_REF" | "INVALID_PLAN";
|
|
57
|
-
export declare class BuilderFailure extends Error {
|
|
58
|
-
code: BuilderFailureCode;
|
|
59
|
-
constructor(code: BuilderFailureCode, message: string);
|
|
60
|
-
}
|
|
61
41
|
/** 共有 port 照合が投げる失敗コード(AuthoringFailureCode / BuilderFailureCode の共通部分)。 */
|
|
62
42
|
export type PortCheckFailCode = "NOT_PORTABLE_COMPONENT" | "UNKNOWN_PORT" | "MISSING_PORT" | "PORT_TYPE_MISMATCH";
|
|
63
43
|
export type PortCheckFail = (code: PortCheckFailCode, message: string) => never;
|
|
@@ -83,13 +63,16 @@ export declare function checkDeclaredPortTypes(name: string, entry: CatalogEntry
|
|
|
83
63
|
export declare function collectNodeIdRefs(node: unknown, ids: ReadonlySet<string>, out?: string[]): string[];
|
|
84
64
|
export declare const DEFAULT_PLAN_CONCURRENCY = 16;
|
|
85
65
|
/**
|
|
86
|
-
*
|
|
87
|
-
* `Component`(behavior.ts / scp-ir-architecture.md §5)と同形で、`plan` だけ 3 値:
|
|
66
|
+
* {@link buildComponentCore} が受け取る事前合成グラフデータの形(internal)。フィールドは
|
|
67
|
+
* canonical `Component`(behavior.ts / scp-ir-architecture.md §5)と同形で、`plan` だけ 3 値:
|
|
88
68
|
* - 省略(undefined) → 依存から導出(Kahn levels・`concurrency` オプション)。
|
|
89
69
|
* - `null` → plan なし(runBehavior の逐次 fallback。graphddb transaction 形)。
|
|
90
70
|
* - `ExecutionPlanSpec` → 供給値を検証して使う(graphddb query 形)。
|
|
71
|
+
*
|
|
72
|
+
* かつては公開データ登録 IF(`buildComponentDefinition`)の引数型 `ComponentDefinitionData` だったが、
|
|
73
|
+
* その IF もろとも 0.8.0 で撤去した(§SA6)。`compileBehaviors` が core に渡す internal な形として残す。
|
|
91
74
|
*/
|
|
92
|
-
|
|
75
|
+
interface ComponentDefinitionData {
|
|
93
76
|
name: string;
|
|
94
77
|
/** 省略時は `{}`(Input Port なし)。 */
|
|
95
78
|
inputPorts?: Record<string, PortSchema>;
|
|
@@ -98,57 +81,16 @@ export interface ComponentDefinitionData {
|
|
|
98
81
|
output: unknown;
|
|
99
82
|
plan?: ExecutionPlanSpec | null;
|
|
100
83
|
}
|
|
101
|
-
export interface BuildComponentDefinitionOptions {
|
|
102
|
-
/**
|
|
103
|
-
* 照合する catalog(必須 — fail-closed: catalog なしに component 参照は検証できない)。
|
|
104
|
-
* 動的 port 群を受けるエントリは `additionalPorts: true` を宣言する。
|
|
105
|
-
*/
|
|
106
|
-
catalog: Catalog;
|
|
107
|
-
/** plan 導出時の concurrency(既定 16)。供給 plan には影響しない。 */
|
|
108
|
-
concurrency?: number;
|
|
109
|
-
}
|
|
110
84
|
/**
|
|
111
|
-
* buildComponentCore — 検証・plan 導出・正規化・Guard
|
|
112
|
-
* `
|
|
113
|
-
*
|
|
114
|
-
* `catalog
|
|
85
|
+
* buildComponentCore — 検証・plan 導出・正規化・Guard の単一実装(internal)。
|
|
86
|
+
* `compileBehaviors`(recorder 経路 — catalog port 照合は record 時に共有関数で済ませているため
|
|
87
|
+
* `catalog` なし)が lowering の末尾でこの core を通る。#127/A5 まで存在した公開データ登録 IF
|
|
88
|
+
* `buildComponentDefinition`(catalog 必須で core を呼んでいた)は撤去済みで、`opts.catalog` を
|
|
89
|
+
* 渡す呼び出し口はもう無い(フィールドは互換のため残すが recorder 経路は常に undefined)。
|
|
115
90
|
*/
|
|
116
91
|
export declare function buildComponentCore(data: ComponentDefinitionData, opts: {
|
|
117
92
|
catalog?: Catalog;
|
|
118
93
|
concurrency: number;
|
|
119
94
|
}): Component;
|
|
120
|
-
|
|
121
|
-
* buildComponentDefinition — 事前合成されたグラフ**データ**を受け取り、検証済み・正準化
|
|
122
|
-
* 済みの `Component`(`components[]` エントリ)を返す(bc#26 のデータ登録 IF)。
|
|
123
|
-
*
|
|
124
|
-
* evaluation-mode recorder(`compileBehaviors`)とは独立: source scan は適用されず、
|
|
125
|
-
* 抽出ロジック(model → グラフ導出)は consumer 側に残る。検証・正規化の規則は
|
|
126
|
-
* モジュール docstring(B-2)を参照。
|
|
127
|
-
*
|
|
128
|
-
* ```ts
|
|
129
|
-
* const component = buildComponentDefinition(
|
|
130
|
-
* {
|
|
131
|
-
* name: "ArticleWithTagsRead__get",
|
|
132
|
-
* inputPorts: { articleId: { type: "string", required: true } },
|
|
133
|
-
* body: [
|
|
134
|
-
* { id: "root", component: "GetItem",
|
|
135
|
-
* ports: { table: "T", PK: { concat: ["ARTICLE#", { ref: ["articleId"] }] }, SK: "META" } },
|
|
136
|
-
* { id: "tags.items",
|
|
137
|
-
* map: { over: { ref: ["root", "tagRefs"] }, as: "$tagId", component: "BatchGetItem",
|
|
138
|
-
* ports: { table: "T", PK: { concat: ["TAG#", { ref: ["$tagId", "tagId"] }] } },
|
|
139
|
-
* parent: "root", relationKind: "connection", batched: true } },
|
|
140
|
-
* ],
|
|
141
|
-
* output: { obj: { root: { ref: ["root"] }, tags: { ref: ["tags.items"] } } },
|
|
142
|
-
* plan: { groups: [[0], [1]], concurrency: 16 },
|
|
143
|
-
* },
|
|
144
|
-
* { catalog },
|
|
145
|
-
* );
|
|
146
|
-
* // 実行: runBehavior({ irVersion: 1, exprVersion: SPEC_VERSIONS.expression,
|
|
147
|
-
* // components: [component] }, handlers, input)
|
|
148
|
-
* ```
|
|
149
|
-
*
|
|
150
|
-
* @throws {BuilderFailure} 検証違反(コードは {@link BuilderFailureCode})。
|
|
151
|
-
* @throws {PortabilityError} Guard 自己検査(`assertPortableComponentGraph`)の違反。
|
|
152
|
-
*/
|
|
153
|
-
export declare function buildComponentDefinition(data: ComponentDefinitionData, options: BuildComponentDefinitionOptions): Component;
|
|
95
|
+
export {};
|
|
154
96
|
//# sourceMappingURL=builder.d.ts.map
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EAKT,UAAU,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAqCnD,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,cAAc,GACd,cAAc,GACd,oBAAoB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;AAEhF,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAM/F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,IAAI,EAAE,aAAa,GAClB,IAAI,CAaN;AAwBD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,aAAa,GAClB,IAAI,CAYN;AAGD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAgBvG;AA2BD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAiE3C;;;;;;;;;GASG;AACH,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC1B,kDAAkD;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACjC;AAmUD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,uBAAuB,EAC7B,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC/C,SAAS,CAoFX"}
|