patchwork-os 0.2.0-beta.10.canary.98 → 0.2.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +20 -1
  2. package/dist/adapters/grok.js +6 -1
  3. package/dist/adapters/grok.js.map +1 -1
  4. package/dist/approvalHttp.js +61 -66
  5. package/dist/approvalHttp.js.map +1 -1
  6. package/dist/bridge.js +3 -2
  7. package/dist/bridge.js.map +1 -1
  8. package/dist/claudeOrchestrator.js +15 -0
  9. package/dist/claudeOrchestrator.js.map +1 -1
  10. package/dist/commands/connect.d.ts +47 -0
  11. package/dist/commands/connect.js +419 -0
  12. package/dist/commands/connect.js.map +1 -0
  13. package/dist/commands/patchworkInit.d.ts +7 -0
  14. package/dist/commands/patchworkInit.js +26 -0
  15. package/dist/commands/patchworkInit.js.map +1 -1
  16. package/dist/commands/recipe.d.ts +14 -0
  17. package/dist/commands/recipe.js +51 -0
  18. package/dist/commands/recipe.js.map +1 -1
  19. package/dist/commands/recipeInstall.js +15 -0
  20. package/dist/commands/recipeInstall.js.map +1 -1
  21. package/dist/connectors/postgres.d.ts +7 -0
  22. package/dist/connectors/postgres.js +16 -2
  23. package/dist/connectors/postgres.js.map +1 -1
  24. package/dist/connectors/snowflake.js +6 -0
  25. package/dist/connectors/snowflake.js.map +1 -1
  26. package/dist/connectors/tokenStorage.d.ts +8 -0
  27. package/dist/connectors/tokenStorage.js +42 -3
  28. package/dist/connectors/tokenStorage.js.map +1 -1
  29. package/dist/drivers/claude/api.js +15 -2
  30. package/dist/drivers/claude/api.js.map +1 -1
  31. package/dist/drivers/claude/subprocess.js +1 -29
  32. package/dist/drivers/claude/subprocess.js.map +1 -1
  33. package/dist/drivers/gemini/index.js +9 -5
  34. package/dist/drivers/gemini/index.js.map +1 -1
  35. package/dist/drivers/openai/index.js +29 -4
  36. package/dist/drivers/openai/index.js.map +1 -1
  37. package/dist/drivers/outputCap.d.ts +27 -0
  38. package/dist/drivers/outputCap.js +50 -0
  39. package/dist/drivers/outputCap.js.map +1 -0
  40. package/dist/featureFlags.d.ts +9 -0
  41. package/dist/featureFlags.js +16 -0
  42. package/dist/featureFlags.js.map +1 -1
  43. package/dist/fp/commandDescription.d.ts +6 -0
  44. package/dist/fp/commandDescription.js +4 -4
  45. package/dist/fp/commandDescription.js.map +1 -1
  46. package/dist/fp/policyParser.js +13 -7
  47. package/dist/fp/policyParser.js.map +1 -1
  48. package/dist/haltPushDispatch.js +7 -22
  49. package/dist/haltPushDispatch.js.map +1 -1
  50. package/dist/index.js +148 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/mcpRoutes.js +1 -1
  53. package/dist/mcpRoutes.js.map +1 -1
  54. package/dist/oauth.d.ts +13 -0
  55. package/dist/oauth.js +34 -1
  56. package/dist/oauth.js.map +1 -1
  57. package/dist/recipeOrchestration.js +10 -0
  58. package/dist/recipeOrchestration.js.map +1 -1
  59. package/dist/recipeRoutes.d.ts +39 -0
  60. package/dist/recipeRoutes.js +214 -12
  61. package/dist/recipeRoutes.js.map +1 -1
  62. package/dist/recipes/agentExecutor.d.ts +20 -0
  63. package/dist/recipes/agentExecutor.js +32 -10
  64. package/dist/recipes/agentExecutor.js.map +1 -1
  65. package/dist/recipes/chainedRunner.d.ts +41 -2
  66. package/dist/recipes/chainedRunner.js +134 -6
  67. package/dist/recipes/chainedRunner.js.map +1 -1
  68. package/dist/recipes/connectorPreflight.js +30 -0
  69. package/dist/recipes/connectorPreflight.js.map +1 -1
  70. package/dist/recipes/haltCategory.d.ts +5 -0
  71. package/dist/recipes/haltCategory.js +7 -1
  72. package/dist/recipes/haltCategory.js.map +1 -1
  73. package/dist/recipes/judgeVerdict.d.ts +10 -0
  74. package/dist/recipes/judgeVerdict.js +10 -0
  75. package/dist/recipes/judgeVerdict.js.map +1 -1
  76. package/dist/recipes/names.d.ts +5 -0
  77. package/dist/recipes/names.js +10 -5
  78. package/dist/recipes/names.js.map +1 -1
  79. package/dist/recipes/parser.js +32 -9
  80. package/dist/recipes/parser.js.map +1 -1
  81. package/dist/recipes/pricing/costRouter.d.ts +43 -0
  82. package/dist/recipes/pricing/costRouter.js +44 -0
  83. package/dist/recipes/pricing/costRouter.js.map +1 -0
  84. package/dist/recipes/pricing/priceTable.d.ts +76 -0
  85. package/dist/recipes/pricing/priceTable.js +144 -0
  86. package/dist/recipes/pricing/priceTable.js.map +1 -0
  87. package/dist/recipes/runBudget.d.ts +82 -32
  88. package/dist/recipes/runBudget.js +182 -49
  89. package/dist/recipes/runBudget.js.map +1 -1
  90. package/dist/recipes/schema.d.ts +25 -4
  91. package/dist/recipes/schemaGenerator.d.ts +9 -0
  92. package/dist/recipes/schemaGenerator.js +386 -75
  93. package/dist/recipes/schemaGenerator.js.map +1 -1
  94. package/dist/recipes/simulation/aggregateRunRisk.d.ts +43 -0
  95. package/dist/recipes/simulation/aggregateRunRisk.js +117 -0
  96. package/dist/recipes/simulation/aggregateRunRisk.js.map +1 -0
  97. package/dist/recipes/simulation/costProjector.d.ts +32 -0
  98. package/dist/recipes/simulation/costProjector.js +194 -0
  99. package/dist/recipes/simulation/costProjector.js.map +1 -0
  100. package/dist/recipes/simulation/sideEffects.d.ts +32 -0
  101. package/dist/recipes/simulation/sideEffects.js +62 -0
  102. package/dist/recipes/simulation/sideEffects.js.map +1 -0
  103. package/dist/recipes/simulation/simulate.d.ts +36 -0
  104. package/dist/recipes/simulation/simulate.js +264 -0
  105. package/dist/recipes/simulation/simulate.js.map +1 -0
  106. package/dist/recipes/simulation/simulateMockedRun.d.ts +52 -0
  107. package/dist/recipes/simulation/simulateMockedRun.js +72 -0
  108. package/dist/recipes/simulation/simulateMockedRun.js.map +1 -0
  109. package/dist/recipes/simulation/synthesizeMockedOutputs.d.ts +31 -0
  110. package/dist/recipes/simulation/synthesizeMockedOutputs.js +50 -0
  111. package/dist/recipes/simulation/synthesizeMockedOutputs.js.map +1 -0
  112. package/dist/recipes/simulation/types.d.ts +198 -0
  113. package/dist/recipes/simulation/types.js +30 -0
  114. package/dist/recipes/simulation/types.js.map +1 -0
  115. package/dist/recipes/stepObservation.d.ts +12 -0
  116. package/dist/recipes/stepObservation.js +21 -1
  117. package/dist/recipes/stepObservation.js.map +1 -1
  118. package/dist/recipes/tools/airtable.d.ts +15 -0
  119. package/dist/recipes/tools/airtable.js +240 -0
  120. package/dist/recipes/tools/airtable.js.map +1 -0
  121. package/dist/recipes/tools/caldiy.d.ts +13 -0
  122. package/dist/recipes/tools/caldiy.js +214 -0
  123. package/dist/recipes/tools/caldiy.js.map +1 -0
  124. package/dist/recipes/tools/circleci.d.ts +10 -0
  125. package/dist/recipes/tools/circleci.js +204 -0
  126. package/dist/recipes/tools/circleci.js.map +1 -0
  127. package/dist/recipes/tools/cloudflare.d.ts +13 -0
  128. package/dist/recipes/tools/cloudflare.js +211 -0
  129. package/dist/recipes/tools/cloudflare.js.map +1 -0
  130. package/dist/recipes/tools/docs.d.ts +18 -0
  131. package/dist/recipes/tools/docs.js +94 -0
  132. package/dist/recipes/tools/docs.js.map +1 -0
  133. package/dist/recipes/tools/elasticsearch.d.ts +11 -0
  134. package/dist/recipes/tools/elasticsearch.js +156 -0
  135. package/dist/recipes/tools/elasticsearch.js.map +1 -0
  136. package/dist/recipes/tools/figma.d.ts +12 -0
  137. package/dist/recipes/tools/figma.js +194 -0
  138. package/dist/recipes/tools/figma.js.map +1 -0
  139. package/dist/recipes/tools/grafana.d.ts +11 -0
  140. package/dist/recipes/tools/grafana.js +216 -0
  141. package/dist/recipes/tools/grafana.js.map +1 -0
  142. package/dist/recipes/tools/http.d.ts +1 -1
  143. package/dist/recipes/tools/http.js +10 -28
  144. package/dist/recipes/tools/http.js.map +1 -1
  145. package/dist/recipes/tools/index.d.ts +26 -0
  146. package/dist/recipes/tools/index.js +26 -0
  147. package/dist/recipes/tools/index.js.map +1 -1
  148. package/dist/recipes/tools/monday.d.ts +22 -0
  149. package/dist/recipes/tools/monday.js +242 -0
  150. package/dist/recipes/tools/monday.js.map +1 -0
  151. package/dist/recipes/tools/obsidian.d.ts +15 -0
  152. package/dist/recipes/tools/obsidian.js +172 -0
  153. package/dist/recipes/tools/obsidian.js.map +1 -0
  154. package/dist/recipes/tools/paystack.d.ts +11 -0
  155. package/dist/recipes/tools/paystack.js +211 -0
  156. package/dist/recipes/tools/paystack.js.map +1 -0
  157. package/dist/recipes/tools/pipedrive.d.ts +16 -0
  158. package/dist/recipes/tools/pipedrive.js +233 -0
  159. package/dist/recipes/tools/pipedrive.js.map +1 -0
  160. package/dist/recipes/tools/postgres.d.ts +15 -0
  161. package/dist/recipes/tools/postgres.js +185 -0
  162. package/dist/recipes/tools/postgres.js.map +1 -0
  163. package/dist/recipes/tools/posthog.d.ts +16 -0
  164. package/dist/recipes/tools/posthog.js +219 -0
  165. package/dist/recipes/tools/posthog.js.map +1 -0
  166. package/dist/recipes/tools/redis.d.ts +9 -0
  167. package/dist/recipes/tools/redis.js +140 -0
  168. package/dist/recipes/tools/redis.js.map +1 -0
  169. package/dist/recipes/tools/resend.d.ts +8 -0
  170. package/dist/recipes/tools/resend.js +153 -0
  171. package/dist/recipes/tools/resend.js.map +1 -0
  172. package/dist/recipes/tools/salesforce.d.ts +16 -0
  173. package/dist/recipes/tools/salesforce.js +184 -0
  174. package/dist/recipes/tools/salesforce.js.map +1 -0
  175. package/dist/recipes/tools/sendgrid.d.ts +9 -0
  176. package/dist/recipes/tools/sendgrid.js +174 -0
  177. package/dist/recipes/tools/sendgrid.js.map +1 -0
  178. package/dist/recipes/tools/shopify.d.ts +16 -0
  179. package/dist/recipes/tools/shopify.js +265 -0
  180. package/dist/recipes/tools/shopify.js.map +1 -0
  181. package/dist/recipes/tools/snowflake.d.ts +16 -0
  182. package/dist/recipes/tools/snowflake.js +173 -0
  183. package/dist/recipes/tools/snowflake.js.map +1 -0
  184. package/dist/recipes/tools/stripe.js +13 -12
  185. package/dist/recipes/tools/stripe.js.map +1 -1
  186. package/dist/recipes/tools/supabase.d.ts +9 -0
  187. package/dist/recipes/tools/supabase.js +132 -0
  188. package/dist/recipes/tools/supabase.js.map +1 -0
  189. package/dist/recipes/tools/todoist.d.ts +15 -0
  190. package/dist/recipes/tools/todoist.js +227 -0
  191. package/dist/recipes/tools/todoist.js.map +1 -0
  192. package/dist/recipes/tools/twilio.d.ts +11 -0
  193. package/dist/recipes/tools/twilio.js +180 -0
  194. package/dist/recipes/tools/twilio.js.map +1 -0
  195. package/dist/recipes/tools/vercel.d.ts +9 -0
  196. package/dist/recipes/tools/vercel.js +145 -0
  197. package/dist/recipes/tools/vercel.js.map +1 -0
  198. package/dist/recipes/tools/webflow.d.ts +11 -0
  199. package/dist/recipes/tools/webflow.js +243 -0
  200. package/dist/recipes/tools/webflow.js.map +1 -0
  201. package/dist/recipes/tools/woocommerce.d.ts +18 -0
  202. package/dist/recipes/tools/woocommerce.js +259 -0
  203. package/dist/recipes/tools/woocommerce.js.map +1 -0
  204. package/dist/recipes/tools/wrapConnectorExecute.d.ts +25 -0
  205. package/dist/recipes/tools/wrapConnectorExecute.js +37 -0
  206. package/dist/recipes/tools/wrapConnectorExecute.js.map +1 -0
  207. package/dist/recipes/validation.js +264 -0
  208. package/dist/recipes/validation.js.map +1 -1
  209. package/dist/recipes/yamlRunner.d.ts +112 -3
  210. package/dist/recipes/yamlRunner.js +482 -19
  211. package/dist/recipes/yamlRunner.js.map +1 -1
  212. package/dist/runLog.d.ts +46 -0
  213. package/dist/runLog.js +4 -0
  214. package/dist/runLog.js.map +1 -1
  215. package/dist/schemas/recipe.v1.json +217 -11
  216. package/dist/server.d.ts +3 -0
  217. package/dist/server.js +4 -0
  218. package/dist/server.js.map +1 -1
  219. package/dist/streamableHttp.js +3 -2
  220. package/dist/streamableHttp.js.map +1 -1
  221. package/dist/tools/gitWrite.js +5 -1
  222. package/dist/tools/gitWrite.js.map +1 -1
  223. package/dist/tools/terminal.js +15 -49
  224. package/dist/tools/terminal.js.map +1 -1
  225. package/dist/transport.d.ts +1 -0
  226. package/dist/transport.js +7 -0
  227. package/dist/transport.js.map +1 -1
  228. package/package.json +3 -3
  229. package/scripts/mcp-stdio-shim.cjs +218 -84
  230. package/templates/recipes/incident-to-pr.yaml +187 -0
@@ -5,6 +5,17 @@ import { defaultDeprecationWarn, normalizeRecipeForRuntime, } from "./migrations
5
5
  import { RECIPE_NAME_RE, RECIPE_VAR_NAME_RE, RESERVED_VAR_NAMES, } from "./names.js";
6
6
  import { generateSchemaSet } from "./schemaGenerator.js";
7
7
  import { listToolOutputContextKeys } from "./toolRegistry.js";
8
+ /** Driver ids a `downshift` candidate may name (mirrors the JSON-schema enum). */
9
+ const DOWNSHIFT_KNOWN_DRIVERS = new Set([
10
+ "claude",
11
+ "claude-code",
12
+ "api",
13
+ "openai",
14
+ "grok",
15
+ "gemini",
16
+ "anthropic",
17
+ "local",
18
+ ]);
8
19
  export function validateRecipeDefinition(recipe) {
9
20
  const issues = [];
10
21
  const normalizedRecipe = normalizeRecipeForValidation(recipe);
@@ -13,6 +24,17 @@ export function validateRecipeDefinition(recipe) {
13
24
  }
14
25
  else {
15
26
  const r = normalizedRecipe;
27
+ // Root-level `vars:` is silently dropped at runtime — the runner reads
28
+ // only `trigger.vars` / `trigger.inputs` (PR#259 trap). Warn so the
29
+ // author moves it under `trigger:` instead of debugging empty {{vars}}.
30
+ if (r.vars !== undefined) {
31
+ issues.push({
32
+ level: "warning",
33
+ message: "Top-level 'vars' is ignored at runtime — only 'trigger.vars' / 'trigger.inputs' are read. Move declared variables under 'trigger:'.",
34
+ code: "root-vars-ignored",
35
+ path: "vars",
36
+ });
37
+ }
16
38
  if (!r.name || typeof r.name !== "string") {
17
39
  issues.push({
18
40
  level: "error",
@@ -95,8 +117,25 @@ export function validateRecipeDefinition(recipe) {
95
117
  });
96
118
  }
97
119
  else {
120
+ const seenStepIds = new Set();
98
121
  for (let i = 0; i < r.steps.length; i++) {
99
122
  const step = r.steps[i];
123
+ // Duplicate step ids break dependency wiring (`awaits:`, `into:`
124
+ // overwrite, output keying) — the runner keys outputs by id and a
125
+ // second step with the same id silently clobbers the first. Reject.
126
+ if (typeof step.id === "string") {
127
+ if (seenStepIds.has(step.id)) {
128
+ issues.push({
129
+ level: "error",
130
+ message: `Step ${i + 1}: duplicate step id '${step.id}' — step ids must be unique`,
131
+ code: "duplicate-step-id",
132
+ path: `steps.${i}.id`,
133
+ });
134
+ }
135
+ else {
136
+ seenStepIds.add(step.id);
137
+ }
138
+ }
100
139
  const hasTool = typeof step.tool === "string";
101
140
  const hasAgent = !!step.agent;
102
141
  const hasNestedRecipe = typeof step.recipe === "string" || typeof step.chain === "string";
@@ -114,6 +153,116 @@ export function validateRecipeDefinition(recipe) {
114
153
  message: `Step ${i + 1}: Agent step missing 'prompt'`,
115
154
  });
116
155
  }
156
+ // `driver: claude|anthropic` routes to the Anthropic API (needs
157
+ // ANTHROPIC_API_KEY), NOT the Claude Code subscription — a common
158
+ // trap. Warn at lint time when the key is absent so the step
159
+ // doesn't silently no-op ("[agent step skipped: ANTHROPIC_API_KEY
160
+ // not set]") at run time. Use `driver: subprocess`/`claude-code`
161
+ // for the subscription path.
162
+ if ((agent.driver === "claude" || agent.driver === "anthropic") &&
163
+ !process.env.ANTHROPIC_API_KEY) {
164
+ issues.push({
165
+ level: "warning",
166
+ message: `Step ${i + 1}: driver '${String(agent.driver)}' uses the Anthropic API but ANTHROPIC_API_KEY is not set — the step will be skipped at run time. Set ANTHROPIC_API_KEY, or use 'driver: subprocess' for the Claude Code subscription.`,
167
+ code: "driver-api-key-required",
168
+ path: `steps.${i}.agent.driver`,
169
+ });
170
+ }
171
+ // OPT-IN judge→refine loop fields. Both `max_revisions` and
172
+ // `on_exhausted` are meaningless without a `kind: "judge"` step
173
+ // that points at an upstream step via `reviews:` — a refine loop
174
+ // needs an agent output to re-run. Flag misuse as an error so
175
+ // `recipe lint` / `doctor` catch it before any run.
176
+ const hasRefineField = agent.max_revisions !== undefined ||
177
+ agent.on_exhausted !== undefined;
178
+ if (hasRefineField) {
179
+ if (agent.kind !== "judge") {
180
+ issues.push({
181
+ level: "error",
182
+ message: `Step ${i + 1}: 'max_revisions'/'on_exhausted' require 'kind: judge' (the judge→refine loop only applies to judge steps)`,
183
+ code: "refine-requires-judge",
184
+ path: `steps.${i}.agent`,
185
+ });
186
+ }
187
+ else if (typeof agent.reviews !== "string" ||
188
+ agent.reviews.length === 0) {
189
+ issues.push({
190
+ level: "error",
191
+ message: `Step ${i + 1}: 'max_revisions'/'on_exhausted' require 'reviews' to be set (the loop re-runs the reviewed step)`,
192
+ code: "refine-requires-reviews",
193
+ path: `steps.${i}.agent`,
194
+ });
195
+ }
196
+ }
197
+ if (agent.max_revisions !== undefined) {
198
+ const mr = agent.max_revisions;
199
+ if (typeof mr !== "number" || !Number.isInteger(mr) || mr < 0) {
200
+ issues.push({
201
+ level: "error",
202
+ message: `Step ${i + 1}: 'max_revisions' must be a non-negative integer (got ${JSON.stringify(mr)})`,
203
+ code: "refine-max-revisions-invalid",
204
+ path: `steps.${i}.agent.max_revisions`,
205
+ });
206
+ }
207
+ }
208
+ if (agent.on_exhausted !== undefined &&
209
+ agent.on_exhausted !== "halt" &&
210
+ agent.on_exhausted !== "proceed") {
211
+ issues.push({
212
+ level: "error",
213
+ message: `Step ${i + 1}: invalid 'on_exhausted' '${String(agent.on_exhausted)}' — must be 'halt' or 'proceed'`,
214
+ code: "refine-on-exhausted-enum",
215
+ path: `steps.${i}.agent.on_exhausted`,
216
+ });
217
+ }
218
+ // OPT-IN cost-aware routing (Phase 4). `downshift` is an ordered list
219
+ // of {driver?, model?} cheaper fallbacks; each entry must set at
220
+ // least one field and any driver must be dispatch-known.
221
+ if (agent.downshift !== undefined) {
222
+ if (!Array.isArray(agent.downshift)) {
223
+ issues.push({
224
+ level: "error",
225
+ message: `Step ${i + 1}: 'downshift' must be an array of {driver?, model?} candidates`,
226
+ code: "downshift-type",
227
+ path: `steps.${i}.agent.downshift`,
228
+ });
229
+ }
230
+ else {
231
+ agent.downshift.forEach((entry, di) => {
232
+ if (typeof entry !== "object" ||
233
+ entry === null ||
234
+ Array.isArray(entry)) {
235
+ issues.push({
236
+ level: "error",
237
+ message: `Step ${i + 1}: downshift[${di}] must be an object with 'driver' and/or 'model'`,
238
+ code: "downshift-entry-type",
239
+ path: `steps.${i}.agent.downshift.${di}`,
240
+ });
241
+ return;
242
+ }
243
+ const e = entry;
244
+ const hasDriver = typeof e.driver === "string";
245
+ const hasModel = typeof e.model === "string";
246
+ if (!hasDriver && !hasModel) {
247
+ issues.push({
248
+ level: "error",
249
+ message: `Step ${i + 1}: downshift[${di}] must set at least one of 'driver' or 'model'`,
250
+ code: "downshift-entry-empty",
251
+ path: `steps.${i}.agent.downshift.${di}`,
252
+ });
253
+ }
254
+ if (hasDriver &&
255
+ !DOWNSHIFT_KNOWN_DRIVERS.has(e.driver)) {
256
+ issues.push({
257
+ level: "error",
258
+ message: `Step ${i + 1}: downshift[${di}].driver '${String(e.driver)}' is not a known driver`,
259
+ code: "downshift-driver-enum",
260
+ path: `steps.${i}.agent.downshift.${di}.driver`,
261
+ });
262
+ }
263
+ });
264
+ }
265
+ }
117
266
  }
118
267
  // Unconditional risk-enum check. `risk` was previously never
119
268
  // validated here (the parser casts it; the JSON-schema enum is
@@ -141,6 +290,8 @@ export function validateRecipeDefinition(recipe) {
141
290
  validateAwaitsTargets(r, recipe, issues);
142
291
  validateTemplateReferences(r, issues, collectParallelEachKeys(recipe));
143
292
  }
293
+ validateRecipeBudget(r, issues);
294
+ validateRecipeErrorPolicy(r, issues);
144
295
  }
145
296
  if (isEnabled(FLAG_SCHEMA_LINT)) {
146
297
  issues.push(...validateRecipeSchema(normalizedRecipe));
@@ -159,6 +310,119 @@ export function validateRecipeDefinition(recipe) {
159
310
  errors,
160
311
  };
161
312
  }
313
+ /**
314
+ * Validate the optional recipe `budget` block. Closes a real gap: before
315
+ * cost-routing Phase 3 there was NO budget validation, so `tokensMax: -5` or
316
+ * `tokensMax: "lots"` passed lint silently. A present cap must be a positive
317
+ * number; `onBreach` must be the halt|warn enum.
318
+ */
319
+ function validateRecipeBudget(r, issues) {
320
+ const budget = r.budget;
321
+ if (budget === undefined)
322
+ return;
323
+ if (typeof budget !== "object" || budget === null || Array.isArray(budget)) {
324
+ issues.push({
325
+ level: "error",
326
+ message: "'budget' must be an object",
327
+ path: "budget",
328
+ code: "budget-type",
329
+ });
330
+ return;
331
+ }
332
+ const b = budget;
333
+ for (const key of ["tokensMax", "usdMax"]) {
334
+ const value = b[key];
335
+ if (value === undefined)
336
+ continue;
337
+ if (typeof value !== "number" || !(value > 0)) {
338
+ issues.push({
339
+ level: "error",
340
+ message: `budget.${key} must be a positive number`,
341
+ path: `budget.${key}`,
342
+ code: "budget-positive",
343
+ });
344
+ }
345
+ }
346
+ if (b.onBreach !== undefined &&
347
+ b.onBreach !== "halt" &&
348
+ b.onBreach !== "warn") {
349
+ issues.push({
350
+ level: "error",
351
+ message: "budget.onBreach must be 'halt' or 'warn'",
352
+ path: "budget.onBreach",
353
+ code: "budget-onbreach-enum",
354
+ });
355
+ }
356
+ if (b.estimateUnmeasured !== undefined &&
357
+ typeof b.estimateUnmeasured !== "boolean") {
358
+ issues.push({
359
+ level: "error",
360
+ message: "budget.estimateUnmeasured must be a boolean",
361
+ path: "budget.estimateUnmeasured",
362
+ code: "budget-estimate-type",
363
+ });
364
+ }
365
+ }
366
+ /**
367
+ * Validate the optional recipe `on_error` policy block. Audit 2026-06-03
368
+ * (MEDIUM): the hand-rolled lint never checked it, so a typo'd `fallback`
369
+ * enum, a non-numeric `retry`, or a negative `retry` (which the runtime
370
+ * now clamps — see chainedRunner.withRetry, audit HIGH #8) passed lint
371
+ * silently. Mirrors validateRecipeBudget. `retry` is a non-negative integer;
372
+ * `retryDelay` a non-negative number (ms); `fallback` the documented enum.
373
+ */
374
+ function validateRecipeErrorPolicy(r, issues) {
375
+ const onError = r.on_error;
376
+ if (onError === undefined)
377
+ return;
378
+ if (typeof onError !== "object" ||
379
+ onError === null ||
380
+ Array.isArray(onError)) {
381
+ issues.push({
382
+ level: "error",
383
+ message: "'on_error' must be an object",
384
+ path: "on_error",
385
+ code: "on-error-type",
386
+ });
387
+ return;
388
+ }
389
+ const e = onError;
390
+ if (e.retry !== undefined) {
391
+ if (typeof e.retry !== "number" ||
392
+ !Number.isInteger(e.retry) ||
393
+ e.retry < 0) {
394
+ issues.push({
395
+ level: "error",
396
+ message: "on_error.retry must be a non-negative integer",
397
+ path: "on_error.retry",
398
+ code: "on-error-retry",
399
+ });
400
+ }
401
+ }
402
+ if (e.retryDelay !== undefined) {
403
+ if (typeof e.retryDelay !== "number" ||
404
+ !Number.isFinite(e.retryDelay) ||
405
+ e.retryDelay < 0) {
406
+ issues.push({
407
+ level: "error",
408
+ message: "on_error.retryDelay must be a non-negative number (ms)",
409
+ path: "on_error.retryDelay",
410
+ code: "on-error-retrydelay",
411
+ });
412
+ }
413
+ }
414
+ if (e.fallback !== undefined &&
415
+ e.fallback !== "log_only" &&
416
+ e.fallback !== "abort" &&
417
+ e.fallback !== "deliver_original") {
418
+ issues.push({
419
+ level: "error",
420
+ message: "on_error.fallback must be 'log_only', 'abort', or 'deliver_original'",
421
+ path: "on_error.fallback",
422
+ code: "on-error-fallback-enum",
423
+ });
424
+ }
425
+ }
162
426
  /**
163
427
  * Validate step `awaits:` targets against the set of declared step ids.
164
428
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/recipes/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/recipes/validation.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,kFAAkF;AAClF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,QAAQ;IACR,aAAa;IACb,KAAK;IACL,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,WAAW;IACX,OAAO;CACR,CAAC,CAAC;AAiCH,MAAM,UAAU,wBAAwB,CAAC,MAAe;IACtD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,gBAA2C,CAAC;QAEtD,uEAAuE;QACvE,oEAAoE;QACpE,wEAAwE;QACxE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,OAAO,EACL,qIAAqI;gBACvI,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;QACL,CAAC;aAAM,IACL,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,gEAAgE;YAChE,6DAA6D;YAC7D,8BAA8B;YAC9B,CAAC,wCAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EACtD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,OAAO,EACL,0HAA0H;aAC7H,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,CAAC,CAAC,OAAkC,CAAC;YACrD,MAAM,UAAU,GAAG;gBACjB,QAAQ;gBACR,MAAM;gBACN,SAAS;gBACT,YAAY;gBACZ,UAAU;gBACV,cAAc;gBACd,aAAa;gBACb,SAAS;aACV,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAc,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,yCAAyC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC1E,CAAC,CAAC;YACL,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,iDAAiD;iBAC3D,CAAC,CAAC;YACL,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC9D,gEAAgE;gBAChE,8DAA8D;gBAC9D,uDAAuD;gBACvD,0CAA0C;gBAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,mCAAmC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,eAAe,EAAE,6FAA6F;qBACxH,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzC,yDAAyD;oBACzD,6CAA6C;oBAC7C,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,eAAe,EAAE,0CAA0C;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,uBAAuB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACtD,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC;gBAEnD,iEAAiE;gBACjE,kEAAkE;gBAClE,oEAAoE;gBACpE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAChC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,EAAE,6BAA6B;4BAClF,IAAI,EAAE,mBAAmB;4BACzB,IAAI,EAAE,SAAS,CAAC,KAAK;yBACtB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9B,MAAM,eAAe,GACnB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;gBAEpE,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,yDAAyD;qBAChF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;oBACpD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,+BAA+B;yBACtD,CAAC,CAAC;oBACL,CAAC;oBAED,gEAAgE;oBAChE,kEAAkE;oBAClE,6DAA6D;oBAC7D,kEAAkE;oBAClE,iEAAiE;oBACjE,6BAA6B;oBAC7B,IACE,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;wBAC3D,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAC9B,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,wLAAwL;4BAC/O,IAAI,EAAE,yBAAyB;4BAC/B,IAAI,EAAE,SAAS,CAAC,eAAe;yBAChC,CAAC,CAAC;oBACL,CAAC;oBAED,4DAA4D;oBAC5D,gEAAgE;oBAChE,iEAAiE;oBACjE,8DAA8D;oBAC9D,oDAAoD;oBACpD,MAAM,cAAc,GAClB,KAAK,CAAC,aAAa,KAAK,SAAS;wBACjC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC;oBACnC,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC3B,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,OAAO;gCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,4GAA4G;gCAClI,IAAI,EAAE,uBAAuB;gCAC7B,IAAI,EAAE,SAAS,CAAC,QAAQ;6BACzB,CAAC,CAAC;wBACL,CAAC;6BAAM,IACL,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;4BACjC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC;4BACD,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,OAAO;gCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,mGAAmG;gCACzH,IAAI,EAAE,yBAAyB;gCAC/B,IAAI,EAAE,SAAS,CAAC,QAAQ;6BACzB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;wBACtC,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;wBAC/B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;4BAC9D,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,OAAO;gCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,yDAAyD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;gCACpG,IAAI,EAAE,8BAA8B;gCACpC,IAAI,EAAE,SAAS,CAAC,sBAAsB;6BACvC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,IACE,KAAK,CAAC,YAAY,KAAK,SAAS;wBAChC,KAAK,CAAC,YAAY,KAAK,MAAM;wBAC7B,KAAK,CAAC,YAAY,KAAK,SAAS,EAChC,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,iCAAiC;4BAC9G,IAAI,EAAE,0BAA0B;4BAChC,IAAI,EAAE,SAAS,CAAC,qBAAqB;yBACtC,CAAC,CAAC;oBACL,CAAC;oBAED,sEAAsE;oBACtE,iEAAiE;oBACjE,yDAAyD;oBACzD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;wBAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;4BACpC,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,OAAO;gCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,gEAAgE;gCACtF,IAAI,EAAE,gBAAgB;gCACtB,IAAI,EAAE,SAAS,CAAC,kBAAkB;6BACnC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,EAAU,EAAE,EAAE;gCACrD,IACE,OAAO,KAAK,KAAK,QAAQ;oCACzB,KAAK,KAAK,IAAI;oCACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,CAAC;oCACD,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,OAAO;wCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,kDAAkD;wCACzF,IAAI,EAAE,sBAAsB;wCAC5B,IAAI,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE;qCACzC,CAAC,CAAC;oCACH,OAAO;gCACT,CAAC;gCACD,MAAM,CAAC,GAAG,KAAgC,CAAC;gCAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;gCAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;gCAC7C,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;oCAC5B,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,OAAO;wCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,gDAAgD;wCACvF,IAAI,EAAE,uBAAuB;wCAC7B,IAAI,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE;qCACzC,CAAC,CAAC;gCACL,CAAC;gCACD,IACE,SAAS;oCACT,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAgB,CAAC,EAChD,CAAC;oCACD,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,OAAO;wCACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB;wCAC7F,IAAI,EAAE,uBAAuB;wCAC7B,IAAI,EAAE,SAAS,CAAC,oBAAoB,EAAE,SAAS;qCAChD,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,6DAA6D;gBAC7D,+DAA+D;gBAC/D,kEAAkE;gBAClE,mEAAmE;gBACnE,oEAAoE;gBACpE,kEAAkE;gBAClE,qEAAqE;gBACrE,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAC1C,CAAC,CAAE,IAAI,CAAC,KAAiC;oBACzC,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC;gBAC/C,IACE,SAAS,KAAK,SAAS;oBACvB,SAAS,KAAK,KAAK;oBACnB,SAAS,KAAK,QAAQ;oBACtB,SAAS,KAAK,MAAM,EACpB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,uCAAuC;wBACjG,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,SAAS,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAEzC,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,yBAAyB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,EACZ,QAAQ,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;YAAE,MAAM,EAAE,CAAC;aAC7B,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,KAAK,CAAC;QACnB,MAAM;QACN,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,CAA0B,EAC1B,MAAmB;IAEnB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,4BAA4B;YACrC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAU,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,UAAU,GAAG,4BAA4B;gBAClD,IAAI,EAAE,UAAU,GAAG,EAAE;gBACrB,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,KAAK,SAAS;QACxB,CAAC,CAAC,QAAQ,KAAK,MAAM;QACrB,CAAC,CAAC,QAAQ,KAAK,MAAM,EACrB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,0CAA0C;YACnD,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,IACE,CAAC,CAAC,kBAAkB,KAAK,SAAS;QAClC,OAAO,CAAC,CAAC,kBAAkB,KAAK,SAAS,EACzC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,6CAA6C;YACtD,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAChC,CAA0B,EAC1B,MAAmB;IAEnB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3B,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAClC,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACtB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,8BAA8B;YACvC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1B,IACE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAC3B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,KAAK,GAAG,CAAC,EACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,+CAA+C;gBACxD,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,gBAAgB;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/B,IACE,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;YAChC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;YAC9B,CAAC,CAAC,UAAU,GAAG,CAAC,EAChB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,wDAAwD;gBACjE,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,KAAK,SAAS;QACxB,CAAC,CAAC,QAAQ,KAAK,UAAU;QACzB,CAAC,CAAC,QAAQ,KAAK,OAAO;QACtB,CAAC,CAAC,QAAQ,KAAK,kBAAkB,EACjC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,OAAO;YACd,OAAO,EACL,sEAAsE;YACxE,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,qBAAqB,CAC5B,gBAAyC,EACzC,SAAkB,EAClB,MAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACjD,CAAC,CAAE,gBAAgB,CAAC,KAAwC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,UAAU,GAAG,CAAC,IAAoC,EAAQ,EAAE;QAChE,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAChD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;gBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,QAA0C,CAAC,CAAC;YAC9D,CAAC;iBAAM,IACL,IAAI,CAAC,QAAQ;gBACb,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBACjC,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,QAAoC,CAAC,KAAK,CAAC,EAC/D,CAAC;gBACD,UAAU,CACP,IAAI,CAAC,QAAoC,CAAC,KAE1C,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,uEAAuE;IACvE,iBAAiB;IACjB,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,yEAAyE;IACzE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,IACE,SAAS;QACT,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACzB,KAAK,CAAC,OAAO,CAAE,SAAqC,CAAC,KAAK,CAAC,EAC3D,CAAC;QACD,UAAU,CACP,SAAqC,CAAC,KAEtC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,CAClB,IAAoC,EACpC,KAA4B,EACtB,EAAE;QACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,0BAA0B,MAAM,sGAAsG;4BAC1J,IAAI,EAAE,uBAAuB;4BAC7B,IAAI,EAAE,SAAS,CAAC,SAAS;yBAC1B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,WAAW,CACT,IAAI,CAAC,QAA0C,EAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CACpC,CAAC;YACJ,CAAC;iBAAM,IACL,IAAI,CAAC,QAAQ;gBACb,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBACjC,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,QAAoC,CAAC,KAAK,CAAC,EAC/D,CAAC;gBACD,WAAW,CACR,IAAI,CAAC,QAAoC,CAAC,KAE1C,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAC9B,IAAa,EACb,SAA4B,EAC5B,MAAmB;IAEnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,WAAW,SAAS,IAAI,CAAC,kDAAkD;aACrF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAI,KAAiC,CAAC,IAAI,CAAC;QACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,WAAW,SAAS,IAAI,CAAC,mDAAmD;aACtF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,WAAW,SAAS,IAAI,CAAC,WAAW,IAAI,mKAAmK,IAAI,gBAAgB;aACzO,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,mEAAmE;QACnE,+DAA+D;QAC/D,kEAAkE;QAClE,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,WAAW,SAAS,IAAI,CAAC,WAAW,IAAI,mEAAmE;aACrH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAe;IACnD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE7E,IACE,CAAC,UAAU;QACX,OAAO,UAAU,KAAK,QAAQ;QAC9B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,eAAe,GAA4B;QAC/C,GAAI,UAAsC;KAC3C,CAAC;IAEF,IACE,eAAe,CAAC,OAAO;QACvB,OAAO,eAAe,CAAC,OAAO,KAAK,QAAQ;QAC3C,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EACvC,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,0BAA0B,CAClD,eAAe,CAAC,OAAkC,CACnD,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,eAAe,CAAC,KAAK,GAAG,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAgC;IAEhC,MAAM,UAAU,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;IAE3D,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;QAC5B,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC;QAEhC,IAAI,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACtC,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,UAAU,CAAC,EAAE,CAAC;QAErB,IACE,UAAU,CAAC,MAAM,KAAK,SAAS;YAC/B,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,EACrC,CAAC;YACD,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;YAC3C,OAAO,UAAU,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC7C,UAAU,CAAC,kBAAkB,GAAG,UAAU,CAAC,eAAe,CAAC;YAC3D,OAAO,UAAU,CAAC,eAAe,CAAC;QACpC,CAAC;QAED,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC/C,UAAU,CAAC,oBAAoB,GAAG,UAAU,CAAC,iBAAiB,CAAC;YAC/D,OAAO,UAAU,CAAC,iBAAiB,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAgB;IAC9C,MAAM,eAAe,GAAc,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,eAAe,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAa;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,IAA+B,CAAC;IAE/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,aAAa,GAAc,EAAE,CAAC;QACpC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,IACE,MAAM,CAAC,QAAQ;QACf,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC/B,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAmC,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,aAAa,GAAc,EAAE,CAAC;YACpC,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,IACE,CAAC,UAAU;gBACX,OAAO,UAAU,KAAK,QAAQ;gBAC9B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,UAAqC,CAAC;YAC3D,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC;YAC7C,IACE,aAAa;gBACb,OAAO,aAAa,KAAK,QAAQ;gBACjC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAC7B,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC1D,SAAS;YACX,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,+CAA+C;AAC/C,IAAI,eAAe,GAA4B,IAAI,CAAC;AAEpD,SAAS,kBAAkB;IACzB,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAC5C,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,SAAS,CAAC,MAAgB,CAAC,CAAC;IAClC,CAAC;IACD,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAgB,CAAC,CAAC;IACxD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL;gBACE,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,2CAA2C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACvG;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,MAA+B,EAC/B,aAA0B;IAE1B,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClD,CAAC,CAAE,MAAM,CAAC,OAAmC;QAC7C,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,OAAO,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,qEAAqE;IACrE,0EAA0E;IAC1E,uEAAuE;IACvE,8DAA8D;IAC9D,oDAAoD;IACpD,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,KAAK,cAAc,IAAI,OAAO,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;QACvE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,EAAE,UAAU,KAAK,OAAO,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,KAAgC,CAAC;YACpD,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY;QAC7B,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC;IACb,OAAO;QACL,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,sBAAsB,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,EAAE;QACtE,IAAI,EAAE,KAAK,CAAC,OAAO;QACnB,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAe;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,MAAM,KAAK,GAAI,MAAkC,CAAC,KAAK,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QACvE,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,IACE,CAAC,CAAC,QAAQ;YACV,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAC1B,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,QAAmC,CAAC;YAClD,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,wDAAwD;QACxD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CACjC,MAA+B,EAC/B,MAAmB,EACnB,iBAA+B;IAE/B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;QAClC,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,YAAY;QACZ,SAAS;QACT,IAAI,EAAE,4CAA4C;QAClD,IAAI,EAAE,4CAA4C;QAClD,IAAI,EAAE,4CAA4C;QAClD,MAAM,EAAE,yCAAyC;KAClD,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,WAAW,CAAC,CAAC;IACnD,yBAAyB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACjD,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,iBAAiB;YAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,WAAW,GACf,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClD,CAAC,CAAE,MAAM,CAAC,OAAmC,CAAC,IAAI;QAClD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,eAAe,GAAG,WAAW,KAAK,SAAS,CAAC;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACvC,CAAC,CAAE,MAAM,CAAC,KAAwC;QAClD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,yEAAyE;IACzE,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAG9B,CAAC;IAEJ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAElE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS;gBACnC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpD,CAAC,CAAC,aAAa,CAAC;YAClB,KAAK,MAAM,UAAU,IAAI,0BAA0B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,QAAQ,KAAK,GAAG,CAAC,mCAAmC,UAAU,UAAU,QAAQ,CAAC,KAAK,EAAE;yBAClG,CAAC,CAAC;wBACH,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;oBAClC,IAAI,IAAI,KAAK,IAAI;wBAAE,SAAS;oBAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3C,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACtB,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,SAAS;oBAC3C,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,QAAQ,KAAK,GAAG,CAAC,2BAA2B,IAAI,UAAU,QAAQ,CAAC,KAAK,4BAA4B,MAAM,CAAC,MAAM,6BAA6B,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG;qBAChM,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,QAAQ,KAAK,GAAG,CAAC,YAAY,OAAO,kCAAkC;iBAChF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,QAAQ,KAAK,GAAG,CAAC,YAAY,OAAO,8CAA8C,SAAS,EAAE;qBACvG,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAA6B,EAC7B,eAAwB;IAExB,MAAM,SAAS,GAIV,EAAE,CAAC;IACR,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI,eAAe,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACvC,IAAI,CAAC,IAA+B,CACrC,EAAE,CAAC;YACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,oEAAoE;QACpE,IACE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;YAC1B,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;YAC1B,UAAU,KAAK,MAAM;YAErB,SAAS;QACX,2EAA2E;QAC3E,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QACvC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,0BAA0B,CACjC,UAAkB;IAElB,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAA0C,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CACnC,kDAAkD,CACnD,EAAE,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAChD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAiB;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAA6B,EAC7B,aAA0B,EAC1B,iBAA6E;IAE7E,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,IAAI,MAAM,EAAE,CAAC;QACX,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QACpD,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;QAC/D,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,iBAAiB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;QACjE,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,IAA6B,EAC7B,eAAwB;IAExB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QACpD,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,eAAe,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,EAAE,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -25,9 +25,12 @@
25
25
  */
26
26
  import path from "node:path";
27
27
  import type { RecipeRunLog } from "../runLog.js";
28
- import { type AgentResult } from "./agentExecutor.js";
28
+ import { type AgentResult, type AgentUsage } from "./agentExecutor.js";
29
29
  import { type HaltCategory } from "./haltCategory.js";
30
30
  import { WriteEffectLedger } from "./idempotencyKey.js";
31
+ import { type RouteCandidate } from "./pricing/costRouter.js";
32
+ import { type PriceTable } from "./pricing/priceTable.js";
33
+ import { RunBudget } from "./runBudget.js";
31
34
  import type { ErrorPolicy } from "./schema.js";
32
35
  import "./tools/index.js";
33
36
  export interface YamlStep {
@@ -54,7 +57,8 @@ export interface YamlStep {
54
57
  * attached to the step result but **never gates the run** — judge
55
58
  * steps always finish with `status: "ok"` regardless of the
56
59
  * verdict. This is the augment-only invariant: judges add signal,
57
- * they don't block.
60
+ * they don't block. (The sole sanctioned exception is the OPT-IN
61
+ * judge→refine loop below — see `max_revisions`.)
58
62
  *
59
63
  * Pair with `reviews: <stepId>` to point the judge at the output
60
64
  * of a prior step; the runner injects that step's `output` into
@@ -63,6 +67,38 @@ export interface YamlStep {
63
67
  kind?: "agent" | "judge";
64
68
  /** Step id whose output the judge should review. Required when `kind: "judge"`. */
65
69
  reviews?: string;
70
+ /**
71
+ * OPT-IN judge→refine loop (only meaningful for `kind: "judge"` + `reviews`).
72
+ *
73
+ * ⚠️ INVARIANT DEPARTURE — when set (`> 0`), the judge step *drives* a
74
+ * bounded revision loop and MAY gate the run on exhaustion. This
75
+ * deliberately departs the augment-only invariant documented in
76
+ * judgeVerdict.ts, but ONLY when these fields are present. When
77
+ * `max_revisions` is absent or 0 the behavior is byte-identical to the
78
+ * augment-only path (parse + stash verdict, `status: "ok"`, no re-run).
79
+ *
80
+ * On a `request_changes` verdict the runner re-runs the reviewed agent
81
+ * step with the prior draft + the verdict's `fixList` injected, then
82
+ * re-judges, up to `max_revisions` cycles or until `approve`.
83
+ */
84
+ max_revisions?: number;
85
+ /**
86
+ * What to do if the judge still returns `request_changes` after the
87
+ * revision budget is exhausted. `"halt"` (default) fails the run
88
+ * (respecting fail-open like other agent failures); `"proceed"`
89
+ * continues with the last draft and records the unapproved verdict.
90
+ * Only meaningful alongside `max_revisions > 0`.
91
+ */
92
+ on_exhausted?: "halt" | "proceed";
93
+ /**
94
+ * OPT-IN cost-aware routing (cost-routing Phase 4). Ordered cheaper
95
+ * fallbacks, each overriding `driver` and/or `model`, tried when
96
+ * `budget.usdMax` is set and the remaining budget is too tight for the
97
+ * preferred driver/model. The author asserts each is good enough for the
98
+ * step — the engine only checks affordability. Absent ⇒ the preferred
99
+ * model is always used (byte-identical to no routing).
100
+ */
101
+ downshift?: import("./pricing/costRouter.js").RouteCandidate[];
66
102
  };
67
103
  into?: string;
68
104
  optional?: boolean;
@@ -266,6 +302,23 @@ export interface RunResult {
266
302
  stepResults: StepResult[];
267
303
  errorMessage?: string;
268
304
  assertionFailures?: AssertionFailure[];
305
+ /**
306
+ * Budget warnings collected by RunBudget over the run — warn-mode token
307
+ * breaches + unmeasured-driver notices. Previously discarded (no reader);
308
+ * now surfaced so callers and the run log can show them. Absent when none.
309
+ */
310
+ budgetWarnings?: string[];
311
+ /**
312
+ * P1 cost/token corpus — run-level aggregate of per-step agent token usage.
313
+ * Present ONLY when at least one step reported usage. `costUsd` summed from
314
+ * priceable steps only (omitted when none priceable). Forwarded to the
315
+ * persisted RecipeRun. Additive + optional.
316
+ */
317
+ tokenTotals?: {
318
+ inputTokens: number;
319
+ outputTokens: number;
320
+ costUsd?: number;
321
+ };
269
322
  }
270
323
  export type StepResult = {
271
324
  id: string;
@@ -279,6 +332,14 @@ export type StepResult = {
279
332
  * and `bridge_recipe_judgments` metrics (forthcoming PR3b/c).
280
333
  */
281
334
  judgeVerdict?: import("./judgeVerdict.js").JudgeVerdict;
335
+ /**
336
+ * OPT-IN judge→refine loop — number of revise→re-judge cycles the judge
337
+ * step drove. Present only when `agent.max_revisions > 0` triggered at
338
+ * least the loop entry (i.e. the first verdict was `request_changes` and
339
+ * a reviewable agent step was found). The attached `judgeVerdict` reflects
340
+ * the FINAL verdict after the loop, not the first.
341
+ */
342
+ revisions?: number;
282
343
  /**
283
344
  * Structured error code propagated from a thrown step error. Currently
284
345
  * populated for `recipe_path_jail_escape` (G-security A-PR1) so tests
@@ -310,6 +371,20 @@ export type StepResult = {
310
371
  * instead and this stays undefined.
311
372
  */
312
373
  expectWarnings?: string[];
374
+ /**
375
+ * P1 cost/token corpus — agent token usage for this step, SUMMED across
376
+ * every agent call the step made (a judge→refine step makes several).
377
+ * Absent for tool steps and for unmeasured drivers (usage undefined).
378
+ * Mirrors RunStepResult so this stays assignable to it.
379
+ */
380
+ inputTokens?: number;
381
+ /** P1 — see `inputTokens`. Summed across all agent calls for this step. */
382
+ outputTokens?: number;
383
+ /**
384
+ * P1 — measured USD cost for this step. Set ONLY for a priceable billable
385
+ * model; NEVER `0` as a placeholder; omitted otherwise.
386
+ */
387
+ costUsd?: number;
313
388
  durationMs: number;
314
389
  };
315
390
  export type StepDeps = Required<Omit<RunnerDeps, "now" | "logDir" | "recordFixturesDir" | "runLog" | "ledgerDir" | "manualRunId" | "activityLog">> & {
@@ -345,6 +420,21 @@ export declare function validateYamlRecipe(raw: unknown): YamlRecipe;
345
420
  * the recipe tool registry. Errors per-spec are logged as warnings — never fatal.
346
421
  */
347
422
  export declare function loadRecipeServers(specs: string[]): Promise<void>;
423
+ /**
424
+ * P1 — single-call usage → persisted-step usage fields. Exported for the
425
+ * chained runner, whose agent steps make exactly one agent call (no
426
+ * judge→refine loop), so a per-call computation suffices. Returns undefined
427
+ * when the driver reported no usage (fields stay ABSENT). `costUsd` set only
428
+ * for a billable driver + priced model; never a `0` placeholder.
429
+ */
430
+ export declare function computeAgentCallUsage(usage: AgentUsage | undefined, servedBy: {
431
+ driver?: string;
432
+ model?: string;
433
+ } | undefined, priceTable?: PriceTable): {
434
+ inputTokens: number;
435
+ outputTokens: number;
436
+ costUsd?: number;
437
+ } | undefined;
348
438
  export declare function runYamlRecipe(recipe: YamlRecipe, deps?: RunnerDeps, seedContext?: RunContext): Promise<RunResult>;
349
439
  export declare function executeStep(step: YamlStep, ctx: RunContext, deps: StepDeps): Promise<string | null>;
350
440
  /** Minimal `{{ expr }}` renderer — flat keys and dot-notation paths. */
@@ -365,8 +455,27 @@ export declare function resolveClaudeBinary(): string;
365
455
  export declare function defaultClaudeCodeFn(prompt: string, opts?: {
366
456
  mcpAccess?: boolean;
367
457
  }): Promise<string>;
458
+ /**
459
+ * Map a driver's `providerMeta` to AgentUsage. Returns undefined unless BOTH
460
+ * token counts are present as numbers — a half-populated count would mislead
461
+ * RunBudget. Pure + exported for tests.
462
+ */
463
+ export declare function providerMetaToUsage(meta: Record<string, unknown> | undefined): AgentUsage | undefined;
464
+ /**
465
+ * Apply opt-in cost-aware routing (Phase 4) to choose the driver/model for an
466
+ * agent dispatch. Returns `preferred` UNCHANGED when there is no downshift list
467
+ * or no USD cap is set (byte-identical to no routing). The output-token figure
468
+ * is a deliberately-rough 1:1-of-input pre-dispatch estimate — enough to pick a
469
+ * gear; the real cost is reconciled after the call (see the cost-routing ADR).
470
+ * Exported for unit testing.
471
+ */
472
+ export declare function resolveRouting(preferred: RouteCandidate, downshift: RouteCandidate[] | undefined, promptText: string, budget: RunBudget): RouteCandidate;
368
473
  /** Returns a providerDriverFn with a per-run driver cache (not shared across runs). */
369
- export declare function makeProviderDriverFn(): (driverName: "openai" | "grok" | "gemini", prompt: string, model: string | undefined) => Promise<string>;
474
+ export declare function makeProviderDriverFn(): (driverName: "openai" | "grok" | "gemini", prompt: string, model: string | undefined) => Promise<string | AgentResult>;
475
+ export declare function defaultClaudeFn(prompt: string, model: string, opts?: {
476
+ timeoutMs?: number;
477
+ maxTokens?: number;
478
+ }): Promise<AgentResult>;
370
479
  export declare function defaultLocalFn(prompt: string, model: string): Promise<AgentResult>;
371
480
  /**
372
481
  * Build ExecutionDeps for ChainedRecipeRunner backed by the yamlRunner step