@cleocode/core 2026.9.21 → 2026.9.23

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 (491) hide show
  1. package/dist/agents/scaffold.d.ts.map +1 -1
  2. package/dist/agents/scaffold.js +0 -1
  3. package/dist/agents/scaffold.js.map +1 -1
  4. package/dist/bootstrap.d.ts.map +1 -1
  5. package/dist/bootstrap.js +4 -0
  6. package/dist/bootstrap.js.map +1 -1
  7. package/dist/build-provenance.json +6 -0
  8. package/dist/decide/audit.d.ts +7 -1
  9. package/dist/decide/audit.d.ts.map +1 -1
  10. package/dist/decide/audit.js.map +1 -1
  11. package/dist/decide/client.d.ts +46 -4
  12. package/dist/decide/client.d.ts.map +1 -1
  13. package/dist/decide/client.js +328 -33
  14. package/dist/decide/client.js.map +1 -1
  15. package/dist/decide/credentials.d.ts +28 -4
  16. package/dist/decide/credentials.d.ts.map +1 -1
  17. package/dist/decide/credentials.js +50 -12
  18. package/dist/decide/credentials.js.map +1 -1
  19. package/dist/decide/index.d.ts +10 -4
  20. package/dist/decide/index.d.ts.map +1 -1
  21. package/dist/decide/index.js +10 -4
  22. package/dist/decide/index.js.map +1 -1
  23. package/dist/decide/jev-wire.d.ts +100 -8
  24. package/dist/decide/jev-wire.d.ts.map +1 -1
  25. package/dist/decide/jev-wire.js +402 -55
  26. package/dist/decide/jev-wire.js.map +1 -1
  27. package/dist/decide/operations.d.ts +97 -20
  28. package/dist/decide/operations.d.ts.map +1 -1
  29. package/dist/decide/operations.js +180 -28
  30. package/dist/decide/operations.js.map +1 -1
  31. package/dist/decide/provider-state.d.ts +89 -0
  32. package/dist/decide/provider-state.d.ts.map +1 -0
  33. package/dist/decide/provider-state.js +134 -0
  34. package/dist/decide/provider-state.js.map +1 -0
  35. package/dist/decide/provider.d.ts +26 -5
  36. package/dist/decide/provider.d.ts.map +1 -1
  37. package/dist/decide/provider.js.map +1 -1
  38. package/dist/decide/providers.d.ts +58 -0
  39. package/dist/decide/providers.d.ts.map +1 -0
  40. package/dist/decide/providers.js +69 -0
  41. package/dist/decide/providers.js.map +1 -0
  42. package/dist/decide/site.d.ts +2 -2
  43. package/dist/decide/site.d.ts.map +1 -1
  44. package/dist/decide/site.js +2 -0
  45. package/dist/decide/site.js.map +1 -1
  46. package/dist/decide/sites/list.d.ts +46 -0
  47. package/dist/decide/sites/list.d.ts.map +1 -0
  48. package/dist/decide/sites/list.js +206 -0
  49. package/dist/decide/sites/list.js.map +1 -0
  50. package/dist/decide/sites/registry.d.ts +130 -0
  51. package/dist/decide/sites/registry.d.ts.map +1 -0
  52. package/dist/decide/sites/registry.js +375 -0
  53. package/dist/decide/sites/registry.js.map +1 -0
  54. package/dist/decide/spend.d.ts +196 -0
  55. package/dist/decide/spend.d.ts.map +1 -0
  56. package/dist/decide/spend.js +387 -0
  57. package/dist/decide/spend.js.map +1 -0
  58. package/dist/decide/wizard.d.ts +53 -0
  59. package/dist/decide/wizard.d.ts.map +1 -0
  60. package/dist/decide/wizard.js +144 -0
  61. package/dist/decide/wizard.js.map +1 -0
  62. package/dist/dispatch/mutate-projection.d.ts.map +1 -1
  63. package/dist/dispatch/mutate-projection.js +5 -0
  64. package/dist/dispatch/mutate-projection.js.map +1 -1
  65. package/dist/docs/docs-audit.d.ts.map +1 -1
  66. package/dist/docs/docs-audit.js +1 -2
  67. package/dist/docs/docs-audit.js.map +1 -1
  68. package/dist/docs/docs-update.d.ts.map +1 -1
  69. package/dist/docs/docs-update.js +25 -9
  70. package/dist/docs/docs-update.js.map +1 -1
  71. package/dist/docs/export-document.js +1073 -628
  72. package/dist/docs/export-document.js.map +3 -3
  73. package/dist/doctor/knowledge.d.ts +16 -1
  74. package/dist/doctor/knowledge.d.ts.map +1 -1
  75. package/dist/doctor/knowledge.js +53 -17
  76. package/dist/doctor/knowledge.js.map +1 -1
  77. package/dist/engine/engine-ops.d.ts +36 -6
  78. package/dist/engine/engine-ops.d.ts.map +1 -1
  79. package/dist/engine/engine-ops.js +115 -14
  80. package/dist/engine/engine-ops.js.map +1 -1
  81. package/dist/gateway-client/generated/types.gen.d.ts +1 -1
  82. package/dist/index.d.ts +2 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +1 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/init/scaffold-workflows.d.ts.map +1 -1
  87. package/dist/init/scaffold-workflows.js +6 -3
  88. package/dist/init/scaffold-workflows.js.map +1 -1
  89. package/dist/init/upgrade-workflows.d.ts.map +1 -1
  90. package/dist/init/upgrade-workflows.js +6 -3
  91. package/dist/init/upgrade-workflows.js.map +1 -1
  92. package/dist/init.d.ts.map +1 -1
  93. package/dist/init.js +51 -11
  94. package/dist/init.js.map +1 -1
  95. package/dist/inject/index.d.ts.map +1 -1
  96. package/dist/inject/index.js +8 -3
  97. package/dist/inject/index.js.map +1 -1
  98. package/dist/internal.d.ts +3 -3
  99. package/dist/internal.d.ts.map +1 -1
  100. package/dist/internal.js +2 -2
  101. package/dist/internal.js.map +1 -1
  102. package/dist/llm/plugin-facade.js +1184 -739
  103. package/dist/llm/plugin-facade.js.map +3 -3
  104. package/dist/memory/attention.d.ts.map +1 -1
  105. package/dist/memory/attention.js +2 -2
  106. package/dist/memory/attention.js.map +1 -1
  107. package/dist/memory/decision-contradiction.d.ts +3 -3
  108. package/dist/memory/decision-contradiction.d.ts.map +1 -1
  109. package/dist/memory/decision-contradiction.js +4 -3
  110. package/dist/memory/decision-contradiction.js.map +1 -1
  111. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  112. package/dist/memory/graph-memory-bridge.js +2 -0
  113. package/dist/memory/graph-memory-bridge.js.map +1 -1
  114. package/dist/memory/observation-type-decision.d.ts +2 -2
  115. package/dist/memory/observation-type-decision.d.ts.map +1 -1
  116. package/dist/memory/observation-type-decision.js +3 -2
  117. package/dist/memory/observation-type-decision.js.map +1 -1
  118. package/dist/memory/pipeline-manifest-sqlite.d.ts +111 -0
  119. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  120. package/dist/memory/pipeline-manifest-sqlite.js +230 -2
  121. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  122. package/dist/nexus/analyze-orchestrator.d.ts +38 -0
  123. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  124. package/dist/nexus/analyze-orchestrator.js +96 -21
  125. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  126. package/dist/nexus/knowledge.d.ts.map +1 -1
  127. package/dist/nexus/knowledge.js +15 -4
  128. package/dist/nexus/knowledge.js.map +1 -1
  129. package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
  130. package/dist/nexus/migrations/M-split-graph.js +4 -0
  131. package/dist/nexus/migrations/M-split-graph.js.map +1 -1
  132. package/dist/nexus/store.d.ts.map +1 -1
  133. package/dist/nexus/store.js +2 -0
  134. package/dist/nexus/store.js.map +1 -1
  135. package/dist/nexus/stored-roots.d.ts +65 -0
  136. package/dist/nexus/stored-roots.d.ts.map +1 -1
  137. package/dist/nexus/stored-roots.js +73 -0
  138. package/dist/nexus/stored-roots.js.map +1 -1
  139. package/dist/orchestrate/lifecycle-ops.d.ts.map +1 -1
  140. package/dist/orchestrate/lifecycle-ops.js +4 -1
  141. package/dist/orchestrate/lifecycle-ops.js.map +1 -1
  142. package/dist/orchestrate/pivot.d.ts.map +1 -1
  143. package/dist/orchestrate/pivot.js +13 -8
  144. package/dist/orchestrate/pivot.js.map +1 -1
  145. package/dist/orchestrate/plan.d.ts.map +1 -1
  146. package/dist/orchestrate/plan.js +8 -2
  147. package/dist/orchestrate/plan.js.map +1 -1
  148. package/dist/orchestrate/query-ops.d.ts +7 -2
  149. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  150. package/dist/orchestrate/query-ops.js +17 -6
  151. package/dist/orchestrate/query-ops.js.map +1 -1
  152. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  153. package/dist/orchestrate/spawn-ops.js +5 -14
  154. package/dist/orchestrate/spawn-ops.js.map +1 -1
  155. package/dist/orchestration/bootstrap.d.ts.map +1 -1
  156. package/dist/orchestration/bootstrap.js +4 -2
  157. package/dist/orchestration/bootstrap.js.map +1 -1
  158. package/dist/orchestration/index.d.ts +1 -0
  159. package/dist/orchestration/index.d.ts.map +1 -1
  160. package/dist/orchestration/index.js +4 -3
  161. package/dist/orchestration/index.js.map +1 -1
  162. package/dist/orchestration/lead-rollup.d.ts +8 -5
  163. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  164. package/dist/orchestration/lead-rollup.js +46 -17
  165. package/dist/orchestration/lead-rollup.js.map +1 -1
  166. package/dist/orchestration/owner-decision-readiness.d.ts +2 -2
  167. package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -1
  168. package/dist/orchestration/owner-decision-readiness.js +3 -2
  169. package/dist/orchestration/owner-decision-readiness.js.map +1 -1
  170. package/dist/orchestration/parallel.d.ts.map +1 -1
  171. package/dist/orchestration/parallel.js +10 -17
  172. package/dist/orchestration/parallel.js.map +1 -1
  173. package/dist/orchestration/spawn-prompt.d.ts +4 -1
  174. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  175. package/dist/orchestration/spawn-prompt.js +3 -2
  176. package/dist/orchestration/spawn-prompt.js.map +1 -1
  177. package/dist/orchestration/status.d.ts +8 -3
  178. package/dist/orchestration/status.d.ts.map +1 -1
  179. package/dist/orchestration/status.js +9 -6
  180. package/dist/orchestration/status.js.map +1 -1
  181. package/dist/orchestration/validate-spawn.d.ts.map +1 -1
  182. package/dist/orchestration/validate-spawn.js +2 -0
  183. package/dist/orchestration/validate-spawn.js.map +1 -1
  184. package/dist/orchestration/wave-topic.d.ts +54 -0
  185. package/dist/orchestration/wave-topic.d.ts.map +1 -0
  186. package/dist/orchestration/wave-topic.js +68 -0
  187. package/dist/orchestration/wave-topic.js.map +1 -0
  188. package/dist/orchestration/waves.d.ts +47 -8
  189. package/dist/orchestration/waves.d.ts.map +1 -1
  190. package/dist/orchestration/waves.js +152 -43
  191. package/dist/orchestration/waves.js.map +1 -1
  192. package/dist/phases/index.d.ts.map +1 -1
  193. package/dist/phases/index.js +6 -2
  194. package/dist/phases/index.js.map +1 -1
  195. package/dist/project-scope.d.ts +34 -0
  196. package/dist/project-scope.d.ts.map +1 -1
  197. package/dist/project-scope.js +73 -0
  198. package/dist/project-scope.js.map +1 -1
  199. package/dist/release/ci-evidence.d.ts +10 -0
  200. package/dist/release/ci-evidence.d.ts.map +1 -1
  201. package/dist/release/ci-evidence.js +23 -7
  202. package/dist/release/ci-evidence.js.map +1 -1
  203. package/dist/release/github-pr.d.ts +30 -0
  204. package/dist/release/github-pr.d.ts.map +1 -1
  205. package/dist/release/github-pr.js +42 -1
  206. package/dist/release/github-pr.js.map +1 -1
  207. package/dist/release/plan.d.ts.map +1 -1
  208. package/dist/release/plan.js +6 -3
  209. package/dist/release/plan.js.map +1 -1
  210. package/dist/release/pr-evidence.d.ts.map +1 -1
  211. package/dist/release/pr-evidence.js +12 -4
  212. package/dist/release/pr-evidence.js.map +1 -1
  213. package/dist/routing/capability-matrix.d.ts.map +1 -1
  214. package/dist/routing/capability-matrix.js +7 -0
  215. package/dist/routing/capability-matrix.js.map +1 -1
  216. package/dist/security/input-sanitization.d.ts.map +1 -1
  217. package/dist/security/input-sanitization.js +9 -2
  218. package/dist/security/input-sanitization.js.map +1 -1
  219. package/dist/selfimprove/fix-gen.js +1193 -748
  220. package/dist/selfimprove/fix-gen.js.map +3 -3
  221. package/dist/session/engine-ops.d.ts +6 -0
  222. package/dist/session/engine-ops.d.ts.map +1 -1
  223. package/dist/session/engine-ops.js +36 -4
  224. package/dist/session/engine-ops.js.map +1 -1
  225. package/dist/sessions/briefing.d.ts +17 -0
  226. package/dist/sessions/briefing.d.ts.map +1 -1
  227. package/dist/sessions/briefing.js +68 -68
  228. package/dist/sessions/briefing.js.map +1 -1
  229. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  230. package/dist/sessions/drift-watchdog.js +4 -3
  231. package/dist/sessions/drift-watchdog.js.map +1 -1
  232. package/dist/sessions/focus-state-store.d.ts +94 -1
  233. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  234. package/dist/sessions/focus-state-store.js +100 -1
  235. package/dist/sessions/focus-state-store.js.map +1 -1
  236. package/dist/sessions/index.d.ts +2 -2
  237. package/dist/sessions/index.d.ts.map +1 -1
  238. package/dist/sessions/index.js +1 -1
  239. package/dist/sessions/index.js.map +1 -1
  240. package/dist/sessions/session-drift.d.ts.map +1 -1
  241. package/dist/sessions/session-drift.js +4 -3
  242. package/dist/sessions/session-drift.js.map +1 -1
  243. package/dist/setup/config-json-merge.d.ts +28 -0
  244. package/dist/setup/config-json-merge.d.ts.map +1 -1
  245. package/dist/setup/config-json-merge.js +51 -0
  246. package/dist/setup/config-json-merge.js.map +1 -1
  247. package/dist/setup/index.d.ts +13 -10
  248. package/dist/setup/index.d.ts.map +1 -1
  249. package/dist/setup/index.js +15 -10
  250. package/dist/setup/index.js.map +1 -1
  251. package/dist/setup/sections/llm.js +1 -1
  252. package/dist/setup/sections/llm.js.map +1 -1
  253. package/dist/setup/sections/system-one.d.ts +28 -0
  254. package/dist/setup/sections/system-one.d.ts.map +1 -0
  255. package/dist/setup/sections/system-one.js +53 -0
  256. package/dist/setup/sections/system-one.js.map +1 -0
  257. package/dist/setup/wizard.d.ts +15 -1
  258. package/dist/setup/wizard.d.ts.map +1 -1
  259. package/dist/setup/wizard.js +15 -0
  260. package/dist/setup/wizard.js.map +1 -1
  261. package/dist/skills/discovery.d.ts +12 -1
  262. package/dist/skills/discovery.d.ts.map +1 -1
  263. package/dist/skills/discovery.js +27 -2
  264. package/dist/skills/discovery.js.map +1 -1
  265. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  266. package/dist/skills/orchestrator/startup.js +10 -5
  267. package/dist/skills/orchestrator/startup.js.map +1 -1
  268. package/dist/skills/prune-bundled.d.ts +306 -0
  269. package/dist/skills/prune-bundled.d.ts.map +1 -0
  270. package/dist/skills/prune-bundled.js +652 -0
  271. package/dist/skills/prune-bundled.js.map +1 -0
  272. package/dist/skills/types.d.ts +9 -1
  273. package/dist/skills/types.d.ts.map +1 -1
  274. package/dist/skills/types.js +17 -34
  275. package/dist/skills/types.js.map +1 -1
  276. package/dist/spawn/branch-lock.d.ts.map +1 -1
  277. package/dist/spawn/branch-lock.js +26 -2
  278. package/dist/spawn/branch-lock.js.map +1 -1
  279. package/dist/stats/index.d.ts.map +1 -1
  280. package/dist/stats/index.js +4 -2
  281. package/dist/stats/index.js.map +1 -1
  282. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  283. package/dist/store/agent-registry-accessor.js +2 -0
  284. package/dist/store/agent-registry-accessor.js.map +1 -1
  285. package/dist/store/backup-pack.js +1 -1
  286. package/dist/store/backup-pack.js.map +1 -1
  287. package/dist/store/backup.d.ts +15 -1
  288. package/dist/store/backup.d.ts.map +1 -1
  289. package/dist/store/backup.js +18 -2
  290. package/dist/store/backup.js.map +1 -1
  291. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  292. package/dist/store/conduit-sqlite.js +3 -0
  293. package/dist/store/conduit-sqlite.js.map +1 -1
  294. package/dist/store/credential-transfer.d.ts.map +1 -1
  295. package/dist/store/credential-transfer.js +2 -0
  296. package/dist/store/credential-transfer.js.map +1 -1
  297. package/dist/store/cross-db-cleanup.d.ts.map +1 -1
  298. package/dist/store/cross-db-cleanup.js +2 -0
  299. package/dist/store/cross-db-cleanup.js.map +1 -1
  300. package/dist/store/dual-scope-db.d.ts.map +1 -1
  301. package/dist/store/dual-scope-db.js +13 -2
  302. package/dist/store/dual-scope-db.js.map +1 -1
  303. package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
  304. package/dist/store/migrate-signaldock-to-conduit.js +3 -0
  305. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
  306. package/dist/store/migration-manager.d.ts.map +1 -1
  307. package/dist/store/migration-manager.js +37 -3
  308. package/dist/store/migration-manager.js.map +1 -1
  309. package/dist/store/migration-sqlite.d.ts.map +1 -1
  310. package/dist/store/migration-sqlite.js +2 -0
  311. package/dist/store/migration-sqlite.js.map +1 -1
  312. package/dist/store/nexus-sqlite.d.ts.map +1 -1
  313. package/dist/store/nexus-sqlite.js +3 -0
  314. package/dist/store/nexus-sqlite.js.map +1 -1
  315. package/dist/store/open-cleo-db.d.ts.map +1 -1
  316. package/dist/store/open-cleo-db.js +3 -0
  317. package/dist/store/open-cleo-db.js.map +1 -1
  318. package/dist/store/portable-bundle-import.d.ts.map +1 -1
  319. package/dist/store/portable-bundle-import.js +2 -0
  320. package/dist/store/portable-bundle-import.js.map +1 -1
  321. package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
  322. package/dist/store/portable-bundle-relocate.js +2 -0
  323. package/dist/store/portable-bundle-relocate.js.map +1 -1
  324. package/dist/store/portable-bundle-scan.js +1 -1
  325. package/dist/store/portable-bundle-scan.js.map +1 -1
  326. package/dist/store/ports/domain-binding.d.ts.map +1 -1
  327. package/dist/store/ports/domain-binding.js +5 -0
  328. package/dist/store/ports/domain-binding.js.map +1 -1
  329. package/dist/store/skills-db.d.ts +17 -0
  330. package/dist/store/skills-db.d.ts.map +1 -1
  331. package/dist/store/skills-db.js +30 -0
  332. package/dist/store/skills-db.js.map +1 -1
  333. package/dist/store/snapshot-gate.d.ts.map +1 -1
  334. package/dist/store/snapshot-gate.js +3 -0
  335. package/dist/store/snapshot-gate.js.map +1 -1
  336. package/dist/store/split-brain-import.d.ts.map +1 -1
  337. package/dist/store/split-brain-import.js +2 -0
  338. package/dist/store/split-brain-import.js.map +1 -1
  339. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  340. package/dist/store/sqlite-data-accessor.js +19 -2
  341. package/dist/store/sqlite-data-accessor.js.map +1 -1
  342. package/dist/store/sqlite-native.d.ts.map +1 -1
  343. package/dist/store/sqlite-native.js +1 -0
  344. package/dist/store/sqlite-native.js.map +1 -1
  345. package/dist/store/sqlite.d.ts +14 -0
  346. package/dist/store/sqlite.d.ts.map +1 -1
  347. package/dist/store/sqlite.js +31 -4
  348. package/dist/store/sqlite.js.map +1 -1
  349. package/dist/store/twin-collapse.d.ts +46 -1
  350. package/dist/store/twin-collapse.d.ts.map +1 -1
  351. package/dist/store/twin-collapse.js +131 -5
  352. package/dist/store/twin-collapse.js.map +1 -1
  353. package/dist/store/worktree-build-guard.d.ts +191 -0
  354. package/dist/store/worktree-build-guard.d.ts.map +1 -0
  355. package/dist/store/worktree-build-guard.js +486 -0
  356. package/dist/store/worktree-build-guard.js.map +1 -0
  357. package/dist/store/worktree-isolation-guard.d.ts +27 -0
  358. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  359. package/dist/store/worktree-isolation-guard.js +71 -3
  360. package/dist/store/worktree-isolation-guard.js.map +1 -1
  361. package/dist/store/writer-lease.d.ts.map +1 -1
  362. package/dist/store/writer-lease.js +2 -0
  363. package/dist/store/writer-lease.js.map +1 -1
  364. package/dist/system/backup.d.ts +6 -2
  365. package/dist/system/backup.d.ts.map +1 -1
  366. package/dist/system/backup.js +6 -3
  367. package/dist/system/backup.js.map +1 -1
  368. package/dist/system/inject-generate.d.ts.map +1 -1
  369. package/dist/system/inject-generate.js +4 -4
  370. package/dist/system/inject-generate.js.map +1 -1
  371. package/dist/task-tools/index.d.ts +4 -2
  372. package/dist/task-tools/index.d.ts.map +1 -1
  373. package/dist/task-tools/index.js +3 -2
  374. package/dist/task-tools/index.js.map +1 -1
  375. package/dist/task-tools/score-task-priority.d.ts +93 -18
  376. package/dist/task-tools/score-task-priority.d.ts.map +1 -1
  377. package/dist/task-tools/score-task-priority.js +193 -81
  378. package/dist/task-tools/score-task-priority.js.map +1 -1
  379. package/dist/task-work/index.d.ts +6 -0
  380. package/dist/task-work/index.d.ts.map +1 -1
  381. package/dist/task-work/index.js +6 -3
  382. package/dist/task-work/index.js.map +1 -1
  383. package/dist/tasks/affected-packages.d.ts +62 -13
  384. package/dist/tasks/affected-packages.d.ts.map +1 -1
  385. package/dist/tasks/affected-packages.js +158 -33
  386. package/dist/tasks/affected-packages.js.map +1 -1
  387. package/dist/tasks/affected-scope.d.ts +59 -0
  388. package/dist/tasks/affected-scope.d.ts.map +1 -0
  389. package/dist/tasks/affected-scope.js +81 -0
  390. package/dist/tasks/affected-scope.js.map +1 -0
  391. package/dist/tasks/analyze.d.ts +29 -1
  392. package/dist/tasks/analyze.d.ts.map +1 -1
  393. package/dist/tasks/analyze.js +52 -36
  394. package/dist/tasks/analyze.js.map +1 -1
  395. package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
  396. package/dist/tasks/backfill-child-projections.js +4 -1
  397. package/dist/tasks/backfill-child-projections.js.map +1 -1
  398. package/dist/tasks/change-set.d.ts +24 -0
  399. package/dist/tasks/change-set.d.ts.map +1 -1
  400. package/dist/tasks/change-set.js +143 -11
  401. package/dist/tasks/change-set.js.map +1 -1
  402. package/dist/tasks/command-line.d.ts +54 -0
  403. package/dist/tasks/command-line.d.ts.map +1 -0
  404. package/dist/tasks/command-line.js +151 -0
  405. package/dist/tasks/command-line.js.map +1 -0
  406. package/dist/tasks/complete.d.ts +10 -0
  407. package/dist/tasks/complete.d.ts.map +1 -1
  408. package/dist/tasks/complete.js +49 -0
  409. package/dist/tasks/complete.js.map +1 -1
  410. package/dist/tasks/component-pr.d.ts +106 -0
  411. package/dist/tasks/component-pr.d.ts.map +1 -0
  412. package/dist/tasks/component-pr.js +275 -0
  413. package/dist/tasks/component-pr.js.map +1 -0
  414. package/dist/tasks/delete.d.ts.map +1 -1
  415. package/dist/tasks/delete.js +20 -0
  416. package/dist/tasks/delete.js.map +1 -1
  417. package/dist/tasks/done-plan.d.ts +21 -1
  418. package/dist/tasks/done-plan.d.ts.map +1 -1
  419. package/dist/tasks/done-plan.js +170 -15
  420. package/dist/tasks/done-plan.js.map +1 -1
  421. package/dist/tasks/done-record.d.ts.map +1 -1
  422. package/dist/tasks/done-record.js +9 -80
  423. package/dist/tasks/done-record.js.map +1 -1
  424. package/dist/tasks/duplicate-detector.d.ts +3 -3
  425. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  426. package/dist/tasks/duplicate-detector.js +4 -3
  427. package/dist/tasks/duplicate-detector.js.map +1 -1
  428. package/dist/tasks/engine-wrap-ops.d.ts +29 -0
  429. package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
  430. package/dist/tasks/engine-wrap-ops.js +40 -0
  431. package/dist/tasks/engine-wrap-ops.js.map +1 -1
  432. package/dist/tasks/engine-wrap.d.ts +1 -1
  433. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  434. package/dist/tasks/engine-wrap.js +1 -1
  435. package/dist/tasks/engine-wrap.js.map +1 -1
  436. package/dist/tasks/evidence.d.ts +49 -2
  437. package/dist/tasks/evidence.d.ts.map +1 -1
  438. package/dist/tasks/evidence.js +85 -9
  439. package/dist/tasks/evidence.js.map +1 -1
  440. package/dist/tasks/gate-runner.d.ts.map +1 -1
  441. package/dist/tasks/gate-runner.js +48 -12
  442. package/dist/tasks/gate-runner.js.map +1 -1
  443. package/dist/tasks/index.d.ts +1 -1
  444. package/dist/tasks/index.d.ts.map +1 -1
  445. package/dist/tasks/index.js +1 -1
  446. package/dist/tasks/index.js.map +1 -1
  447. package/dist/tasks/ops.d.ts +1 -0
  448. package/dist/tasks/ops.d.ts.map +1 -1
  449. package/dist/tasks/ranking-audit.d.ts +122 -0
  450. package/dist/tasks/ranking-audit.d.ts.map +1 -0
  451. package/dist/tasks/ranking-audit.js +193 -0
  452. package/dist/tasks/ranking-audit.js.map +1 -0
  453. package/dist/tasks/task-analyze.d.ts.map +1 -1
  454. package/dist/tasks/task-analyze.js +19 -32
  455. package/dist/tasks/task-analyze.js.map +1 -1
  456. package/dist/tasks/task-next.d.ts +48 -2
  457. package/dist/tasks/task-next.d.ts.map +1 -1
  458. package/dist/tasks/task-next.js +84 -102
  459. package/dist/tasks/task-next.js.map +1 -1
  460. package/dist/tasks/task-ops.d.ts +1 -1
  461. package/dist/tasks/task-ops.d.ts.map +1 -1
  462. package/dist/tasks/task-ops.js +1 -1
  463. package/dist/tasks/task-ops.js.map +1 -1
  464. package/dist/tasks/tool-resolver.d.ts +7 -1
  465. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  466. package/dist/tasks/tool-resolver.js +24 -10
  467. package/dist/tasks/tool-resolver.js.map +1 -1
  468. package/dist/tasks/update.d.ts +8 -2
  469. package/dist/tasks/update.d.ts.map +1 -1
  470. package/dist/tasks/update.js +28 -1
  471. package/dist/tasks/update.js.map +1 -1
  472. package/dist/telemetry/sqlite.d.ts.map +1 -1
  473. package/dist/telemetry/sqlite.js +2 -0
  474. package/dist/telemetry/sqlite.js.map +1 -1
  475. package/dist/validation/doctor/checks.d.ts.map +1 -1
  476. package/dist/validation/doctor/checks.js +2 -2
  477. package/dist/validation/doctor/checks.js.map +1 -1
  478. package/dist/validation/engine-ops.d.ts +9 -1
  479. package/dist/validation/engine-ops.d.ts.map +1 -1
  480. package/dist/validation/engine-ops.js +24 -1
  481. package/dist/validation/engine-ops.js.map +1 -1
  482. package/dist/validation/validate-ops.d.ts.map +1 -1
  483. package/dist/validation/validate-ops.js +9 -3
  484. package/dist/validation/validate-ops.js.map +1 -1
  485. package/dist/worktree/worktree-adopt.d.ts.map +1 -1
  486. package/dist/worktree/worktree-adopt.js +5 -2
  487. package/dist/worktree/worktree-adopt.js.map +1 -1
  488. package/package.json +14 -14
  489. package/schemas/config.schema.json +13 -0
  490. package/templates/CLEO-INJECTION.md +1 -1
  491. package/templates/CLEO-REFERENCE.md +5 -1
@@ -21,8 +21,25 @@
21
21
  * `{ score: <expected level>, probabilities: { level: p }, confidence }`.
22
22
  * Score probabilities are keyed by level text (or, defensively, by 0-based
23
23
  * index) and re-aligned to the question's `criteria` order.
24
- * - Errors: 401, 402 (`insufficient_credits`), 422 (FastAPI validation list),
25
- * 429 (with `retry-after`), 5xx. All are thrown as {@link DecisionProviderError}.
24
+ * - Errors, per the layahost OpenAPI 1.0.0 (test fixture
25
+ * `__tests__/fixtures/layahost-openapi.trimmed.json`): 401, 402, 422, 429,
26
+ * 503, each with a Jev-style body `{detail:{error_type,message}}`. 402, and a
27
+ * 429 whose `error_type` is `insufficient_quota` (empty balance), are credit
28
+ * exhaustion (`insufficient_credits`), never `unauthorized` and never a rate
29
+ * limit. 503 is `overloaded` (with `retry-after`). The error body is read,
30
+ * size-capped, to classify.
31
+ * UNVERIFIED tolerant extras (in the provider docs, not the OpenAPI): a 403
32
+ * `key_limit_exceeded` (the key's monthly limit, NOT a credential failure;
33
+ * any other 403 is `unauthorized`) and a 529 (`overloaded`).
34
+ * - Cost (T12664, `jev-wire/2`): `meta.cost_micros` (in the OpenAPI) and
35
+ * `meta.checkpoint` (in the OpenAPI); `meta.cost_usd` is still read.
36
+ * UNVERIFIED tolerant extras (docs only, not the OpenAPI): the
37
+ * `x-layahost-cost-micros` and `x-layahost-balance-micros` headers. A plain
38
+ * Jev host sends none of them and keeps working.
39
+ * - Extensions, gated by {@link JevProviderOptions.capabilities} (detected by
40
+ * {@link detectJevCapabilities} from `/v1/usage` and `/v1/templates`
41
+ * responses, never from the host name): the `lang` and `cache` request
42
+ * fields, `POST /v1/systemone/batch` and `GET /v1/usage`.
26
43
  *
27
44
  * - Model: the provider's OpenAPI marks `SystemOneRequest.model` REQUIRED and
28
45
  * documents no server-side default for `/v1/systemone` (the `laya-auto`
@@ -39,7 +56,7 @@
39
56
  * @task T12490
40
57
  * @epic T12486
41
58
  */
42
- import { decisionAnswerSchema, } from '@cleocode/contracts';
59
+ import { decisionAnswerSchema, JEV_MINIMUM_CAPABILITIES, } from '@cleocode/contracts';
43
60
  import { z } from 'zod';
44
61
  import { MAX_RATE_LIMIT_COOLDOWN_MS } from './budget.js';
45
62
  import { DecisionProviderError, } from './provider.js';
@@ -48,8 +65,38 @@ import { decideFetch } from './transport.js';
48
65
  const SYSTEMONE_PATH = '/v1/systemone';
49
66
  /** Path of the model-listing endpoint, relative to the base URL. */
50
67
  const MODELS_PATH = '/v1/models';
51
- /** Adapter identity + version; part of every cache key so a mapping change invalidates the cache. */
52
- export const JEV_ADAPTER_VERSION = 'jev-wire/1';
68
+ /** Path of the batch endpoint (layahost extension). */
69
+ const BATCH_PATH = '/v1/systemone/batch';
70
+ /** Path of the usage endpoint (layahost extension). */
71
+ const USAGE_PATH = '/v1/usage';
72
+ /** Path of the template listing (layahost extension). */
73
+ const TEMPLATES_PATH = '/v1/templates';
74
+ /** Header carrying the call's cost in integer micro-dollars. UNVERIFIED: in the provider docs, not its OpenAPI. */
75
+ export const COST_MICROS_HEADER = 'x-layahost-cost-micros';
76
+ /** Header carrying the account balance in integer micro-dollars. UNVERIFIED: in the provider docs, not its OpenAPI. */
77
+ export const BALANCE_MICROS_HEADER = 'x-layahost-balance-micros';
78
+ /** Byte cap on an error body read to classify a failure. */
79
+ const MAX_ERROR_BODY_BYTES = 8 * 1024;
80
+ /** Byte cap on a usage or template listing body. */
81
+ const MAX_EXTENSION_BODY_BYTES = 64 * 1024;
82
+ /**
83
+ * Capabilities of a provider that answers `GET /v1/usage` (layahost): batch
84
+ * of 64 requests / 256 questions, usage, cache control, lang hint, cost in
85
+ * micros. Templates are added only when `/v1/templates` lists them.
86
+ */
87
+ export const LAYAHOST_EXTENSION_CAPABILITIES = {
88
+ ...JEV_MINIMUM_CAPABILITIES,
89
+ batch: { maxRequests: 64, maxQuestions: 256 },
90
+ usage: true,
91
+ cacheControl: true,
92
+ langHint: true,
93
+ reportsCost: 'micros',
94
+ };
95
+ /**
96
+ * Adapter identity + version; part of every cache key so a mapping change
97
+ * invalidates the cache. `/2`: cost micros, balance and checkpoint are read.
98
+ */
99
+ export const JEV_ADAPTER_VERSION = 'jev-wire/2';
53
100
  /** Loose schema for one wire answer; extra fields (e.g. `legend`) are tolerated. */
54
101
  const jevAnswerSchema = z.looseObject({
55
102
  type: z.string().optional(),
@@ -69,6 +116,8 @@ const jevResponseSchema = z.looseObject({
69
116
  request_id: z.string().optional(),
70
117
  latency_ms: z.number().optional(),
71
118
  cost_usd: z.number().nonnegative().optional(),
119
+ cost_micros: z.number().int().nonnegative().optional(),
120
+ checkpoint: z.string().min(1).optional(),
72
121
  cached: z.boolean().optional(),
73
122
  })
74
123
  .optional(),
@@ -76,10 +125,15 @@ const jevResponseSchema = z.looseObject({
76
125
  /**
77
126
  * Map a contract request to the `/v1/systemone` wire body.
78
127
  *
128
+ * `lang` and `cache` are sent only when `capabilities` says the provider
129
+ * honours them; the default (Jev minimum) sends neither, so a plain Jev host
130
+ * sees exactly the Jev body.
131
+ *
79
132
  * @param req - Provider-neutral request.
133
+ * @param capabilities - The provider's capabilities. Default: the Jev minimum.
80
134
  * @returns The JSON body to POST.
81
135
  */
82
- export function toJevSystemOneBody(req) {
136
+ export function toJevSystemOneBody(req, capabilities = JEV_MINIMUM_CAPABILITIES) {
83
137
  const questions = {};
84
138
  for (const [name, q] of Object.entries(req.questions)) {
85
139
  if (q.type === 'noul') {
@@ -97,8 +151,17 @@ export function toJevSystemOneBody(req) {
97
151
  ...(req.model !== undefined ? { model: req.model } : {}),
98
152
  state: req.state,
99
153
  questions,
154
+ ...(capabilities.langHint === true && req.lang !== undefined ? { lang: req.lang } : {}),
155
+ ...(capabilities.cacheControl === true && req.cache !== undefined ? { cache: req.cache } : {}),
100
156
  };
101
157
  }
158
+ /** Integer micro-dollars from a header value, or undefined when absent or malformed. */
159
+ function microsHeader(value) {
160
+ if (value === null || value === undefined || !/^-?\d+$/.test(value.trim()))
161
+ return undefined;
162
+ const n = Number(value.trim());
163
+ return Number.isSafeInteger(n) ? n : undefined;
164
+ }
102
165
  /** Index of the largest value; ties resolve to the lowest index. */
103
166
  function argmax(values) {
104
167
  let best = 0;
@@ -163,7 +226,7 @@ function mapAnswer(name, question, wire) {
163
226
  * @param latencyMs - Measured wall-clock latency of the call.
164
227
  * @returns The outcome, with `source: 'provider'`.
165
228
  */
166
- export function fromJevSystemOneResponse(req, body, latencyMs) {
229
+ export function fromJevSystemOneResponse(req, body, latencyMs, headers = {}) {
167
230
  const parsed = jevResponseSchema.safeParse(body);
168
231
  if (!parsed.success)
169
232
  throw invalid('response body does not match the systemone shape');
@@ -182,7 +245,10 @@ export function fromJevSystemOneResponse(req, body, latencyMs) {
182
245
  answers[name] = checked.data;
183
246
  }
184
247
  const requestId = wire.meta?.request_id;
185
- const costUsd = wire.meta?.cost_usd;
248
+ const costMicros = wire.meta?.cost_micros ?? nonNegative(microsHeader(headers.costMicros));
249
+ const costUsd = wire.meta?.cost_usd ?? (costMicros !== undefined ? costMicros / 1e6 : undefined);
250
+ const balanceMicros = microsHeader(headers.balanceMicros);
251
+ const checkpoint = wire.meta?.checkpoint;
186
252
  const inputTokens = wire.usage?.input_tokens;
187
253
  return {
188
254
  answers,
@@ -190,9 +256,15 @@ export function fromJevSystemOneResponse(req, body, latencyMs) {
190
256
  latencyMs,
191
257
  ...(requestId ? { requestId } : {}),
192
258
  ...(costUsd !== undefined ? { costUsd } : {}),
259
+ ...(costMicros !== undefined ? { costMicros } : {}),
260
+ ...(balanceMicros !== undefined ? { balanceMicros } : {}),
261
+ ...(checkpoint ? { checkpoint } : {}),
193
262
  ...(inputTokens !== undefined ? { inputTokens } : {}),
194
263
  };
195
264
  }
265
+ function nonNegative(n) {
266
+ return n !== undefined && n >= 0 ? n : undefined;
267
+ }
196
268
  /**
197
269
  * Parse a `retry-after` header (delta seconds or HTTP date) into milliseconds,
198
270
  * capped at {@link MAX_RATE_LIMIT_COOLDOWN_MS}.
@@ -223,24 +295,74 @@ export function parseRetryAfterMs(header, now = Date.now()) {
223
295
  return undefined;
224
296
  return Math.round(Math.min(ms, MAX_RATE_LIMIT_COOLDOWN_MS));
225
297
  }
226
- /** Classify a non-2xx HTTP status. */
227
- function errorForStatus(status, retryAfterMs) {
228
- const message = `decision provider returned HTTP ${status}`;
298
+ /** The provider's `error_type` from an error body (`{detail:{error_type}}` or `{error:{type}}`). */
299
+ export function errorTypeOf(body) {
300
+ const field = (o, key) => o !== null && typeof o === 'object' && key in o ? Reflect.get(o, key) : undefined;
301
+ const pick = (v) => (typeof v === 'string' ? v : undefined);
302
+ return (pick(field(field(body, 'detail'), 'error_type')) ??
303
+ pick(field(field(body, 'error'), 'type')) ??
304
+ pick(field(body, 'error_type')));
305
+ }
306
+ /**
307
+ * Classify a non-2xx response.
308
+ *
309
+ * @param status - HTTP status.
310
+ * @param retryAfterMs - Parsed `retry-after`, when present.
311
+ * @param errorType - The body's `error_type`, when readable.
312
+ * @returns The provider error.
313
+ */
314
+ export function errorForStatus(status, retryAfterMs, errorType) {
315
+ const message = `decision provider returned HTTP ${status}${errorType ? ` (${errorType})` : ''}`;
316
+ const withRetry = { status, ...(retryAfterMs !== undefined ? { retryAfterMs } : {}) };
317
+ if (status === 403 && errorType === 'key_limit_exceeded') {
318
+ return new DecisionProviderError('key_limit_exceeded', "the key's monthly decision limit is reached", { status });
319
+ }
229
320
  if (status === 401 || status === 403) {
230
321
  return new DecisionProviderError('unauthorized', message, { status });
231
322
  }
232
323
  if (status === 402)
233
324
  return new DecisionProviderError('insufficient_credits', message, { status });
234
- if (status === 429) {
235
- return new DecisionProviderError('rate_limited', message, {
236
- status,
237
- ...(retryAfterMs !== undefined ? { retryAfterMs } : {}),
238
- });
325
+ // An empty balance answers 429 insufficient_quota (OpenAPI): credit
326
+ // exhaustion, not a rate limit — backing off for a minute cannot fix it.
327
+ if (status === 429 && errorType === 'insufficient_quota') {
328
+ return new DecisionProviderError('insufficient_credits', message, { status });
329
+ }
330
+ if (status === 429)
331
+ return new DecisionProviderError('rate_limited', message, withRetry);
332
+ if (status === 503 || status === 529) {
333
+ return new DecisionProviderError('overloaded', message, withRetry);
239
334
  }
240
335
  if (status >= 500)
241
336
  return new DecisionProviderError('server_error', message, { status });
242
337
  return new DecisionProviderError('invalid_request', message, { status });
243
338
  }
339
+ /** Read a failed response's body (size-capped) and classify it. Never throws a non-provider error. */
340
+ async function errorForResponse(response) {
341
+ const retryAfterMs = parseRetryAfterMs(response.headers.get('retry-after'));
342
+ let errorType;
343
+ try {
344
+ errorType = errorTypeOf(JSON.parse(await readBoundedText(response, MAX_ERROR_BODY_BYTES)));
345
+ }
346
+ catch {
347
+ await response.body?.cancel().catch(() => undefined);
348
+ }
349
+ return errorForStatus(response.status, retryAfterMs, errorType);
350
+ }
351
+ /** Map a provider `error_type` string (batch items) to an error kind. */
352
+ function kindForErrorType(status, errorType) {
353
+ if (status !== undefined)
354
+ return errorForStatus(status, undefined, errorType).kind;
355
+ if (errorType === 'insufficient_credits' || errorType === 'insufficient_quota') {
356
+ return 'insufficient_credits';
357
+ }
358
+ if (errorType === 'key_limit_exceeded')
359
+ return 'key_limit_exceeded';
360
+ if (errorType === 'rate_limit_error')
361
+ return 'rate_limited';
362
+ if (errorType === 'overloaded_error')
363
+ return 'overloaded';
364
+ return 'invalid_response';
365
+ }
244
366
  /** Join a base URL and an absolute endpoint path, tolerating a trailing slash on the base. */
245
367
  function endpointUrl(baseUrl, path) {
246
368
  return `${baseUrl.replace(/\/+$/, '')}${path}`;
@@ -262,52 +384,279 @@ function endpointUrl(baseUrl, path) {
262
384
  export function createJevProvider(connection, opts = {}) {
263
385
  const doFetch = opts.fetch ?? decideFetch;
264
386
  const now = opts.now ?? (() => performance.now());
265
- return {
387
+ const capabilities = opts.capabilities ?? JEV_MINIMUM_CAPABILITIES;
388
+ const withModel = (req) => req.model === undefined && connection.model ? { ...req, model: connection.model } : req;
389
+ /** POST/GET with auth; network failures become provider errors. */
390
+ async function send(path, init, signal) {
391
+ try {
392
+ return await doFetch(endpointUrl(connection.baseUrl, path), {
393
+ method: init.method,
394
+ headers: {
395
+ authorization: `Bearer ${connection.apiKey}`,
396
+ accept: 'application/json',
397
+ ...(init.body !== undefined ? { 'content-type': 'application/json' } : {}),
398
+ },
399
+ ...(init.body !== undefined ? { body: init.body } : {}),
400
+ signal,
401
+ });
402
+ }
403
+ catch (err) {
404
+ const cause = err instanceof Error ? err : undefined;
405
+ if (signal.aborted) {
406
+ throw new DecisionProviderError('aborted', 'decision request aborted', { cause });
407
+ }
408
+ throw new DecisionProviderError('network', 'decision request failed before a response', {
409
+ cause,
410
+ });
411
+ }
412
+ }
413
+ /** Parse a 2xx JSON body; a non-JSON body is `invalid_response` (or `aborted`). */
414
+ async function jsonBody(response, signal) {
415
+ try {
416
+ return await response.json();
417
+ }
418
+ catch (err) {
419
+ if (signal.aborted) {
420
+ throw new DecisionProviderError('aborted', 'decision request aborted', {
421
+ cause: err instanceof Error ? err : undefined,
422
+ });
423
+ }
424
+ throw invalid('response body is not JSON');
425
+ }
426
+ }
427
+ const provider = {
428
+ capabilities: () => capabilities,
266
429
  async decide(req, signal) {
267
430
  const started = now();
268
- let response;
269
- try {
270
- response = await doFetch(endpointUrl(connection.baseUrl, SYSTEMONE_PATH), {
271
- method: 'POST',
272
- headers: {
273
- authorization: `Bearer ${connection.apiKey}`,
274
- 'content-type': 'application/json',
275
- accept: 'application/json',
276
- },
277
- body: JSON.stringify(toJevSystemOneBody(req.model === undefined && connection.model
278
- ? { ...req, model: connection.model }
279
- : req)),
280
- signal,
281
- });
431
+ const response = await send(SYSTEMONE_PATH, { method: 'POST', body: JSON.stringify(toJevSystemOneBody(withModel(req), capabilities)) }, signal);
432
+ if (!response.ok)
433
+ throw await errorForResponse(response);
434
+ const body = await jsonBody(response, signal);
435
+ return fromJevSystemOneResponse(req, body, Math.max(0, now() - started), {
436
+ costMicros: response.headers.get(COST_MICROS_HEADER),
437
+ balanceMicros: response.headers.get(BALANCE_MICROS_HEADER),
438
+ });
439
+ },
440
+ };
441
+ if (capabilities.batch) {
442
+ const limits = capabilities.batch;
443
+ provider.decideBatch = async (reqs, signal) => {
444
+ const questions = reqs.reduce((n, r) => n + Object.keys(r.questions).length, 0);
445
+ if (reqs.length === 0)
446
+ return [];
447
+ if (reqs.length > limits.maxRequests || questions > limits.maxQuestions) {
448
+ throw new DecisionProviderError('invalid_request', `batch of ${reqs.length} requests / ${questions} questions exceeds ${limits.maxRequests} / ${limits.maxQuestions}`);
282
449
  }
283
- catch (err) {
284
- const cause = err instanceof Error ? err : undefined;
285
- if (signal.aborted) {
286
- throw new DecisionProviderError('aborted', 'decision request aborted', { cause });
450
+ const started = now();
451
+ const response = await send(BATCH_PATH, {
452
+ method: 'POST',
453
+ body: JSON.stringify({
454
+ requests: reqs.map((r) => toJevSystemOneBody(withModel(r), capabilities)),
455
+ }),
456
+ }, signal);
457
+ if (!response.ok)
458
+ throw await errorForResponse(response);
459
+ const parsed = jevBatchSchema.safeParse(await jsonBody(response, signal));
460
+ if (!parsed.success)
461
+ throw invalid('batch response does not match the batch shape');
462
+ // OpenAPI: `{ responses: [{ index, status, body: SystemOneResponse }], request_id }`.
463
+ // Items are placed by `index`, never by array position.
464
+ const byIndex = new Map();
465
+ for (const item of parsed.data.responses) {
466
+ if (item.index < 0 || item.index >= reqs.length || byIndex.has(item.index)) {
467
+ throw invalid(`batch item index ${item.index} is out of range or repeated`);
287
468
  }
288
- throw new DecisionProviderError('network', 'decision request failed before a response', {
289
- cause,
290
- });
291
- }
292
- if (!response.ok) {
293
- // Drain the body so the connection can be reused; its content is not needed.
294
- await response.body?.cancel().catch(() => undefined);
295
- throw errorForStatus(response.status, parseRetryAfterMs(response.headers.get('retry-after')));
469
+ byIndex.set(item.index, item);
296
470
  }
471
+ const latencyMs = Math.max(0, now() - started);
472
+ return reqs.map((req, index) => {
473
+ const item = byIndex.get(index);
474
+ if (!item)
475
+ return { ok: false, errorKind: 'invalid_response' };
476
+ if (item.status < 200 || item.status >= 300) {
477
+ return {
478
+ ok: false,
479
+ status: item.status,
480
+ errorKind: kindForErrorType(item.status, errorTypeOf(item.body)),
481
+ };
482
+ }
483
+ try {
484
+ // Cost comes from the item body's `meta` (OpenAPI SystemOneResponse).
485
+ return { ok: true, outcome: fromJevSystemOneResponse(req, item.body, latencyMs) };
486
+ }
487
+ catch (err) {
488
+ return {
489
+ ok: false,
490
+ status: item.status,
491
+ errorKind: err instanceof DecisionProviderError ? err.kind : 'invalid_response',
492
+ };
493
+ }
494
+ });
495
+ };
496
+ }
497
+ if (capabilities.usage) {
498
+ provider.usage = async (signal) => {
499
+ const response = await send(`${USAGE_PATH}?days=30`, { method: 'GET' }, signal);
500
+ if (!response.ok)
501
+ throw await errorForResponse(response);
297
502
  let body;
298
503
  try {
299
- body = await response.json();
504
+ body = JSON.parse(await readBoundedText(response, MAX_EXTENSION_BODY_BYTES));
300
505
  }
301
506
  catch (err) {
302
- if (signal.aborted) {
303
- throw new DecisionProviderError('aborted', 'decision request aborted', {
304
- cause: err instanceof Error ? err : undefined,
305
- });
306
- }
307
- throw invalid('response body is not JSON');
507
+ if (err instanceof DecisionProviderError)
508
+ throw err;
509
+ throw invalid('usage response is not JSON');
510
+ }
511
+ return parseJevUsage(body);
512
+ };
513
+ }
514
+ return provider;
515
+ }
516
+ /** One `/v1/systemone/batch` item (OpenAPI): its request index, HTTP status and body. */
517
+ const jevBatchItemSchema = z.looseObject({
518
+ index: z.number().int(),
519
+ status: z.number().int(),
520
+ body: z.unknown(),
521
+ });
522
+ /** The `/v1/systemone/batch` response (OpenAPI). */
523
+ const jevBatchSchema = z.looseObject({
524
+ responses: z.array(jevBatchItemSchema),
525
+ request_id: z.string().optional(),
526
+ });
527
+ /**
528
+ * Loose schema for `GET /v1/usage`. The OpenAPI types the body only as an
529
+ * object ("Balance, plan and daily usage of the account"): every field name
530
+ * below (`balance.micros`, `balance.decisions_left`, `plan`, `plan.period_end`,
531
+ * `totals`) is UNVERIFIED, taken from the provider's prose docs, and parsed
532
+ * tolerantly — an absent or differently named field is simply not reported.
533
+ */
534
+ const jevUsageSchema = z.looseObject({
535
+ balance: z
536
+ .looseObject({
537
+ micros: z.number().int().optional(),
538
+ decisions_left: z.number().int().nonnegative().optional(),
539
+ })
540
+ .optional(),
541
+ plan: z
542
+ .union([
543
+ z.string(),
544
+ z.looseObject({ name: z.string().optional(), period_end: z.string().optional() }),
545
+ ])
546
+ .optional(),
547
+ totals: z
548
+ .looseObject({
549
+ decisions: z.number().int().nonnegative().optional(),
550
+ cost_micros: z.number().int().nonnegative().optional(),
551
+ })
552
+ .optional(),
553
+ });
554
+ /**
555
+ * Map a `GET /v1/usage` body onto {@link DecisionProviderUsage}. Unknown or
556
+ * malformed fields are dropped, never guessed.
557
+ *
558
+ * @param body - Parsed JSON.
559
+ * @returns The usage fields the body carried.
560
+ */
561
+ export function parseJevUsage(body) {
562
+ const parsed = jevUsageSchema.safeParse(body);
563
+ if (!parsed.success)
564
+ throw invalid('usage response does not match the usage shape');
565
+ const u = parsed.data;
566
+ const plan = typeof u.plan === 'string' ? u.plan : u.plan?.name;
567
+ const periodEnd = typeof u.plan === 'object' ? u.plan?.period_end : undefined;
568
+ const totals = u.totals
569
+ ? {
570
+ ...(u.totals.decisions !== undefined ? { decisions: u.totals.decisions } : {}),
571
+ ...(u.totals.cost_micros !== undefined ? { costMicros: u.totals.cost_micros } : {}),
572
+ }
573
+ : undefined;
574
+ return {
575
+ ...(u.balance?.micros !== undefined ? { balanceMicros: u.balance.micros } : {}),
576
+ ...(u.balance?.decisions_left !== undefined ? { decisionsLeft: u.balance.decisions_left } : {}),
577
+ ...(plan ? { plan } : {}),
578
+ ...(periodEnd ? { periodEnd } : {}),
579
+ ...(totals && Object.keys(totals).length > 0 ? { totals } : {}),
580
+ };
581
+ }
582
+ /**
583
+ * `GET /v1/templates` (OpenAPI): `{ templates: [{ template, name, description,
584
+ * type, options, example }] }`. `template` is the id a request names; `name`
585
+ * is only a display label.
586
+ */
587
+ const jevTemplatesSchema = z.looseObject({
588
+ templates: z.array(z.looseObject({ template: z.string() })),
589
+ });
590
+ /**
591
+ * Detect what a Jev-compatible host supports beyond the Jev minimum, from its
592
+ * responses only (spec §2.2: never from the host name).
593
+ *
594
+ * - `GET /v1/usage` answers 2xx with at least one usage field → the layahost extensions
595
+ * ({@link LAYAHOST_EXTENSION_CAPABILITIES}).
596
+ * - `GET /v1/templates` answers 2xx with names → `templates`.
597
+ * - Anything else (404, error, timeout) → the Jev minimum. Never throws.
598
+ *
599
+ * Both endpoints count toward the provider's rate limit, so callers cache the
600
+ * result (`cleo decide status` refreshes it at most every 10 minutes).
601
+ *
602
+ * @param connection - Base URL + API key.
603
+ * @param signal - Aborts both probes.
604
+ * @param opts - Injectable `fetch`.
605
+ * @returns The detected capabilities and, when read, the usage.
606
+ */
607
+ export async function detectJevCapabilities(connection, signal, opts = {}) {
608
+ const probe = createJevProvider({ ...connection }, { ...opts, capabilities: LAYAHOST_EXTENSION_CAPABILITIES });
609
+ let usage;
610
+ try {
611
+ if (!probe.usage)
612
+ return { capabilities: JEV_MINIMUM_CAPABILITIES };
613
+ usage = await probe.usage(signal);
614
+ // A 2xx that carries no usage field (a catch-all proxy, a different API)
615
+ // proves nothing: treat it as the Jev minimum.
616
+ if (Object.keys(usage).length === 0)
617
+ return { capabilities: JEV_MINIMUM_CAPABILITIES };
618
+ }
619
+ catch (err) {
620
+ // A key limit or credit stop still proves the endpoint exists.
621
+ if (err instanceof DecisionProviderError &&
622
+ (err.kind === 'key_limit_exceeded' || err.kind === 'insufficient_credits')) {
623
+ return { capabilities: LAYAHOST_EXTENSION_CAPABILITIES, error: err };
624
+ }
625
+ return {
626
+ capabilities: JEV_MINIMUM_CAPABILITIES,
627
+ ...(err instanceof DecisionProviderError ? { error: err } : {}),
628
+ };
629
+ }
630
+ let templates;
631
+ try {
632
+ const doFetch = opts.fetch ?? decideFetch;
633
+ const response = await doFetch(endpointUrl(connection.baseUrl, TEMPLATES_PATH), {
634
+ method: 'GET',
635
+ headers: { authorization: `Bearer ${connection.apiKey}`, accept: 'application/json' },
636
+ signal,
637
+ });
638
+ if (response.ok) {
639
+ const parsed = jevTemplatesSchema.safeParse(JSON.parse(await readBoundedText(response, MAX_EXTENSION_BODY_BYTES)));
640
+ if (parsed.success) {
641
+ templates = parsed.data.templates
642
+ .map((x) => x.template)
643
+ .filter((id) => isValidDecisionModelName(id))
644
+ .slice(0, 64);
308
645
  }
309
- return fromJevSystemOneResponse(req, body, Math.max(0, now() - started));
646
+ }
647
+ else {
648
+ await response.body?.cancel().catch(() => undefined);
649
+ }
650
+ }
651
+ catch {
652
+ templates = undefined;
653
+ }
654
+ return {
655
+ capabilities: {
656
+ ...LAYAHOST_EXTENSION_CAPABILITIES,
657
+ ...(templates && templates.length > 0 ? { templates } : {}),
310
658
  },
659
+ usage,
311
660
  };
312
661
  }
313
662
  /**
@@ -390,10 +739,8 @@ export async function listJevModels(connection, signal, opts = {}) {
390
739
  const kind = signal.aborted ? 'aborted' : 'network';
391
740
  throw new DecisionProviderError(kind, `model listing failed (${kind})`, { cause });
392
741
  }
393
- if (!response.ok) {
394
- await response.body?.cancel().catch(() => undefined);
395
- throw errorForStatus(response.status, parseRetryAfterMs(response.headers.get('retry-after')));
396
- }
742
+ if (!response.ok)
743
+ throw await errorForResponse(response);
397
744
  let body;
398
745
  try {
399
746
  body = JSON.parse(await readBoundedText(response, MAX_MODELS_RESPONSE_BYTES));
@@ -1 +1 @@
1
- {"version":3,"file":"jev-wire.js","sourceRoot":"","sources":["../../src/decide/jev-wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev-wire.js","sourceRoot":"","sources":["../../src/decide/jev-wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,EAQL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAGL,qBAAqB,GAEtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,qEAAqE;AACrE,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC,oEAAoE;AACpE,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC,uDAAuD;AACvD,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,uDAAuD;AACvD,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,yDAAyD;AACzD,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC,mHAAmH;AACnH,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,uHAAuH;AACvH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC;AAEtC,oDAAoD;AACpD,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAiC;IAC3E,GAAG,wBAAwB;IAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;IAC7C,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAuBhD,oFAAoF;AACpF,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5F,IAAI,EAAE,CAAC;SACJ,WAAW,CAAC;QACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACxC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAIH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAoB,EACpB,eAA6C,wBAAwB;IAErE,MAAM,SAAS,GAAoC,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,GAAG;gBAChB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ;gBAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC/B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS;QACT,GAAG,CAAC,YAAY,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,YAAY,CAAC,YAAY,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,YAAY,CAAC,KAAgC;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7F,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAUD,oEAAoE;AACpE,SAAS,MAAM,CAAC,MAAyB;IACvC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,IAAI,qBAAqB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,IAAY,EAAE,QAA0B,EAAE,IAAmB;IAC9E,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,WAAW,IAAI,2BAA2B,CAAC,CAAC;QACvF,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG;YACvB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,aAAa;YAAE,MAAM,OAAO,CAAC,WAAW,IAAI,wBAAwB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa;YACvD,CAAC,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC,CAAC;QACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,aAAa;QAAE,MAAM,OAAO,CAAC,WAAW,IAAI,wBAAwB,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,WAAW,IAAI,sBAAsB,KAAK,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAAoB,EACpB,IAAa,EACb,SAAiB,EACjB,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,OAAO,CAAC,kDAAkD,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,MAAM,OAAO,GAAmC,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU;YAAE,MAAM,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvE,MAAM,OAAO,CAAC,WAAW,IAAI,cAAc,UAAU,CAAC,IAAI,cAAc,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,OAAO,CAAC,WAAW,IAAI,8BAA8B,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjG,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7C,OAAO;QACL,OAAO;QACP,MAAM,EAAE,UAAU;QAClB,SAAS;QACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAqB;IACxC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,MAAM,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,EAAU,CAAC;IACf,IAAI,2CAA2C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,GAAW,EAAW,EAAE,CACjD,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,IAAI,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzF,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,YAAgC,EAChC,SAAkB;IAElB,MAAM,OAAO,GAAG,mCAAmC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjG,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACtF,IAAI,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;QACzD,OAAO,IAAI,qBAAqB,CAC9B,oBAAoB,EACpB,6CAA6C,EAC7C,EAAE,MAAM,EAAE,CACX,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACrC,OAAO,IAAI,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,qBAAqB,CAAC,sBAAsB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAClG,oEAAoE;IACpE,yEAAyE;IACzE,IAAI,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;QACzD,OAAO,IAAI,qBAAqB,CAAC,sBAAsB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzF,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACrC,OAAO,IAAI,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzF,OAAO,IAAI,qBAAqB,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,sGAAsG;AACtG,KAAK,UAAU,gBAAgB,CAAC,QAAkB;IAChD,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5E,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC;QACH,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,yEAAyE;AACzE,SAAS,gBAAgB,CACvB,MAA0B,EAC1B,SAA6B;IAE7B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC;IACnF,IAAI,SAAS,KAAK,sBAAsB,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;QAC/E,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,IAAI,SAAS,KAAK,oBAAoB;QAAE,OAAO,oBAAoB,CAAC;IACpE,IAAI,SAAS,KAAK,kBAAkB;QAAE,OAAO,cAAc,CAAC;IAC5D,IAAI,SAAS,KAAK,kBAAkB;QAAE,OAAO,YAAY,CAAC;IAC1D,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,8FAA8F;AAC9F,SAAS,WAAW,CAAC,OAAe,EAAE,IAAY;IAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;AACjD,CAAC;AAmBD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAsC,EACtC,OAA2B,EAAE;IAE7B,MAAM,OAAO,GAAgB,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,wBAAwB,CAAC;IACnE,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAmB,EAAE,CAC1D,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1F,mEAAmE;IACnE,KAAK,UAAU,IAAI,CACjB,IAAY,EACZ,IAAiE,EACjE,MAAmB;QAEnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBAC1D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE;oBAC5C,MAAM,EAAE,kBAAkB;oBAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E;gBACD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,2CAA2C,EAAE;gBACtF,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,KAAK,UAAU,QAAQ,CAAC,QAAkB,EAAE,MAAmB;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,0BAA0B,EAAE;oBACrE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;iBAC9C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAqB;QACjC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY;QAEhC,KAAK,CAAC,MAAM,CAAC,GAAoB,EAAE,MAAmB;YACpD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CACzB,cAAc,EACd,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,EAC1F,MAAM,CACP,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE;gBACvE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBACpD,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,QAAQ,CAAC,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAyC,EAAE;YACnF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAChF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxE,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,YAAY,IAAI,CAAC,MAAM,eAAe,SAAS,sBAAsB,MAAM,CAAC,WAAW,MAAM,MAAM,CAAC,YAAY,EAAE,CACnH,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CACzB,UAAU,EACV;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;iBAC1E,CAAC;aACH,EACD,MAAM,CACP,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,OAAO,CAAC,+CAA+C,CAAC,CAAC;YACpF,sFAAsF;YACtF,wDAAwD;YACxD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkD,CAAC;YAC1E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3E,MAAM,OAAO,CAAC,oBAAoB,IAAI,CAAC,KAAK,8BAA8B,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAqB,EAAE;gBAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAC5C,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACjE,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,sEAAsE;oBACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBACpF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,SAAS,EAAE,GAAG,YAAY,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB;qBAChF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,QAAQ,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM,EAAkC,EAAE;YAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,UAAU,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;YAChF,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,qBAAqB;oBAAE,MAAM,GAAG,CAAC;gBACpD,MAAM,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;CAClB,CAAC,CAAC;AAEH,oDAAoD;AACpD,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC;IACnC,OAAO,EAAE,CAAC;SACP,WAAW,CAAC;QACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KAC1D,CAAC;SACD,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC;QACL,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KAClF,CAAC;SACD,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC;SACN,WAAW,CAAC;QACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KACvD,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACpF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;QACrB,CAAC,CAAC;YACE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF;QACH,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC5D,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkE,EAClE,MAAmB,EACnB,OAA0C,EAAE;IAM5C,MAAM,KAAK,GAAG,iBAAiB,CAC7B,EAAE,GAAG,UAAU,EAAE,EACjB,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,+BAA+B,EAAE,CAC3D,CAAC;IACF,IAAI,KAA4B,CAAC;IACjC,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC;QACpE,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,yEAAyE;QACzE,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+DAA+D;QAC/D,IACE,GAAG,YAAY,qBAAqB;YACpC,CAAC,GAAG,CAAC,IAAI,KAAK,oBAAoB,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,CAAC,EAC1E,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACvE,CAAC;QACD,OAAO;YACL,YAAY,EAAE,wBAAwB;YACtC,GAAG,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IACD,IAAI,SAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAgB,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;YAC9E,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACrF,MAAM;SACP,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CACzC,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACtE,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;qBACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;qBAC5C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;IACD,OAAO;QACL,YAAY,EAAE;YACZ,GAAG,+BAA+B;YAClC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAEhE,oDAAoD;AACpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEpD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,wFAAwF;AACxF,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;CACtD,CAAC,CAAC;AAEH;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,QAAgB;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;QACrD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;QAC1B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkE,EAClE,MAAmB,EACnB,OAA0C,EAAE;IAE5C,MAAM,OAAO,GAAgB,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;IACvD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;YACrE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACrF,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB;YAAE,MAAM,GAAG,CAAC;QACpD,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QACxF,MAAM,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACpF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,MAAM,IAAI,iBAAiB;YAAE,MAAM;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}