@llm4ts/runner 3.0.0 → 3.2.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/dist/Kits.d.ts CHANGED
@@ -24,6 +24,8 @@ export interface DiscoveredKit {
24
24
  readonly packs: ReadonlyArray<string>;
25
25
  /** Flow names: every `flows/<name>.ts|js` (not `lib/` or `test/`). */
26
26
  readonly flows: ReadonlyArray<string>;
27
+ /** Tool names: every `tools/<name>.ts|js` (ADR 0048), run by `llm4ts tool`. */
28
+ readonly tools: ReadonlyArray<string>;
27
29
  readonly shadows: ReadonlyArray<KitTier>;
28
30
  }
29
31
  export declare const kitTierPaths: (options: {
@@ -1 +1 @@
1
- {"version":3,"file":"Kits.d.ts","sourceRoot":"","sources":["../src/Kits.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CACzC;AAID,eAAO,MAAM,YAAY,GAAI,SAAS;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,KAAG,YAWH,CAAA;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAczD,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAU7D,CAAA;AAyCD;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,YAAY,KAAG,aAAa,CAAC,aAAa,CAuB7E,CAAA;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9E;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,WAAW,MAAM,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,KAAG,UAoBhF,CAAA"}
1
+ {"version":3,"file":"Kits.d.ts","sourceRoot":"","sources":["../src/Kits.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CACzC;AAID,eAAO,MAAM,YAAY,GAAI,SAAS;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,KAAG,YAWH,CAAA;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAczD,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAU7D,CAAA;AAiDD;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,YAAY,KAAG,aAAa,CAAC,aAAa,CAuB7E,CAAA;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9E;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,WAAW,MAAM,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,KAAG,UAoBhF,CAAA"}
package/dist/Kits.js CHANGED
@@ -68,7 +68,14 @@ const readKit = (name, root, tier) => {
68
68
  .map((entry) => entry.replace(/\.(ts|js)$/, ""))
69
69
  .sort()
70
70
  : [];
71
- if (packs.length === 0 && flows.length === 0) {
71
+ const toolsDir = join(root, "tools");
72
+ const tools = isDirectory(toolsDir)
73
+ ? readdirSync(toolsDir)
74
+ .filter((entry) => entry.endsWith(".ts") || entry.endsWith(".js"))
75
+ .map((entry) => entry.replace(/\.(ts|js)$/, ""))
76
+ .sort()
77
+ : [];
78
+ if (packs.length === 0 && flows.length === 0 && tools.length === 0) {
72
79
  return undefined;
73
80
  }
74
81
  const readme = join(root, "README.md");
@@ -81,7 +88,8 @@ const readKit = (name, root, tier) => {
81
88
  tier,
82
89
  ...(description === undefined ? {} : { description }),
83
90
  packs,
84
- flows
91
+ flows,
92
+ tools
85
93
  };
86
94
  };
87
95
  /**
package/dist/Kits.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Kits.js","sourceRoot":"","sources":["../src/Kits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiClD,MAAM,SAAS,GAA2B,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAK5B,EAAgB,EAAE;IACjB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAA;IACtD,MAAM,UAAU,GACd,WAAW,CAAC,eAAe,KAAK,SAAS,IAAI,WAAW,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACjF,CAAC,CAAC,WAAW,CAAC,eAAe;QAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACtC,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC;QAC7C,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;KAC7E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAW,EAAE;IAC5C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAsB,EAAE;IACpE,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACzC,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAK;QACP,CAAC;QACD,SAAS,GAAG,MAAM,CAAA;IACpB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAsB,EAAE;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,IAAY,EAAyB,EAAE,CAC9D,WAAW,CAAC,IAAI,CAAC;IACf,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;SACd,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACjD,IAAI,EAAE;IACX,CAAC,CAAC,EAAE,CAAA;AAER,MAAM,OAAO,GAAG,CACd,IAAY,EACZ,IAAY,EACZ,IAAa,EAC+B,EAAE;IAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACjE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CACjD,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;aAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;aAC/C,IAAI,EAAE;QACX,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;QACpC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,SAAS,CAAA;IACb,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,KAAK;QACL,KAAK;KACN,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAgC,EAAE;IAChF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4E,CAAA;IAClG,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;YAC/D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,SAAQ;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;YACxC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAA;AAOD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,IAAkC,EAAc,EAAE;IAC5F,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;QAChE,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClD,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE;YAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IACxB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;QACxF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QAC7D,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,EAAE,CAAA;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AAC3B,CAAC,CAAA"}
1
+ {"version":3,"file":"Kits.js","sourceRoot":"","sources":["../src/Kits.ts"],"names":[],"mappings":"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"}
package/dist/Profile.d.ts CHANGED
@@ -34,11 +34,16 @@ export declare const Gap: Schema.Struct<{
34
34
  readonly before: Schema.String;
35
35
  }>;
36
36
  export type Gap = typeof Gap.Type;
37
- /** The coder's tool calls by kind of work (build, install and git count as other). */
37
+ /**
38
+ * The coder's tool calls by kind of work (build, install and git count as
39
+ * other). `script` is the ad-hoc Python/Node one-liners, heredocs and scratch
40
+ * files it improvised; profiles saved before it existed decode it as 0.
41
+ */
38
42
  export declare const ToolCalls: Schema.Struct<{
39
43
  readonly explore: Schema.Int;
40
44
  readonly edit: Schema.Int;
41
45
  readonly test: Schema.Int;
46
+ readonly script: Schema.withDecodingDefaultKey<Schema.Int, never>;
42
47
  readonly other: Schema.Int;
43
48
  }>;
44
49
  export type ToolCalls = typeof ToolCalls.Type;
@@ -87,6 +92,7 @@ export declare const StoryProfile: Schema.Struct<{
87
92
  readonly explore: Schema.Int;
88
93
  readonly edit: Schema.Int;
89
94
  readonly test: Schema.Int;
95
+ readonly script: Schema.withDecodingDefaultKey<Schema.Int, never>;
90
96
  readonly other: Schema.Int;
91
97
  }>;
92
98
  /** Task stages the coder ran on this lane: the tasks it gave itself, plus any revision. */
@@ -183,6 +189,7 @@ export declare const ProfileReport: Schema.Struct<{
183
189
  readonly explore: Schema.Int;
184
190
  readonly edit: Schema.Int;
185
191
  readonly test: Schema.Int;
192
+ readonly script: Schema.withDecodingDefaultKey<Schema.Int, never>;
186
193
  readonly other: Schema.Int;
187
194
  }>;
188
195
  /** Task stages the coder ran on this lane: the tasks it gave itself, plus any revision. */
@@ -231,7 +238,7 @@ export declare const ProfileReport: Schema.Struct<{
231
238
  readonly count: Schema.Int;
232
239
  readonly ms: Schema.Number;
233
240
  }>>;
234
- /** Coder tool time by kind of work: explore, edit, test, build, install, git, other. */
241
+ /** Coder tool time by kind of work: explore, edit, test, script, build, install, git, other. */
235
242
  readonly toolCategories: Schema.$Array<Schema.Struct<{
236
243
  readonly label: Schema.String;
237
244
  readonly count: Schema.Int;
@@ -1 +1 @@
1
- {"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,QAAQ,EAAqB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB,OAAO,EAEL,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAmBnB,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,SAAS;;;;;;;IAOpB,0DAA0D;;IAE1D,gEAAgE;;IAEhE,6FAA6F;;EAE7F,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,0FAA0F;AAC1F,eAAO,MAAM,GAAG;;;;EAId,CAAA;AACF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;AAEjC,sFAAsF;AACtF,eAAO,MAAM,SAAS;;;;;EAKpB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,YAAY;;;;;IAKvB,2FAA2F;;;;;;;;;;;;;;;;;QA/B3F,0DAA0D;;QAE1D,gEAAgE;;QAEhE,6FAA6F;;;IA+B7F,mFAAmF;;;;;;IAEnF;;;OAGG;;;;;;;;;IAIH,2FAA2F;;IAE3F,6GAA6G;;IAE7G,wEAAwE;;IAExE,8FAA8F;;IAE9F,mDAAmD;;IAEnD,6EAA6E;;EAE7E,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,QAAQ;;;;;;;IAOnB,oCAAoC;;;EAGpC,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,OAAO;;;;;;EAMlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,QAAQ;;;;EAAqE,CAAA;AAC1F,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,OAAO;;;EAAqE,CAAA;AACzF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,aAAa;IACxB,iFAAiF;;;;;;;;QAzDjF,2FAA2F;;;;;;;;;;;;;;;;;YA/B3F,0DAA0D;;YAE1D,gEAAgE;;YAEhE,6FAA6F;;;QA+B7F,mFAAmF;;;;;;QAEnF;;;WAGG;;;;;;;;;QAIH,2FAA2F;;QAE3F,6GAA6G;;QAE7G,wEAAwE;;QAExE,8FAA8F;;QAE9F,mDAAmD;;QAEnD,6EAA6E;;;IAsC7E,oEAAoE;;;;;;;;;;;;;;;;;QA1BpE,oCAAoC;;;;;;;;;;;;;;;;IAgCpC,wFAAwF;;;;;;;;;;;IAGxF,+FAA+F;;;;;;;;;;EAG/F,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AA6KrD,eAAO,MAAM,SAAS,GAAI,QAAQ,aAAa,CAAC,SAAS,CAAC,KAAG,aAmR5D,CAAA;AAyOD,eAAO,MAAM,aAAa,GAAI,QAAQ,aAAa,KAAG,MAuMrD,CAAA;AAID,+EAA+E;AAC/E,eAAO,MAAM,QAAQ;;;;;IAKnB,0EAA0E;;EAE1E,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,YAAY;;;;;;QALvB,0EAA0E;;;EAO1E,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAKnD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,EAAE,OAAO,aAAa,KAAG,YA8C1E,CAAA;AAeD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,YAAY,EACnB,QAAQ;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAC1D,MAeW,CAAA;AAEd,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,mGAAmG;IACnG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAuBD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,87DAc7B,CAAA"}
1
+ {"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"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"}
package/dist/Profile.js CHANGED
@@ -48,11 +48,16 @@ export const Gap = Schema.Struct({
48
48
  after: Schema.String,
49
49
  before: Schema.String
50
50
  });
51
- /** The coder's tool calls by kind of work (build, install and git count as other). */
51
+ /**
52
+ * The coder's tool calls by kind of work (build, install and git count as
53
+ * other). `script` is the ad-hoc Python/Node one-liners, heredocs and scratch
54
+ * files it improvised; profiles saved before it existed decode it as 0.
55
+ */
52
56
  export const ToolCalls = Schema.Struct({
53
57
  explore: Schema.Int,
54
58
  edit: Schema.Int,
55
59
  test: Schema.Int,
60
+ script: Schema.Int.pipe(Schema.withDecodingDefaultKey(Effect.succeed(0))),
56
61
  other: Schema.Int
57
62
  });
58
63
  export const StoryProfile = Schema.Struct({
@@ -117,7 +122,7 @@ export const ProfileReport = Schema.Struct({
117
122
  models: Schema.Array(ModelRow),
118
123
  gates: Schema.Array(GateRow),
119
124
  tools: Schema.Array(CountRow),
120
- /** Coder tool time by kind of work: explore, edit, test, build, install, git, other. */
125
+ /** Coder tool time by kind of work: explore, edit, test, script, build, install, git, other. */
121
126
  toolCategories: Schema.Array(CountRow),
122
127
  waits: Schema.Array(CountRow),
123
128
  /** Timed on the run's events, in no story: the run's own planning, or a seat no story owns. */
@@ -274,7 +279,7 @@ export const profileOf = (inputs) => {
274
279
  openTools: 0,
275
280
  tasks: 0,
276
281
  firstTask: undefined,
277
- toolCalls: { explore: 0, edit: 0, test: 0, other: 0 },
282
+ toolCalls: { explore: 0, edit: 0, test: 0, script: 0, other: 0 },
278
283
  firstEdit: undefined,
279
284
  exploreBeforeEdit: 0,
280
285
  unverifiedClaims: 0,
@@ -305,7 +310,10 @@ export const profileOf = (inputs) => {
305
310
  allTimed.push({ at, event });
306
311
  lane?.timed.push({ at, event });
307
312
  if (lane !== undefined && event.kind === "tool" && event.category !== undefined) {
308
- const kind = event.category === "explore" || event.category === "edit" || event.category === "test"
313
+ const kind = event.category === "explore" ||
314
+ event.category === "edit" ||
315
+ event.category === "test" ||
316
+ event.category === "script"
309
317
  ? event.category
310
318
  : "other";
311
319
  lane.toolCalls[kind] += 1;
@@ -647,6 +655,13 @@ const findingsOf = (facts) => {
647
655
  }
648
656
  ]
649
657
  : []);
658
+ const improvised = facts.stories.flatMap((story) => story.toolCalls.script >= 3
659
+ ? [
660
+ {
661
+ text: `${story.id}: ${story.toolCalls.script} ad-hoc scripts — a pack tool preset (llm4ts tool) would make this repeatable`
662
+ }
663
+ ]
664
+ : []);
650
665
  const growth = facts.stories.flatMap((story) => story.turns.promptGrowth &&
651
666
  story.turns.firstPrompt !== undefined &&
652
667
  story.turns.lastPrompt !== undefined
@@ -656,7 +671,7 @@ const findingsOf = (facts) => {
656
671
  }
657
672
  ]
658
673
  : []);
659
- return [...ranked, ...fabricated, ...growth];
674
+ return [...ranked, ...fabricated, ...improvised, ...growth];
660
675
  };
661
676
  const table = (header, rows) => {
662
677
  const widths = header.map((title, column) => Math.max(title.length, ...rows.map((row) => (row[column] ?? "").length)));
@@ -727,6 +742,7 @@ export const renderProfile = (report) => {
727
742
  ...(report.stories.every((story) => story.toolCalls.explore +
728
743
  story.toolCalls.edit +
729
744
  story.toolCalls.test +
745
+ story.toolCalls.script +
730
746
  story.toolCalls.other ===
731
747
  0)
732
748
  ? []
@@ -739,6 +755,7 @@ export const renderProfile = (report) => {
739
755
  "explore",
740
756
  "edit",
741
757
  "test",
758
+ "script",
742
759
  "other",
743
760
  "before 1st edit",
744
761
  "1st edit at"
@@ -748,6 +765,7 @@ export const renderProfile = (report) => {
748
765
  String(story.toolCalls.explore),
749
766
  String(story.toolCalls.edit),
750
767
  String(story.toolCalls.test),
768
+ String(story.toolCalls.script),
751
769
  String(story.toolCalls.other),
752
770
  story.firstEditMs === undefined ? "" : `${story.exploreBeforeEdit} explore`,
753
771
  story.firstEditMs === undefined ? "never" : duration(story.firstEditMs)
@@ -874,6 +892,7 @@ export const profileDelta = (before, after) => {
874
892
  count("coder turns", (r) => sum(r.stories.map((s) => s.turns.count))),
875
893
  count("coder edits", (r) => sum(r.stories.map((s) => s.toolCalls.edit)), "none"),
876
894
  count("coder test runs", (r) => sum(r.stories.map((s) => s.toolCalls.test)), "none"),
895
+ count("coder scripts", (r) => sum(r.stories.map((s) => s.toolCalls.script))),
877
896
  count("reviewer calls", (r) => roleCalls(r, "reviewer")),
878
897
  count("judge calls", (r) => roleCalls(r, "judge")),
879
898
  count("gate runs", (r) => sum(r.gates.map((g) => g.runs))),
@@ -1 +1 @@
1
- {"version":3,"file":"Profile.js","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Profile.js","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAkB,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAGnB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;;;GAaG;AAEH,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAA;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;CAChB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACzC,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC,OAAO;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,6FAA6F;IAC7F,SAAS,EAAE,EAAE;CACd,CAAC,CAAA;AAGF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC,GAAG;CAClB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,EAAE,EAAE;IACV,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,SAAS;IAChB,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACvB;;;OAGG;IACH,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,MAAM,CAAC,GAAG;IACzB,SAAS,EAAE,SAAS;IACpB,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,6GAA6G;IAC7G,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IACnC,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC,GAAG;IAC7B,8FAA8F;IAC9F,gBAAgB,EAAE,MAAM,CAAC,GAAG;IAC5B,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAC,GAAG;IAC9B,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;CAChD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IAClC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;CAC/B,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,MAAM,CAAC,GAAG;CACnB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAG1F,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAGzF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC,OAAO;IACzB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IACnC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,gGAAgG;IAChG,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,+FAA+F;IAC/F,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;CAChC,CAAC,CAAA;AA+CF,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEnC,8EAA8E;AAC9E,MAAM,UAAU,GAAmC,IAAI,GAAG,CAAC;IACzD,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAA;AAEF,MAAM,GAAG,GAAG,CAAC,MAA6B,EAAU,EAAE,CACpD,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;AAEnD,MAAM,OAAO,GAAG,CAAC,MAA6B,EAAsB,EAAE,CACpE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;AAE/D,MAAM,OAAO,GAAG,CAAI,KAAuB,EAAE,GAAwB,EAAyB,EAAE;IAC9F,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACzC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,KAAgB,EAAsB,EAAE,CACtD,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AAE5E,iEAAiE;AACjE,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAU,EAAE;IAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,eAAe,CAAA;QACxB,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAAA;QACtB,KAAK,aAAa;YAChB,OAAO,iBAAiB,CAAA;QAC1B,KAAK,SAAS;YACZ,OAAO,mBAAmB,CAAA;QAC5B,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,YAAY,CAAA;QACrB,KAAK,gBAAgB;YACnB,OAAO,gBAAgB,CAAA;QACzB,KAAK,aAAa;YAChB,OAAO,iBAAiB,CAAA;QAC1B,KAAK,kBAAkB;YACrB,OAAO,sBAAsB,CAAA;QAC/B,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB,CAAC;QACxB,KAAK,yBAAyB;YAC5B,OAAO,oBAAoB,CAAA;QAC7B,KAAK,iBAAiB;YACpB,OAAO,mBAAmB,CAAA;QAC5B,KAAK,sBAAsB;YACzB,OAAO,0BAA0B,CAAA;QACnC,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,iBAAiB,CAAC;QACvB,KAAK,oBAAoB;YACvB,OAAO,iBAAiB,CAAA;QAC1B,KAAK,OAAO;YACV,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,OAAO;oBACV,OAAO,gBAAgB,KAAK,CAAC,KAAK,OAAO,CAAA;gBAC3C,KAAK,MAAM;oBACT,OAAO,mBAAmB,KAAK,CAAC,KAAK,EAAE,CAAA;gBACzC,KAAK,MAAM;oBACT,OAAO,mBAAmB,KAAK,CAAC,KAAK,EAAE,CAAA;gBACzC,KAAK,MAAM;oBACT,OAAO,6BAA6B,KAAK,CAAC,KAAK,EAAE,CAAA;gBACnD;oBACE,OAAO,cAAc,KAAK,CAAC,KAAK,EAAE,CAAA;YACtC,CAAC;QACH,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO;gBAC3B,CAAC,CAAC,kBAAkB,KAAK,CAAC,KAAK,OAAO;gBACtC,CAAC,CAAC,gBAAgB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;QACjD;YACE,OAAO,UAAU,CAAA;IACrB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,MAAM,CAAA;AAE7B,mGAAmG;AACnG,MAAM,MAAM,GAAG,CAAC,IAAU,EAAsB,EAAE;IAChD,MAAM,OAAO,GAAG;QACd,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAU,CAAC;QACxE,8CAA8C;QAC9C,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;YACxD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAU,CAAC,CAAC;KAC3D,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE;QACrD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,MAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBACjC,SAAQ;YACV,CAAC;YACD,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAA;YACnC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,CAAC;QACD,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAA;IACxC,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA;IAC3E,OAAO,OAAO;SACX,KAAK,CAAC,CAAC,CAAC;SACR,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1C,OAAO,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtF,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;SACzC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,kEAAkE;AAClE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAEzF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAgC,EAAiB,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAA;IACrC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,MAAM,QAAQ,GAAmB,EAAE,CAAA;IACnC,IAAI,KAAyB,CAAA;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,SAA6B,CAAA;IAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE,CAAA;QACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACjE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAChD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE;wBACf,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,EAAE;wBACT,GAAG,EAAE,SAAS;wBACd,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,KAAK,EAAE,EAAE;wBACT,OAAO,EAAE,EAAE;wBACX,cAAc,EAAE,EAAE;wBAClB,IAAI,EAAE,EAAE;wBACR,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxC,SAAS,EAAE,SAAS;wBACpB,SAAS,EAAE,CAAC;wBACZ,KAAK,EAAE,CAAC;wBACR,SAAS,EAAE,SAAS;wBACpB,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;wBAChE,SAAS,EAAE,SAAS;wBACpB,iBAAiB,EAAE,CAAC;wBACpB,gBAAgB,EAAE,CAAC;wBACnB,kBAAkB,EAAE,CAAC;wBACrB,eAAe,EAAE,SAAS;qBAC3B,CAAC,CAAA;oBACF,SAAQ;gBACV,CAAC;gBACD,IACE,IAAI,KAAK,SAAS;oBAClB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC7B,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,EAC5C,CAAC;oBACD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;oBACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA;gBACvC,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,gBAAgB,CAAC;YACtB,KAAK,aAAa;gBAChB,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC7D,SAAS,GAAG,EAAE,CAAA;gBAChB,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;oBAC7D,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;oBACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;gBAChE,CAAC;gBACD,MAAK;YACP,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAChF,MAAM,IAAI,GACR,KAAK,CAAC,QAAQ,KAAK,SAAS;wBAC5B,KAAK,CAAC,QAAQ,KAAK,MAAM;wBACzB,KAAK,CAAC,QAAQ,KAAK,MAAM;wBACzB,KAAK,CAAC,QAAQ,KAAK,QAAQ;wBACzB,CAAC,CAAC,KAAK,CAAC,QAAQ;wBAChB,CAAC,CAAC,OAAO,CAAA;oBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACzB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;wBACpD,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;wBACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAA;oBACjD,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC5E,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;oBAC1B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;gBACpB,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,SAAS;gBACZ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,gEAAgE;oBAChE,0BAA0B;oBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAA;oBAC5C,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;gBACrB,CAAC;gBACD,MAAK;YACP,KAAK,YAAY;gBACf,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBACvC,CAAC;oBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC1C,CAAC;gBACD,MAAK;YACP,KAAK,gBAAgB;gBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;gBACnF,MAAK;YACP,KAAK,MAAM;gBACT,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC;oBACvF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACrB,CAAC;gBACD,MAAK;YACP,KAAK,gBAAgB;gBACnB,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;gBAC7E,CAAC;gBACD,MAAK;YACP,KAAK,iBAAiB;gBACpB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,UAAU,CAAA;oBACzC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;wBAC/B,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAA;oBAC9B,CAAC;gBACH,CAAC;gBACD,MAAK;YACP;gBACE,MAAK;QACT,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACnF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEzF,MAAM,UAAU,GAAG,CAAC,IAAa,EAAsB,EAAE;QACvD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;aACtB,OAAO,EAAE;aACT,IAAI,CACH,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5F,CAAA;QACH,OAAO,KAAK,EAAE,QAAQ,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG;QACb,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KAChG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAY,EAAE;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACtE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAC7D,CAAA;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChG,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAC3D,CAAA;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAClC,OAAO;YACL,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YAC/B,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,EAAE;YACF,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM;YACxB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;SACtE,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG;QACZ,GAAG,OAAO,CACR,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EACrD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAC3B,CAAC,OAAO,EAAE;KACZ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAW,EAAE;QACjC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QACjD,OAAO;YACL,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,EAAE;YACF,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;iBAC1F,MAAM;SACV,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,CAAC,IAAmB,EAA2B,EAAE,CAC/D;QACE,GAAG,OAAO,CACR,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EACnD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAC3B,CAAC,OAAO,EAAE;KACZ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC5C,CAAC,CAAC,CAAA;IACL,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,MAAM,cAAc,GAAG;QACrB,GAAG,OAAO,CACR,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,EAC1F,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CACpC,CAAC,OAAO,EAAE;KACZ;SACE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC5C,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG;QACd,GAAG,OAAO,CACR,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EACxD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAC3B,CAAC,OAAO,EAAE;KACZ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC5C,CAAC,CAAC,CAAA;IACH,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO;QAC3C,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW;KACxD,CAAC,EACF,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CACvE,CAAA;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAE3D,OAAO;QACL,SAAS;QACT,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK;QAChD,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,cAAc;QACd,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,UAAU,CAAC;YACnB,KAAK;YACL,cAAc;YACd,OAAO;YACP,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;YACN,SAAS;YACT,SAAS;SACV,CAAC;KACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAChB,KAAyE,EACd,EAAE,CAAC,CAAC;IAC/D,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACvD,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;CAC1D,CAAC,CAAA;AAEF,iFAAiF;AACjF,MAAM,SAAS,GAAG,CAChB,IAAU,EAC0D,EAAE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IACrE,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;SAC7E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QACvD,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SAClE,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CACnB,IAAU,EACV,MAAc,EACd,SAA6B,EAC7B,SAAkB,EACJ,EAAE;IAChB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;IAChD,MAAM,EAAE,GAAG,CAAC,IAAmB,EAAE,EAAE,CACjC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACzF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;SAC7E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IACxB,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAA;IACjF,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,CAAA;IAClG,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAA;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IACnF,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC,UAAU;QACV,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACxE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QACxF,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM;QACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;QACrF,IAAI,EAAE;YACJ,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;SAC3E;QACD,KAAK,EAAE;YACL,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAC1D,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACrD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9C,YAAY,EACV,WAAW,KAAK,SAAS;gBACzB,UAAU,KAAK,SAAS;gBACxB,WAAW,GAAG,CAAC;gBACf,UAAU,GAAG,CAAC,GAAG,WAAW;SAC/B;KACF,CAAA;AACH,CAAC,CAAA;AAED,+EAA+E;AAE/E,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1C,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAEvF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAU,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;AAEpG,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAEnG,MAAM,UAAU,GAAG,CAAC,KAWnB,EAA0B,EAAE;IAC3B,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAA;IACjG,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1F,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC5F,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAA;QACtF,OAAO;YACL,EAAE;YACF,IAAI,EACF,IAAI,KAAK,OAAO;gBACd,CAAC,CAAC,gBAAgB,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,GAC1E,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;oBACtB,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB;oBACvG,CAAC,CAAC,EACN,EAAE;gBACJ,CAAC,CAAC,GAAG,IAAI,WAAW,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE;SACvF,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,UAAU,GAA0D;QACxE,GAAG,MAAM;QACT,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAC7E,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,SACzC,EAAE;SACH,CAAC,CAAC;QACH,mEAAmE;QACnE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,gBAAgB,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;aACtF,CAAC,CAAC;YACL,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,gBAAgB,GAAG,CAAC,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;aACxF,CAAC,CAAC,CAAC;QACR,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,mBAAmB,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;SAC1E,CAAC,CAAC;QACH,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;SAC1D,CAAC,CAAC;KACJ,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,KAAK,CAAC,UAAU;gBACpB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,oCAAoC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU;aACvI,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GACZ,KAAK,CAAC,WAAW,KAAK,SAAS;YAC/B,KAAK,CAAC,MAAM,IAAI,MAAM;YACtB,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE;gBAC5B,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5E,IAAI,QAAQ,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,KAAK,CAAC,WAAW;gBACrB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC,QAAQ,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,qFAAqF;aAC9L,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,oEAAoE,QAAQ,CAAC,MAAM,CAAC,SAAS;SACpG,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS;QAC/B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5B,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YACpB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,6BAA6B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;SACxG,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC;SACzC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,CAAC;SAC5C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;SACzC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,KAAK,CAAC,gBAAgB,GAAG,CAAC;QACxB,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,uBAAuB,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,kEAAkE;aACjK;SACF;QACH,CAAC,CAAC,EAAE,CACP,CAAA;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC;QACzB,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,+EAA+E;aAC5H;SACF;QACH,CAAC,CAAC,EAAE,CACP,CAAA;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7C,KAAK,CAAC,KAAK,CAAC,YAAY;QACxB,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;QACrC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;QAClC,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,0CAA0C;aACpO;SACF;QACH,CAAC,CAAC,EAAE,CACP,CAAA;IACD,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CACZ,MAA6B,EAC7B,IAA0C,EAC3B,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CACzE,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,KAA4B,EAAE,EAAE,CAC5C,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAA;IACjJ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAU,EAAE;IAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAClE,MAAM,UAAU,GAA6C;QAC3D,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACvF,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;KAC3C,CAAA;IACD,OAAO;QACL,oBAAoB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAC9H,MAAM,CAAC,SAAS;YACd,CAAC,CAAC,qFAAqF;YACvF,CAAC,CAAC,EACN,EAAE;QACF,EAAE;QACF,qBAAqB;QACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACzB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,EAAE;QACF,YAAY;QACZ,GAAG,KAAK,CACN,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAC3E;QACD,EAAE;QACF,SAAS;QACT,GAAG,KAAK,CACN;YACE,OAAO;YACP,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,OAAO;YACP,OAAO;YACP,OAAO;YACP,WAAW;YACX,MAAM;YACN,OAAO;YACP,OAAO;YACP,UAAU;YACV,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,EACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,MAAM;YACZ,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3B,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;YACjE,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACrC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;gBACpC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBACrE,CAAC,CAAC,EAAE;SACP,CAAC,CACH;QACD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CACtB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,SAAS,CAAC,OAAO;YACrB,KAAK,CAAC,SAAS,CAAC,IAAI;YACpB,KAAK,CAAC,SAAS,CAAC,IAAI;YACpB,KAAK,CAAC,SAAS,CAAC,MAAM;YACtB,KAAK,CAAC,SAAS,CAAC,KAAK;YACvB,CAAC,CACJ;YACC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,sBAAsB;gBACtB,GAAG,KAAK,CACN;oBACE,OAAO;oBACP,OAAO;oBACP,SAAS;oBACT,MAAM;oBACN,MAAM;oBACN,QAAQ;oBACR,OAAO;oBACP,iBAAiB;oBACjB,aAAa;iBACd,EACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC5B,KAAK,CAAC,EAAE;oBACR,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;oBACnB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC/B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;oBAC9B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;oBAC7B,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,UAAU;oBAC3E,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;iBACxE,CAAC,CACH;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;YACtE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,+BAA+B;gBAC/B,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,KAAK,CAAC,eAAe,KAAK,SAAS;oBACjC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,iBAAiB,KAAK,CAAC,eAAe,QAAQ,CAAC,CAClE;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,yCAAyC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;YAC1D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,mDAAmD;gBACnD,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CACZ,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,CACrF,CACF;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,2EAA2E;gBAC3E,GAAG,KAAK,CACN,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAC9E;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,aAAa;gBACb,GAAG,KAAK,CACN;oBACE,MAAM;oBACN,UAAU;oBACV,OAAO;oBACP,OAAO;oBACP,KAAK;oBACL,cAAc;oBACd,gBAAgB;oBAChB,kBAAkB;iBACnB,EACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBACzB,GAAG,CAAC,IAAI;oBACR,GAAG,CAAC,QAAQ,IAAI,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;oBACjB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;oBACnB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC5D,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;oBAClD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;iBACrD,CAAC,CACH;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,OAAO;gBACP,GAAG,KAAK,CACN,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,EAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBACxB,GAAG,CAAC,OAAO;oBACX,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;oBAChB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;oBACnB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;iBACnB,CAAC,CACH;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,qBAAqB;gBACrB,GAAG,KAAK,CACN,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EACjC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBACjC,GAAG,CAAC,KAAK;oBACT,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;oBACjB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;iBAC7B,CAAC,CACH;aACF,CAAC;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC,CAAA;AAED,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;CACrD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;CAC7B,CAAC,CAAA;AAGF,MAAM,SAAS,GAAG,CAAC,MAAqB,EAAE,IAAY,EAAU,EAAE,CAChE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAqB,EAAE,KAAoB,EAAgB,EAAE;IACxF,MAAM,KAAK,GAAG,CACZ,KAAa,EACb,IAAuC,EACvC,SAA6B,OAAO,EAC1B,EAAE,CAAC,CAAC;QACd,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;QAClB,IAAI,EAAE,OAAO;QACb,MAAM;KACP,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,IAAuC,EAAY,EAAE,CAAC,CAAC;QAClF,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;QAClB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,OAAO;KAChB,CAAC,CAAA;IACF,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC3F,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;YACrF,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,CACjD,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAC/C;YACD,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;YAChF,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;YACpF,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5E,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxD,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAClD,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7F,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACrF,KAAK,CACH,mCAAmC,EACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAC5D;YACD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;SACzC;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,GAAa,EAAU,EAAE;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAA;IACnC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IACnF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IACjC,MAAM,OAAO,GACX,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC3F,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IACtF,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,EAAE,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAmB,EACnB,MAA2D,EACnD,EAAE,CACV;IACE,oBAAoB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,EAAE;IACrD,EAAE;IACF,GAAG,KAAK,CACN,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EACxC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC7D,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3D,SAAS,CAAC,GAAG,CAAC;KACf,CAAC,CACH;IACD,EAAE;IACF,wDAAwD;CACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAQd,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAA;AAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAA;AACrF,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;AAE1E,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EACrE,KAA4B,EAC5B,IAAY;IAEZ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACnE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBACpC,OAAO,EAAE,GAAG,IAAI,iEAAiE;aAClF,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;IACD,OAAO,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AACpE,CAAC,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,EAClF,OAAuB,EACvB,OAAqB;IAErB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC9F,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1C,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI;YAC1B,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { ToolReport, type ToolShape } from "@llm4ts/flow/tools/Tool";
3
+ /**
4
+ * The main of a kit tool file (`kits/<kit>/tools/<name>.ts`, ADR 0048):
5
+ * `llm4ts tool` runs the file as a Node child and speaks this protocol —
6
+ * `--describe` prints the `ToolSpec`; otherwise the parsed arguments arrive
7
+ * as one JSON object on stdin and the `ToolReport` goes out on stdout. Exit
8
+ * 0 when the report is ok, 1 when it carries issues, 2 when the tool could
9
+ * not run (the error is JSON on stdout too, `{"error": …}`). `--project
10
+ * <root>` names the project the tool runs for (default: the current
11
+ * directory); secrets resolve from this process's environment.
12
+ */
13
+ export declare const runToolMain: (tool: ToolShape) => void;
14
+ /** The child's stdout as the parent reads it: a report, or the error it printed. */
15
+ export declare const ChildToolOutput: Schema.Union<readonly [Schema.Struct<{
16
+ readonly error: Schema.String;
17
+ }>, typeof ToolReport]>;
18
+ //# sourceMappingURL=ToolMain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolMain.d.ts","sourceRoot":"","sources":["../src/ToolMain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAe,UAAU,EAAoB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnG;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,KAAG,IA+C7C,CAAA;AAUD,oFAAoF;AACpF,eAAO,MAAM,eAAe;;uBAAsE,CAAA"}
@@ -0,0 +1,60 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schema from "effect/Schema";
3
+ import * as Layer from "effect/Layer";
4
+ import { SoapTransport, makeNodeSoapTransport } from "@llm4ts/flow/endpoint/Transport";
5
+ import { ToolContext, ToolReport, ToolSpec, specOf } from "@llm4ts/flow/tools/Tool";
6
+ import { NodePlainFileStoreLive } from "./NodePlainFileStore.js";
7
+ /**
8
+ * The main of a kit tool file (`kits/<kit>/tools/<name>.ts`, ADR 0048):
9
+ * `llm4ts tool` runs the file as a Node child and speaks this protocol —
10
+ * `--describe` prints the `ToolSpec`; otherwise the parsed arguments arrive
11
+ * as one JSON object on stdin and the `ToolReport` goes out on stdout. Exit
12
+ * 0 when the report is ok, 1 when it carries issues, 2 when the tool could
13
+ * not run (the error is JSON on stdout too, `{"error": …}`). `--project
14
+ * <root>` names the project the tool runs for (default: the current
15
+ * directory); secrets resolve from this process's environment.
16
+ */
17
+ export const runToolMain = (tool) => {
18
+ if (process.argv.includes("--describe")) {
19
+ process.stdout.write(`${JSON.stringify(Schema.encodeSync(ToolSpec)(specOf(tool)))}\n`);
20
+ return;
21
+ }
22
+ void readStdin().then((text) => {
23
+ let values;
24
+ try {
25
+ const parsed = text.trim().length === 0 ? {} : JSON.parse(text);
26
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
27
+ throw new Error("stdin must hold one JSON object of arguments");
28
+ }
29
+ values = Object.fromEntries(Object.entries(parsed));
30
+ }
31
+ catch (error) {
32
+ process.stdout.write(`${JSON.stringify({ error: error instanceof Error ? error.message : String(error) })}\n`);
33
+ process.exitCode = 2;
34
+ return;
35
+ }
36
+ const projectFlag = process.argv.indexOf("--project");
37
+ const projectRoot = projectFlag >= 0 && process.argv[projectFlag + 1] !== undefined
38
+ ? process.argv[projectFlag + 1]
39
+ : process.cwd();
40
+ return Effect.runPromise(tool.execute(values).pipe(Effect.provide(Layer.mergeAll(NodePlainFileStoreLive, Layer.succeed(ToolContext)({ projectRoot, environment: process.env }), Layer.succeed(SoapTransport)(makeNodeSoapTransport()))), Effect.match({
41
+ onFailure: (error) => {
42
+ process.stdout.write(`${JSON.stringify({ error: error.message })}\n`);
43
+ process.exitCode = 2;
44
+ },
45
+ onSuccess: (report) => {
46
+ process.stdout.write(`${JSON.stringify(Schema.encodeSync(ToolReport)(report))}\n`);
47
+ process.exitCode = report.ok ? 0 : 1;
48
+ }
49
+ })));
50
+ });
51
+ };
52
+ const readStdin = () => new Promise((resolvePromise, rejectPromise) => {
53
+ const chunks = [];
54
+ process.stdin.on("data", (chunk) => chunks.push(chunk));
55
+ process.stdin.on("end", () => resolvePromise(Buffer.concat(chunks).toString("utf8")));
56
+ process.stdin.on("error", rejectPromise);
57
+ });
58
+ /** The child's stdout as the parent reads it: a report, or the error it printed. */
59
+ export const ChildToolOutput = Schema.Union([Schema.Struct({ error: Schema.String }), ToolReport]);
60
+ //# sourceMappingURL=ToolMain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolMain.js","sourceRoot":"","sources":["../src/ToolMain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schema from "effect/Schema";
3
+ import type { ToolReport, ToolSpec } from "@llm4ts/flow/tools/Tool";
4
+ import { type ToolShape } from "@llm4ts/flow/tools/Tool";
5
+ import type { ToolPreset } from "@llm4ts/flow/Pack";
6
+ import type { DiscoveredKit } from "./Kits.ts";
7
+ /**
8
+ * The tool catalog (ADR 0048): the built-in tools, every discovered kit's
9
+ * `tools/<name>.ts`, and the presets of the packs in reach. A kit tool with
10
+ * a built-in's name shadows it, project kits first, as flows do.
11
+ */
12
+ export type CatalogEntry = {
13
+ readonly _tag: "builtin";
14
+ readonly name: string;
15
+ readonly tool: ToolShape;
16
+ } | {
17
+ readonly _tag: "kit";
18
+ readonly name: string;
19
+ readonly kit: DiscoveredKit;
20
+ readonly file: string;
21
+ };
22
+ export interface ToolCatalog {
23
+ readonly entries: ReadonlyArray<CatalogEntry>;
24
+ readonly presets: ReadonlyArray<ToolPreset & {
25
+ readonly pack: string;
26
+ }>;
27
+ }
28
+ export declare const catalogEntries: (kits: ReadonlyArray<DiscoveredKit>) => ReadonlyArray<CatalogEntry>;
29
+ export declare const findEntry: (catalog: ReadonlyArray<CatalogEntry>, name: string) => CatalogEntry | undefined;
30
+ /**
31
+ * A preset is `tool --flag value …`: the catalog tool, then its arguments,
32
+ * with whatever the caller appends. A preset never names another preset.
33
+ */
34
+ export interface ResolvedPreset {
35
+ readonly preset: ToolPreset & {
36
+ readonly pack: string;
37
+ };
38
+ readonly entry: CatalogEntry;
39
+ readonly argv: ReadonlyArray<string>;
40
+ }
41
+ declare const PresetError_base: Schema.Class<PresetError, Schema.TaggedStruct<"PresetError", {
42
+ readonly preset: Schema.String;
43
+ readonly message: Schema.String;
44
+ }>, import("effect/Cause").YieldableError>;
45
+ export declare class PresetError extends PresetError_base {
46
+ }
47
+ export declare const resolvePreset: (catalog: ToolCatalog, name: string, extra: ReadonlyArray<string>) => Effect.Effect<ResolvedPreset | undefined, PresetError>;
48
+ /**
49
+ * The repository a worktree belongs to: `git rev-parse --git-common-dir`
50
+ * points back at the main checkout from any worktree, so the project tier
51
+ * (`<repo>/.llm4ts/kits`) is found without a file in the worktree or an
52
+ * environment variable the executor would strip (ADR 0048). Falls back to
53
+ * `cwd` outside a repository.
54
+ */
55
+ export declare const projectRootOf: (cwd: string) => string;
56
+ /** One line per catalog entry and preset, for `llm4ts tool list`. */
57
+ export declare const renderCatalog: (catalog: ToolCatalog, specs: ReadonlyMap<string, ToolSpec>) => string;
58
+ export declare const catalogJson: (catalog: ToolCatalog, specs: ReadonlyMap<string, ToolSpec>) => typeof Schema.Json.Type;
59
+ /** Exit status for a report: 0 ok, 1 issues. Errors exit 2 (the CLI's own). */
60
+ export declare const reportExitCode: (report: ToolReport) => number;
61
+ /**
62
+ * The paragraph a coder's brief carries (ADR 0048): one rule, then each
63
+ * preset of the story's pack with the command to run. `LLM4TS_TOOL_BRIEF=off`
64
+ * drops it, for a run without the catalog to compare against.
65
+ */
66
+ export declare const toolBrief: (presets: ReadonlyArray<ToolPreset>, specs: ReadonlyMap<string, ToolSpec>, environment?: Readonly<Record<string, string | undefined>>) => string | undefined;
67
+ /** Specs of the built-in tools, known without running anything. */
68
+ export declare const builtinSpecs: () => ReadonlyMap<string, ToolSpec>;
69
+ export {};
70
+ //# sourceMappingURL=Tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../src/Tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC7E;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAEL,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACxE;AAID,eAAO,MAAM,cAAc,GAAI,MAAM,aAAa,CAAC,aAAa,CAAC,KAAG,aAAa,CAAC,YAAY,CAoB7F,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,SAAS,aAAa,CAAC,YAAY,CAAC,EACpC,MAAM,MAAM,KACX,YAAY,GAAG,SAAyD,CAAA;AAE3E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACrC;;;;;AAED,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;AAEL,eAAO,MAAM,aAAa,GACxB,SAAS,WAAW,EACpB,MAAM,MAAM,EACZ,OAAO,aAAa,CAAC,MAAM,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,EAAE,WAAW,CAmBvD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,MAe3C,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,GACxB,SAAS,WAAW,EACpB,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KACnC,MAkBF,CAAA;AAED,eAAO,MAAM,WAAW,GACtB,SAAS,WAAW,EACpB,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KACnC,OAAO,MAAM,CAAC,IAAI,CAAC,IAcpB,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,cAAc,GAAI,QAAQ,UAAU,KAAG,MAA6B,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,aAAa,CAAC,UAAU,CAAC,EAClC,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EACpC,cAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,KACtE,MAAM,GAAG,SAqBX,CAAA;AAED,mEAAmE;AACnE,eAAO,MAAM,YAAY,QAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CACI,CAAA"}
package/dist/Tools.js ADDED
@@ -0,0 +1,142 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { dirname, isAbsolute, join, resolve } from "node:path";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Schema from "effect/Schema";
6
+ import { builtinTools } from "@llm4ts/flow/tools/Builtin";
7
+ import { isToolName, renderUsage, specOf } from "@llm4ts/flow/tools/Tool";
8
+ const tierRank = { project: 0, global: 1, builtin: 2 };
9
+ export const catalogEntries = (kits) => {
10
+ const byName = new Map();
11
+ for (const tool of builtinTools) {
12
+ byName.set(tool.name, { _tag: "builtin", name: tool.name, tool });
13
+ }
14
+ const ordered = [...kits].sort((left, right) => tierRank[right.tier] - tierRank[left.tier]);
15
+ for (const kit of ordered) {
16
+ for (const name of kit.tools) {
17
+ if (!isToolName(name)) {
18
+ continue;
19
+ }
20
+ const file = ["ts", "js"]
21
+ .map((extension) => join(kit.root, "tools", `${name}.${extension}`))
22
+ .find((candidate) => existsSync(candidate));
23
+ if (file !== undefined) {
24
+ byName.set(name, { _tag: "kit", name, kit, file });
25
+ }
26
+ }
27
+ }
28
+ return [...byName.values()].sort((left, right) => left.name.localeCompare(right.name));
29
+ };
30
+ export const findEntry = (catalog, name) => catalog.find((entry) => entry.name === name);
31
+ export class PresetError extends Schema.TaggedError()("PresetError", {
32
+ preset: Schema.String,
33
+ message: Schema.String
34
+ }) {
35
+ }
36
+ export const resolvePreset = (catalog, name, extra) => {
37
+ const preset = catalog.presets.find((candidate) => candidate.name === name);
38
+ if (preset === undefined) {
39
+ return Effect.succeed(undefined);
40
+ }
41
+ const [toolName, ...rest] = preset.command;
42
+ if (toolName === undefined) {
43
+ return Effect.fail(new PresetError({ preset: name, message: "preset names no tool" }));
44
+ }
45
+ const entry = findEntry(catalog.entries, toolName);
46
+ if (entry === undefined) {
47
+ return Effect.fail(new PresetError({
48
+ preset: name,
49
+ message: `preset runs '${toolName}', which is not a catalog tool (run \`llm4ts tool list\`)`
50
+ }));
51
+ }
52
+ return Effect.succeed({ preset, entry, argv: [...rest, ...extra] });
53
+ };
54
+ /**
55
+ * The repository a worktree belongs to: `git rev-parse --git-common-dir`
56
+ * points back at the main checkout from any worktree, so the project tier
57
+ * (`<repo>/.llm4ts/kits`) is found without a file in the worktree or an
58
+ * environment variable the executor would strip (ADR 0048). Falls back to
59
+ * `cwd` outside a repository.
60
+ */
61
+ export const projectRootOf = (cwd) => {
62
+ try {
63
+ const common = execFileSync("git", ["rev-parse", "--git-common-dir"], {
64
+ cwd,
65
+ encoding: "utf8",
66
+ stdio: ["ignore", "pipe", "ignore"]
67
+ }).trim();
68
+ if (common.length === 0) {
69
+ return cwd;
70
+ }
71
+ const absolute = isAbsolute(common) ? common : resolve(cwd, common);
72
+ return dirname(absolute);
73
+ }
74
+ catch {
75
+ return cwd;
76
+ }
77
+ };
78
+ /** One line per catalog entry and preset, for `llm4ts tool list`. */
79
+ export const renderCatalog = (catalog, specs) => {
80
+ const lines = [];
81
+ for (const entry of catalog.entries) {
82
+ const spec = specs.get(entry.name);
83
+ const origin = entry._tag === "builtin" ? "" : ` [${entry.kit.name} kit]`;
84
+ lines.push(spec === undefined
85
+ ? `${entry.name}${origin}`
86
+ : `${renderUsage(spec)}${origin}\n ${spec.purpose}`);
87
+ }
88
+ if (catalog.presets.length > 0) {
89
+ lines.push("", "Presets (pack: command):");
90
+ for (const preset of catalog.presets) {
91
+ lines.push(` ${preset.name} (${preset.pack}): ${preset.command.join(" ")}`);
92
+ }
93
+ }
94
+ return lines.join("\n");
95
+ };
96
+ export const catalogJson = (catalog, specs) => ({
97
+ tools: catalog.entries.map((entry) => {
98
+ const spec = specs.get(entry.name);
99
+ return {
100
+ name: entry.name,
101
+ origin: entry._tag === "builtin" ? "builtin" : `kit:${entry.kit.name}`,
102
+ ...(spec === undefined ? {} : { purpose: spec.purpose, usage: renderUsage(spec) })
103
+ };
104
+ }),
105
+ presets: catalog.presets.map((preset) => ({
106
+ name: preset.name,
107
+ pack: preset.pack,
108
+ command: preset.command.join(" ")
109
+ }))
110
+ });
111
+ /** Exit status for a report: 0 ok, 1 issues. Errors exit 2 (the CLI's own). */
112
+ export const reportExitCode = (report) => (report.ok ? 0 : 1);
113
+ /**
114
+ * The paragraph a coder's brief carries (ADR 0048): one rule, then each
115
+ * preset of the story's pack with the command to run. `LLM4TS_TOOL_BRIEF=off`
116
+ * drops it, for a run without the catalog to compare against.
117
+ */
118
+ export const toolBrief = (presets, specs, environment = process.env) => {
119
+ if (environment.LLM4TS_TOOL_BRIEF?.trim().toLowerCase() === "off") {
120
+ return undefined;
121
+ }
122
+ const lines = [
123
+ "Tools: for validating a document, comparing two outputs, or checking a contract, run the",
124
+ "project's tool instead of writing a script — `llm4ts tool <name> [--flag value]` prints JSON",
125
+ "(ok, summary, issues). `llm4ts tool list` shows every tool; `llm4ts tool describe <name>`",
126
+ "its arguments. Never write a Python or Node one-liner for a job a tool covers."
127
+ ];
128
+ if (presets.length > 0) {
129
+ lines.push("", "This pack's presets (run them by name from the worktree root):");
130
+ for (const preset of presets) {
131
+ const [toolName, ...rest] = preset.command;
132
+ const spec = toolName === undefined ? undefined : specs.get(toolName);
133
+ const fixed = rest.length === 0 ? "" : ` (fixed: ${rest.join(" ")})`;
134
+ const purpose = spec === undefined ? "" : ` — ${spec.purpose}`;
135
+ lines.push(`- \`llm4ts tool ${preset.name}\`${fixed}${purpose}`);
136
+ }
137
+ }
138
+ return lines.join("\n");
139
+ };
140
+ /** Specs of the built-in tools, known without running anything. */
141
+ export const builtinSpecs = () => new Map(builtinTools.map((tool) => [tool.name, specOf(tool)]));
142
+ //# sourceMappingURL=Tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../src/Tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/runner",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "Node runner, CLI, terminal, and MCP composition for llm4ts",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -13,6 +13,8 @@
13
13
  "src"
14
14
  ],
15
15
  "exports": {
16
+ "./ToolMain": "./dist/ToolMain.js",
17
+ "./Tools": "./dist/Tools.js",
16
18
  ".": "./dist/index.js",
17
19
  "./Cli": "./dist/Cli.js",
18
20
  "./AgentTree": "./dist/AgentTree.js",
@@ -73,8 +75,8 @@
73
75
  "typescript"
74
76
  ],
75
77
  "dependencies": {
76
- "@llm4ts/core": "3.0.0",
77
- "@llm4ts/flow": "3.0.0"
78
+ "@llm4ts/core": "3.2.0",
79
+ "@llm4ts/flow": "3.2.0"
78
80
  },
79
81
  "peerDependencies": {
80
82
  "effect": "4.0.0"
package/src/Kits.ts CHANGED
@@ -29,6 +29,8 @@ export interface DiscoveredKit {
29
29
  readonly packs: ReadonlyArray<string>
30
30
  /** Flow names: every `flows/<name>.ts|js` (not `lib/` or `test/`). */
31
31
  readonly flows: ReadonlyArray<string>
32
+ /** Tool names: every `tools/<name>.ts|js` (ADR 0048), run by `llm4ts tool`. */
33
+ readonly tools: ReadonlyArray<string>
32
34
  readonly shadows: ReadonlyArray<KitTier>
33
35
  }
34
36
 
@@ -118,7 +120,14 @@ const readKit = (
118
120
  .map((entry) => entry.replace(/\.(ts|js)$/, ""))
119
121
  .sort()
120
122
  : []
121
- if (packs.length === 0 && flows.length === 0) {
123
+ const toolsDir = join(root, "tools")
124
+ const tools = isDirectory(toolsDir)
125
+ ? readdirSync(toolsDir)
126
+ .filter((entry) => entry.endsWith(".ts") || entry.endsWith(".js"))
127
+ .map((entry) => entry.replace(/\.(ts|js)$/, ""))
128
+ .sort()
129
+ : []
130
+ if (packs.length === 0 && flows.length === 0 && tools.length === 0) {
122
131
  return undefined
123
132
  }
124
133
  const readme = join(root, "README.md")
@@ -131,7 +140,8 @@ const readKit = (
131
140
  tier,
132
141
  ...(description === undefined ? {} : { description }),
133
142
  packs,
134
- flows
143
+ flows,
144
+ tools
135
145
  }
136
146
  }
137
147
 
package/src/Profile.ts CHANGED
@@ -65,11 +65,16 @@ export const Gap = Schema.Struct({
65
65
  })
66
66
  export type Gap = typeof Gap.Type
67
67
 
68
- /** The coder's tool calls by kind of work (build, install and git count as other). */
68
+ /**
69
+ * The coder's tool calls by kind of work (build, install and git count as
70
+ * other). `script` is the ad-hoc Python/Node one-liners, heredocs and scratch
71
+ * files it improvised; profiles saved before it existed decode it as 0.
72
+ */
69
73
  export const ToolCalls = Schema.Struct({
70
74
  explore: Schema.Int,
71
75
  edit: Schema.Int,
72
76
  test: Schema.Int,
77
+ script: Schema.Int.pipe(Schema.withDecodingDefaultKey(Effect.succeed(0))),
73
78
  other: Schema.Int
74
79
  })
75
80
  export type ToolCalls = typeof ToolCalls.Type
@@ -146,7 +151,7 @@ export const ProfileReport = Schema.Struct({
146
151
  models: Schema.Array(ModelRow),
147
152
  gates: Schema.Array(GateRow),
148
153
  tools: Schema.Array(CountRow),
149
- /** Coder tool time by kind of work: explore, edit, test, build, install, git, other. */
154
+ /** Coder tool time by kind of work: explore, edit, test, script, build, install, git, other. */
150
155
  toolCategories: Schema.Array(CountRow),
151
156
  waits: Schema.Array(CountRow),
152
157
  /** Timed on the run's events, in no story: the run's own planning, or a seat no story owns. */
@@ -184,7 +189,7 @@ interface Lane {
184
189
  tasks: number
185
190
  /** When the coder's first task began: setup and task planning come before it. */
186
191
  firstTask: number | undefined
187
- toolCalls: { explore: number; edit: number; test: number; other: number }
192
+ toolCalls: { explore: number; edit: number; test: number; script: number; other: number }
188
193
  firstEdit: number | undefined
189
194
  exploreBeforeEdit: number
190
195
  unverifiedClaims: number
@@ -363,7 +368,7 @@ export const profileOf = (inputs: ReadonlyArray<TreeInput>): ProfileReport => {
363
368
  openTools: 0,
364
369
  tasks: 0,
365
370
  firstTask: undefined,
366
- toolCalls: { explore: 0, edit: 0, test: 0, other: 0 },
371
+ toolCalls: { explore: 0, edit: 0, test: 0, script: 0, other: 0 },
367
372
  firstEdit: undefined,
368
373
  exploreBeforeEdit: 0,
369
374
  unverifiedClaims: 0,
@@ -397,7 +402,10 @@ export const profileOf = (inputs: ReadonlyArray<TreeInput>): ProfileReport => {
397
402
  lane?.timed.push({ at, event })
398
403
  if (lane !== undefined && event.kind === "tool" && event.category !== undefined) {
399
404
  const kind =
400
- event.category === "explore" || event.category === "edit" || event.category === "test"
405
+ event.category === "explore" ||
406
+ event.category === "edit" ||
407
+ event.category === "test" ||
408
+ event.category === "script"
401
409
  ? event.category
402
410
  : "other"
403
411
  lane.toolCalls[kind] += 1
@@ -808,6 +816,15 @@ const findingsOf = (facts: {
808
816
  ]
809
817
  : []
810
818
  )
819
+ const improvised = facts.stories.flatMap((story) =>
820
+ story.toolCalls.script >= 3
821
+ ? [
822
+ {
823
+ text: `${story.id}: ${story.toolCalls.script} ad-hoc scripts — a pack tool preset (llm4ts tool) would make this repeatable`
824
+ }
825
+ ]
826
+ : []
827
+ )
811
828
  const growth = facts.stories.flatMap((story) =>
812
829
  story.turns.promptGrowth &&
813
830
  story.turns.firstPrompt !== undefined &&
@@ -819,7 +836,7 @@ const findingsOf = (facts: {
819
836
  ]
820
837
  : []
821
838
  )
822
- return [...ranked, ...fabricated, ...growth]
839
+ return [...ranked, ...fabricated, ...improvised, ...growth]
823
840
  }
824
841
 
825
842
  const table = (
@@ -908,6 +925,7 @@ export const renderProfile = (report: ProfileReport): string => {
908
925
  story.toolCalls.explore +
909
926
  story.toolCalls.edit +
910
927
  story.toolCalls.test +
928
+ story.toolCalls.script +
911
929
  story.toolCalls.other ===
912
930
  0
913
931
  )
@@ -922,6 +940,7 @@ export const renderProfile = (report: ProfileReport): string => {
922
940
  "explore",
923
941
  "edit",
924
942
  "test",
943
+ "script",
925
944
  "other",
926
945
  "before 1st edit",
927
946
  "1st edit at"
@@ -932,6 +951,7 @@ export const renderProfile = (report: ProfileReport): string => {
932
951
  String(story.toolCalls.explore),
933
952
  String(story.toolCalls.edit),
934
953
  String(story.toolCalls.test),
954
+ String(story.toolCalls.script),
935
955
  String(story.toolCalls.other),
936
956
  story.firstEditMs === undefined ? "" : `${story.exploreBeforeEdit} explore`,
937
957
  story.firstEditMs === undefined ? "never" : duration(story.firstEditMs)
@@ -1091,6 +1111,7 @@ export const profileDelta = (before: ProfileReport, after: ProfileReport): Profi
1091
1111
  count("coder turns", (r) => sum(r.stories.map((s) => s.turns.count))),
1092
1112
  count("coder edits", (r) => sum(r.stories.map((s) => s.toolCalls.edit)), "none"),
1093
1113
  count("coder test runs", (r) => sum(r.stories.map((s) => s.toolCalls.test)), "none"),
1114
+ count("coder scripts", (r) => sum(r.stories.map((s) => s.toolCalls.script))),
1094
1115
  count("reviewer calls", (r) => roleCalls(r, "reviewer")),
1095
1116
  count("judge calls", (r) => roleCalls(r, "judge")),
1096
1117
  count("gate runs", (r) => sum(r.gates.map((g) => g.runs))),
@@ -0,0 +1,76 @@
1
+ import * as Effect from "effect/Effect"
2
+ import * as Schema from "effect/Schema"
3
+ import * as Layer from "effect/Layer"
4
+ import { SoapTransport, makeNodeSoapTransport } from "@llm4ts/flow/endpoint/Transport"
5
+ import { ToolContext, ToolReport, ToolSpec, specOf, type ToolShape } from "@llm4ts/flow/tools/Tool"
6
+ import { NodePlainFileStoreLive } from "./NodePlainFileStore.ts"
7
+
8
+ /**
9
+ * The main of a kit tool file (`kits/<kit>/tools/<name>.ts`, ADR 0048):
10
+ * `llm4ts tool` runs the file as a Node child and speaks this protocol —
11
+ * `--describe` prints the `ToolSpec`; otherwise the parsed arguments arrive
12
+ * as one JSON object on stdin and the `ToolReport` goes out on stdout. Exit
13
+ * 0 when the report is ok, 1 when it carries issues, 2 when the tool could
14
+ * not run (the error is JSON on stdout too, `{"error": …}`). `--project
15
+ * <root>` names the project the tool runs for (default: the current
16
+ * directory); secrets resolve from this process's environment.
17
+ */
18
+ export const runToolMain = (tool: ToolShape): void => {
19
+ if (process.argv.includes("--describe")) {
20
+ process.stdout.write(`${JSON.stringify(Schema.encodeSync(ToolSpec)(specOf(tool)))}\n`)
21
+ return
22
+ }
23
+ void readStdin().then((text) => {
24
+ let values: Record<string, unknown>
25
+ try {
26
+ const parsed: unknown = text.trim().length === 0 ? {} : JSON.parse(text)
27
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
28
+ throw new Error("stdin must hold one JSON object of arguments")
29
+ }
30
+ values = Object.fromEntries(Object.entries(parsed))
31
+ } catch (error) {
32
+ process.stdout.write(
33
+ `${JSON.stringify({ error: error instanceof Error ? error.message : String(error) })}\n`
34
+ )
35
+ process.exitCode = 2
36
+ return
37
+ }
38
+ const projectFlag = process.argv.indexOf("--project")
39
+ const projectRoot =
40
+ projectFlag >= 0 && process.argv[projectFlag + 1] !== undefined
41
+ ? process.argv[projectFlag + 1]
42
+ : process.cwd()
43
+ return Effect.runPromise(
44
+ tool.execute(values).pipe(
45
+ Effect.provide(
46
+ Layer.mergeAll(
47
+ NodePlainFileStoreLive,
48
+ Layer.succeed(ToolContext)({ projectRoot, environment: process.env }),
49
+ Layer.succeed(SoapTransport)(makeNodeSoapTransport())
50
+ )
51
+ ),
52
+ Effect.match({
53
+ onFailure: (error) => {
54
+ process.stdout.write(`${JSON.stringify({ error: error.message })}\n`)
55
+ process.exitCode = 2
56
+ },
57
+ onSuccess: (report) => {
58
+ process.stdout.write(`${JSON.stringify(Schema.encodeSync(ToolReport)(report))}\n`)
59
+ process.exitCode = report.ok ? 0 : 1
60
+ }
61
+ })
62
+ )
63
+ )
64
+ })
65
+ }
66
+
67
+ const readStdin = (): Promise<string> =>
68
+ new Promise((resolvePromise, rejectPromise) => {
69
+ const chunks: Array<Buffer> = []
70
+ process.stdin.on("data", (chunk: Buffer) => chunks.push(chunk))
71
+ process.stdin.on("end", () => resolvePromise(Buffer.concat(chunks).toString("utf8")))
72
+ process.stdin.on("error", rejectPromise)
73
+ })
74
+
75
+ /** The child's stdout as the parent reads it: a report, or the error it printed. */
76
+ export const ChildToolOutput = Schema.Union([Schema.Struct({ error: Schema.String }), ToolReport])
package/src/Tools.ts ADDED
@@ -0,0 +1,204 @@
1
+ import { execFileSync } from "node:child_process"
2
+ import { existsSync } from "node:fs"
3
+ import { dirname, isAbsolute, join, resolve } from "node:path"
4
+ import * as Effect from "effect/Effect"
5
+ import * as Schema from "effect/Schema"
6
+ import { builtinTools } from "@llm4ts/flow/tools/Builtin"
7
+ import type { ToolReport, ToolSpec } from "@llm4ts/flow/tools/Tool"
8
+ import { isToolName, renderUsage, specOf, type ToolShape } from "@llm4ts/flow/tools/Tool"
9
+ import type { ToolPreset } from "@llm4ts/flow/Pack"
10
+ import type { DiscoveredKit } from "./Kits.ts"
11
+
12
+ /**
13
+ * The tool catalog (ADR 0048): the built-in tools, every discovered kit's
14
+ * `tools/<name>.ts`, and the presets of the packs in reach. A kit tool with
15
+ * a built-in's name shadows it, project kits first, as flows do.
16
+ */
17
+ export type CatalogEntry =
18
+ | { readonly _tag: "builtin"; readonly name: string; readonly tool: ToolShape }
19
+ | {
20
+ readonly _tag: "kit"
21
+ readonly name: string
22
+ readonly kit: DiscoveredKit
23
+ readonly file: string
24
+ }
25
+
26
+ export interface ToolCatalog {
27
+ readonly entries: ReadonlyArray<CatalogEntry>
28
+ readonly presets: ReadonlyArray<ToolPreset & { readonly pack: string }>
29
+ }
30
+
31
+ const tierRank = { project: 0, global: 1, builtin: 2 } as const
32
+
33
+ export const catalogEntries = (kits: ReadonlyArray<DiscoveredKit>): ReadonlyArray<CatalogEntry> => {
34
+ const byName = new Map<string, CatalogEntry>()
35
+ for (const tool of builtinTools) {
36
+ byName.set(tool.name, { _tag: "builtin", name: tool.name, tool })
37
+ }
38
+ const ordered = [...kits].sort((left, right) => tierRank[right.tier] - tierRank[left.tier])
39
+ for (const kit of ordered) {
40
+ for (const name of kit.tools) {
41
+ if (!isToolName(name)) {
42
+ continue
43
+ }
44
+ const file = ["ts", "js"]
45
+ .map((extension) => join(kit.root, "tools", `${name}.${extension}`))
46
+ .find((candidate) => existsSync(candidate))
47
+ if (file !== undefined) {
48
+ byName.set(name, { _tag: "kit", name, kit, file })
49
+ }
50
+ }
51
+ }
52
+ return [...byName.values()].sort((left, right) => left.name.localeCompare(right.name))
53
+ }
54
+
55
+ export const findEntry = (
56
+ catalog: ReadonlyArray<CatalogEntry>,
57
+ name: string
58
+ ): CatalogEntry | undefined => catalog.find((entry) => entry.name === name)
59
+
60
+ /**
61
+ * A preset is `tool --flag value …`: the catalog tool, then its arguments,
62
+ * with whatever the caller appends. A preset never names another preset.
63
+ */
64
+ export interface ResolvedPreset {
65
+ readonly preset: ToolPreset & { readonly pack: string }
66
+ readonly entry: CatalogEntry
67
+ readonly argv: ReadonlyArray<string>
68
+ }
69
+
70
+ export class PresetError extends Schema.TaggedError<PresetError>()("PresetError", {
71
+ preset: Schema.String,
72
+ message: Schema.String
73
+ }) {}
74
+
75
+ export const resolvePreset = (
76
+ catalog: ToolCatalog,
77
+ name: string,
78
+ extra: ReadonlyArray<string>
79
+ ): Effect.Effect<ResolvedPreset | undefined, PresetError> => {
80
+ const preset = catalog.presets.find((candidate) => candidate.name === name)
81
+ if (preset === undefined) {
82
+ return Effect.succeed(undefined)
83
+ }
84
+ const [toolName, ...rest] = preset.command
85
+ if (toolName === undefined) {
86
+ return Effect.fail(new PresetError({ preset: name, message: "preset names no tool" }))
87
+ }
88
+ const entry = findEntry(catalog.entries, toolName)
89
+ if (entry === undefined) {
90
+ return Effect.fail(
91
+ new PresetError({
92
+ preset: name,
93
+ message: `preset runs '${toolName}', which is not a catalog tool (run \`llm4ts tool list\`)`
94
+ })
95
+ )
96
+ }
97
+ return Effect.succeed({ preset, entry, argv: [...rest, ...extra] })
98
+ }
99
+
100
+ /**
101
+ * The repository a worktree belongs to: `git rev-parse --git-common-dir`
102
+ * points back at the main checkout from any worktree, so the project tier
103
+ * (`<repo>/.llm4ts/kits`) is found without a file in the worktree or an
104
+ * environment variable the executor would strip (ADR 0048). Falls back to
105
+ * `cwd` outside a repository.
106
+ */
107
+ export const projectRootOf = (cwd: string): string => {
108
+ try {
109
+ const common = execFileSync("git", ["rev-parse", "--git-common-dir"], {
110
+ cwd,
111
+ encoding: "utf8",
112
+ stdio: ["ignore", "pipe", "ignore"]
113
+ }).trim()
114
+ if (common.length === 0) {
115
+ return cwd
116
+ }
117
+ const absolute = isAbsolute(common) ? common : resolve(cwd, common)
118
+ return dirname(absolute)
119
+ } catch {
120
+ return cwd
121
+ }
122
+ }
123
+
124
+ /** One line per catalog entry and preset, for `llm4ts tool list`. */
125
+ export const renderCatalog = (
126
+ catalog: ToolCatalog,
127
+ specs: ReadonlyMap<string, ToolSpec>
128
+ ): string => {
129
+ const lines: Array<string> = []
130
+ for (const entry of catalog.entries) {
131
+ const spec = specs.get(entry.name)
132
+ const origin = entry._tag === "builtin" ? "" : ` [${entry.kit.name} kit]`
133
+ lines.push(
134
+ spec === undefined
135
+ ? `${entry.name}${origin}`
136
+ : `${renderUsage(spec)}${origin}\n ${spec.purpose}`
137
+ )
138
+ }
139
+ if (catalog.presets.length > 0) {
140
+ lines.push("", "Presets (pack: command):")
141
+ for (const preset of catalog.presets) {
142
+ lines.push(` ${preset.name} (${preset.pack}): ${preset.command.join(" ")}`)
143
+ }
144
+ }
145
+ return lines.join("\n")
146
+ }
147
+
148
+ export const catalogJson = (
149
+ catalog: ToolCatalog,
150
+ specs: ReadonlyMap<string, ToolSpec>
151
+ ): typeof Schema.Json.Type => ({
152
+ tools: catalog.entries.map((entry) => {
153
+ const spec = specs.get(entry.name)
154
+ return {
155
+ name: entry.name,
156
+ origin: entry._tag === "builtin" ? "builtin" : `kit:${entry.kit.name}`,
157
+ ...(spec === undefined ? {} : { purpose: spec.purpose, usage: renderUsage(spec) })
158
+ }
159
+ }),
160
+ presets: catalog.presets.map((preset) => ({
161
+ name: preset.name,
162
+ pack: preset.pack,
163
+ command: preset.command.join(" ")
164
+ }))
165
+ })
166
+
167
+ /** Exit status for a report: 0 ok, 1 issues. Errors exit 2 (the CLI's own). */
168
+ export const reportExitCode = (report: ToolReport): number => (report.ok ? 0 : 1)
169
+
170
+ /**
171
+ * The paragraph a coder's brief carries (ADR 0048): one rule, then each
172
+ * preset of the story's pack with the command to run. `LLM4TS_TOOL_BRIEF=off`
173
+ * drops it, for a run without the catalog to compare against.
174
+ */
175
+ export const toolBrief = (
176
+ presets: ReadonlyArray<ToolPreset>,
177
+ specs: ReadonlyMap<string, ToolSpec>,
178
+ environment: Readonly<Record<string, string | undefined>> = process.env
179
+ ): string | undefined => {
180
+ if (environment.LLM4TS_TOOL_BRIEF?.trim().toLowerCase() === "off") {
181
+ return undefined
182
+ }
183
+ const lines = [
184
+ "Tools: for validating a document, comparing two outputs, or checking a contract, run the",
185
+ "project's tool instead of writing a script — `llm4ts tool <name> [--flag value]` prints JSON",
186
+ "(ok, summary, issues). `llm4ts tool list` shows every tool; `llm4ts tool describe <name>`",
187
+ "its arguments. Never write a Python or Node one-liner for a job a tool covers."
188
+ ]
189
+ if (presets.length > 0) {
190
+ lines.push("", "This pack's presets (run them by name from the worktree root):")
191
+ for (const preset of presets) {
192
+ const [toolName, ...rest] = preset.command
193
+ const spec = toolName === undefined ? undefined : specs.get(toolName)
194
+ const fixed = rest.length === 0 ? "" : ` (fixed: ${rest.join(" ")})`
195
+ const purpose = spec === undefined ? "" : ` — ${spec.purpose}`
196
+ lines.push(`- \`llm4ts tool ${preset.name}\`${fixed}${purpose}`)
197
+ }
198
+ }
199
+ return lines.join("\n")
200
+ }
201
+
202
+ /** Specs of the built-in tools, known without running anything. */
203
+ export const builtinSpecs = (): ReadonlyMap<string, ToolSpec> =>
204
+ new Map(builtinTools.map((tool) => [tool.name, specOf(tool)]))