niceeval 0.13.3 → 0.13.4-canary.39

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 (487) hide show
  1. package/INDEX.md +5 -5
  2. package/dist/agents/index.cjs +2 -2
  3. package/dist/agents/index.cjs.map +1 -1
  4. package/dist/agents/project.json +6 -0
  5. package/dist/agents/streaming.cjs.map +1 -1
  6. package/dist/agents/types.cjs.map +1 -1
  7. package/dist/agents/types.d.cts +1 -1
  8. package/dist/agents/types.d.mts +1 -1
  9. package/dist/agents/types.d.ts +1 -1
  10. package/dist/analysis/bindings.d.cts +8 -8
  11. package/dist/analysis/bindings.d.mts +8 -8
  12. package/dist/analysis/bindings.d.ts +8 -8
  13. package/dist/analysis/contracts.cjs.map +1 -1
  14. package/dist/analysis/contracts.d.cts +8 -19
  15. package/dist/analysis/contracts.d.mts +8 -19
  16. package/dist/analysis/contracts.d.ts +8 -19
  17. package/dist/analysis/experiment-groups.cjs +7 -14
  18. package/dist/analysis/experiment-groups.cjs.map +1 -1
  19. package/dist/analysis/index.cjs.map +1 -1
  20. package/dist/analysis/index.d.cts +1 -1
  21. package/dist/analysis/index.d.mts +1 -1
  22. package/dist/analysis/index.d.ts +1 -1
  23. package/dist/cli/application.cjs +4 -13
  24. package/dist/cli/application.cjs.map +1 -1
  25. package/dist/cli/application.d.cts +62 -59
  26. package/dist/cli/application.d.mts +62 -59
  27. package/dist/cli/application.d.ts +62 -59
  28. package/dist/cli/application.js +6 -12
  29. package/dist/cli/bootstrap.cjs +28 -2
  30. package/dist/cli/bootstrap.cjs.map +1 -1
  31. package/dist/cli/contribution.cjs +185 -0
  32. package/dist/cli/contribution.cjs.map +1 -0
  33. package/dist/cli/contribution.d.cts +55 -0
  34. package/dist/cli/contribution.d.mts +55 -0
  35. package/dist/cli/contribution.d.ts +55 -0
  36. package/dist/cli/contribution.js +20 -0
  37. package/dist/cli/contribution.js.map +1 -0
  38. package/dist/cli/node-application.cjs +119 -87
  39. package/dist/cli/node-application.cjs.map +1 -1
  40. package/dist/cli/node-application.d.cts +2 -8
  41. package/dist/cli/node-application.d.mts +2 -8
  42. package/dist/cli/node-application.d.ts +2 -8
  43. package/dist/cli/node-application.js +12 -22
  44. package/dist/cli/program.cjs +87 -2756
  45. package/dist/cli/program.cjs.map +1 -1
  46. package/dist/cli/program.d.cts +11 -332
  47. package/dist/cli/program.d.mts +11 -332
  48. package/dist/cli/program.d.ts +11 -332
  49. package/dist/cli/program.js +4 -28
  50. package/dist/cli.cjs +0 -3
  51. package/dist/cli.cjs.map +1 -1
  52. package/dist/cli.d.cts +0 -1
  53. package/dist/cli.d.mts +0 -1
  54. package/dist/cli.d.ts +0 -1
  55. package/dist/cli.js +6 -14
  56. package/dist/define.cjs +1 -1
  57. package/dist/define.cjs.map +1 -1
  58. package/dist/docker/cache-administration.cjs +8 -0
  59. package/dist/docker/cache-administration.cjs.map +1 -0
  60. package/dist/docker/cache-administration.d.cts +33 -0
  61. package/dist/docker/cache-administration.d.mts +33 -0
  62. package/dist/docker/cache-administration.d.ts +33 -0
  63. package/dist/docker/cache-administration.js +6 -0
  64. package/dist/docker/cache-administration.js.map +1 -0
  65. package/dist/docker/cache-live.cjs +27 -0
  66. package/dist/docker/cache-live.cjs.map +1 -0
  67. package/dist/docker/cache-live.d.cts +3 -0
  68. package/dist/docker/cache-live.d.mts +3 -0
  69. package/dist/docker/cache-live.d.ts +3 -0
  70. package/dist/docker/cache-live.js +6 -0
  71. package/dist/docker/cache-live.js.map +1 -0
  72. package/dist/docker/cli/contribution.cjs +223 -0
  73. package/dist/docker/cli/contribution.cjs.map +1 -0
  74. package/dist/docker/cli/contribution.d.cts +48 -0
  75. package/dist/docker/cli/contribution.d.mts +48 -0
  76. package/dist/docker/cli/contribution.d.ts +48 -0
  77. package/dist/docker/cli/contribution.js +8 -0
  78. package/dist/docker/cli/contribution.js.map +1 -0
  79. package/dist/eval/cli/contribution.cjs +62 -0
  80. package/dist/eval/cli/contribution.cjs.map +1 -0
  81. package/dist/eval/cli/contribution.d.cts +21 -0
  82. package/dist/eval/cli/contribution.d.mts +21 -0
  83. package/dist/eval/cli/contribution.d.ts +21 -0
  84. package/dist/eval/cli/contribution.js +8 -0
  85. package/dist/eval/cli/contribution.js.map +1 -0
  86. package/dist/eval/host/index.cjs +23 -0
  87. package/dist/eval/host/index.cjs.map +1 -0
  88. package/dist/eval/host/index.d.cts +27 -0
  89. package/dist/eval/host/index.d.mts +27 -0
  90. package/dist/eval/host/index.d.ts +27 -0
  91. package/dist/eval/host/index.js +8 -0
  92. package/dist/eval/host/index.js.map +1 -0
  93. package/dist/eval/host/index.mjs +8 -0
  94. package/dist/eval/host/index.mjs.map +1 -0
  95. package/dist/experiment/host/cli/contribution.cjs +835 -0
  96. package/dist/experiment/host/cli/contribution.cjs.map +1 -0
  97. package/dist/experiment/host/cli/contribution.d.cts +329 -0
  98. package/dist/experiment/host/cli/contribution.d.mts +329 -0
  99. package/dist/experiment/host/cli/contribution.d.ts +329 -0
  100. package/dist/experiment/host/cli/contribution.js +22 -0
  101. package/dist/experiment/host/cli/contribution.js.map +1 -0
  102. package/dist/experiment/host/cli/index.cjs +9 -0
  103. package/dist/experiment/host/cli/index.cjs.map +1 -0
  104. package/dist/experiment/host/cli/index.d.cts +2 -0
  105. package/dist/experiment/host/cli/index.d.mts +2 -0
  106. package/dist/experiment/host/cli/index.d.ts +2 -0
  107. package/dist/experiment/host/cli/index.js +10 -0
  108. package/dist/experiment/host/cli/index.js.map +1 -0
  109. package/dist/experiment/host/cli/terminal.cjs +15 -0
  110. package/dist/experiment/host/cli/terminal.cjs.map +1 -0
  111. package/dist/experiment/host/cli/terminal.d.cts +14 -0
  112. package/dist/experiment/host/cli/terminal.d.mts +14 -0
  113. package/dist/experiment/host/cli/terminal.d.ts +14 -0
  114. package/dist/experiment/host/cli/terminal.js +8 -0
  115. package/dist/experiment/host/cli/terminal.js.map +1 -0
  116. package/dist/experiment/host/index.cjs +35 -58
  117. package/dist/experiment/host/index.cjs.map +1 -1
  118. package/dist/experiment/host/index.d.cts +5 -79
  119. package/dist/experiment/host/index.d.mts +5 -79
  120. package/dist/experiment/host/index.d.ts +5 -79
  121. package/dist/experiment/host/index.js +4 -2
  122. package/dist/experiment/host/index.mjs +4 -2
  123. package/dist/experiment/host/operations.cjs +678 -0
  124. package/dist/experiment/host/operations.cjs.map +1 -0
  125. package/dist/experiment/host/operations.d.cts +19 -0
  126. package/dist/experiment/host/operations.d.mts +19 -0
  127. package/dist/experiment/host/operations.d.ts +19 -0
  128. package/dist/experiment/host/operations.js +24 -0
  129. package/dist/experiment/host/operations.js.map +1 -0
  130. package/dist/experiment/host/presentation.cjs +81 -0
  131. package/dist/experiment/host/presentation.cjs.map +1 -0
  132. package/dist/experiment/host/presentation.d.cts +9 -0
  133. package/dist/experiment/host/presentation.d.mts +9 -0
  134. package/dist/experiment/host/presentation.d.ts +9 -0
  135. package/dist/experiment/host/presentation.js +8 -0
  136. package/dist/experiment/host/presentation.js.map +1 -0
  137. package/dist/experiment/host/teardown.cjs +394 -0
  138. package/dist/experiment/host/teardown.cjs.map +1 -0
  139. package/dist/experiment/host/teardown.d.cts +5 -0
  140. package/dist/experiment/host/teardown.d.mts +5 -0
  141. package/dist/experiment/host/teardown.d.ts +5 -0
  142. package/dist/experiment/host/teardown.js +8 -0
  143. package/dist/experiment/host/teardown.js.map +1 -0
  144. package/dist/experiment/host/types.cjs +9 -0
  145. package/dist/experiment/host/types.cjs.map +1 -0
  146. package/dist/experiment/host/types.d.cts +423 -0
  147. package/dist/experiment/host/types.d.mts +423 -0
  148. package/dist/experiment/host/types.d.ts +423 -0
  149. package/dist/experiment/host/types.js +6 -0
  150. package/dist/experiment/host/types.js.map +1 -0
  151. package/dist/i18n/en.cjs +8 -50
  152. package/dist/i18n/en.cjs.map +1 -1
  153. package/dist/i18n/en.d.cts +2 -6
  154. package/dist/i18n/en.d.mts +2 -6
  155. package/dist/i18n/en.d.ts +2 -6
  156. package/dist/o11y/project.json +6 -0
  157. package/dist/project/cli/contribution.cjs +66 -0
  158. package/dist/project/cli/contribution.cjs.map +1 -0
  159. package/dist/project/cli/contribution.d.cts +17 -0
  160. package/dist/project/cli/contribution.d.mts +17 -0
  161. package/dist/project/cli/contribution.d.ts +17 -0
  162. package/dist/project/cli/contribution.js +8 -0
  163. package/dist/project/cli/contribution.js.map +1 -0
  164. package/dist/project/cli/index.cjs +7 -0
  165. package/dist/project/cli/index.cjs.map +1 -0
  166. package/dist/project/cli/index.d.cts +1 -0
  167. package/dist/project/cli/index.d.mts +1 -0
  168. package/dist/project/cli/index.d.ts +1 -0
  169. package/dist/project/cli/index.js +8 -0
  170. package/dist/project/cli/index.js.map +1 -0
  171. package/dist/project/host/index.cjs +11 -0
  172. package/dist/project/host/index.cjs.map +1 -0
  173. package/dist/project/host/index.d.cts +4 -0
  174. package/dist/project/host/index.d.mts +4 -0
  175. package/dist/project/host/index.d.ts +4 -0
  176. package/dist/project/host/index.js +14 -0
  177. package/dist/project/host/index.js.map +1 -0
  178. package/dist/project/host/index.mjs +14 -0
  179. package/dist/project/host/index.mjs.map +1 -0
  180. package/dist/project/host.cjs +59 -0
  181. package/dist/project/host.cjs.map +1 -0
  182. package/dist/project/host.d.cts +17 -0
  183. package/dist/project/host.d.mts +17 -0
  184. package/dist/project/host.d.ts +17 -0
  185. package/dist/project/host.js +6 -0
  186. package/dist/project/host.js.map +1 -0
  187. package/dist/project/index.cjs +11 -0
  188. package/dist/project/index.cjs.map +1 -0
  189. package/dist/project/index.d.cts +4 -0
  190. package/dist/project/index.d.mts +4 -0
  191. package/dist/project/index.d.ts +4 -0
  192. package/dist/project/index.js +14 -0
  193. package/dist/project/index.js.map +1 -0
  194. package/dist/project/node.cjs +91 -0
  195. package/dist/project/node.cjs.map +1 -0
  196. package/dist/project/node.d.cts +6 -0
  197. package/dist/project/node.d.mts +6 -0
  198. package/dist/project/node.d.ts +6 -0
  199. package/dist/project/node.js +12 -0
  200. package/dist/project/node.js.map +1 -0
  201. package/dist/project/services.cjs +17 -0
  202. package/dist/project/services.cjs.map +1 -0
  203. package/dist/project/services.d.cts +47 -0
  204. package/dist/project/services.d.mts +47 -0
  205. package/dist/project/services.d.ts +47 -0
  206. package/dist/project/services.js +12 -0
  207. package/dist/project/services.js.map +1 -0
  208. package/dist/project/templates.cjs +28 -0
  209. package/dist/project/templates.cjs.map +1 -0
  210. package/dist/project/templates.d.cts +4 -0
  211. package/dist/project/templates.d.mts +4 -0
  212. package/dist/project/templates.d.ts +4 -0
  213. package/dist/project/templates.js +12 -0
  214. package/dist/project/templates.js.map +1 -0
  215. package/dist/project.json +6 -0
  216. package/dist/record/family/catalog.d.cts +10 -10
  217. package/dist/record/family/catalog.d.mts +10 -10
  218. package/dist/record/family/catalog.d.ts +10 -10
  219. package/dist/record/family/file-changes.d.cts +8 -8
  220. package/dist/record/family/file-changes.d.mts +8 -8
  221. package/dist/record/family/file-changes.d.ts +8 -8
  222. package/dist/record/host/cli/contribution.cjs +206 -0
  223. package/dist/record/host/cli/contribution.cjs.map +1 -0
  224. package/dist/record/host/cli/contribution.d.cts +32 -0
  225. package/dist/record/host/cli/contribution.d.mts +32 -0
  226. package/dist/record/host/cli/contribution.d.ts +32 -0
  227. package/dist/record/host/cli/contribution.js +10 -0
  228. package/dist/record/host/cli/contribution.js.map +1 -0
  229. package/dist/record/host/cli/index.cjs +8 -0
  230. package/dist/record/host/cli/index.cjs.map +1 -0
  231. package/dist/record/host/cli/index.d.cts +1 -0
  232. package/dist/record/host/cli/index.d.mts +1 -0
  233. package/dist/record/host/cli/index.d.ts +1 -0
  234. package/dist/record/host/cli/index.js +10 -0
  235. package/dist/record/host/cli/index.js.map +1 -0
  236. package/dist/record/host/cli/presentation.cjs +122 -0
  237. package/dist/record/host/cli/presentation.cjs.map +1 -0
  238. package/dist/record/host/cli/presentation.d.cts +7 -0
  239. package/dist/record/host/cli/presentation.d.mts +7 -0
  240. package/dist/record/host/cli/presentation.d.ts +7 -0
  241. package/dist/record/host/cli/presentation.js +12 -0
  242. package/dist/record/host/cli/presentation.js.map +1 -0
  243. package/dist/record/host/index.cjs.map +1 -1
  244. package/dist/record/host/index.d.cts +1 -1
  245. package/dist/record/host/index.d.mts +1 -1
  246. package/dist/record/host/index.d.ts +1 -1
  247. package/dist/record/host/runtime.cjs +184 -1
  248. package/dist/record/host/runtime.cjs.map +1 -1
  249. package/dist/record/host/types.cjs.map +1 -1
  250. package/dist/record/host/types.d.cts +120 -0
  251. package/dist/record/host/types.d.mts +120 -0
  252. package/dist/record/host/types.d.ts +120 -0
  253. package/dist/record/project.json +6 -0
  254. package/dist/report/assets/styles.css +80 -0
  255. package/dist/report/cli/contribution.cjs +325 -0
  256. package/dist/report/cli/contribution.cjs.map +1 -0
  257. package/dist/report/cli/contribution.d.cts +143 -0
  258. package/dist/report/cli/contribution.d.mts +143 -0
  259. package/dist/report/cli/contribution.d.ts +143 -0
  260. package/dist/report/cli/contribution.js +12 -0
  261. package/dist/report/cli/contribution.js.map +1 -0
  262. package/dist/report/client-dist/app.js +9 -9
  263. package/dist/report/components/attempt-detail/content.cjs +1 -1
  264. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  265. package/dist/report/components/entity-lists/compute.cjs +5 -0
  266. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  267. package/dist/report/components/entity-lists/compute.d.cts +2 -0
  268. package/dist/report/components/entity-lists/compute.d.mts +2 -0
  269. package/dist/report/components/entity-lists/compute.d.ts +2 -0
  270. package/dist/report/components/entity-lists/content.cjs +35 -12
  271. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  272. package/dist/report/components/entity-lists/index.cjs +0 -3
  273. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  274. package/dist/report/components/summaries/index.cjs +2 -4
  275. package/dist/report/components/summaries/index.cjs.map +1 -1
  276. package/dist/report/definition/cell.cjs +7 -2
  277. package/dist/report/definition/cell.cjs.map +1 -1
  278. package/dist/report/definition/cell.d.cts +2 -0
  279. package/dist/report/definition/cell.d.mts +2 -0
  280. package/dist/report/definition/cell.d.ts +2 -0
  281. package/dist/report/definition/primitives/assertion-evidence.cjs +190 -4
  282. package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -1
  283. package/dist/report/definition/primitives/assertion-evidence.d.cts +4 -0
  284. package/dist/report/definition/primitives/assertion-evidence.d.mts +4 -0
  285. package/dist/report/definition/primitives/assertion-evidence.d.ts +4 -0
  286. package/dist/report/execution/machine.cjs +2 -3
  287. package/dist/report/execution/machine.cjs.map +1 -1
  288. package/dist/report/execution/machine.d.cts +11 -8
  289. package/dist/report/execution/machine.d.mts +11 -8
  290. package/dist/report/execution/machine.d.ts +11 -8
  291. package/dist/report/host/from-record.cjs +13 -8
  292. package/dist/report/host/from-record.cjs.map +1 -1
  293. package/dist/report/host/index.cjs +5 -1
  294. package/dist/report/host/index.cjs.map +1 -1
  295. package/dist/report/host/index.d.cts +1 -0
  296. package/dist/report/host/index.d.mts +1 -0
  297. package/dist/report/host/index.d.ts +1 -0
  298. package/dist/report/host/index.js +8 -2
  299. package/dist/report/host/index.mjs +8 -2
  300. package/dist/report/host/machine.cjs +23 -22
  301. package/dist/report/host/machine.cjs.map +1 -1
  302. package/dist/report/host/machine.d.cts +1 -1
  303. package/dist/report/host/machine.d.mts +1 -1
  304. package/dist/report/host/machine.d.ts +1 -1
  305. package/dist/report/host/node/loader.cjs +4 -2
  306. package/dist/report/host/node/loader.cjs.map +1 -1
  307. package/dist/report/host/node/loader.d.cts +3 -1
  308. package/dist/report/host/node/loader.d.mts +3 -1
  309. package/dist/report/host/node/loader.d.ts +3 -1
  310. package/dist/report/host/node.cjs +44 -9
  311. package/dist/report/host/node.cjs.map +1 -1
  312. package/dist/report/host/node.d.cts +13 -3
  313. package/dist/report/host/node.d.mts +13 -3
  314. package/dist/report/host/node.d.ts +13 -3
  315. package/dist/report/host/node.js +44 -32
  316. package/dist/report/host/operations.cjs +14 -0
  317. package/dist/report/host/operations.cjs.map +1 -0
  318. package/dist/report/host/operations.d.cts +39 -0
  319. package/dist/report/host/operations.d.mts +39 -0
  320. package/dist/report/host/operations.d.ts +39 -0
  321. package/dist/report/host/operations.js +10 -0
  322. package/dist/report/host/operations.js.map +1 -0
  323. package/dist/report/model/chart/plot.cjs +1 -1
  324. package/dist/report/model/chart/plot.cjs.map +1 -1
  325. package/dist/report/model/locale.cjs +4 -0
  326. package/dist/report/model/locale.cjs.map +1 -1
  327. package/dist/report/model/locale.d.cts +3 -1
  328. package/dist/report/model/locale.d.mts +3 -1
  329. package/dist/report/model/locale.d.ts +3 -1
  330. package/dist/report/react/styles.css +80 -0
  331. package/dist/runner/build-preparation.cjs +5 -5
  332. package/dist/runner/build-preparation.cjs.map +1 -1
  333. package/dist/runner/build-preparation.d.cts +2 -3
  334. package/dist/runner/build-preparation.d.mts +2 -3
  335. package/dist/runner/build-preparation.d.ts +2 -3
  336. package/dist/runner/feedback/coordinator.cjs +18 -15
  337. package/dist/runner/feedback/coordinator.cjs.map +1 -1
  338. package/dist/runner/feedback/coordinator.d.cts +6 -0
  339. package/dist/runner/feedback/coordinator.d.mts +6 -0
  340. package/dist/runner/feedback/coordinator.d.ts +6 -0
  341. package/dist/runner/ledger.cjs +3 -13
  342. package/dist/runner/ledger.cjs.map +1 -1
  343. package/dist/runner/ledger.d.cts +1 -3
  344. package/dist/runner/ledger.d.mts +1 -3
  345. package/dist/runner/ledger.d.ts +1 -3
  346. package/dist/runner/run.cjs +63 -18
  347. package/dist/runner/run.cjs.map +1 -1
  348. package/dist/runner/session.cjs +10 -0
  349. package/dist/runner/session.cjs.map +1 -1
  350. package/dist/runner/session.d.cts +25 -0
  351. package/dist/runner/session.d.mts +25 -0
  352. package/dist/runner/session.d.ts +25 -0
  353. package/dist/runner/types.cjs.map +1 -1
  354. package/dist/runner/types.d.cts +1 -2
  355. package/dist/runner/types.d.mts +1 -2
  356. package/dist/runner/types.d.ts +1 -2
  357. package/dist/sandbox/build-coordinator.cjs +38 -19
  358. package/dist/sandbox/build-coordinator.cjs.map +1 -1
  359. package/dist/sandbox/build-coordinator.d.cts +47 -7
  360. package/dist/sandbox/build-coordinator.d.mts +47 -7
  361. package/dist/sandbox/build-coordinator.d.ts +47 -7
  362. package/dist/sandbox/build-coordinator.js +8 -4
  363. package/dist/sandbox/cli/contribution.cjs +128 -0
  364. package/dist/sandbox/cli/contribution.cjs.map +1 -0
  365. package/dist/sandbox/cli/contribution.d.cts +71 -0
  366. package/dist/sandbox/cli/contribution.d.mts +71 -0
  367. package/dist/sandbox/cli/contribution.d.ts +71 -0
  368. package/dist/sandbox/cli/contribution.js +8 -0
  369. package/dist/sandbox/cli/contribution.js.map +1 -0
  370. package/dist/sandbox/cli-commands.cjs +14 -21
  371. package/dist/sandbox/cli-commands.cjs.map +1 -1
  372. package/dist/sandbox/cli-commands.d.cts +12 -8
  373. package/dist/sandbox/cli-commands.d.mts +12 -8
  374. package/dist/sandbox/cli-commands.d.ts +12 -8
  375. package/dist/sandbox/compose.cjs +22 -2
  376. package/dist/sandbox/compose.cjs.map +1 -1
  377. package/dist/sandbox/compose.d.cts +1 -1
  378. package/dist/sandbox/compose.d.mts +1 -1
  379. package/dist/sandbox/compose.d.ts +1 -1
  380. package/dist/sandbox/docker-profile/cli.cjs +13 -9
  381. package/dist/sandbox/docker-profile/cli.cjs.map +1 -1
  382. package/dist/sandbox/docker-profile/cli.d.cts +2 -0
  383. package/dist/sandbox/docker-profile/cli.d.mts +2 -0
  384. package/dist/sandbox/docker-profile/cli.d.ts +2 -0
  385. package/dist/sandbox/docker-profile/runtime.cjs +68 -7
  386. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  387. package/dist/sandbox/docker-profile/runtime.d.cts +19 -1
  388. package/dist/sandbox/docker-profile/runtime.d.mts +19 -1
  389. package/dist/sandbox/docker-profile/runtime.d.ts +19 -1
  390. package/dist/sandbox/docker-profile/runtime.js +10 -8
  391. package/dist/sandbox/docker-profile/schema.cjs +68 -19
  392. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  393. package/dist/sandbox/docker-profile/schema.d.cts +23 -9
  394. package/dist/sandbox/docker-profile/schema.d.mts +23 -9
  395. package/dist/sandbox/docker-profile/schema.d.ts +23 -9
  396. package/dist/sandbox/docker-task-build-cache.cjs +532 -0
  397. package/dist/sandbox/docker-task-build-cache.cjs.map +1 -0
  398. package/dist/sandbox/docker-task-build-cache.d.cts +68 -0
  399. package/dist/sandbox/docker-task-build-cache.d.mts +68 -0
  400. package/dist/sandbox/docker-task-build-cache.d.ts +68 -0
  401. package/dist/sandbox/docker-task-build-cache.js +20 -0
  402. package/dist/sandbox/docker-task-build-cache.js.map +1 -0
  403. package/dist/sandbox/docker.cjs +50 -0
  404. package/dist/sandbox/docker.cjs.map +1 -1
  405. package/dist/sandbox/docker.d.cts +15 -0
  406. package/dist/sandbox/docker.d.mts +15 -0
  407. package/dist/sandbox/docker.d.ts +15 -0
  408. package/dist/sandbox/dockerfile-build.cjs +55 -5
  409. package/dist/sandbox/dockerfile-build.cjs.map +1 -1
  410. package/dist/sandbox/dockerfile-build.d.cts +2 -2
  411. package/dist/sandbox/dockerfile-build.d.mts +2 -2
  412. package/dist/sandbox/dockerfile-build.d.ts +2 -2
  413. package/dist/sandbox/index.cjs +5 -3
  414. package/dist/sandbox/index.cjs.map +1 -1
  415. package/dist/sandbox/index.d.cts +4 -3
  416. package/dist/sandbox/index.d.mts +4 -3
  417. package/dist/sandbox/index.d.ts +4 -3
  418. package/dist/sandbox/index.js +16 -14
  419. package/dist/sandbox/index.mjs +16 -14
  420. package/dist/sandbox/keep.cjs +1 -3
  421. package/dist/sandbox/keep.cjs.map +1 -1
  422. package/dist/sandbox/layer.cjs +70 -79
  423. package/dist/sandbox/layer.cjs.map +1 -1
  424. package/dist/sandbox/layer.d.cts +6 -12
  425. package/dist/sandbox/layer.d.mts +6 -12
  426. package/dist/sandbox/layer.d.ts +6 -12
  427. package/dist/sandbox/layer.js +16 -18
  428. package/dist/sandbox/ledger-paths.cjs +4 -18
  429. package/dist/sandbox/ledger-paths.cjs.map +1 -1
  430. package/dist/sandbox/ledger-paths.d.cts +3 -13
  431. package/dist/sandbox/ledger-paths.d.mts +3 -13
  432. package/dist/sandbox/ledger-paths.d.ts +3 -13
  433. package/dist/sandbox/ledger-paths.js +4 -8
  434. package/dist/sandbox/registry.cjs +1 -1
  435. package/dist/sandbox/registry.cjs.map +1 -1
  436. package/dist/sandbox/runtime.cjs +27 -37
  437. package/dist/sandbox/runtime.cjs.map +1 -1
  438. package/dist/sandbox/runtime.d.cts +1 -2
  439. package/dist/sandbox/runtime.d.mts +1 -2
  440. package/dist/sandbox/runtime.d.ts +1 -2
  441. package/dist/sandbox/runtime.js +6 -8
  442. package/dist/sandbox/types.cjs.map +1 -1
  443. package/dist/sandbox/types.d.cts +3 -3
  444. package/dist/sandbox/types.d.mts +3 -3
  445. package/dist/sandbox/types.d.ts +3 -3
  446. package/dist/sources/project.json +6 -0
  447. package/dist/vendor/remark/remark-gfm.cjs +72 -72
  448. package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
  449. package/dist/vendor/remark/remark-parse.cjs +54 -54
  450. package/dist/vendor/remark/remark-parse.cjs.map +1 -1
  451. package/dist/vendor/remark/remark.cjs +125 -125
  452. package/dist/vendor/remark/remark.cjs.map +2 -2
  453. package/docs-site/zh/README.md +1 -1
  454. package/docs-site/zh/explanation/assert.mdx +4 -0
  455. package/docs-site/zh/explanation/judge.mdx +40 -9
  456. package/docs-site/zh/reference/cli.mdx +67 -43
  457. package/docs-site/zh/reference/define-agent.mdx +2 -2
  458. package/docs-site/zh/reference/report-components.mdx +4 -3
  459. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +6 -0
  460. package/docs-site/zh/troubleshooting/debugging.mdx +28 -1
  461. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +4 -2
  462. package/docs-site/zh/tutorials/concurrency.mdx +2 -2
  463. package/docs-site/zh/tutorials/custom-reports.mdx +175 -9
  464. package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -7
  465. package/docs-site/zh/tutorials/eval-groups.mdx +1 -2
  466. package/docs-site/zh/tutorials/evaluation-kinds.mdx +39 -6
  467. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +14 -5
  468. package/docs-site/zh/tutorials/sandbox-providers.mdx +1 -28
  469. package/docs-site/zh/tutorials/sandbox-reuse.mdx +1 -1
  470. package/docs-site/zh/tutorials/viewing-results.mdx +2 -0
  471. package/package.json +24 -19
  472. package/README.md +0 -176
  473. package/README.zh.md +0 -176
  474. package/dist/cli/record.cjs +0 -246
  475. package/dist/cli/record.cjs.map +0 -1
  476. package/dist/cli/record.d.cts +0 -40
  477. package/dist/cli/record.d.mts +0 -40
  478. package/dist/cli/record.d.ts +0 -40
  479. package/dist/cli/record.js +0 -10
  480. package/dist/cli/record.js.map +0 -1
  481. package/dist/sandbox/local.cjs +0 -361
  482. package/dist/sandbox/local.cjs.map +0 -1
  483. package/dist/sandbox/local.d.cts +0 -80
  484. package/dist/sandbox/local.d.mts +0 -80
  485. package/dist/sandbox/local.d.ts +0 -80
  486. package/dist/sandbox/local.js +0 -6
  487. package/dist/sandbox/local.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["layer.ts"],"names":[],"mappings":"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","sourcesContent":["// SandboxLayer 作者声明面:不可变 prepare 链,以及由具体 factory 私下绑定的 Provider planner。\n// Link 只消费 template 的纯数据 identity;planner callback 保存在 WeakMap 中,不进入声明或指纹。\nimport { isAbsolute, resolve } from \"node:path\";\nimport { Data, Effect, Option, type Scope } from \"effect\";\nimport type { JsonValue } from \"../shared/types.ts\";\nimport type { ScopedFeedback } from \"../shared/types.ts\";\nimport type { MaterializedSandboxCase, SandboxMaterializeContext, SandboxResourceGroup, ServiceController, } from \"./case-types.ts\";\nimport type { Sandbox, SandboxHook, SandboxRuntime } from \"./types.ts\";\nimport type { SandboxCommand, SandboxCommandDeclaration } from \"./commands.ts\";\nimport { sandboxCommandDeclarationOf } from \"./commands.ts\";\nimport { collectComposeBuilds, COMPOSE_MATERIALIZER_REVISION, composeCollectionIdentity, detectDockerBuildPlatform, normalizeBuildPlatform, type ComposeBuildCollection, } from \"./compose.ts\";\nimport { assertPureDataIdentity, computeCaseKey, digestOf, looksLikeDigestRef, unresolvedProviderFingerprintMarker, type CaseKey, } from \"./identity.ts\";\nimport { DOCKERFILE_MATERIALIZER_REVISION, resolveDockerfileBuildIdentity, type DockerfileBuildIdentity, } from \"./dockerfile-identity.ts\";\nimport type { BuildKey, SandboxCaseKind } from \"./identity.ts\";\nimport type { SandboxRuntimeBuildPreparation, SandboxRuntimeMaterializationError, SandboxRuntimeMaterializeContext, } from \"./runtime.ts\";\nimport { dockerProfileError } from \"./docker-profile/errors.ts\";\nimport type { DockerProfileRuntimeBinding } from \"./docker-profile/runtime.ts\";\nimport { dindSupervisorRevision } from \"./dind-supervisor.ts\";\nexport type SandboxLayerKind = \"template-bearing\" | \"command-only\";\nexport type SandboxLayerLifecycle = \"prepare-only\" | \"instance-lifecycle\";\nconst SANDBOX_LAYER: unique symbol = Symbol(\"niceeval.sandbox.layer\");\nconst SANDBOX_LAYER_LIFECYCLE: unique symbol = Symbol(\"niceeval.sandbox.layer.lifecycle\");\nconst SANDBOX_LAYERS = new WeakSet<object>();\nconst SANDBOX_LAYER_STATES = new WeakMap<object, SandboxLayerState>();\nconst SANDBOX_TEMPLATE_PLANNERS = new WeakMap<object, SandboxTemplatePlanner>();\nconst SANDBOX_TEMPLATE_COMMAND_PLAN_LOCATORS = new WeakMap<object, SandboxTemplateCommandPlanLocator>();\nconst SANDBOX_PROVIDER_BINDINGS = new WeakMap<object, SandboxProviderBinding>();\nconst SANDBOX_PROVIDER_PLAN: unique symbol = Symbol(\"niceeval.sandbox.provider-plan\");\n// Runtime resource/privileged coverage changed without changing Dockerfile build bytes. Keep the\n// Dockerfile builder revision stable, but advance the provider-plan/fingerprint revision.\nconst DOCKERFILE_PROVIDER_PLANNER_REVISION = \"dockerfile-4\";\nconst DOCKER_IMAGE_PROVIDER_REVISION = \"docker-image-3\";\nexport interface SandboxLayer<Kind extends SandboxLayerKind = SandboxLayerKind, Lifecycle extends SandboxLayerLifecycle = SandboxLayerLifecycle> {\n readonly [SANDBOX_LAYER]: Kind;\n readonly [SANDBOX_LAYER_LIFECYCLE]: Lifecycle;\n prepare(command: SandboxCommand): SandboxLayer<Kind, Lifecycle>;\n setup(hook: SandboxHook): SandboxLayer<Kind, \"instance-lifecycle\">;\n teardown(hook: SandboxHook): SandboxLayer<Kind, \"instance-lifecycle\">;\n}\nexport interface DockerComposeSandboxOptions {\n readonly file: string | URL;\n readonly workspaceService: string;\n readonly build?: \"on-demand\" | \"prebuilt\";\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用 Compose service `user:` 或其镜像 `USER`。 */\n readonly user?: string;\n readonly env?: Readonly<globalThis.Record<string, string>>;\n /** Compose 插值所需凭据;value 只进私有 runtime binding,identity 只认变量名与 revision。 */\n readonly credentialEnv?: Readonly<globalThis.Record<string, {\n readonly value: string;\n readonly revision?: string;\n }>>;\n readonly lifetimeMs?: number;\n /**\n * 按序前置到受管 `PATH` 的目录;作用于本 Sandbox 内全部受管命令(agent 进程、两层 prepare、\n * ensure/install),hooks 与子进程自然继承。PATH 本身是受管变量,不接受经 `env` 覆盖——\n * 需要扩展 PATH 用这个字段(见 docs/feature/sandbox/library.md「PATH:受管变量与\n * pathPrepend」)。省略 = 不改 PATH。\n */\n readonly pathPrepend?: readonly string[];\n}\ninterface DockerfileSourceOptions {\n readonly context: string | URL;\n readonly dockerfile?: string;\n readonly buildArgs?: Readonly<globalThis.Record<string, string>>;\n /** Docker profile v1 的宿主 alias;只保存为私有 runtime binding,不进入可分享 identity。 */\n readonly profile?: string;\n /** 起点构建的目标 stage。 */\n readonly target?: string;\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用构建出的镜像 `USER`。 */\n readonly user?: string;\n /** 仅允许在 rootless Docker daemon 上请求 privileged;rootful daemon 会在创建前拒绝。 */\n readonly privileged?: \"rootless\";\n /** Agent在Sandbox内访问Docker的显式模式;与旧profile/privileged字段互斥。 */\n readonly dockerAccess?: DockerSandboxAccess;\n /** 单容器的 CPU / 内存 / PID / tmpfs 硬边界。 */\n readonly resources?: DockerSandboxResources;\n readonly readiness?: DockerSandboxReadiness;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\ninterface DockerImageSourceOptions {\n readonly image: string;\n /** Docker profile v1 的宿主 alias;只保存为私有 runtime binding,不进入可分享 identity。 */\n readonly profile?: string;\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用镜像 `USER`(未声明按 Docker 语义是 root)。 */\n readonly user?: string;\n /** 仅允许在 rootless Docker daemon 上请求 privileged;rootful daemon 会在创建前拒绝。 */\n readonly privileged?: \"rootless\";\n /** Agent在Sandbox内访问Docker的显式模式;与旧profile/privileged字段互斥。 */\n readonly dockerAccess?: DockerSandboxAccess;\n /** 单容器的 CPU / 内存 / PID / tmpfs 硬边界。 */\n readonly resources?: DockerSandboxResources;\n readonly readiness?: DockerSandboxReadiness;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface DockerSandboxTmpfsOptions {\n readonly sizeBytes: number;\n readonly mode?: number;\n readonly uid?: number;\n readonly gid?: number;\n /** 默认 false;仅显式 true 时允许执行。 */\n readonly executable?: boolean;\n}\nexport interface DockerSandboxResources {\n readonly cpus?: number;\n readonly memoryBytes?: number;\n readonly pidsLimit?: number;\n /** 把镜像 rootfs 设为只读;需要写入的路径必须逐一声明为有界 tmpfs。 */\n readonly readOnlyRootfs?: boolean;\n readonly tmpfs?: Readonly<globalThis.Record<string, DockerSandboxTmpfsOptions>>;\n}\nexport interface DockerImageSource {\n readonly type: \"image\";\n readonly image: string;\n}\nexport interface DockerfileSource {\n readonly type: \"dockerfile\";\n readonly context: string | URL;\n readonly file?: string;\n readonly buildArgs?: Readonly<globalThis.Record<string, string>>;\n readonly target?: string;\n}\nexport type DockerSandboxSource = DockerImageSource | DockerfileSource;\nexport interface ManagedDockerResources extends DockerSandboxResources {\n readonly cpus: number;\n readonly memoryBytes: number;\n readonly pidsLimit: number;\n readonly readOnlyRootfs: true;\n}\nexport interface DockerSandboxReadiness {\n readonly command: readonly [\n string,\n ...string[]\n ];\n readonly user?: string;\n readonly timeoutMs: number;\n readonly intervalMs?: number;\n}\nexport interface DockerSandboxCommonOptions {\n readonly source: DockerSandboxSource;\n readonly user?: string;\n readonly readiness?: DockerSandboxReadiness;\n readonly lifetimeMs?: number;\n readonly pathPrepend?: readonly string[];\n}\nexport type DockerSandboxAccess = {\n readonly mode: \"socket\";\n readonly socketPath: string;\n} | {\n readonly mode: \"dind\";\n readonly isolation: \"raw-privileged\";\n} | {\n readonly mode: \"dind\";\n readonly isolation: \"managed-rootless\";\n readonly profile: string;\n};\nexport type DockerSandboxOptions = (DockerSandboxCommonOptions & {\n readonly dockerAccess?: undefined;\n readonly resources?: DockerSandboxResources;\n}) | (DockerSandboxCommonOptions & {\n readonly dockerAccess: {\n readonly mode: \"socket\";\n readonly socketPath: string;\n } | {\n readonly mode: \"dind\";\n readonly isolation: \"raw-privileged\";\n };\n readonly resources?: DockerSandboxResources;\n}) | (DockerSandboxCommonOptions & {\n readonly dockerAccess: {\n readonly mode: \"dind\";\n readonly isolation: \"managed-rootless\";\n readonly profile: string;\n };\n readonly resources: ManagedDockerResources;\n});\nexport interface E2BSandboxOptions {\n readonly template: string;\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用 template 的默认用户。 */\n readonly user?: string;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface VercelSandboxOptions {\n readonly snapshotId: string;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface LocalSandboxOptions {\n readonly dir?: string;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface CustomProviderSandboxOptions {\n readonly name: string;\n readonly targetPlatform: SandboxTargetPlatform;\n readonly recommendedConcurrency?: number;\n readonly exclusive?: boolean;\n readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<Sandbox, CustomSandboxMaterializationError>;\n}\nexport class CustomSandboxMaterializationError extends Data.TaggedError(\"CustomSandboxMaterializationError\")<{\n readonly code: string;\n readonly message: string;\n readonly cause: Error;\n}> {\n}\nexport interface CustomProviderMaterializeContext {\n readonly deadline: SandboxRuntimeDeadlineDeclaration;\n readonly runtime: SandboxRuntime;\n readonly feedback: ScopedFeedback;\n}\nexport type CustomCaseServices = {\n readonly _tag: \"Supported\";\n} | {\n readonly _tag: \"Unsupported\";\n};\nexport type CustomCaseMaterializedServices = {\n readonly _tag: \"None\";\n} | {\n readonly _tag: \"Available\";\n readonly value: ServiceController;\n};\nexport interface CustomCaseMaterializeResult {\n readonly sandbox: Sandbox;\n readonly group: SandboxResourceGroup;\n readonly services: CustomCaseMaterializedServices;\n readonly facts: JsonValue;\n /** Callback cases cannot provide detached retention without a discoverable provider plugin. */\n readonly retention?: never;\n}\nexport interface CustomCaseSandboxOptions {\n readonly identity: JsonValue;\n readonly targetPlatform: SandboxTargetPlatform;\n readonly services: CustomCaseServices;\n readonly materialize: (context: SandboxMaterializeContext) => Effect.Effect<CustomCaseMaterializeResult, CustomSandboxMaterializationError>;\n}\nexport type SandboxRuntimeDeadlineDeclaration = {\n readonly _tag: \"Unlimited\";\n} | {\n readonly _tag: \"Bounded\";\n readonly timeoutMs: number;\n readonly deadlineAt: number;\n};\nexport type SandboxLocation = {\n readonly _tag: \"Path\";\n readonly value: string;\n} | {\n readonly _tag: \"Url\";\n readonly value: string;\n};\nexport type SandboxTemplateLocatorFieldName = \"image\" | \"context\" | \"file\" | \"target\" | \"workspaceService\" | \"template\" | \"snapshotId\" | \"dir\";\nexport interface SandboxTemplateLocatorField {\n readonly name: SandboxTemplateLocatorFieldName;\n readonly value: string;\n}\nexport type SandboxTemplateLocatorRedactionPart = \"userinfo\" | \"query\" | \"fragment\";\nexport interface SandboxTemplateLocatorRedaction {\n readonly field: SandboxTemplateLocatorFieldName;\n readonly parts: readonly SandboxTemplateLocatorRedactionPart[];\n}\n/** Public command-plan evidence; it is deliberately separate from provider identity and Record data. */\nexport type SandboxTemplateCommandPlanLocator = {\n readonly _tag: \"Exact\";\n readonly fields: readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n ];\n} | {\n readonly _tag: \"Redacted\";\n readonly fields: readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n ];\n readonly redactions: readonly SandboxTemplateLocatorRedaction[];\n} | {\n readonly _tag: \"Opaque\";\n readonly reason: {\n readonly code: string;\n readonly summary: string;\n };\n};\n/**\n * Discovery 泄题门唯一消费的 provider-neutral 声明。它只描述需要检查的作者输入,\n * 不要求 discovery 解读 provider identity,也不把「缺字段」当作一种状态。\n */\nexport type SandboxLeakGate = {\n readonly _tag: \"None\";\n} | {\n readonly _tag: \"Dockerfile\";\n readonly context: SandboxLocation;\n readonly dockerfile: string;\n} | {\n readonly _tag: \"Compose\";\n readonly file: SandboxLocation;\n readonly workspaceService: string;\n};\nexport type SandboxTargetPlatform = {\n readonly _tag: \"Linux\";\n readonly os: \"linux\";\n readonly arch: string;\n readonly libc: \"gnu\" | \"musl\";\n} | {\n readonly _tag: \"Darwin\";\n readonly os: \"darwin\";\n readonly arch: string;\n} | {\n readonly _tag: \"Windows\";\n readonly os: \"windows\";\n readonly arch: string;\n};\nexport type SandboxPlanningSource = \"docker-daemon\" | \"provider-standard\" | \"host\" | \"provider-defined\";\nexport interface SandboxPlannedTarget {\n readonly platform: SandboxTargetPlatform;\n readonly source: SandboxPlanningSource;\n}\nexport type SandboxAdmission = {\n readonly _tag: \"Shared\";\n} | {\n readonly _tag: \"Exclusive\";\n};\nexport interface SandboxProviderScheduling {\n readonly recommendedConcurrency: number;\n readonly lane: {\n readonly key: string;\n readonly limit: number;\n };\n readonly admission: SandboxAdmission;\n}\nexport type SandboxRuntimeRetention = {\n readonly _tag: \"DestroyOnly\";\n} | {\n readonly _tag: \"Suspendable\";\n};\nexport type SandboxRuntimeReuse = {\n readonly _tag: \"Supported\";\n} | {\n readonly _tag: \"Unsupported\";\n readonly reason: string;\n};\nexport type SandboxRuntimeSessionLimit = {\n readonly _tag: \"Unlimited\";\n} | {\n readonly _tag: \"Bounded\";\n readonly milliseconds: number;\n} | {\n /** 上限由 provider 账号/plan 决定,只有真实创建或续期请求才能裁决。 */\n readonly _tag: \"ProviderValidated\";\n readonly reason: string;\n};\n/** Provider 在 physical planning 时一并冻结的运行能力;core 不从 provider 名反推。 */\nexport interface SandboxProviderCapabilities {\n readonly retention: SandboxRuntimeRetention;\n readonly reuse: SandboxRuntimeReuse;\n readonly sessionLimit: SandboxRuntimeSessionLimit;\n}\n/**\n * Provider 私有的类型联系。`Plan` 只在 factory 与本模块内部存在;绑定到公开 plan 后被闭包捕获,\n * core 只看见已消去泛型的 `SandboxProviderBinding`,从不接触 `unknown` 或 JSON runtime input。\n */\nexport interface SandboxProviderModule<Plan> {\n readonly id: string;\n readonly capabilities: SandboxProviderCapabilities;\n readonly materialize: (plan: Plan, context: SandboxRuntimeMaterializeContext) => Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope>;\n readonly collectBuildPreparation: (plan: Plan, published: SandboxProviderPlan, evalId: string) => Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError>;\n}\n/** 泛型已经由闭包消去的 provider binding;只有合法 constructor 产物存在于 WeakMap 中。 */\nexport interface SandboxProviderBinding {\n readonly moduleId: string;\n readonly capabilities: SandboxProviderCapabilities;\n readonly materialize: (context: SandboxRuntimeMaterializeContext) => Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope>;\n readonly collectBuildPreparation: (evalId: string) => Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError>;\n}\n/**\n * physical planning 的唯一完成态。整个对象都可发布、可序列化;provider 私有的 runtime input\n * 只存在于 plan-keyed runtime binding,不会因调用方误做 `JSON.stringify(plan)` 而落盘。\n */\nexport interface SandboxProviderPlan {\n readonly [SANDBOX_PROVIDER_PLAN]: true;\n readonly provider: string;\n readonly plannerRevision: string;\n readonly caseKind: SandboxCaseKind;\n readonly target: SandboxPlannedTarget;\n readonly scheduling: SandboxProviderScheduling;\n readonly capabilities: SandboxProviderCapabilities;\n readonly build: SandboxProviderBuildPlan;\n readonly identity: JsonValue;\n}\nexport type SandboxProviderBuildPlan = {\n readonly _tag: \"None\";\n readonly caseKey: CaseKey;\n readonly buildKeys: readonly [\n ];\n} | {\n readonly _tag: \"Required\";\n readonly caseKey: CaseKey;\n readonly buildKeys: readonly [\n BuildKey,\n ...BuildKey[]\n ];\n};\nexport interface SandboxProviderPlanInput<Plan> {\n readonly provider: string;\n readonly plannerRevision: string;\n readonly caseKind: SandboxCaseKind;\n readonly target: SandboxPlannedTarget;\n readonly scheduling: SandboxProviderScheduling;\n readonly module: SandboxProviderModule<Plan>;\n readonly runtimePlan: Plan;\n readonly build: SandboxProviderBuildPlan;\n /** 仅用于保留既有 provider fingerprint 的稳定身份投影;不参与携带裁决。 */\n readonly identityMarker?: JsonValue;\n /** 可直接出现在 record / manifest 的 provider-owned 纯数据。 */\n readonly publishableIdentity: JsonValue;\n /** 影响 fingerprint 但不得落盘的值;plan 只保存它的稳定摘要。 */\n readonly privateFingerprintIdentity: JsonValue;\n}\nexport class SandboxProviderPlanningError extends Data.TaggedError(\"SandboxProviderPlanningError\")<{\n readonly code: string;\n readonly provider: string;\n readonly summary: string;\n readonly actions: readonly string[];\n}> {\n}\nexport interface SandboxTemplatePlanningInput {\n readonly authorBaseDir: string;\n}\nexport type SandboxTemplatePlanner = (input: SandboxTemplatePlanningInput) => Effect.Effect<SandboxProviderPlan, SandboxProviderPlanningError>;\n/** Template 声明只暴露 link 与 fingerprint 所需纯数据;planner 在 WeakMap 中私有绑定。 */\nexport interface SandboxTemplateDeclaration {\n readonly provider: string;\n readonly kind: string;\n readonly identity: JsonValue;\n readonly leakGate: SandboxLeakGate;\n}\nexport interface SandboxTemplateDefinition {\n readonly provider: string;\n readonly kind: string;\n /** 可直接进入 pair-owned record projection 的 provider-owned 纯数据。 */\n readonly publishableIdentity: JsonValue;\n /** 影响 template identity 但不得直接进入 link / record 的作者输入。 */\n readonly privateFingerprintIdentity: JsonValue;\n /** Configured non-secret locator shown only by the explicit command-plan projection. */\n readonly commandPlanLocator: SandboxTemplateCommandPlanLocator;\n readonly plan: SandboxTemplatePlanner;\n readonly leakGate: SandboxLeakGate;\n}\nexport interface BuiltinSandboxPlannerServices {\n /** 只读 control-plane 探测;测试可注入确定值或 typed failure。 */\n readonly dockerBuildPlatform: Effect.Effect<string, SandboxProviderPlanningError>;\n readonly hostPlatform: SandboxTargetPlatform;\n}\nexport interface BuiltinSandboxFactories {\n readonly dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly dockerfileSourceLayer: (options: DockerfileSourceOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly dockerImageSourceLayer: (options: DockerImageSourceOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly localSandbox: (options?: LocalSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n}\nexport interface CommandOnlySandboxLayerState {\n readonly kind: \"command-only\";\n readonly commands: readonly SandboxCommandDeclaration[];\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n}\nexport interface TemplateBearingSandboxLayerState {\n readonly kind: \"template-bearing\";\n readonly template: SandboxTemplateDeclaration;\n readonly commands: readonly SandboxCommandDeclaration[];\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n}\nexport type SandboxLayerState<Kind extends SandboxLayerKind = SandboxLayerKind> = Kind extends \"command-only\" ? CommandOnlySandboxLayerState : TemplateBearingSandboxLayerState;\ntype SandboxLayerRuntime<Kind extends SandboxLayerKind, Lifecycle extends SandboxLayerLifecycle = SandboxLayerLifecycle> = SandboxLayer<Kind, Lifecycle>;\nfunction freezeJson(value: JsonValue): JsonValue {\n if (value === null || typeof value !== \"object\")\n return value;\n if (Array.isArray(value)) {\n const children: JsonValue[] = value.map(freezeJson);\n Object.freeze(children);\n return children;\n }\n return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, child]) => [key, freezeJson(child)])));\n}\nfunction freezePlatform(platform: SandboxTargetPlatform): SandboxTargetPlatform {\n return Object.freeze({ ...platform });\n}\nfunction freezeTarget(target: SandboxPlannedTarget): SandboxPlannedTarget {\n return Object.freeze({ platform: freezePlatform(target.platform), source: target.source });\n}\nfunction freezeLocation(value: SandboxLocation): SandboxLocation {\n return Object.freeze({ _tag: value._tag, value: value.value });\n}\nconst LOCATOR_REDACTION_PARTS: readonly SandboxTemplateLocatorRedactionPart[] = Object.freeze([\n \"userinfo\",\n \"query\",\n \"fragment\",\n]);\nconst LOCATOR_FIELD_NAMES = new Set<SandboxTemplateLocatorFieldName>([\n \"image\",\n \"context\",\n \"file\",\n \"target\",\n \"workspaceService\",\n \"template\",\n \"snapshotId\",\n \"dir\",\n]);\nfunction freezeCommandPlanLocator(locator: SandboxTemplateCommandPlanLocator): SandboxTemplateCommandPlanLocator {\n if (locator._tag === \"Opaque\") {\n return Object.freeze({\n _tag: \"Opaque\",\n reason: Object.freeze({\n code: nonEmptyString(locator.reason.code, \"sandbox template locator.reason.code\"),\n summary: nonEmptyString(locator.reason.summary, \"sandbox template locator.reason.summary\"),\n }),\n });\n }\n if (locator.fields.length === 0)\n throw new TypeError(\"sandbox template locator.fields must be non-empty\");\n const names = new Set<SandboxTemplateLocatorFieldName>();\n const fields = locator.fields.map((field) => {\n if (!LOCATOR_FIELD_NAMES.has(field.name)) {\n throw new TypeError(`sandbox template locator field ${JSON.stringify(field.name)} is unsupported`);\n }\n if (names.has(field.name)) {\n throw new TypeError(`sandbox template locator field ${JSON.stringify(field.name)} is duplicated`);\n }\n names.add(field.name);\n return Object.freeze({\n name: field.name,\n value: nonEmptyString(field.value, `sandbox template locator.${field.name}`),\n });\n }) as unknown as readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n ];\n if (locator._tag === \"Exact\")\n return Object.freeze({ _tag: \"Exact\", fields: Object.freeze(fields) });\n if (locator.redactions.length === 0) {\n throw new TypeError(\"redacted sandbox template locator must declare at least one redaction\");\n }\n const redactedFields = new Set<SandboxTemplateLocatorFieldName>();\n const redactions = locator.redactions.map((redaction) => {\n if (!names.has(redaction.field)) {\n throw new TypeError(`sandbox template locator redaction references missing field ${JSON.stringify(redaction.field)}`);\n }\n if (redactedFields.has(redaction.field)) {\n throw new TypeError(`sandbox template locator redaction for ${JSON.stringify(redaction.field)} is duplicated`);\n }\n redactedFields.add(redaction.field);\n const declared = new Set(redaction.parts);\n const parts = LOCATOR_REDACTION_PARTS.filter((part) => declared.has(part));\n if (parts.length !== declared.size || parts.length === 0) {\n throw new TypeError(`sandbox template locator redaction for ${JSON.stringify(redaction.field)} is invalid`);\n }\n return Object.freeze({ field: redaction.field, parts: Object.freeze(parts) });\n });\n return Object.freeze({ _tag: \"Redacted\", fields: Object.freeze(fields), redactions: Object.freeze(redactions) });\n}\nfunction configuredLocator(fields: readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n], redactions: readonly SandboxTemplateLocatorRedaction[] = []): SandboxTemplateCommandPlanLocator {\n return freezeCommandPlanLocator(redactions.length === 0\n ? { _tag: \"Exact\", fields }\n : { _tag: \"Redacted\", fields, redactions });\n}\nfunction opaqueConfiguredLocator(code: string, summary: string): SandboxTemplateCommandPlanLocator {\n return freezeCommandPlanLocator({\n _tag: \"Opaque\",\n reason: { code, summary },\n });\n}\nfunction configuredDockerImageLocator(image: string): SandboxTemplateCommandPlanLocator {\n const digestSeparator = image.lastIndexOf(\"@\");\n const reference = digestSeparator === -1 ? image : image.slice(0, digestSeparator);\n const digest = digestSeparator === -1 ? undefined : image.slice(digestSeparator + 1);\n const credentialSafeReference = /^[A-Za-z0-9][A-Za-z0-9._:/-]*$/u.test(reference)\n && !reference.includes(\"://\")\n && (digest === undefined || /^sha256:[a-f0-9]{64}$/iu.test(digest));\n if (credentialSafeReference) {\n return configuredLocator([{ name: \"image\", value: image }]);\n }\n return opaqueConfiguredLocator(\"docker-image-locator-unsafe-to-display\", \"Docker image locator is omitted because its syntax is not credential-safe to display\");\n}\nfunction configuredPathLocator(): SandboxTemplateCommandPlanLocator {\n return opaqueConfiguredLocator(\"sandbox-path-locator-unsafe-to-display\", \"Sandbox path locator is omitted because local paths may expose host filesystem details\");\n}\nfunction configuredLocationField(name: \"context\" | \"file\", value: SandboxLocation): {\n readonly field: SandboxTemplateLocatorField;\n readonly redaction?: SandboxTemplateLocatorRedaction;\n} | undefined {\n if (value._tag === \"Path\")\n return undefined;\n const url = new URL(value.value);\n if (url.protocol === \"file:\")\n return undefined;\n const parts: SandboxTemplateLocatorRedactionPart[] = [];\n if (url.username !== \"\" || url.password !== \"\") {\n parts.push(\"userinfo\");\n url.username = \"\";\n url.password = \"\";\n }\n if (url.search !== \"\") {\n parts.push(\"query\");\n url.search = \"\";\n }\n if (url.hash !== \"\") {\n parts.push(\"fragment\");\n url.hash = \"\";\n }\n return {\n field: Object.freeze({ name, value: url.href }),\n ...(parts.length === 0 ? {} : { redaction: Object.freeze({ field: name, parts: Object.freeze(parts) }) }),\n };\n}\nfunction freezeLeakGate(value: SandboxLeakGate): SandboxLeakGate {\n switch (value._tag) {\n case \"None\":\n return Object.freeze({ _tag: \"None\" });\n case \"Dockerfile\":\n return Object.freeze({\n _tag: \"Dockerfile\",\n context: freezeLocation(value.context),\n dockerfile: nonEmptyString(value.dockerfile, \"sandbox leakGate.dockerfile\"),\n });\n case \"Compose\":\n return Object.freeze({\n _tag: \"Compose\",\n file: freezeLocation(value.file),\n workspaceService: nonEmptyString(value.workspaceService, \"sandbox leakGate.workspaceService\"),\n });\n }\n}\nfunction freezeScheduling(scheduling: SandboxProviderScheduling): SandboxProviderScheduling {\n if (!Number.isInteger(scheduling.recommendedConcurrency) || scheduling.recommendedConcurrency <= 0) {\n throw new TypeError(\"sandbox provider recommendedConcurrency must be a positive integer\");\n }\n if (!Number.isInteger(scheduling.lane.limit) || scheduling.lane.limit <= 0) {\n throw new TypeError(\"sandbox provider scheduling lane limit must be a positive integer\");\n }\n return Object.freeze({\n recommendedConcurrency: scheduling.recommendedConcurrency,\n lane: Object.freeze({\n key: nonEmptyString(scheduling.lane.key, \"sandbox provider scheduling lane.key\"),\n limit: scheduling.lane.limit,\n }),\n admission: Object.freeze({ _tag: scheduling.admission._tag }),\n });\n}\n/** Provider planner 统一用本 helper 构造完整、冻结、可安全发布的计划。 */\nexport function sandboxProviderPlan<Plan>(input: SandboxProviderPlanInput<Plan>): SandboxProviderPlan {\n const provider = nonEmptyString(input.provider, \"sandbox provider plan.provider\");\n const plannerRevision = nonEmptyString(input.plannerRevision, \"sandbox provider plan.plannerRevision\");\n const caseKind = input.caseKind;\n const target = freezeTarget(input.target);\n const scheduling = freezeScheduling(input.scheduling);\n const moduleId = nonEmptyString(input.module.id, \"sandbox provider module.id\");\n const capabilities = freezeProviderCapabilities(input.module.capabilities);\n const publishableIdentity = freezeJson(input.publishableIdentity);\n const privateIdentityDigest = digestOf(input.privateFingerprintIdentity);\n const build: SandboxProviderBuildPlan = input.build._tag === \"None\"\n ? Object.freeze({ _tag: \"None\", caseKey: input.build.caseKey, buildKeys: [] as const })\n : Object.freeze({\n _tag: \"Required\",\n caseKey: input.build.caseKey,\n buildKeys: freezeSortedNonEmptyBuildKeys(input.build.buildKeys, \"sandbox provider plan.build.buildKeys\"),\n });\n const identity = freezeJson({\n version: 3,\n provider,\n plannerRevision,\n caseKind,\n target: targetIdentity(target),\n scheduling: {\n recommendedConcurrency: scheduling.recommendedConcurrency,\n lane: { key: scheduling.lane.key, limit: scheduling.lane.limit },\n admission: { _tag: scheduling.admission._tag },\n },\n providerModule: moduleId,\n capabilities: {\n retention: { _tag: capabilities.retention._tag },\n reuse: capabilities.reuse,\n sessionLimit: capabilities.sessionLimit,\n },\n // Keep the old identity slot stable while carry eligibility is no longer a\n // provider/template concern. The marker is fingerprint data only.\n carry: input.identityMarker ?? { _tag: \"Eligible\" },\n build: { _tag: build._tag, caseKey: build.caseKey, buildKeys: [...build.buildKeys] },\n publishable: publishableIdentity,\n privateIdentityDigest,\n });\n const plan: SandboxProviderPlan = {\n [SANDBOX_PROVIDER_PLAN]: true,\n provider,\n plannerRevision,\n caseKind,\n target,\n scheduling,\n capabilities,\n build,\n identity,\n };\n const binding = Object.freeze({\n moduleId,\n capabilities,\n materialize: (context) => input.module.materialize(input.runtimePlan, context),\n collectBuildPreparation: (evalId) => input.module.collectBuildPreparation(input.runtimePlan, plan, evalId),\n } satisfies SandboxProviderBinding);\n SANDBOX_PROVIDER_BINDINGS.set(plan, binding);\n return Object.freeze(plan);\n}\n/** @internal core 只取得已经消去泛型的闭包;合法 planner 产物恒为 Some。 */\nexport function sandboxProviderBindingOf(plan: SandboxProviderPlan): Option.Option<SandboxProviderBinding> {\n return Option.fromNullable(SANDBOX_PROVIDER_BINDINGS.get(plan));\n}\nfunction freezeProviderCapabilities(capabilities: SandboxProviderCapabilities): SandboxProviderCapabilities {\n if (capabilities.sessionLimit._tag === \"Bounded\" &&\n (!Number.isFinite(capabilities.sessionLimit.milliseconds) || capabilities.sessionLimit.milliseconds <= 0)) {\n throw new TypeError(\"sandbox provider bounded session limit must be a positive finite number\");\n }\n return Object.freeze({\n retention: Object.freeze({ _tag: capabilities.retention._tag }),\n reuse: capabilities.reuse._tag === \"Supported\"\n ? Object.freeze({ _tag: \"Supported\" as const })\n : Object.freeze({\n _tag: \"Unsupported\" as const,\n reason: nonEmptyString(capabilities.reuse.reason, \"sandbox provider capabilities.reuse.reason\"),\n }),\n sessionLimit: capabilities.sessionLimit._tag === \"Unlimited\"\n ? Object.freeze({ _tag: \"Unlimited\" as const })\n : capabilities.sessionLimit._tag === \"Bounded\"\n ? Object.freeze({\n _tag: \"Bounded\" as const,\n milliseconds: capabilities.sessionLimit.milliseconds,\n })\n : Object.freeze({\n _tag: \"ProviderValidated\" as const,\n reason: nonEmptyString(capabilities.sessionLimit.reason, \"sandbox provider capabilities.sessionLimit.reason\"),\n }),\n });\n}\nfunction targetIdentity(target: SandboxPlannedTarget): JsonValue {\n const platform = target.platform;\n return {\n source: target.source,\n platform: platform._tag === \"Linux\"\n ? { _tag: \"Linux\", os: \"linux\", arch: platform.arch, libc: platform.libc }\n : { _tag: platform._tag, os: platform.os, arch: platform.arch },\n };\n}\nfunction assertRecord(value: unknown, path: string): asserts value is globalThis.Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(`${path} must be an object`);\n }\n}\nfunction assertOnlyKeys(value: globalThis.Record<string, unknown>, allowed: readonly string[], path: string): void {\n const known = new Set(allowed);\n for (const key of Object.keys(value)) {\n if (!known.has(key))\n throw new TypeError(`${path}.${key} is not supported`);\n }\n}\nfunction nonEmptyString(value: unknown, path: string): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(`${path} must be a non-empty string`);\n }\n return value;\n}\n/** `pathPrepend`:省略即空;否则必须是非空字符串数组,按声明顺序前置到受管 PATH。 */\nfunction pathPrependList(value: unknown, path: string): readonly string[] {\n if (value === undefined)\n return Object.freeze([]);\n if (!Array.isArray(value))\n throw new TypeError(`${path} must be an array of strings`);\n return Object.freeze(value.map((entry, index) => nonEmptyString(entry, `${path}[${index}]`)));\n}\n/**\n * 可选字段缺省值不进身份序列化:空 `pathPrepend` 与省略该字段同义,因此在身份/哈希输入里\n * 一律省略键本身(absent ≡ default),不写 `pathPrepend: []`——否则「不声明」与「声明成空\n * 数组」这两种作者写法会产出不同的 digest,对使用者是无法解释的差异。非空时才带着键出现,\n * 值本身(顺序、内容)照常参与摘要。\n */\nfunction pathPrependIdentityField(pathPrepend: readonly string[]): globalThis.Record<string, never> | {\n readonly pathPrepend: string[];\n} {\n return pathPrepend.length === 0 ? {} : { pathPrepend: [...pathPrepend] };\n}\nfunction location(value: unknown, path: string): SandboxLocation {\n if (value instanceof URL)\n return Object.freeze({ _tag: \"Url\", value: value.href });\n return Object.freeze({ _tag: \"Path\", value: nonEmptyString(value, path) });\n}\nfunction plannedLocation(location: SandboxLocation, authorBaseDir: string): SandboxLocation {\n return location._tag === \"Url\"\n ? location\n : Object.freeze({ _tag: \"Path\", value: resolve(authorBaseDir, location.value) });\n}\nfunction lifetime(value: unknown, path: string): SandboxProviderLifetime {\n if (value === undefined)\n return Object.freeze({ _tag: \"ProviderDefault\" });\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n throw new TypeError(`${path} must be a positive finite number`);\n }\n return Object.freeze({ _tag: \"Configured\", milliseconds: value });\n}\nfunction dockerPrivileged(value: unknown, path: string): \"disabled\" | \"rootless\" {\n if (value === undefined)\n return \"disabled\";\n if (value !== \"rootless\")\n throw new TypeError(`${path} must be \\\"rootless\\\" when configured`);\n return \"rootless\";\n}\nfunction dockerAccess(value: unknown, path: string): Readonly<DockerSandboxAccess> | undefined {\n if (value === undefined)\n return undefined;\n assertRecord(value, path);\n const mode = nonEmptyString(value.mode, `${path}.mode`);\n if (mode === \"socket\") {\n assertOnlyKeys(value, [\"mode\", \"socketPath\"], path);\n const socketPath = nonEmptyString(value.socketPath, `${path}.socketPath`);\n if (!isAbsolute(socketPath) || resolve(socketPath) !== socketPath) {\n throw new TypeError(`${path}.socketPath must be a normalized absolute path`);\n }\n return Object.freeze({ mode: \"socket\", socketPath });\n }\n if (mode !== \"dind\")\n throw new TypeError(`${path}.mode must be \"socket\" or \"dind\"`);\n const isolation = nonEmptyString(value.isolation, `${path}.isolation`);\n if (isolation === \"raw-privileged\") {\n assertOnlyKeys(value, [\"mode\", \"isolation\"], path);\n return Object.freeze({ mode: \"dind\", isolation: \"raw-privileged\" });\n }\n if (isolation === \"managed-rootless\") {\n assertOnlyKeys(value, [\"mode\", \"isolation\", \"profile\"], path);\n return Object.freeze({\n mode: \"dind\",\n isolation: \"managed-rootless\",\n profile: nonEmptyString(value.profile, `${path}.profile`),\n });\n }\n throw new TypeError(`${path}.isolation must be \"raw-privileged\" or \"managed-rootless\"`);\n}\nfunction dockerAccessConfiguration(value: unknown, legacyProfile: unknown, legacyPrivileged: unknown, path: string): {\n readonly access?: Readonly<DockerSandboxAccess>;\n readonly profile?: string;\n readonly privileged: \"disabled\" | \"raw\" | \"rootless\";\n} {\n const access = dockerAccess(value, path);\n if (access !== undefined) {\n if (legacyProfile !== undefined || legacyPrivileged !== undefined) {\n throw new TypeError(`${path} cannot be combined with profile or privileged`);\n }\n if (access.mode === \"socket\")\n return Object.freeze({ access, privileged: \"disabled\" });\n if (access.isolation === \"raw-privileged\")\n return Object.freeze({ access, privileged: \"raw\" });\n return Object.freeze({ access, profile: access.profile, privileged: \"rootless\" });\n }\n const profile = dockerProfileAlias(legacyProfile, path.replace(/dockerAccess$/, \"profile\"));\n const privileged = dockerPrivileged(legacyPrivileged, path.replace(/dockerAccess$/, \"privileged\"));\n return Object.freeze({\n ...(profile === undefined ? {} : { profile }),\n privileged,\n });\n}\nfunction dockerProfileAlias(value: unknown, path: string): string | undefined {\n if (value === undefined)\n return undefined;\n return nonEmptyString(value, path);\n}\nfunction dockerReadiness(value: unknown, path: string): Readonly<DockerSandboxReadiness> | undefined {\n if (value === undefined)\n return undefined;\n assertRecord(value, path);\n assertOnlyKeys(value, [\"command\", \"user\", \"timeoutMs\", \"intervalMs\"], path);\n if (!Array.isArray(value.command) || value.command.length === 0) {\n throw new TypeError(`${path}.command must be a non-empty array of strings`);\n }\n const commandValues = value.command.map((entry, index) => nonEmptyString(entry, `${path}.command[${index}]`));\n const first = commandValues[0];\n if (first === undefined)\n throw new TypeError(`${path}.command must contain an executable`);\n const command: readonly [\n string,\n ...string[]\n ] = Object.freeze([first, ...commandValues.slice(1)]);\n const user = value.user === undefined ? undefined : nonEmptyString(value.user, `${path}.user`);\n const timeoutMs = positiveFinite(value.timeoutMs, `${path}.timeoutMs`);\n const intervalMs = value.intervalMs === undefined\n ? undefined\n : positiveFinite(value.intervalMs, `${path}.intervalMs`);\n return Object.freeze({\n command,\n ...(user === undefined ? {} : { user }),\n timeoutMs,\n ...(intervalMs === undefined ? {} : { intervalMs }),\n });\n}\nfunction dockerReadinessForAccess(access: Readonly<DockerSandboxAccess> | undefined, value: unknown, path: string): Readonly<DockerSandboxReadiness> | undefined {\n return dockerReadiness(value === undefined && access !== undefined\n ? { command: [\"docker\", \"info\"], timeoutMs: 30000 }\n : value, path);\n}\nfunction managedDockerResources(value: unknown, path: string): ManagedDockerResources {\n if (value === undefined) {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-resources-required\",\n path,\n message: \"profile-bound Docker sandbox requires explicit CPU, memory, PID and readOnlyRootfs resources\",\n });\n }\n const resources = dockerResources(value, path);\n if (resources.cpus === undefined ||\n resources.memoryBytes === undefined ||\n resources.pidsLimit === undefined ||\n resources.readOnlyRootfs !== true) {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-resources-required\",\n path,\n message: \"profile-bound Docker sandbox requires explicit CPU, memory, PID and readOnlyRootfs: true resources\",\n });\n }\n return Object.freeze({\n ...resources,\n cpus: resources.cpus,\n memoryBytes: resources.memoryBytes,\n pidsLimit: resources.pidsLimit,\n readOnlyRootfs: true,\n });\n}\nfunction dockerResourcesForProfile(profile: string | undefined, privileged: \"disabled\" | \"raw\" | \"rootless\", value: unknown, path: string): Readonly<DockerSandboxResources> {\n if (profile === undefined && privileged === \"rootless\") {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-required\",\n path: `${path}.privileged`,\n message: 'privileged: \"rootless\" requires an explicit Docker profile alias',\n });\n }\n return profile === undefined ? dockerResources(value, path) : managedDockerResources(value, path);\n}\nfunction readinessIdentity(readiness: Readonly<DockerSandboxReadiness> | undefined): JsonValue {\n return readiness === undefined\n ? null\n : {\n command: [...readiness.command],\n ...(readiness.user === undefined ? {} : { user: readiness.user }),\n };\n}\nfunction positiveFinite(value: unknown, path: string): number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n throw new TypeError(`${path} must be a positive finite number`);\n }\n return value;\n}\nfunction positiveSafeInteger(value: unknown, path: string): number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value <= 0) {\n throw new TypeError(`${path} must be a positive safe integer`);\n }\n return value;\n}\nfunction nonNegativeSafeInteger(value: unknown, path: string): number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${path} must be a non-negative safe integer`);\n }\n return value;\n}\nfunction dockerResources(value: unknown, path: string): Readonly<DockerSandboxResources> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n assertOnlyKeys(value, [\"cpus\", \"memoryBytes\", \"pidsLimit\", \"readOnlyRootfs\", \"tmpfs\"], path);\n if (value.readOnlyRootfs !== undefined && typeof value.readOnlyRootfs !== \"boolean\") {\n throw new TypeError(`${path}.readOnlyRootfs must be a boolean`);\n }\n const tmpfs: globalThis.Record<string, DockerSandboxTmpfsOptions> = {};\n if (value.tmpfs !== undefined) {\n assertRecord(value.tmpfs, `${path}.tmpfs`);\n for (const mountPath of Object.keys(value.tmpfs).sort()) {\n if (!isAbsolute(mountPath) || resolve(mountPath) !== mountPath || mountPath === \"/\") {\n throw new TypeError(`${path}.tmpfs keys must be normalized absolute paths other than /`);\n }\n const entry = value.tmpfs[mountPath];\n assertRecord(entry, `${path}.tmpfs.${mountPath}`);\n assertOnlyKeys(entry, [\"sizeBytes\", \"mode\", \"uid\", \"gid\", \"executable\"], `${path}.tmpfs.${mountPath}`);\n const sizeBytes = positiveSafeInteger(entry.sizeBytes, `${path}.tmpfs.${mountPath}.sizeBytes`);\n if (entry.mode !== undefined &&\n (typeof entry.mode !== \"number\" || !Number.isInteger(entry.mode) || entry.mode < 0 || entry.mode > 0o7777)) {\n throw new TypeError(`${path}.tmpfs.${mountPath}.mode must be an integer between 0 and 0o7777`);\n }\n if (entry.executable !== undefined && typeof entry.executable !== \"boolean\") {\n throw new TypeError(`${path}.tmpfs.${mountPath}.executable must be a boolean`);\n }\n const uid = entry.uid === undefined ? undefined : nonNegativeSafeInteger(entry.uid, `${path}.tmpfs.${mountPath}.uid`);\n const gid = entry.gid === undefined ? undefined : nonNegativeSafeInteger(entry.gid, `${path}.tmpfs.${mountPath}.gid`);\n tmpfs[mountPath] = Object.freeze({\n sizeBytes,\n ...(entry.mode === undefined ? {} : { mode: entry.mode }),\n ...(uid === undefined ? {} : { uid }),\n ...(gid === undefined ? {} : { gid }),\n ...(entry.executable === true ? { executable: true } : {}),\n });\n }\n }\n return Object.freeze({\n ...(value.cpus === undefined ? {} : { cpus: positiveFinite(value.cpus, `${path}.cpus`) }),\n ...(value.memoryBytes === undefined\n ? {}\n : { memoryBytes: positiveSafeInteger(value.memoryBytes, `${path}.memoryBytes`) }),\n ...(value.pidsLimit === undefined\n ? {}\n : { pidsLimit: positiveSafeInteger(value.pidsLimit, `${path}.pidsLimit`) }),\n ...(value.readOnlyRootfs === true ? { readOnlyRootfs: true } : {}),\n ...(Object.keys(tmpfs).length === 0 ? {} : { tmpfs: Object.freeze(tmpfs) }),\n });\n}\nfunction dockerRuntimeIdentity(privileged: \"disabled\" | \"raw\" | \"rootless\", resources: Readonly<DockerSandboxResources>, access?: Readonly<DockerSandboxAccess>): globalThis.Record<string, JsonValue> {\n return {\n ...(access === undefined\n ? (privileged === \"disabled\" ? {} : { privileged })\n : {\n dockerAccess: access.mode === \"socket\"\n ? { mode: \"socket\" }\n : {\n mode: \"dind\",\n isolation: access.isolation,\n supervisorRevision: dindSupervisorRevision(),\n },\n }),\n ...(Object.keys(resources).length === 0 ? {} : { resources: resources as JsonValue }),\n };\n}\nfunction dockerRequiresDestroyOnly(resources: Readonly<DockerSandboxResources>): boolean {\n return resources.readOnlyRootfs === true || resources.tmpfs !== undefined;\n}\nfunction stringRecord(value: unknown, path: string): Readonly<globalThis.Record<string, string>> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n const result: globalThis.Record<string, string> = {};\n for (const [key, child] of Object.entries(value)) {\n if (key === \"\")\n throw new TypeError(`${path} keys must be non-empty strings`);\n if (typeof child !== \"string\")\n throw new TypeError(`${path}.${key} must be a string`);\n result[key] = child;\n }\n return Object.freeze(result);\n}\nfunction credentialEnvRecord(value: unknown, path: string): Readonly<globalThis.Record<string, {\n readonly value: string;\n readonly revision?: string;\n}>> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n const result: globalThis.Record<string, {\n readonly value: string;\n readonly revision?: string;\n }> = {};\n for (const [key, child] of Object.entries(value)) {\n if (key === \"\")\n throw new TypeError(`${path} keys must be non-empty strings`);\n assertRecord(child, `${path}.${key}`);\n assertOnlyKeys(child, [\"value\", \"revision\"], `${path}.${key}`);\n const credential = {\n value: nonEmptyString(child.value, `${path}.${key}.value`),\n ...(child.revision === undefined\n ? {}\n : { revision: nonEmptyString(child.revision, `${path}.${key}.revision`) }),\n };\n result[key] = Object.freeze(credential);\n }\n return Object.freeze(result);\n}\nfunction normalizeArch(arch: string): string {\n return arch === \"amd64\" || arch === \"x86_64\" || arch === \"x64\"\n ? \"x64\"\n : arch === \"aarch64\" ? \"arm64\" : arch;\n}\nfunction targetFromDocker(value: string): Effect.Effect<SandboxPlannedTarget, SandboxProviderPlanningError> {\n const normalized = normalizeBuildPlatform(value);\n const [os, arch, extra] = normalized.split(\"/\");\n if (os === undefined || arch === undefined || extra !== undefined || os === \"\" || arch === \"\") {\n return Effect.fail(providerPlanningError(\"sandbox.target-platform-invalid\", \"docker\", `Docker returned an invalid target platform ${JSON.stringify(value)}.`, [\"Configure DOCKER_DEFAULT_PLATFORM as os/arch or repair the Docker daemon response.\"]));\n }\n const platform: SandboxTargetPlatform = os === \"linux\"\n ? { _tag: \"Linux\", os: \"linux\", arch: normalizeArch(arch), libc: \"gnu\" }\n : os === \"darwin\"\n ? { _tag: \"Darwin\", os: \"darwin\", arch: normalizeArch(arch) }\n : os === \"windows\"\n ? { _tag: \"Windows\", os: \"windows\", arch: normalizeArch(arch) }\n : { _tag: \"Linux\", os: \"linux\", arch: normalizeArch(arch), libc: \"gnu\" };\n if (os !== \"linux\" && os !== \"darwin\" && os !== \"windows\") {\n return Effect.fail(providerPlanningError(\"sandbox.target-platform-unsupported\", \"docker\", `Docker target operating system ${JSON.stringify(os)} is not supported.`, [\"Use a Linux, Darwin, or Windows Docker target platform.\"]));\n }\n return Effect.succeed(Object.freeze({ platform: freezePlatform(platform), source: \"docker-daemon\" }));\n}\n/** Provider target ADT → Docker builder 使用的 canonical os/arch 字符串。 */\nfunction plannedTargetPlatform(target: SandboxPlannedTarget): string {\n const arch = target.platform.arch === \"x64\" ? \"amd64\" : target.platform.arch;\n return normalizeBuildPlatform(`${target.platform.os}/${arch}`);\n}\nfunction providerPlanningError(code: string, provider: string, summary: string, actions: readonly string[]): SandboxProviderPlanningError {\n return new SandboxProviderPlanningError({\n code,\n provider,\n summary,\n actions: Object.freeze([...actions]),\n });\n}\nfunction createLayer<Lifecycle extends SandboxLayerLifecycle>(state: CommandOnlySandboxLayerState, lifecycle: Lifecycle): SandboxLayer<\"command-only\", Lifecycle>;\nfunction createLayer<Lifecycle extends SandboxLayerLifecycle>(state: TemplateBearingSandboxLayerState, lifecycle: Lifecycle): SandboxLayer<\"template-bearing\", Lifecycle>;\nfunction createLayer(state: SandboxLayerState, lifecycle: SandboxLayerLifecycle): SandboxLayer {\n const frozenCommands = Object.freeze([...state.commands]);\n const setupHooks = Object.freeze([...state.setupHooks]);\n const teardownHooks = Object.freeze([...state.teardownHooks]);\n const frozenState = state.kind === \"command-only\"\n ? Object.freeze({ kind: \"command-only\" as const, commands: frozenCommands, setupHooks, teardownHooks })\n : Object.freeze({ kind: \"template-bearing\" as const, template: state.template, commands: frozenCommands, setupHooks, teardownHooks });\n const layer = {\n prepare(command: SandboxCommand): SandboxLayer {\n const declaration = sandboxCommandDeclarationOf(command);\n return frozenState.kind === \"command-only\"\n ? createLayer({ kind: \"command-only\", commands: [...frozenCommands, declaration], setupHooks, teardownHooks }, lifecycle)\n : createLayer({\n kind: \"template-bearing\",\n template: frozenState.template,\n commands: [...frozenCommands, declaration],\n setupHooks,\n teardownHooks,\n }, lifecycle);\n },\n setup(hook: SandboxHook): SandboxLayer {\n if (typeof hook !== \"function\")\n throw new TypeError(\"sandbox setup hook must be a function\");\n return frozenState.kind === \"command-only\"\n ? createLayer({ kind: \"command-only\", commands: frozenCommands, setupHooks: [...setupHooks, hook], teardownHooks }, \"instance-lifecycle\")\n : createLayer({ kind: \"template-bearing\", template: frozenState.template, commands: frozenCommands, setupHooks: [...setupHooks, hook], teardownHooks }, \"instance-lifecycle\");\n },\n teardown(hook: SandboxHook): SandboxLayer {\n if (typeof hook !== \"function\")\n throw new TypeError(\"sandbox teardown hook must be a function\");\n return frozenState.kind === \"command-only\"\n ? createLayer({ kind: \"command-only\", commands: frozenCommands, setupHooks, teardownHooks: [...teardownHooks, hook] }, \"instance-lifecycle\")\n : createLayer({ kind: \"template-bearing\", template: frozenState.template, commands: frozenCommands, setupHooks, teardownHooks: [...teardownHooks, hook] }, \"instance-lifecycle\");\n },\n } as SandboxLayerRuntime<SandboxLayerKind, SandboxLayerLifecycle>;\n Object.defineProperty(layer, SANDBOX_LAYER, { value: frozenState.kind });\n Object.defineProperty(layer, SANDBOX_LAYER_LIFECYCLE, { value: lifecycle });\n SANDBOX_LAYERS.add(layer);\n SANDBOX_LAYER_STATES.set(layer, frozenState);\n return Object.freeze(layer);\n}\nexport function sandboxLayer(): SandboxLayer<\"command-only\", \"prepare-only\"> {\n return createLayer({ kind: \"command-only\", commands: [], setupHooks: [], teardownHooks: [] }, \"prepare-only\");\n}\n/** @internal Provider factory 用它一次性绑定纯数据声明与 Effect planner。 */\nexport function defineSandboxTemplate(definition: SandboxTemplateDefinition): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n const provider = nonEmptyString(definition.provider, \"sandbox template.provider\");\n const kind = nonEmptyString(definition.kind, \"sandbox template.kind\");\n const declaration = Object.freeze({\n provider,\n kind,\n identity: freezeJson({\n version: 2,\n provider,\n kind,\n publishable: freezeJson(definition.publishableIdentity),\n privateIdentityDigest: digestOf(definition.privateFingerprintIdentity),\n }),\n leakGate: freezeLeakGate(definition.leakGate),\n });\n SANDBOX_TEMPLATE_PLANNERS.set(declaration, definition.plan);\n SANDBOX_TEMPLATE_COMMAND_PLAN_LOCATORS.set(declaration, freezeCommandPlanLocator(definition.commandPlanLocator));\n return createLayer({ kind: \"template-bearing\", template: declaration, commands: [], setupHooks: [], teardownHooks: [] }, \"prepare-only\");\n}\nfunction sharedScheduling(laneKey: string, recommendedConcurrency: number): SandboxProviderScheduling {\n return Object.freeze({\n recommendedConcurrency,\n lane: Object.freeze({ key: laneKey, limit: recommendedConcurrency }),\n admission: Object.freeze({ _tag: \"Shared\" }),\n });\n}\nfunction exclusiveScheduling(laneKey: string): SandboxProviderScheduling {\n return Object.freeze({\n recommendedConcurrency: 1,\n lane: Object.freeze({ key: laneKey, limit: 1 }),\n admission: Object.freeze({ _tag: \"Exclusive\" }),\n });\n}\nfunction standardLinuxTarget(): SandboxPlannedTarget {\n return Object.freeze({\n platform: Object.freeze({ _tag: \"Linux\", os: \"linux\", arch: \"x64\", libc: \"gnu\" }),\n source: \"provider-standard\",\n });\n}\nfunction providerBuildPlan(input: Parameters<typeof computeCaseKey>[0]): SandboxProviderBuildPlan {\n const buildKeys = [...input.buildKeys].sort();\n const caseKey = computeCaseKey(input);\n return buildKeys.length === 0\n ? Object.freeze({ _tag: \"None\", caseKey, buildKeys: [] as const })\n : Object.freeze({\n _tag: \"Required\",\n caseKey,\n buildKeys: freezeSortedNonEmptyBuildKeys(buildKeys, \"provider build collection.buildKeys\"),\n });\n}\n/** 将动态 provider 输入收敛为 Required 完成态:非空不变量必须在这里验证,不能靠 tuple 断言伪造。 */\nfunction freezeSortedNonEmptyBuildKeys(buildKeys: readonly BuildKey[], path: string): readonly [\n BuildKey,\n ...BuildKey[]\n] {\n const [first, ...rest] = [...buildKeys].sort();\n if (first === undefined)\n throw new TypeError(`${path} must contain at least one BuildKey when _tag is Required`);\n return Object.freeze(nonEmptyBuildKeys(first, rest));\n}\nfunction nonEmptyBuildKeys(first: BuildKey, rest: readonly BuildKey[]): [\n BuildKey,\n ...BuildKey[]\n] {\n return [first, ...rest];\n}\nexport type SandboxExecutionUser = {\n readonly _tag: \"EnvironmentDefault\";\n} | {\n readonly _tag: \"Configured\";\n readonly value: string;\n};\nexport type SandboxProviderLifetime = {\n readonly _tag: \"ProviderDefault\";\n} | {\n readonly _tag: \"Configured\";\n readonly milliseconds: number;\n};\nexport interface DockerComposeProviderPlan {\n readonly file: SandboxLocation;\n readonly workspaceService: string;\n readonly build: \"on-demand\" | \"prebuilt\";\n readonly user: SandboxExecutionUser;\n readonly env: Readonly<Record<string, string>>;\n readonly collection: ComposeBuildCollection;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface DockerfileProviderPlan {\n readonly context: SandboxLocation;\n readonly dockerfile: string;\n readonly buildArgs: Readonly<Record<string, string>>;\n readonly profile?: string;\n readonly profileBinding?: DockerProfileRuntimeBinding;\n readonly target?: string;\n readonly readiness?: DockerSandboxReadiness;\n readonly user: SandboxExecutionUser;\n readonly privileged: \"disabled\" | \"raw\" | \"rootless\";\n readonly dockerAccess?: DockerSandboxAccess;\n readonly resources: Readonly<DockerSandboxResources>;\n readonly build: DockerfileBuildIdentity;\n readonly buildKey: BuildKey;\n readonly platform: string;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface DockerImageProviderPlan {\n readonly image: string;\n readonly profile?: string;\n readonly profileBinding?: DockerProfileRuntimeBinding;\n readonly readiness?: DockerSandboxReadiness;\n readonly user: SandboxExecutionUser;\n readonly privileged: \"disabled\" | \"raw\" | \"rootless\";\n readonly dockerAccess?: DockerSandboxAccess;\n readonly resources: Readonly<DockerSandboxResources>;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface E2BProviderPlan {\n readonly template: string;\n readonly user: SandboxExecutionUser;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface VercelProviderPlan {\n readonly snapshotId: string;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface LocalProviderPlan {\n readonly directory: string;\n readonly pathPrepend: readonly string[];\n}\nexport interface CustomProviderPlan {\n readonly name: string;\n}\nexport interface CustomCaseProviderPlan {\n readonly identity: JsonValue;\n readonly services: {\n readonly _tag: \"Supported\";\n } | {\n readonly _tag: \"Unsupported\";\n };\n}\nfunction loadProviderRuntime() {\n return Effect.promise(() => __niceevalDynamicImport(\"./runtime.cjs\"));\n}\nconst noBuildPreparation = (): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>> => Effect.succeed(Option.none());\nconst dockerComposeProviderModule = Object.freeze({\n id: \"niceeval/docker-compose\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeDockerComposeProviderPlan(plan, context)),\n collectBuildPreparation: (plan, published, evalId) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.collectDockerComposeProviderBuildPreparation(plan, published, evalId)),\n} satisfies SandboxProviderModule<DockerComposeProviderPlan>);\nconst dockerfileProviderModule = Object.freeze({\n id: \"niceeval/dockerfile\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeDockerfileProviderPlan(plan, context)),\n collectBuildPreparation: (plan, published, evalId) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.collectDockerfileProviderBuildPreparation(plan, published, evalId)),\n} satisfies SandboxProviderModule<DockerfileProviderPlan>);\n/** tmpfs / 只读 rootfs 的状态不会跨 stop/restart 保留,不能向 --keep-sandbox 宣称 Suspendable。 */\nconst dockerfileEphemeralProviderModule = Object.freeze({\n ...dockerfileProviderModule,\n id: \"niceeval/dockerfile-ephemeral\",\n capabilities: Object.freeze({\n ...dockerfileProviderModule.capabilities,\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n }),\n} satisfies SandboxProviderModule<DockerfileProviderPlan>);\nconst dockerImageProviderModule = Object.freeze({\n id: \"niceeval/docker-image\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeDockerImageProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<DockerImageProviderPlan>);\nconst dockerImageEphemeralProviderModule = Object.freeze({\n ...dockerImageProviderModule,\n id: \"niceeval/docker-image-ephemeral\",\n capabilities: Object.freeze({\n ...dockerImageProviderModule.capabilities,\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n }),\n} satisfies SandboxProviderModule<DockerImageProviderPlan>);\nconst e2bProviderModule = Object.freeze({\n id: \"niceeval/e2b-template\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({\n _tag: \"ProviderValidated\",\n reason: \"E2B validates lifetimeMs against the active account tier when the sandbox is created or renewed.\",\n }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeE2BProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<E2BProviderPlan>);\nconst vercelProviderModule = Object.freeze({\n id: \"niceeval/vercel-snapshot\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({\n _tag: \"ProviderValidated\",\n reason: \"Vercel validates lifetimeMs against the active project plan when the sandbox session is created or extended.\",\n }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeVercelProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<VercelProviderPlan>);\nconst localProviderModule = Object.freeze({\n id: \"niceeval/local-directory\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Unsupported\", reason: \"local sandbox state is shared with the host\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeLocalProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<LocalProviderPlan>);\nfunction customProviderModule(name: string, create: CustomProviderSandboxOptions[\"create\"]): SandboxProviderModule<CustomProviderPlan> {\n return Object.freeze({\n id: `custom-provider:${name}`,\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Unsupported\", reason: \"custom provider has no reset contract\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeCustomProviderPlan(plan, context, create)),\n collectBuildPreparation: noBuildPreparation,\n } satisfies SandboxProviderModule<CustomProviderPlan>);\n}\nfunction customCaseProviderModule(materialize: CustomCaseSandboxOptions[\"materialize\"]): SandboxProviderModule<CustomCaseProviderPlan> {\n return Object.freeze({\n id: \"custom-case\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Unsupported\", reason: \"custom case has no reset contract\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeCustomCaseProviderPlan(plan, context, materialize)),\n collectBuildPreparation: noBuildPreparation,\n } satisfies SandboxProviderModule<CustomCaseProviderPlan>);\n}\n/** Built-in factory 集合只属于 provider 侧;测试通过 services 注入,不改全局状态。 */\nexport function createBuiltinSandboxFactories(services: BuiltinSandboxPlannerServices): BuiltinSandboxFactories {\n const dockerTarget = (): Effect.Effect<SandboxPlannedTarget, SandboxProviderPlanningError> => Effect.flatMap(services.dockerBuildPlatform, targetFromDocker);\n const dockerTargetForProfile = (profile: string | undefined): Effect.Effect<{\n readonly target: SandboxPlannedTarget;\n readonly profileBinding?: DockerProfileRuntimeBinding;\n }, SandboxProviderPlanningError> => profile === undefined\n ? Effect.map(dockerTarget(), (target) => ({ target }))\n : Effect.flatMap(Effect.tryPromise({\n try: async () => (await __niceevalDynamicImport(\"./docker-profile/runtime.cjs\")).attestDockerProfile(profile),\n catch: (cause) => providerPlanningError(\"sandbox.docker-profile-attestation-failed\", \"docker\", cause instanceof Error ? cause.message : String(cause), [`Run niceeval docker profile doctor ${profile}.`]),\n }), (profileBinding) => Effect.map(targetFromDocker(profileBinding.platform), (target) => ({ target, profileBinding })));\n return Object.freeze({\n dockerComposeSandbox(options: DockerComposeSandboxOptions) {\n assertRecord(options, \"dockerComposeSandbox options\");\n assertOnlyKeys(options, [\"file\", \"workspaceService\", \"build\", \"user\", \"env\", \"credentialEnv\", \"lifetimeMs\", \"pathPrepend\"], \"dockerComposeSandbox options\");\n if (options.build !== undefined && options.build !== \"on-demand\" && options.build !== \"prebuilt\") {\n throw new TypeError('dockerComposeSandbox options.build must be \"on-demand\" or \"prebuilt\"');\n }\n const file = location(options.file, \"dockerComposeSandbox options.file\");\n const fileLocator = configuredLocationField(\"file\", file);\n const workspaceService = nonEmptyString(options.workspaceService, \"dockerComposeSandbox options.workspaceService\");\n const build = options.build === undefined ? \"on-demand\" : options.build;\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"dockerComposeSandbox options.user\") };\n const env = stringRecord(options.env, \"dockerComposeSandbox options.env\");\n const credentialEnv = credentialEnvRecord(options.credentialEnv, \"dockerComposeSandbox options.credentialEnv\");\n for (const key of Object.keys(credentialEnv)) {\n if (key in env)\n throw new TypeError(`dockerComposeSandbox env and credentialEnv both define ${JSON.stringify(key)}`);\n }\n const credentialIdentity: globalThis.Record<string, JsonValue> = Object.fromEntries(Object.entries(credentialEnv).map(([name, credential]): readonly [\n string,\n JsonValue\n ] => [\n name,\n credential.revision === undefined ? {} : { revision: credential.revision },\n ]));\n const runtimeEnv = {\n ...env,\n ...Object.fromEntries(Object.entries(credentialEnv).map(([name, credential]) => [name, credential.value])),\n };\n const plannedLifetime = lifetime(options.lifetimeMs, \"dockerComposeSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"dockerComposeSandbox options.pathPrepend\");\n const identity: JsonValue = {\n provider: \"docker\",\n kind: \"compose\",\n file,\n workspaceService,\n build,\n user,\n env: { ...env },\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n return defineSandboxTemplate({\n provider: \"docker\",\n kind: \"compose\",\n publishableIdentity: {\n workspaceService,\n build,\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n envKeys: Object.keys(env).sort(),\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: identity,\n commandPlanLocator: fileLocator === undefined\n ? configuredPathLocator()\n : configuredLocator([fileLocator.field, { name: \"workspaceService\", value: workspaceService }], fileLocator.redaction === undefined ? [] : [fileLocator.redaction]),\n leakGate: { _tag: \"Compose\", file, workspaceService },\n plan: ({ authorBaseDir }) => Effect.flatMap(dockerTarget(), (target) => Effect.gen(function* () {\n const plannedFile = yield* Effect.try({\n try: () => plannedLocation(file, authorBaseDir),\n catch: (cause) => providerPlanningError(\"sandbox.case-identity-unavailable\", \"docker\", cause instanceof Error ? cause.message : String(cause), [\"Make the Compose file and every filtered build context readable during physical planning.\"]),\n });\n const collection = yield* collectComposeBuilds({\n file: plannedFile._tag === \"Url\" ? new URL(plannedFile.value) : plannedFile.value,\n mainService: workspaceService,\n platform: plannedTargetPlatform(target),\n env: runtimeEnv,\n }).pipe(Effect.mapError((cause) => providerPlanningError(\"sandbox.case-identity-unavailable\", \"docker\", cause.message, [\"Make the Compose file and every filtered build context readable during physical planning.\"])));\n const caseIdentity = composeCollectionIdentity(collection);\n const identityInput: JsonValue = {\n file: plannedFile,\n workspaceService,\n build,\n user,\n env: { ...env },\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n plannedBuildKeys: [...collection.buildKeys].sort(),\n plannedCaseIdentityDigest: digestOf(caseIdentity),\n };\n return sandboxProviderPlan({\n provider: \"docker\",\n plannerRevision: COMPOSE_MATERIALIZER_REVISION,\n caseKind: \"compose\",\n target,\n scheduling: sharedScheduling(\"docker\", 10),\n module: dockerComposeProviderModule,\n build: providerBuildPlan({\n caseKind: \"compose\",\n materializerRevision: COMPOSE_MATERIALIZER_REVISION,\n composeBytes: collection.composeBytes,\n buildKeys: collection.buildKeys,\n serviceImageRefs: collection.imageRefs,\n bindMountDigests: collection.bindMountDigests,\n configContents: collection.configContents,\n caseParams: identityInput,\n }),\n runtimePlan: Object.freeze({\n file: plannedFile,\n workspaceService,\n build,\n user: Object.freeze({ ...user }),\n env: Object.freeze({ ...runtimeEnv }),\n collection,\n lifetime: plannedLifetime,\n pathPrepend,\n }),\n publishableIdentity: {\n workspaceService,\n build,\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n envKeys: Object.keys(env).sort(),\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n ...(caseIdentity as Record<string, JsonValue>),\n },\n privateFingerprintIdentity: {\n identityInput,\n caseIdentity,\n },\n identityMarker: collection.providerIdentityMarker,\n });\n })),\n });\n },\n dockerfileSourceLayer(options: DockerfileSourceOptions) {\n assertRecord(options, \"dockerSandbox options\");\n assertOnlyKeys(options, [\"context\", \"dockerfile\", \"buildArgs\", \"profile\", \"target\", \"user\", \"privileged\", \"dockerAccess\", \"resources\", \"readiness\", \"lifetimeMs\", \"pathPrepend\"], \"dockerSandbox options\");\n const context = location(options.context, \"dockerSandbox options.source.context\");\n const contextLocator = configuredLocationField(\"context\", context);\n const dockerfile = options.dockerfile === undefined\n ? \"Dockerfile\"\n : nonEmptyString(options.dockerfile, \"dockerSandbox options.source.file\");\n const buildArgs = stringRecord(options.buildArgs, \"dockerSandbox options.source.buildArgs\");\n const accessConfig = dockerAccessConfiguration(options.dockerAccess, options.profile, options.privileged, \"dockerSandbox options.dockerAccess\");\n const { access, profile, privileged } = accessConfig;\n const targetStage = options.target === undefined\n ? undefined\n : nonEmptyString(options.target, \"dockerSandbox options.source.target\");\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"dockerSandbox options.user\") };\n const resources = dockerResourcesForProfile(profile, privileged, options.resources, \"dockerSandbox options.resources\");\n const readiness = dockerReadinessForAccess(access, options.readiness, \"dockerSandbox options.readiness\");\n const plannedLifetime = lifetime(options.lifetimeMs, \"dockerSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"dockerSandbox options.pathPrepend\");\n const identity: JsonValue = {\n provider: \"docker\",\n kind: \"dockerfile\",\n context,\n dockerfile,\n buildArgs: { ...buildArgs },\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n return defineSandboxTemplate({\n provider: \"docker\",\n kind: \"dockerfile\",\n publishableIdentity: {\n buildArgKeys: Object.keys(buildArgs).sort(),\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: identity,\n commandPlanLocator: contextLocator === undefined || options.dockerfile !== undefined\n ? configuredPathLocator()\n : configuredLocator([\n contextLocator.field,\n { name: \"file\", value: dockerfile },\n ...(targetStage === undefined ? [] : [{ name: \"target\" as const, value: targetStage }]),\n ], contextLocator.redaction === undefined ? [] : [contextLocator.redaction]),\n leakGate: { _tag: \"Dockerfile\", context, dockerfile },\n plan: ({ authorBaseDir }) => Effect.flatMap(dockerTargetForProfile(profile), ({ target, profileBinding }) => Effect.gen(function* () {\n const plannedContext = yield* Effect.try({\n try: () => plannedLocation(context, authorBaseDir),\n catch: (cause) => providerPlanningError(\"sandbox.build-identity-unavailable\", \"docker\", cause instanceof Error ? cause.message : String(cause), [\"Make the Dockerfile and its filtered build context readable during physical planning.\"]),\n });\n const build = yield* resolveDockerfileBuildIdentity({\n provider: \"docker\",\n context: plannedContext._tag === \"Url\" ? new URL(plannedContext.value) : plannedContext.value,\n dockerfile,\n buildArgs,\n ...(targetStage === undefined ? {} : { target: targetStage }),\n platform: plannedTargetPlatform(target),\n label: \"Dockerfile sandbox\",\n }).pipe(Effect.mapError((cause) => providerPlanningError(\"sandbox.build-identity-unavailable\", \"docker\", cause.message, [\"Make the Dockerfile and its filtered build context readable during physical planning.\"])));\n const runtimeIdentity: JsonValue = {\n context: plannedContext,\n dockerfile,\n buildArgs: { ...buildArgs },\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n plannedBuildKey: build.buildKey,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n return sandboxProviderPlan({\n provider: \"docker\",\n plannerRevision: DOCKERFILE_PROVIDER_PLANNER_REVISION,\n caseKind: \"on-demand-build\",\n target,\n scheduling: sharedScheduling(\"docker\", 10),\n module: dockerRequiresDestroyOnly(resources)\n ? dockerfileEphemeralProviderModule\n : dockerfileProviderModule,\n build: providerBuildPlan({\n caseKind: \"on-demand-build\",\n materializerRevision: DOCKERFILE_MATERIALIZER_REVISION,\n buildKeys: [build.buildKey],\n caseParams: {\n provider: \"docker\",\n buildKey: build.buildKey,\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n }),\n runtimePlan: Object.freeze({\n context: plannedContext,\n dockerfile,\n buildArgs,\n ...(profile === undefined ? {} : { profile }),\n ...(profileBinding === undefined ? {} : { profileBinding }),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n ...(readiness === undefined ? {} : { readiness }),\n user: Object.freeze({ ...user }),\n privileged,\n ...(access === undefined ? {} : { dockerAccess: access }),\n resources,\n build,\n buildKey: build.buildKey,\n platform: plannedTargetPlatform(target),\n lifetime: plannedLifetime,\n pathPrepend,\n }),\n publishableIdentity: {\n buildArgKeys: Object.keys(buildArgs).sort(),\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n ...dockerRuntimeIdentity(privileged, resources, access),\n buildKey: build.buildKey,\n ...(profileBinding === undefined ? {} : {\n dockerProfile: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: {\n runtimeIdentity,\n buildKey: build.buildKey,\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n },\n identityMarker: build.providerIdentityMarker,\n });\n })),\n });\n },\n dockerImageSourceLayer(options: DockerImageSourceOptions) {\n assertRecord(options, \"dockerSandbox options\");\n assertOnlyKeys(options, [\"image\", \"profile\", \"user\", \"privileged\", \"dockerAccess\", \"resources\", \"readiness\", \"lifetimeMs\", \"pathPrepend\"], \"dockerSandbox options\");\n const image = nonEmptyString(options.image, \"dockerSandbox options.source.image\");\n const accessConfig = dockerAccessConfiguration(options.dockerAccess, options.profile, options.privileged, \"dockerSandbox options.dockerAccess\");\n const { access, profile, privileged } = accessConfig;\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"dockerSandbox options.user\") };\n const resources = dockerResourcesForProfile(profile, privileged, options.resources, \"dockerSandbox options.resources\");\n const readiness = dockerReadinessForAccess(access, options.readiness, \"dockerSandbox options.readiness\");\n const plannedLifetime = lifetime(options.lifetimeMs, \"dockerSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"dockerSandbox options.pathPrepend\");\n const identity: JsonValue = {\n provider: \"docker\",\n kind: \"image\",\n image,\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n const publishedUser = { _tag: options.user === undefined ? \"EnvironmentDefault\" as const : \"Configured\" as const };\n return defineSandboxTemplate({\n provider: \"docker\",\n kind: \"image\",\n publishableIdentity: {\n source: \"configured-image\",\n user: publishedUser,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: identity,\n commandPlanLocator: configuredDockerImageLocator(image),\n leakGate: { _tag: \"None\" },\n plan: () => Effect.map(dockerTargetForProfile(profile), ({ target, profileBinding }) => {\n return sandboxProviderPlan({\n provider: \"docker\",\n plannerRevision: DOCKER_IMAGE_PROVIDER_REVISION,\n caseKind: \"prebuilt\",\n target,\n scheduling: sharedScheduling(\"docker\", 10),\n module: dockerRequiresDestroyOnly(resources)\n ? dockerImageEphemeralProviderModule\n : dockerImageProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: DOCKER_IMAGE_PROVIDER_REVISION,\n buildKeys: [],\n caseParams: {\n image,\n user,\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n }),\n runtimePlan: Object.freeze({\n image,\n ...(profile === undefined ? {} : { profile }),\n ...(profileBinding === undefined ? {} : { profileBinding }),\n ...(readiness === undefined ? {} : { readiness }),\n user: Object.freeze({ ...user }),\n privileged,\n ...(access === undefined ? {} : { dockerAccess: access }),\n resources,\n lifetime: plannedLifetime,\n pathPrepend,\n }),\n publishableIdentity: {\n source: \"configured-image\",\n user: publishedUser,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: {\n image,\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n identityMarker: looksLikeDigestRef(image)\n ? undefined\n : unresolvedProviderFingerprintMarker(\"sandbox.image-unresolved\", \"Docker image is not pinned to a sha256 digest.\"),\n });\n }),\n });\n },\n e2bSandbox(options: E2BSandboxOptions) {\n assertRecord(options, \"e2bSandbox options\");\n assertOnlyKeys(options, [\"template\", \"user\", \"lifetimeMs\", \"pathPrepend\"], \"e2bSandbox options\");\n const template = nonEmptyString(options.template, \"e2bSandbox options.template\");\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"e2bSandbox options.user\") };\n const publishedUser = { _tag: options.user === undefined ? \"EnvironmentDefault\" as const : \"Configured\" as const };\n const plannedLifetime = lifetime(options.lifetimeMs, \"e2bSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"e2bSandbox options.pathPrepend\");\n const identity: JsonValue = { provider: \"e2b\", kind: \"template\", template, user, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) };\n return defineSandboxTemplate({\n provider: \"e2b\",\n kind: \"template\",\n publishableIdentity: { user: publishedUser, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: identity,\n commandPlanLocator: opaqueConfiguredLocator(\"e2b-template-locator-unsafe-to-display\", \"E2B template locator is omitted because provider identifiers may contain credentials\"),\n leakGate: { _tag: \"None\" },\n plan: () => {\n return Effect.succeed(sandboxProviderPlan({\n provider: \"e2b\",\n plannerRevision: \"e2b-template-1\",\n caseKind: \"prebuilt\",\n target: standardLinuxTarget(),\n scheduling: sharedScheduling(\"e2b\", 20),\n module: e2bProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: \"e2b-template-1\",\n buildKeys: [],\n caseParams: { template, user, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }),\n runtimePlan: Object.freeze({ template, user: Object.freeze({ ...user }), lifetime: plannedLifetime, pathPrepend }),\n publishableIdentity: { user: publishedUser, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: { template, user, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }));\n },\n });\n },\n vercelSandbox(options: VercelSandboxOptions) {\n assertRecord(options, \"vercelSandbox options\");\n assertOnlyKeys(options, [\"snapshotId\", \"lifetimeMs\", \"pathPrepend\"], \"vercelSandbox options\");\n const snapshotId = nonEmptyString(options.snapshotId, \"vercelSandbox options.snapshotId\");\n const plannedLifetime = lifetime(options.lifetimeMs, \"vercelSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"vercelSandbox options.pathPrepend\");\n const identity: JsonValue = { provider: \"vercel\", kind: \"snapshot\", snapshotId, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) };\n return defineSandboxTemplate({\n provider: \"vercel\",\n kind: \"snapshot\",\n publishableIdentity: { lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: identity,\n commandPlanLocator: opaqueConfiguredLocator(\"vercel-snapshot-locator-unsafe-to-display\", \"Vercel snapshot locator is omitted because provider identifiers may contain credentials\"),\n leakGate: { _tag: \"None\" },\n plan: () => {\n return Effect.succeed(sandboxProviderPlan({\n provider: \"vercel\",\n plannerRevision: \"vercel-snapshot-1\",\n caseKind: \"prebuilt\",\n target: standardLinuxTarget(),\n scheduling: sharedScheduling(\"vercel\", 1),\n module: vercelProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: \"vercel-snapshot-1\",\n buildKeys: [],\n caseParams: { snapshotId, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }),\n runtimePlan: Object.freeze({ snapshotId, lifetime: plannedLifetime, pathPrepend }),\n publishableIdentity: { lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: { snapshotId, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }));\n },\n });\n },\n localSandbox(options: LocalSandboxOptions = {}) {\n assertRecord(options, \"localSandbox options\");\n assertOnlyKeys(options, [\"dir\", \"pathPrepend\"], \"localSandbox options\");\n const directory = options.dir === undefined\n ? Object.freeze({ _tag: \"AuthorBaseDir\" as const })\n : Object.freeze({\n _tag: \"Configured\" as const,\n value: nonEmptyString(options.dir, \"localSandbox options.dir\"),\n });\n const pathPrepend = pathPrependList(options.pathPrepend, \"localSandbox options.pathPrepend\");\n const identity: JsonValue = { provider: \"local\", kind: \"directory\", directory, ...pathPrependIdentityField(pathPrepend) };\n return defineSandboxTemplate({\n provider: \"local\",\n kind: \"directory\",\n publishableIdentity: { directory: { _tag: directory._tag }, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: identity,\n commandPlanLocator: directory._tag === \"AuthorBaseDir\"\n ? configuredLocator([{ name: \"dir\", value: \"author-base-dir\" }])\n : configuredPathLocator(),\n leakGate: { _tag: \"None\" },\n plan: ({ authorBaseDir }) => {\n const configured = directory._tag === \"AuthorBaseDir\"\n ? authorBaseDir\n : resolve(authorBaseDir, directory.value);\n return Effect.succeed(sandboxProviderPlan({\n provider: \"local\",\n plannerRevision: \"local-directory-1\",\n caseKind: \"prebuilt\",\n target: { platform: services.hostPlatform, source: \"host\" },\n scheduling: exclusiveScheduling(\"local-worktree\"),\n module: localProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: \"local-directory-1\",\n buildKeys: [],\n caseParams: { directory: configured, ...pathPrependIdentityField(pathPrepend) },\n }),\n runtimePlan: Object.freeze({ directory: configured, pathPrepend }),\n publishableIdentity: { directory: { _tag: directory._tag }, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: { directory: configured, ...pathPrependIdentityField(pathPrepend) },\n }));\n },\n });\n },\n });\n}\nfunction hostPlatform(): SandboxTargetPlatform {\n const arch = normalizeArch(process.arch);\n return process.platform === \"linux\"\n ? Object.freeze({ _tag: \"Linux\", os: \"linux\", arch, libc: \"gnu\" })\n : process.platform === \"darwin\"\n ? Object.freeze({ _tag: \"Darwin\", os: \"darwin\", arch })\n : Object.freeze({ _tag: \"Windows\", os: \"windows\", arch });\n}\nconst LIVE_FACTORIES = createBuiltinSandboxFactories({\n dockerBuildPlatform: Effect.tryPromise({\n try: () => detectDockerBuildPlatform(),\n catch: (cause) => providerPlanningError(\"sandbox.target-platform-unavailable\", \"docker\", cause instanceof Error ? cause.message : String(cause), [\"Make the Docker control plane available or set DOCKER_DEFAULT_PLATFORM.\"]),\n }),\n hostPlatform: hostPlatform(),\n});\nexport const dockerComposeSandbox = LIVE_FACTORIES.dockerComposeSandbox;\nconst dockerfileSourceLayer = LIVE_FACTORIES.dockerfileSourceLayer;\nconst dockerImageSourceLayer = LIVE_FACTORIES.dockerImageSourceLayer;\nexport const e2bSandbox = LIVE_FACTORIES.e2bSandbox;\nexport const vercelSandbox = LIVE_FACTORIES.vercelSandbox;\nexport const localSandbox = LIVE_FACTORIES.localSandbox;\n/**\n * 统一的单容器 Docker factory。Docker access用判别联合选择显式socket、raw DinD或managed DinD;\n * 宿主路径/profile只保存到私有runtime binding。本函数不连接Docker,provider接线由后续层负责。\n */\nexport function dockerSandbox(options: DockerSandboxOptions): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n assertRecord(options, \"dockerSandbox options\");\n assertOnlyKeys(options, [\"source\", \"dockerAccess\", \"resources\", \"user\", \"readiness\", \"lifetimeMs\", \"pathPrepend\"], \"dockerSandbox options\");\n const source = options.source;\n assertRecord(source, \"dockerSandbox options.source\");\n if (source.type === \"image\") {\n assertOnlyKeys(source, [\"type\", \"image\"], \"dockerSandbox options.source\");\n const access = dockerAccess(options.dockerAccess, \"dockerSandbox options.dockerAccess\");\n const resources = access?.mode === \"dind\" && access.isolation === \"managed-rootless\"\n ? managedDockerResources(options.resources, \"dockerSandbox options.resources\")\n : options.resources;\n return dockerImageSourceLayer({\n image: nonEmptyString(source.image, \"dockerSandbox options.source.image\"),\n ...(options.user === undefined ? {} : { user: options.user }),\n ...(access === undefined ? {} : { dockerAccess: access }),\n ...(resources === undefined ? {} : { resources }),\n ...(options.readiness === undefined ? {} : { readiness: options.readiness }),\n ...(options.lifetimeMs === undefined ? {} : { lifetimeMs: options.lifetimeMs }),\n ...(options.pathPrepend === undefined ? {} : { pathPrepend: options.pathPrepend }),\n });\n }\n if (source.type === \"dockerfile\") {\n assertOnlyKeys(source, [\"type\", \"context\", \"file\", \"buildArgs\", \"target\"], \"dockerSandbox options.source\");\n const access = dockerAccess(options.dockerAccess, \"dockerSandbox options.dockerAccess\");\n const resources = access?.mode === \"dind\" && access.isolation === \"managed-rootless\"\n ? managedDockerResources(options.resources, \"dockerSandbox options.resources\")\n : options.resources;\n return dockerfileSourceLayer({\n context: source.context,\n ...(source.file === undefined ? {} : { dockerfile: source.file }),\n ...(source.buildArgs === undefined ? {} : { buildArgs: source.buildArgs }),\n ...(source.target === undefined ? {} : { target: source.target }),\n ...(options.user === undefined ? {} : { user: options.user }),\n ...(access === undefined ? {} : { dockerAccess: access }),\n ...(resources === undefined ? {} : { resources }),\n ...(options.readiness === undefined ? {} : { readiness: options.readiness }),\n ...(options.lifetimeMs === undefined ? {} : { lifetimeMs: options.lifetimeMs }),\n ...(options.pathPrepend === undefined ? {} : { pathPrepend: options.pathPrepend }),\n });\n }\n throw dockerProfileError({\n code: \"sandbox.docker-profile-schema-invalid\",\n path: \"dockerSandbox options.source.type\",\n message: `dockerSandbox source type ${JSON.stringify(source.type)} is unsupported`,\n });\n}\nexport function customProviderSandbox(options: CustomProviderSandboxOptions): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n assertRecord(options, \"defineSandbox options\");\n assertOnlyKeys(options, [\"name\", \"targetPlatform\", \"recommendedConcurrency\", \"exclusive\", \"create\"], \"defineSandbox options\");\n if (typeof options.create !== \"function\")\n throw new TypeError(\"defineSandbox options.create must be a function\");\n const name = nonEmptyString(options.name, \"defineSandbox options.name\");\n const targetPlatform = freezePlatform(options.targetPlatform);\n const recommendedConcurrency = options.recommendedConcurrency ?? 5;\n const scheduling = options.exclusive === true\n ? exclusiveScheduling(name)\n : sharedScheduling(name, recommendedConcurrency);\n const module = customProviderModule(name, options.create);\n const identity: JsonValue = {\n provider: name,\n kind: \"custom-provider\",\n targetPlatform: targetIdentity({ platform: targetPlatform, source: \"provider-defined\" }),\n scheduling: {\n recommendedConcurrency: scheduling.recommendedConcurrency,\n lane: { key: scheduling.lane.key, limit: scheduling.lane.limit },\n admission: { _tag: scheduling.admission._tag },\n },\n create: { _tag: \"OpaqueCallback\" },\n retention: { _tag: \"Unsupported\" },\n reuse: { _tag: \"Unsupported\" },\n };\n return defineSandboxTemplate({\n provider: name,\n kind: \"custom-provider\",\n publishableIdentity: {},\n privateFingerprintIdentity: identity,\n commandPlanLocator: {\n _tag: \"Opaque\",\n reason: {\n code: \"custom-provider-template\",\n summary: \"Custom provider owns its template locator and does not expose it to the command plan\",\n },\n },\n leakGate: { _tag: \"None\" },\n plan: () => Effect.succeed(sandboxProviderPlan({\n provider: name,\n plannerRevision: \"custom-provider-1\",\n caseKind: \"custom\",\n target: { platform: targetPlatform, source: \"provider-defined\" },\n scheduling,\n module,\n build: providerBuildPlan({\n caseKind: \"custom\",\n materializerRevision: \"custom-provider-1\",\n buildKeys: [],\n caseParams: identity,\n }),\n runtimePlan: Object.freeze({ name }),\n publishableIdentity: {},\n privateFingerprintIdentity: identity,\n identityMarker: unresolvedProviderFingerprintMarker(\"sandbox.custom-provider-opaque\", `custom provider ${JSON.stringify(name)} owns an opaque create callback; use defineSandboxCase({ identity, materialize }) for cross-Run carry.`),\n })),\n });\n}\nexport function defineSandboxCase(options: CustomCaseSandboxOptions): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n assertRecord(options, \"defineSandboxCase options\");\n assertOnlyKeys(options, [\"identity\", \"targetPlatform\", \"services\", \"materialize\"], \"defineSandboxCase options\");\n if (typeof options.materialize !== \"function\") {\n throw new TypeError(\"defineSandboxCase options.materialize must be a function\");\n }\n const targetPlatform = freezePlatform(options.targetPlatform);\n if (options.services === null ||\n typeof options.services !== \"object\" ||\n (options.services._tag !== \"Supported\" && options.services._tag !== \"Unsupported\") ||\n Object.keys(options.services).some((key) => key !== \"_tag\")) {\n throw new TypeError('defineSandboxCase options.services must be exactly { _tag: \"Supported\" } or { _tag: \"Unsupported\" }');\n }\n const services = Object.freeze({ _tag: options.services._tag });\n const identity = freezeJson(assertPureDataIdentity(options.identity));\n const module = customCaseProviderModule(options.materialize);\n const declarationIdentity: JsonValue = {\n provider: \"custom-case\",\n kind: \"custom-case\",\n identity,\n targetPlatform: targetIdentity({ platform: targetPlatform, source: \"provider-defined\" }),\n services: { _tag: services._tag },\n group: { _tag: \"Required\" },\n retention: { _tag: \"Unsupported\" },\n };\n return defineSandboxTemplate({\n provider: \"custom-case\",\n kind: \"custom-case\",\n publishableIdentity: {},\n privateFingerprintIdentity: declarationIdentity,\n commandPlanLocator: {\n _tag: \"Opaque\",\n reason: {\n code: \"custom-case-template\",\n summary: \"Custom Sandbox Case identity is private and has no configured template locator\",\n },\n },\n leakGate: { _tag: \"None\" },\n plan: () => Effect.succeed(sandboxProviderPlan({\n provider: \"custom-case\",\n plannerRevision: \"custom-case-1\",\n caseKind: \"custom\",\n target: { platform: targetPlatform, source: \"provider-defined\" },\n scheduling: sharedScheduling(\"custom-case\", 5),\n module,\n build: providerBuildPlan({\n caseKind: \"custom\",\n materializerRevision: \"custom-case-1\",\n buildKeys: [],\n caseParams: declarationIdentity,\n }),\n runtimePlan: Object.freeze({ identity, services }),\n publishableIdentity: {},\n privateFingerprintIdentity: declarationIdentity,\n })),\n });\n}\nexport function sandboxTemplateIdentity(template: SandboxTemplateDeclaration): JsonValue {\n return template.identity;\n}\n/** @internal Explicit command-plan projection only; never use this as provider or cache identity. */\nexport function sandboxTemplateCommandPlanLocator(template: SandboxTemplateDeclaration): SandboxTemplateCommandPlanLocator {\n return SANDBOX_TEMPLATE_COMMAND_PLAN_LOCATORS.get(template) ?? Object.freeze({\n _tag: \"Opaque\",\n reason: Object.freeze({\n code: \"sandbox-template-locator-missing\",\n summary: \"Sandbox template was not constructed with command-plan locator evidence\",\n }),\n });\n}\n/** physical planner 的唯一 callback 入口;link 不调用本函数。 */\nexport function planSandboxTemplate(template: SandboxTemplateDeclaration, input: SandboxTemplatePlanningInput): Effect.Effect<SandboxProviderPlan, SandboxProviderPlanningError> {\n if (!isAbsolute(input.authorBaseDir)) {\n return Effect.fail(providerPlanningError(\"sandbox.author-base-dir-invalid\", template.provider, `Sandbox template author baseDir must be absolute, got ${JSON.stringify(input.authorBaseDir)}.`, [\"Complete discovery before physical planning.\"]));\n }\n const planner = SANDBOX_TEMPLATE_PLANNERS.get(template);\n return planner === undefined\n ? Effect.fail(providerPlanningError(\"sandbox.template-planner-missing\", template.provider, `Sandbox template ${template.provider}:${template.kind} has no bound planner.`, [\"Construct templates through their provider factory.\"]))\n : planner(input);\n}\nexport function isSandboxLayer(value: unknown): value is SandboxLayer {\n if (value === null || typeof value !== \"object\")\n return false;\n if (!SANDBOX_LAYERS.has(value))\n return false;\n const candidate = value as Partial<SandboxLayerRuntime<SandboxLayerKind>>;\n const kind = candidate[SANDBOX_LAYER];\n const state = SANDBOX_LAYER_STATES.get(value);\n return ((kind === \"command-only\" || kind === \"template-bearing\") &&\n state?.kind === kind &&\n Array.isArray(state.commands) &&\n typeof candidate.prepare === \"function\");\n}\n/** 仅供 linker/fingerprint/runner 使用,不从 niceeval/sandbox 公开。 */\nexport function sandboxLayerStateOf(layer: SandboxLayer<\"command-only\">): CommandOnlySandboxLayerState;\nexport function sandboxLayerStateOf(layer: SandboxLayer<\"template-bearing\">): TemplateBearingSandboxLayerState;\nexport function sandboxLayerStateOf(layer: SandboxLayer): SandboxLayerState;\nexport function sandboxLayerStateOf(layer: SandboxLayer): SandboxLayerState {\n if (!isSandboxLayer(layer))\n throw new TypeError(\"sandbox must be a SandboxLayer factory product\");\n const state = SANDBOX_LAYER_STATES.get(layer);\n if (state === undefined)\n throw new TypeError(\"sandbox must be a SandboxLayer factory product\");\n return state;\n}\n"]}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["layer.ts"],"names":[],"mappings":";;;AAgpBA,kDA4DC;AAED,4DAEC;AA+dD,oCAEC;AAED,sDAkBC;AAgOD,sEA4fC;AAgBD,sCA6CC;AACD,sDAyDC;AACD,8CAwDC;AACD,0DAEC;AAED,8EAQC;AAED,kDAQC;AACD,wCAYC;AAKD,kDAOC;AAjoED,yEAAyE;AACzE,2EAA2E;AAC3E,yCAAgD;AAChD,mCAA0D;AAM1D,+CAA4D;AAC5D,6CAA+L;AAC/L,+CAAyJ;AACzJ,qEAA2I;AAG3I,0DAAgE;AAEhE,6DAA8D;AAG9D,MAAM,aAAa,GAAkB,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACtE,MAAM,uBAAuB,GAAkB,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAC1F,MAAM,cAAc,GAAG,IAAI,OAAO,EAAU,CAAC;AAC7C,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAA6B,CAAC;AACtE,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAAkC,CAAC;AAChF,MAAM,sCAAsC,GAAG,IAAI,OAAO,EAA6C,CAAC;AACxG,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAAkC,CAAC;AAChF,MAAM,qBAAqB,GAAkB,MAAM,CAAC,gCAAgC,CAAC,CAAC;AACtF,iGAAiG;AACjG,0FAA0F;AAC1F,MAAM,oCAAoC,GAAG,cAAc,CAAC;AAC5D,MAAM,8BAA8B,GAAG,gBAAgB,CAAC;AA+KxD,MAAa,iCAAkC,SAAQ,aAAI,CAAC,WAAW,CAAC,mCAAmC,CAIzG;CACD;AALD,8EAKC;AAmND,MAAa,4BAA6B,SAAQ,aAAI,CAAC,WAAW,CAAC,8BAA8B,CAK/F;CACD;AAND,oEAMC;AAkDD,SAAS,UAAU,CAAC,KAAgB;IAChC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3C,OAAO,KAAK,CAAC;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAgB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpH,CAAC;AACD,SAAS,cAAc,CAAC,QAA+B;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AAC1C,CAAC;AACD,SAAS,YAAY,CAAC,MAA4B;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,cAAc,CAAC,KAAsB;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AACD,MAAM,uBAAuB,GAAmD,MAAM,CAAC,MAAM,CAAC;IAC1F,UAAU;IACV,OAAO;IACP,UAAU;CACb,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAkC;IACjE,OAAO;IACP,SAAS;IACT,MAAM;IACN,QAAQ;IACR,kBAAkB;IAClB,UAAU;IACV,YAAY;IACZ,KAAK;CACR,CAAC,CAAC;AACH,SAAS,wBAAwB,CAAC,OAA0C;IACxE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBAClB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,sCAAsC,CAAC;gBACjF,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;aAC7F,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtG,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,4BAA4B,KAAK,CAAC,IAAI,EAAE,CAAC;SAC/E,CAAC,CAAC;IACP,CAAC,CAGA,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmC,CAAC;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CAAC,+DAA+D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1H,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,SAAS,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACrH,CAAC;AACD,SAAS,iBAAiB,CAAC,MAG1B,EAAE,aAAyD,EAAE;IAC1D,OAAO,wBAAwB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QACnD,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,uBAAuB,CAAC,IAAY,EAAE,OAAe;IAC1D,OAAO,wBAAwB,CAAC;QAC5B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,4BAA4B,CAAC,KAAa;IAC/C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,uBAAuB,GAAG,iCAAiC,CAAC,IAAI,CAAC,SAAS,CAAC;WAC1E,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;WAC1B,CAAC,MAAM,KAAK,SAAS,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,IAAI,uBAAuB,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,uBAAuB,CAAC,wCAAwC,EAAE,sFAAsF,CAAC,CAAC;AACrK,CAAC;AACD,SAAS,qBAAqB;IAC1B,OAAO,uBAAuB,CAAC,wCAAwC,EAAE,wFAAwF,CAAC,CAAC;AACvK,CAAC;AACD,SAAS,uBAAuB,CAAC,IAAwB,EAAE,KAAsB;IAI7E,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QACrB,OAAO,SAAS,CAAC;IACrB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QACxB,OAAO,SAAS,CAAC;IACrB,MAAM,KAAK,GAA0C,EAAE,CAAC;IACxD,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IACpB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IACD,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;KAC5G,CAAC;AACN,CAAC;AACD,SAAS,cAAc,CAAC,KAAsB;IAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM;YACP,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,KAAK,YAAY;YACb,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC;gBACtC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,6BAA6B,CAAC;aAC9E,CAAC,CAAC;QACP,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;gBAChC,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;aAChG,CAAC,CAAC;IACX,CAAC;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,UAAqC;IAC3D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YAChB,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,sCAAsC,CAAC;YAChF,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK;SAC/B,CAAC;QACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KAChE,CAAC,CAAC;AACP,CAAC;AACD,qDAAqD;AACrD,SAAgB,mBAAmB,CAAO,KAAqC;IAC3E,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,eAAe,EAAE,uCAAuC,CAAC,CAAC;IACvG,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3E,MAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACzE,MAAM,KAAK,GAA6B,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;QAC/D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,EAAW,EAAE,CAAC;QACvF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;YAC5B,SAAS,EAAE,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,uCAAuC,CAAC;SAC3G,CAAC,CAAC;IACP,MAAM,QAAQ,GAAG,UAAU,CAAC;QACxB,OAAO,EAAE,CAAC;QACV,QAAQ;QACR,eAAe;QACf,QAAQ;QACR,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;QAC9B,UAAU,EAAE;YACR,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YACzD,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE;YAChE,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;SACjD;QACD,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE;YAChD,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,YAAY,EAAE,YAAY,CAAC,YAAY;SAC1C;QACD,2EAA2E;QAC3E,kEAAkE;QAClE,KAAK,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE;QACpF,WAAW,EAAE,mBAAmB;QAChC,qBAAqB;KACxB,CAAC,CAAC;IACH,MAAM,IAAI,GAAwB;QAC9B,CAAC,qBAAqB,CAAC,EAAE,IAAI;QAC7B,QAAQ;QACR,eAAe;QACf,QAAQ;QACR,MAAM;QACN,UAAU;QACV,YAAY;QACZ,KAAK;QACL,QAAQ;KACX,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,QAAQ;QACR,YAAY;QACZ,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9E,uBAAuB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC;KAC5E,CAAC,CAAC;IACpC,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AACD,wDAAwD;AACxD,SAAgB,wBAAwB,CAAC,IAAyB;IAC9D,OAAO,eAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,0BAA0B,CAAC,YAAyC;IACzE,IAAI,YAAY,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS;QAC5C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/D,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAoB,EAAE,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,aAAsB;gBAC5B,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,4CAA4C,CAAC;aAClG,CAAC;QACN,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,KAAK,WAAW;YACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAoB,EAAE,CAAC;YAC/C,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS;gBAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,SAAkB;oBACxB,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,YAAY;iBACvD,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,mBAA4B;oBAClC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,mDAAmD,CAAC;iBAChH,CAAC;KACb,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,MAA4B;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,OAAO;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;YAC1E,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;KACtE,CAAC;AACN,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IACrD,CAAC;AACL,CAAC;AACD,SAAS,cAAc,CAAC,KAAyC,EAAE,OAA0B,EAAE,IAAY;IACvG,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,mBAAmB,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC;AACD,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,uDAAuD;AACvD,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AACD;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,WAA8B;IAG5D,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;AAC7E,CAAC;AACD,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAY;IAC1C,IAAI,KAAK,YAAY,GAAG;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AACD,SAAS,eAAe,CAAC,QAAyB,EAAE,aAAqB;IACrE,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK;QAC1B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAA,mBAAO,EAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAY;IAC1C,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAY;IAClD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,UAAU,CAAC;IACtB,IAAI,KAAK,KAAK,UAAU;QACpB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;IACxE,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,SAAS,CAAC;IACrB,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAA,sBAAU,EAAC,UAAU,CAAC,IAAI,IAAA,mBAAO,EAAC,UAAU,CAAC,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gDAAgD,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,KAAK,MAAM;QACf,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;IACvE,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACjC,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,gBAAgB;YAC3B,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC;SAC5F,CAAC,CAAC;IACP,CAAC;IACD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QACnC,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,UAAU,CAAC;SAC5D,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,2DAA2D,CAAC,CAAC;AAC5F,CAAC;AACD,SAAS,yBAAyB,CAAC,KAAc,EAAE,aAAsB,EAAE,gBAAyB,EAAE,IAAY;IAK9G,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,aAAa,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gDAAgD,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IACnG,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,UAAU;KACb,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAY;IACpD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,SAAS,CAAC;IACrB,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,SAAS,CAAC;IACrB,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,+CAA+C,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,IAAI,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9G,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;IACtE,MAAM,OAAO,GAGT,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QAC7C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,OAAO;QACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,SAAS;QACT,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACtD,CAAC,CAAC;AACP,CAAC;AACD,SAAS,wBAAwB,CAAC,MAAiD,EAAE,KAAc,EAAE,IAAY;IAC7G,OAAO,eAAe,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAC9D,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QACnD,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,sBAAsB,CAAC,KAAc,EAAE,IAAY;IACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAA,8BAAkB,EAAC;YACrB,IAAI,EAAE,2CAA2C;YACjD,IAAI;YACJ,OAAO,EAAE,yGAAyG;SACrH,CAAC,CAAC;IACP,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;QAC5B,SAAS,CAAC,WAAW,KAAK,SAAS;QACnC,SAAS,CAAC,SAAS,KAAK,SAAS;QACjC,SAAS,CAAC,eAAe,KAAK,SAAS;QACvC,SAAS,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,IAAA,8BAAkB,EAAC;YACrB,IAAI,EAAE,2CAA2C;YACjD,IAAI;YACJ,OAAO,EAAE,+GAA+G;SAC3H,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,SAAS;QACZ,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,cAAc,EAAE,IAAI;KACvB,CAAC,CAAC;AACP,CAAC;AACD,SAAS,yBAAyB,CAAC,OAA2B,EAAE,UAA2C,EAAE,KAAc,EAAE,IAAY;IACrI,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACrD,MAAM,IAAA,8BAAkB,EAAC;YACrB,IAAI,EAAE,iCAAiC;YACvC,IAAI,EAAE,GAAG,IAAI,aAAa;YAC1B,OAAO,EAAE,kEAAkE;SAC9E,CAAC,CAAC;IACP,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACvE,MAAM,IAAA,8BAAkB,EAAC;YACrB,IAAI,EAAE,iCAAiC;YACvC,IAAI,EAAE,GAAG,IAAI,kBAAkB;YAC/B,OAAO,EAAE,yDAAyD;SACrE,CAAC,CAAC;IACP,CAAC;IACD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACvB,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAA,8BAAkB,EAAC;gBACrB,IAAI,EAAE,iCAAiC;gBACvC,IAAI,EAAE,GAAG,IAAI,kBAAkB;gBAC/B,OAAO,EAAE,+EAA+E;aAC3F,CAAC,CAAC;QACP,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAA,8BAAkB,EAAC;gBACrB,IAAI,EAAE,2CAA2C;gBACjD,IAAI;gBACJ,OAAO,EAAE,gEAAgE;aAC5E,CAAC,CAAC;QACP,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACnF,CAAC;AACD,SAAS,iBAAiB,CAAC,SAAuD;IAC9E,OAAO,SAAS,KAAK,SAAS;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC;YACE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;SACpE,CAAC;AACV,CAAC;AACD,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAAY;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,sBAAsB,CAAC,KAAc,EAAE,IAAY;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sCAAsC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAChH,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAyD,EAAE,CAAC;IACvE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,IAAA,sBAAU,EAAC,SAAS,CAAC,IAAI,IAAA,mBAAO,EAAC,SAAS,CAAC,KAAK,SAAS,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBAClF,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,4DAA4D,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;gBAClC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,8DAA8D,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,UAAU,SAAS,EAAE,CAAC,CAAC;YAClD,cAAc,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,GAAG,IAAI,UAAU,SAAS,EAAE,CAAC,CAAC;YACvG,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,UAAU,SAAS,YAAY,CAAC,CAAC;YAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBACxB,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC7G,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,UAAU,SAAS,+CAA+C,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC1E,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,UAAU,SAAS,+BAA+B,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,UAAU,SAAS,MAAM,CAAC,CAAC;YACtH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,UAAU,SAAS,MAAM,CAAC,CAAC;YACtH,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,SAAS;gBACT,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzD,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;gBACrC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,mBAAmB,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,IAAI,kBAAkB,CAAC,EAAE,CAAC;QACjG,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;KAC9E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,UAA2C,EAAE,SAA2C,EAAE,MAAsC;IAC3J,OAAO;QACH,GAAG,CAAC,MAAM,KAAK,SAAS;YACpB,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,CAAC,CAAC;gBACE,YAAY,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAClC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACpB,CAAC,CAAC;wBACE,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,kBAAkB,EAAE,IAAA,2CAAsB,GAAE;qBAC/C;aACR,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAsB,EAAE,CAAC;KACxF,CAAC;AACN,CAAC;AACD,SAAS,yBAAyB,CAAC,SAA2C;IAC1E,OAAO,SAAS,CAAC,cAAc,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC;AAC9E,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,EAAE;YACV,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;QAClE,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,mBAAmB,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAAY;IAIrD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAGP,EAAE,CAAC;IACR,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,EAAE;YACV,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;QAClE,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QACtC,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG;YACf,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,QAAQ,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAC5B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC;SACjF,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AACD,SAAS,aAAa,CAAC,IAAY;IAC/B,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;QAC1D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAa;IACnC,MAAM,UAAU,GAAG,IAAA,mCAAsB,EAAC,KAAK,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAC5F,OAAO,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,iCAAiC,EAAE,QAAQ,EAAE,8CAA8C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,oFAAoF,CAAC,CAAC,CAAC,CAAC;IAC3P,CAAC;IACD,MAAM,QAAQ,GAA0B,EAAE,KAAK,OAAO;QAClD,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;QACxE,CAAC,CAAC,EAAE,KAAK,QAAQ;YACb,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE;YAC7D,CAAC,CAAC,EAAE,KAAK,SAAS;gBACd,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE;gBAC/D,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACrF,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,qCAAqC,EAAE,QAAQ,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC;IACtO,CAAC;IACD,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AAC1G,CAAC;AACD,sEAAsE;AACtE,SAAS,qBAAqB,CAAC,MAA4B;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7E,OAAO,IAAA,mCAAsB,EAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AACD,SAAS,qBAAqB,CAAC,IAAY,EAAE,QAAgB,EAAE,OAAe,EAAE,OAA0B;IACtG,OAAO,IAAI,4BAA4B,CAAC;QACpC,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;KACvC,CAAC,CAAC;AACP,CAAC;AAGD,SAAS,WAAW,CAAC,KAAwB,EAAE,SAAgC;IAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,cAAc;QAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACvG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAA2B,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1I,MAAM,KAAK,GAAG;QACV,OAAO,CAAC,OAAuB;YAC3B,MAAM,WAAW,GAAG,IAAA,yCAA2B,EAAC,OAAO,CAAC,CAAC;YACzD,OAAO,WAAW,CAAC,IAAI,KAAK,cAAc;gBACtC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,SAAS,CAAC;gBACzH,CAAC,CAAC,WAAW,CAAC;oBACV,IAAI,EAAE,kBAAkB;oBACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC;oBAC1C,UAAU;oBACV,aAAa;iBAChB,EAAE,SAAS,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,IAAiB;YACnB,IAAI,OAAO,IAAI,KAAK,UAAU;gBAC1B,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACjE,OAAO,WAAW,CAAC,IAAI,KAAK,cAAc;gBACtC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,oBAAoB,CAAC;gBACzI,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACtL,CAAC;QACD,QAAQ,CAAC,IAAiB;YACtB,IAAI,OAAO,IAAI,KAAK,UAAU;gBAC1B,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;YACpE,OAAO,WAAW,CAAC,IAAI,KAAK,cAAc;gBACtC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC;gBAC5I,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACzL,CAAC;KAC4D,CAAC;IAClE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5E,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AACD,SAAgB,YAAY;IACxB,OAAO,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;AAClH,CAAC;AACD,+DAA+D;AAC/D,SAAgB,qBAAqB,CAAC,UAAqC;IACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,QAAQ;QACR,IAAI;QACJ,QAAQ,EAAE,UAAU,CAAC;YACjB,OAAO,EAAE,CAAC;YACV,QAAQ;YACR,IAAI;YACJ,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACvD,qBAAqB,EAAE,IAAA,sBAAQ,EAAC,UAAU,CAAC,0BAA0B,CAAC;SACzE,CAAC;QACF,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;KAChD,CAAC,CAAC;IACH,yBAAyB,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5D,sCAAsC,CAAC,GAAG,CAAC,WAAW,EAAE,wBAAwB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjH,OAAO,WAAW,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;AAC7I,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAe,EAAE,sBAA8B;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,sBAAsB;QACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACpE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC/C,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAe;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,sBAAsB,EAAE,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KAClD,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjF,MAAM,EAAE,mBAAmB;KAC9B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,KAA2C;IAClE,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAA,4BAAc,EAAC,KAAK,CAAC,CAAC;IACtC,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAW,EAAE,CAAC;QAClE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO;YACP,SAAS,EAAE,6BAA6B,CAAC,SAAS,EAAE,qCAAqC,CAAC;SAC7F,CAAC,CAAC;AACX,CAAC;AACD,mEAAmE;AACnE,SAAS,6BAA6B,CAAC,SAA8B,EAAE,IAAY;IAI/E,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,KAAK,KAAK,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,2DAA2D,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AACD,SAAS,iBAAiB,CAAC,KAAe,EAAE,IAAyB;IAIjE,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5B,CAAC;AA2ED,SAAS,mBAAmB;IACxB,OAAO,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1E,CAAC;AACD,MAAM,kBAAkB,GAAG,GAAiE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7H,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,yBAAyB;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KACrD,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/I,uBAAuB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;CAC/H,CAAC,CAAC;AAC9D,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,qBAAqB;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KACrD,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5I,uBAAuB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;CAC/H,CAAC,CAAC;AAC3D,kFAAkF;AAClF,MAAM,iCAAiC,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,GAAG,wBAAwB;IAC3B,EAAE,EAAE,+BAA+B;IACnC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,GAAG,wBAAwB,CAAC,YAAY;QACxC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KACpD,CAAC;CACmD,CAAC,CAAC;AAC3D,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,uBAAuB;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KACrD,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7I,uBAAuB,EAAE,kBAAkB;CACW,CAAC,CAAC;AAC5D,MAAM,kCAAkC,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,GAAG,yBAAyB;IAC5B,EAAE,EAAE,iCAAiC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,GAAG,yBAAyB,CAAC,YAAY;QACzC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KACpD,CAAC;CACoD,CAAC,CAAC;AAC5D,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,uBAAuB;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,kGAAkG;SAC7G,CAAC;KACL,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrI,uBAAuB,EAAE,kBAAkB;CACG,CAAC,CAAC;AACpD,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,0BAA0B;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,8GAA8G;SACzH,CAAC;KACL,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxI,uBAAuB,EAAE,kBAAkB;CACM,CAAC,CAAC;AACvD,SAAS,oBAAoB,CAAC,IAAY,EAAE,MAA8C;IACtF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,EAAE,EAAE,mBAAmB,IAAI,EAAE;QAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;YAC9F,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACrD,CAAC;QACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAChJ,uBAAuB,EAAE,kBAAkB;KACM,CAAC,CAAC;AAC3D,CAAC;AACD,SAAS,wBAAwB,CAAC,WAAoD;IAClF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,EAAE,EAAE,aAAa;QACjB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;YAC1F,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACrD,CAAC;QACF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACzJ,uBAAuB,EAAE,kBAAkB;KACU,CAAC,CAAC;AAC/D,CAAC;AACD,iEAAiE;AACjE,SAAgB,6BAA6B,CAAC,QAAuC;IACjF,MAAM,YAAY,GAAG,GAAsE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IAC7J,MAAM,sBAAsB,GAAG,CAAC,OAA2B,EAAE,UAA2C,EAAE,SAA2C,EAGpH,EAAE,CAAC,OAAO,KAAK,SAAS;QACrD,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,UAAU,CAAC;YAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,uBAAuB,CAAC,8BAA8B,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAC7G,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,2CAA2C,EAAE,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,sCAAsC,OAAO,GAAG,CAAC,CAAC;SAC7M,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,KAAK,qBAAqB,CAAC;YAClF,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAO,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,2CAA2C,EAAE,QAAQ,EAAE,UAAU,KAAK,KAAK;oBAChH,CAAC,CAAC,0BAA0B,OAAO,mCAAmC;oBACtE,CAAC,CAAC,0BAA0B,OAAO,iDAAiD,EAAE,CAAC,sCAAsC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YACnJ,CAAC;YACD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI;gBACrC,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW;gBACnD,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI;gBAC1C,CAAC,SAAS,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBACjE,OAAO,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,2CAA2C,EAAE,QAAQ,EAAE,kBAAkB,OAAO,oEAAoE,EAAE,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC;YAC5P,CAAC;YACD,OAAO,eAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;IACP,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,oBAAoB,CAAC,OAAoC;YACrD,YAAY,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;YACtD,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAC5J,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC/F,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;YAChG,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;YACzE,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,+CAA+C,CAAC,CAAC;YACnH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACxE,MAAM,IAAI,GAAyB,OAAO,CAAC,IAAI,KAAK,SAAS;gBACzD,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,mCAAmC,CAAC,EAAE,CAAC;YACvG,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;YAC1E,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,4CAA4C,CAAC,CAAC;YAC/G,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC3C,IAAI,GAAG,IAAI,GAAG;oBACV,MAAM,IAAI,SAAS,CAAC,0DAA0D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,MAAM,kBAAkB,GAAyC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAGvI,EAAE,CAAC;gBACD,IAAI;gBACJ,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE;aAC7E,CAAC,CAAC,CAAC;YACJ,MAAM,UAAU,GAAG;gBACf,GAAG,GAAG;gBACN,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7G,CAAC;YACF,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,yCAAyC,CAAC,CAAC;YAChG,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;YACrG,MAAM,QAAQ,GAAc;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,gBAAgB;gBAChB,KAAK;gBACL,IAAI;gBACJ,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE;gBACf,aAAa,EAAE,kBAAkB;gBACjC,QAAQ,EAAE,eAAe;gBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;aAC3C,CAAC;YACF,OAAO,qBAAqB,CAAC;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,SAAS;gBACf,mBAAmB,EAAE;oBACjB,gBAAgB;oBAChB,KAAK;oBACL,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,EAAE;oBAChF,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;oBAChC,aAAa,EAAE,kBAAkB;oBACjC,QAAQ,EAAE,eAAe;oBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;iBAC3C;gBACD,0BAA0B,EAAE,QAAQ;gBACpC,kBAAkB,EAAE,WAAW,KAAK,SAAS;oBACzC,CAAC,CAAC,qBAAqB,EAAE;oBACzB,CAAC,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACvK,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBACrD,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACxF,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC;wBAClC,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC;wBAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,mCAAmC,EAAE,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,2FAA2F,CAAC,CAAC;qBAChP,CAAC,CAAC;oBACH,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,IAAA,iCAAoB,EAAC;wBAC3C,IAAI,EAAE,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK;wBACjF,WAAW,EAAE,gBAAgB;wBAC7B,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC;wBACvC,GAAG,EAAE,UAAU;qBAClB,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,mCAAmC,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,2FAA2F,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxN,MAAM,YAAY,GAAG,IAAA,sCAAyB,EAAC,UAAU,CAAC,CAAC;oBAC3D,MAAM,aAAa,GAAc;wBAC7B,IAAI,EAAE,WAAW;wBACjB,gBAAgB;wBAChB,KAAK;wBACL,IAAI;wBACJ,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE;wBACf,aAAa,EAAE,kBAAkB;wBACjC,QAAQ,EAAE,eAAe;wBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;wBACxC,gBAAgB,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;wBAClD,yBAAyB,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;qBACpD,CAAC;oBACF,OAAO,mBAAmB,CAAC;wBACvB,QAAQ,EAAE,QAAQ;wBAClB,eAAe,EAAE,0CAA6B;wBAC9C,QAAQ,EAAE,SAAS;wBACnB,MAAM;wBACN,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC;wBAC1C,MAAM,EAAE,2BAA2B;wBACnC,KAAK,EAAE,iBAAiB,CAAC;4BACrB,QAAQ,EAAE,SAAS;4BACnB,oBAAoB,EAAE,0CAA6B;4BACnD,YAAY,EAAE,UAAU,CAAC,YAAY;4BACrC,SAAS,EAAE,UAAU,CAAC,SAAS;4BAC/B,gBAAgB,EAAE,UAAU,CAAC,SAAS;4BACtC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;4BAC7C,cAAc,EAAE,UAAU,CAAC,cAAc;4BACzC,UAAU,EAAE,aAAa;yBAC5B,CAAC;wBACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;4BACvB,IAAI,EAAE,WAAW;4BACjB,gBAAgB;4BAChB,KAAK;4BACL,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;4BAChC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;4BACrC,UAAU;4BACV,QAAQ,EAAE,eAAe;4BACzB,WAAW;yBACd,CAAC;wBACF,mBAAmB,EAAE;4BACjB,gBAAgB;4BAChB,KAAK;4BACL,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,EAAE;4BAChF,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;4BAChC,aAAa,EAAE,kBAAkB;4BACjC,QAAQ,EAAE,eAAe;4BACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;4BACxC,GAAI,YAA0C;yBACjD;wBACD,0BAA0B,EAAE;4BACxB,aAAa;4BACb,YAAY;yBACf;wBACD,cAAc,EAAE,UAAU,CAAC,sBAAsB;qBACpD,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN,CAAC,CAAC;QACP,CAAC;QACD,qBAAqB,CAAC,OAAgC;YAClD,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;YAC/C,cAAc,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,uBAAuB,CAAC,CAAC;YAC3M,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;YAClF,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS;gBAC/C,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;YAC9E,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,wCAAwC,CAAC,CAAC;YAC5F,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAC;YAChJ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;YACrD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC5C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAyB,OAAO,CAAC,IAAI,KAAK,SAAS;gBACzD,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC;YAChG,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;YACvH,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;YACzG,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;YAC9F,MAAM,QAAQ,GAAc;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,YAAY;gBAClB,OAAO;gBACP,UAAU;gBACV,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE;gBAC3B,IAAI;gBACJ,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;gBACvD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;gBAC7D,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gBACvC,QAAQ,EAAE,eAAe;gBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;aAC3C,CAAC;YACF,OAAO,qBAAqB,CAAC;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,YAAY;gBAClB,mBAAmB,EAAE;oBACjB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;oBAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,EAAE;oBAChF,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;oBACvD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;oBAC7D,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;oBACvC,QAAQ,EAAE,eAAe;oBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;iBAC3C;gBACD,0BAA0B,EAAE,QAAQ;gBACpC,kBAAkB,EAAE,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;oBAChF,CAAC,CAAC,qBAAqB,EAAE;oBACzB,CAAC,CAAC,iBAAiB,CAAC;wBAChB,cAAc,CAAC,KAAK;wBACpB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;wBACnC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;qBAC1F,EAAE,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAChF,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE;gBACrD,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACpJ,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC;wBACrC,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC;wBAClD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,oCAAoC,EAAE,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,uFAAuF,CAAC,CAAC;qBAC7O,CAAC,CAAC;oBACH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAA,uDAA8B,EAAC;wBAChD,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,cAAc,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK;wBAC7F,UAAU;wBACV,SAAS;wBACT,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;wBAC7D,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC;wBACvC,KAAK,EAAE,oBAAoB;qBAC9B,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,oCAAoC,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,uFAAuF,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrN,MAAM,eAAe,GAAc;wBAC/B,OAAO,EAAE,cAAc;wBACvB,UAAU;wBACV,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE;wBAC3B,IAAI;wBACJ,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;wBACvD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;wBAC7D,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;wBACvC,eAAe,EAAE,KAAK,CAAC,QAAQ;wBAC/B,QAAQ,EAAE,eAAe;wBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;qBAC3C,CAAC;oBACF,OAAO,mBAAmB,CAAC;wBACvB,QAAQ,EAAE,QAAQ;wBAClB,eAAe,EAAE,oCAAoC;wBACrD,QAAQ,EAAE,iBAAiB;wBAC3B,MAAM;wBACN,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC;wBAC1C,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC;4BACxC,CAAC,CAAC,iCAAiC;4BACnC,CAAC,CAAC,wBAAwB;wBAC9B,KAAK,EAAE,iBAAiB,CAAC;4BACrB,QAAQ,EAAE,iBAAiB;4BAC3B,oBAAoB,EAAE,yDAAgC;4BACtD,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;4BAC3B,UAAU,EAAE;gCACR,QAAQ,EAAE,QAAQ;gCAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oCACpC,mBAAmB,EAAE;wCACjB,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa;wCACnD,sBAAsB,EAAE,cAAc,CAAC,OAAO,CAAC,sBAAsB;qCACxE;iCACJ,CAAC;gCACF,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;gCAC7D,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;gCACvD,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gCACvC,QAAQ,EAAE,eAAe;gCACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;6BAC3C;yBACJ,CAAC;wBACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;4BACvB,OAAO,EAAE,cAAc;4BACvB,UAAU;4BACV,SAAS;4BACT,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;4BAC7C,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;4BAC3D,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;4BAC7D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;4BACjD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;4BAChC,UAAU;4BACV,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;4BACzD,SAAS;4BACT,KAAK;4BACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC;4BACvC,QAAQ,EAAE,eAAe;4BACzB,WAAW;yBACd,CAAC;wBACF,mBAAmB,EAAE;4BACjB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;4BAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,EAAE;4BAChF,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;4BACvD,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACpC,aAAa,EAAE;oCACX,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa;oCACnD,sBAAsB,EAAE,cAAc,CAAC,OAAO,CAAC,sBAAsB;iCACxE;6BACJ,CAAC;4BACF,QAAQ,EAAE,eAAe;4BACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;yBAC3C;wBACD,0BAA0B,EAAE;4BACxB,eAAe;4BACf,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;4BACvD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;4BAC7D,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;4BACvC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACpC,mBAAmB,EAAE;oCACjB,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa;oCACnD,sBAAsB,EAAE,cAAc,CAAC,OAAO,CAAC,sBAAsB;iCACxE;6BACJ,CAAC;4BACF,QAAQ,EAAE,eAAe;yBAC5B;wBACD,cAAc,EAAE,KAAK,CAAC,sBAAsB;qBAC/C,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN,CAAC,CAAC;QACP,CAAC;QACD,sBAAsB,CAAC,OAAiC;YACpD,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;YAC/C,cAAc,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,uBAAuB,CAAC,CAAC;YACpK,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;YAClF,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAC;YAChJ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;YACrD,MAAM,IAAI,GAAyB,OAAO,CAAC,IAAI,KAAK,SAAS;gBACzD,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC;YAChG,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;YACvH,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;YACzG,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;YAC9F,MAAM,QAAQ,GAAc;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK;gBACL,IAAI;gBACJ,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;gBACvD,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gBACvC,QAAQ,EAAE,eAAe;gBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;aAC3C,CAAC;YACF,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAA6B,CAAC,CAAC,CAAC,YAAqB,EAAE,CAAC;YACnH,OAAO,qBAAqB,CAAC;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,OAAO;gBACb,mBAAmB,EAAE;oBACjB,MAAM,EAAE,kBAAkB;oBAC1B,IAAI,EAAE,aAAa;oBACnB,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;oBACvD,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;oBACvC,QAAQ,EAAE,eAAe;oBACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;iBAC3C;gBACD,0BAA0B,EAAE,QAAQ;gBACpC,kBAAkB,EAAE,4BAA4B,CAAC,KAAK,CAAC;gBACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,IAAI,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE;oBAC1G,OAAO,mBAAmB,CAAC;wBACvB,QAAQ,EAAE,QAAQ;wBAClB,eAAe,EAAE,8BAA8B;wBAC/C,QAAQ,EAAE,UAAU;wBACpB,MAAM;wBACN,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC;wBAC1C,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC;4BACxC,CAAC,CAAC,kCAAkC;4BACpC,CAAC,CAAC,yBAAyB;wBAC/B,KAAK,EAAE,iBAAiB,CAAC;4BACrB,QAAQ,EAAE,UAAU;4BACpB,oBAAoB,EAAE,8BAA8B;4BACpD,SAAS,EAAE,EAAE;4BACb,UAAU,EAAE;gCACR,KAAK;gCACL,IAAI;gCACJ,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oCACpC,mBAAmB,EAAE;wCACjB,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa;wCACnD,sBAAsB,EAAE,cAAc,CAAC,OAAO,CAAC,sBAAsB;qCACxE;iCACJ,CAAC;gCACF,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;gCACvD,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gCACvC,QAAQ,EAAE,eAAe;gCACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;6BAC3C;yBACJ,CAAC;wBACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;4BACvB,KAAK;4BACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;4BAC7C,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;4BAC3D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;4BACjD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;4BAChC,UAAU;4BACV,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;4BACzD,SAAS;4BACT,QAAQ,EAAE,eAAe;4BACzB,WAAW;yBACd,CAAC;wBACF,mBAAmB,EAAE;4BACjB,MAAM,EAAE,kBAAkB;4BAC1B,IAAI,EAAE,aAAa;4BACnB,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;4BACvD,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;4BACvC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACpC,mBAAmB,EAAE;oCACjB,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa;oCACnD,sBAAsB,EAAE,cAAc,CAAC,OAAO,CAAC,sBAAsB;iCACxE;6BACJ,CAAC;4BACF,QAAQ,EAAE,eAAe;4BACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;yBAC3C;wBACD,0BAA0B,EAAE;4BACxB,KAAK;4BACL,IAAI;4BACJ,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;4BACvD,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;4BACvC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACpC,mBAAmB,EAAE;oCACjB,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa;oCACnD,sBAAsB,EAAE,cAAc,CAAC,OAAO,CAAC,sBAAsB;iCACxE;6BACJ,CAAC;4BACF,QAAQ,EAAE,eAAe;4BACzB,GAAG,wBAAwB,CAAC,WAAW,CAAC;yBAC3C;wBACD,cAAc,EAAE,IAAA,gCAAkB,EAAC,KAAK,CAAC;4BACrC,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,IAAA,iDAAmC,EAAC,0BAA0B,EAAE,gDAAgD,CAAC;qBAC1H,CAAC,CAAC;gBACP,CAAC,CAAC;aACL,CAAC,CAAC;QACP,CAAC;QACD,UAAU,CAAC,OAA0B;YACjC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC5C,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAC;YACjG,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;YACjF,MAAM,IAAI,GAAyB,OAAO,CAAC,IAAI,KAAK,SAAS;gBACzD,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC;YAC7F,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAA6B,CAAC,CAAC,CAAC,YAAqB,EAAE,CAAC;YACnH,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;YACtF,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;YACvJ,OAAO,qBAAqB,CAAC;gBACzB,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,UAAU;gBAChB,mBAAmB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;gBACjH,0BAA0B,EAAE,QAAQ;gBACpC,kBAAkB,EAAE,uBAAuB,CAAC,wCAAwC,EAAE,sFAAsF,CAAC;gBAC7K,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,IAAI,EAAE,GAAG,EAAE;oBACP,OAAO,eAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACtC,QAAQ,EAAE,KAAK;wBACf,eAAe,EAAE,gBAAgB;wBACjC,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,mBAAmB,EAAE;wBAC7B,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;wBACvC,MAAM,EAAE,iBAAiB;wBACzB,KAAK,EAAE,iBAAiB,CAAC;4BACrB,QAAQ,EAAE,UAAU;4BACpB,oBAAoB,EAAE,gBAAgB;4BACtC,SAAS,EAAE,EAAE;4BACb,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;yBACtG,CAAC;wBACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;wBAClH,mBAAmB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;wBACjH,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;qBACtH,CAAC,CAAC,CAAC;gBACR,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;QACD,aAAa,CAAC,OAA6B;YACvC,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;YAC/C,cAAc,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,uBAAuB,CAAC,CAAC;YAC9F,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;YAC1F,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;YAC9F,MAAM,QAAQ,GAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;YACtJ,OAAO,qBAAqB,CAAC;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,UAAU;gBAChB,mBAAmB,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;gBAC5F,0BAA0B,EAAE,QAAQ;gBACpC,kBAAkB,EAAE,uBAAuB,CAAC,2CAA2C,EAAE,yFAAyF,CAAC;gBACnL,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,IAAI,EAAE,GAAG,EAAE;oBACP,OAAO,eAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACtC,QAAQ,EAAE,QAAQ;wBAClB,eAAe,EAAE,mBAAmB;wBACpC,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,mBAAmB,EAAE;wBAC7B,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACzC,MAAM,EAAE,oBAAoB;wBAC5B,KAAK,EAAE,iBAAiB,CAAC;4BACrB,QAAQ,EAAE,UAAU;4BACpB,oBAAoB,EAAE,mBAAmB;4BACzC,SAAS,EAAE,EAAE;4BACb,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;yBAClG,CAAC;wBACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;wBAClF,mBAAmB,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;wBAC5F,0BAA0B,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE;qBAClH,CAAC,CAAC,CAAC;gBACR,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AACD,MAAM,cAAc,GAAG,6BAA6B,CAAC;IACjD,mBAAmB,EAAE,eAAM,CAAC,UAAU,CAAC;QACnC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,sCAAyB,GAAE;QACtC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,qCAAqC,EAAE,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,yEAAyE,CAAC,CAAC;KAChO,CAAC;CACL,CAAC,CAAC;AACU,QAAA,oBAAoB,GAAG,cAAc,CAAC,oBAAoB,CAAC;AACxE,MAAM,qBAAqB,GAAG,cAAc,CAAC,qBAAqB,CAAC;AACnE,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAC;AACxD,QAAA,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AACvC,QAAA,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;AAC1D;;;GAGG;AACH,SAAgB,aAAa,CAAC,OAA6B;IACvD,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC/C,cAAc,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC5I,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,YAAY,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,oCAAoC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,kBAAkB;YAChF,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC;YAC9E,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACxB,OAAO,sBAAsB,CAAC;YAC1B,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,oCAAoC,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YACzD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC/E,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACrF,CAAC,CAAC;IACP,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAC3G,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,oCAAoC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,kBAAkB;YAChF,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC;YAC9E,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACxB,OAAO,qBAAqB,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1E,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YACzD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC/E,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACrF,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAA,8BAAkB,EAAC;QACrB,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,6BAA6B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB;KACrF,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,qBAAqB,CAAC,OAAqC;IACvE,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC/C,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC9H,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;QACpC,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI;QACzC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAc;QACxB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,iBAAiB;QACvB,cAAc,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACxF,UAAU,EAAE;YACR,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YACzD,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE;YAChE,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;SACjD;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QAClC,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;QAClC,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;KACjC,CAAC;IACF,OAAO,qBAAqB,CAAC;QACzB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,iBAAiB;QACvB,mBAAmB,EAAE,EAAE;QACvB,0BAA0B,EAAE,QAAQ;QACpC,kBAAkB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACJ,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,sFAAsF;aAClG;SACJ;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1B,IAAI,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAC3C,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,mBAAmB;YACpC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAChE,UAAU;YACV,MAAM;YACN,KAAK,EAAE,iBAAiB,CAAC;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,oBAAoB,EAAE,mBAAmB;gBACzC,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,QAAQ;aACvB,CAAC;YACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;YACpC,mBAAmB,EAAE,EAAE;YACvB,0BAA0B,EAAE,QAAQ;YACpC,cAAc,EAAE,IAAA,iDAAmC,EAAC,gCAAgC,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wGAAwG,CAAC;SACzO,CAAC,CAAC;KACN,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,iBAAiB,CAAC,OAAiC;IAC/D,YAAY,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAChH,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;QACzB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QACpC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CAAC,qGAAqG,CAAC,CAAC;IAC/H,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAA,oCAAsB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,mBAAmB,GAAc;QACnC,QAAQ,EAAE,aAAa;QACvB,IAAI,EAAE,aAAa;QACnB,QAAQ;QACR,cAAc,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACxF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;QACjC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;KACrC,CAAC;IACF,OAAO,qBAAqB,CAAC;QACzB,QAAQ,EAAE,aAAa;QACvB,IAAI,EAAE,aAAa;QACnB,mBAAmB,EAAE,EAAE;QACvB,0BAA0B,EAAE,mBAAmB;QAC/C,kBAAkB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACJ,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,gFAAgF;aAC5F;SACJ;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1B,IAAI,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAC3C,QAAQ,EAAE,aAAa;YACvB,eAAe,EAAE,eAAe;YAChC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAChE,UAAU,EAAE,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;YAC9C,MAAM;YACN,KAAK,EAAE,iBAAiB,CAAC;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,oBAAoB,EAAE,eAAe;gBACrC,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,mBAAmB;aAClC,CAAC;YACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAClD,mBAAmB,EAAE,EAAE;YACvB,0BAA0B,EAAE,mBAAmB;SAClD,CAAC,CAAC;KACN,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,uBAAuB,CAAC,QAAoC;IACxE,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC7B,CAAC;AACD,qGAAqG;AACrG,SAAgB,iCAAiC,CAAC,QAAoC;IAClF,OAAO,sCAAsC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;QACzE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE,yEAAyE;SACrF,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,oDAAoD;AACpD,SAAgB,mBAAmB,CAAC,QAAoC,EAAE,KAAmC;IACzG,IAAI,CAAC,IAAA,sBAAU,EAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,iCAAiC,EAAE,QAAQ,CAAC,QAAQ,EAAE,yDAAyD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC;IACvP,CAAC;IACD,MAAM,OAAO,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO,OAAO,KAAK,SAAS;QACxB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,wBAAwB,EAAE,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACpO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AACD,SAAgB,cAAc,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3C,OAAO,KAAK,CAAC;IACjB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,MAAM,SAAS,GAAG,KAAuD,CAAC;IAC1E,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,kBAAkB,CAAC;QAC5D,KAAK,EAAE,IAAI,KAAK,IAAI;QACpB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;AACjD,CAAC;AAKD,SAAgB,mBAAmB,CAAC,KAAmB;IACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACtB,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,SAAS;QACnB,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["// SandboxLayer 作者声明面:不可变 prepare 链,以及由具体 factory 私下绑定的 Provider planner。\n// Link 只消费 template 的纯数据 identity;planner callback 保存在 WeakMap 中,不进入声明或指纹。\nimport { isAbsolute, resolve } from \"node:path\";\nimport { Data, Effect, Option, type Scope } from \"effect\";\nimport type { JsonValue } from \"../shared/types.ts\";\nimport type { ScopedFeedback } from \"../shared/types.ts\";\nimport type { MaterializedSandboxCase, SandboxMaterializeContext, SandboxResourceGroup, ServiceController, } from \"./case-types.ts\";\nimport type { Sandbox, SandboxHook, SandboxRuntime } from \"./types.ts\";\nimport type { SandboxCommand, SandboxCommandDeclaration } from \"./commands.ts\";\nimport { sandboxCommandDeclarationOf } from \"./commands.ts\";\nimport { collectComposeBuilds, COMPOSE_MATERIALIZER_REVISION, composeCollectionIdentity, detectDockerBuildPlatform, normalizeBuildPlatform, type ComposeBuildCollection, } from \"./compose.ts\";\nimport { assertPureDataIdentity, computeCaseKey, digestOf, looksLikeDigestRef, unresolvedProviderFingerprintMarker, type CaseKey, } from \"./identity.ts\";\nimport { DOCKERFILE_MATERIALIZER_REVISION, resolveDockerfileBuildIdentity, type DockerfileBuildIdentity, } from \"./dockerfile-identity.ts\";\nimport type { BuildKey, SandboxCaseKind } from \"./identity.ts\";\nimport type { SandboxRuntimeBuildPreparation, SandboxRuntimeMaterializationError, SandboxRuntimeMaterializeContext, } from \"./runtime.ts\";\nimport { dockerProfileError } from \"./docker-profile/errors.ts\";\nimport type { DockerProfileRuntimeBinding } from \"./docker-profile/runtime.ts\";\nimport { dindSupervisorRevision } from \"./dind-supervisor.ts\";\nexport type SandboxLayerKind = \"template-bearing\" | \"command-only\";\nexport type SandboxLayerLifecycle = \"prepare-only\" | \"instance-lifecycle\";\nconst SANDBOX_LAYER: unique symbol = Symbol(\"niceeval.sandbox.layer\");\nconst SANDBOX_LAYER_LIFECYCLE: unique symbol = Symbol(\"niceeval.sandbox.layer.lifecycle\");\nconst SANDBOX_LAYERS = new WeakSet<object>();\nconst SANDBOX_LAYER_STATES = new WeakMap<object, SandboxLayerState>();\nconst SANDBOX_TEMPLATE_PLANNERS = new WeakMap<object, SandboxTemplatePlanner>();\nconst SANDBOX_TEMPLATE_COMMAND_PLAN_LOCATORS = new WeakMap<object, SandboxTemplateCommandPlanLocator>();\nconst SANDBOX_PROVIDER_BINDINGS = new WeakMap<object, SandboxProviderBinding>();\nconst SANDBOX_PROVIDER_PLAN: unique symbol = Symbol(\"niceeval.sandbox.provider-plan\");\n// Runtime resource/privileged coverage changed without changing Dockerfile build bytes. Keep the\n// Dockerfile builder revision stable, but advance the provider-plan/fingerprint revision.\nconst DOCKERFILE_PROVIDER_PLANNER_REVISION = \"dockerfile-5\";\nconst DOCKER_IMAGE_PROVIDER_REVISION = \"docker-image-4\";\nexport interface SandboxLayer<Kind extends SandboxLayerKind = SandboxLayerKind, Lifecycle extends SandboxLayerLifecycle = SandboxLayerLifecycle> {\n readonly [SANDBOX_LAYER]: Kind;\n readonly [SANDBOX_LAYER_LIFECYCLE]: Lifecycle;\n prepare(command: SandboxCommand): SandboxLayer<Kind, Lifecycle>;\n setup(hook: SandboxHook): SandboxLayer<Kind, \"instance-lifecycle\">;\n teardown(hook: SandboxHook): SandboxLayer<Kind, \"instance-lifecycle\">;\n}\nexport interface DockerComposeSandboxOptions {\n readonly file: string | URL;\n readonly workspaceService: string;\n readonly build?: \"on-demand\" | \"prebuilt\";\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用 Compose service `user:` 或其镜像 `USER`。 */\n readonly user?: string;\n readonly env?: Readonly<globalThis.Record<string, string>>;\n /** Compose 插值所需凭据;value 只进私有 runtime binding,identity 只认变量名与 revision。 */\n readonly credentialEnv?: Readonly<globalThis.Record<string, {\n readonly value: string;\n readonly revision?: string;\n }>>;\n readonly lifetimeMs?: number;\n /**\n * 按序前置到受管 `PATH` 的目录;作用于本 Sandbox 内全部受管命令(agent 进程、两层 prepare、\n * ensure/install),hooks 与子进程自然继承。PATH 本身是受管变量,不接受经 `env` 覆盖——\n * 需要扩展 PATH 用这个字段(见 docs/feature/sandbox/library.md「PATH:受管变量与\n * pathPrepend」)。省略 = 不改 PATH。\n */\n readonly pathPrepend?: readonly string[];\n}\ninterface DockerfileSourceOptions {\n readonly context: string | URL;\n readonly dockerfile?: string;\n readonly buildArgs?: Readonly<globalThis.Record<string, string>>;\n /** Docker profile v1 的宿主 alias;只保存为私有 runtime binding,不进入可分享 identity。 */\n readonly profile?: string;\n /** 起点构建的目标 stage。 */\n readonly target?: string;\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用构建出的镜像 `USER`。 */\n readonly user?: string;\n /** 仅允许在 rootless Docker daemon 上请求 privileged;rootful daemon 会在创建前拒绝。 */\n readonly privileged?: \"rootless\";\n /** Agent在Sandbox内访问Docker的显式模式;与旧profile/privileged字段互斥。 */\n readonly dockerAccess?: DockerSandboxAccess;\n /** 单容器的 CPU / 内存 / PID / tmpfs 硬边界。 */\n readonly resources?: DockerSandboxResources;\n readonly readiness?: DockerSandboxReadiness;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\ninterface DockerImageSourceOptions {\n readonly image: string;\n /** Docker profile v1 的宿主 alias;只保存为私有 runtime binding,不进入可分享 identity。 */\n readonly profile?: string;\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用镜像 `USER`(未声明按 Docker 语义是 root)。 */\n readonly user?: string;\n /** 仅允许在 rootless Docker daemon 上请求 privileged;rootful daemon 会在创建前拒绝。 */\n readonly privileged?: \"rootless\";\n /** Agent在Sandbox内访问Docker的显式模式;与旧profile/privileged字段互斥。 */\n readonly dockerAccess?: DockerSandboxAccess;\n /** 单容器的 CPU / 内存 / PID / tmpfs 硬边界。 */\n readonly resources?: DockerSandboxResources;\n readonly readiness?: DockerSandboxReadiness;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface DockerSandboxTmpfsOptions {\n readonly sizeBytes: number;\n readonly mode?: number;\n readonly uid?: number;\n readonly gid?: number;\n /** 默认 false;仅显式 true 时允许执行。 */\n readonly executable?: boolean;\n}\nexport interface DockerSandboxResources {\n readonly cpus?: number;\n readonly memoryBytes?: number;\n readonly pidsLimit?: number;\n /** Dedicated, control-owned storage mounted at /var/lib/docker for inner DinD. */\n readonly dockerDataBytes?: number;\n /** 把镜像 rootfs 设为只读;需要写入的路径必须逐一声明为有界 tmpfs。 */\n readonly readOnlyRootfs?: boolean;\n readonly tmpfs?: Readonly<globalThis.Record<string, DockerSandboxTmpfsOptions>>;\n}\nexport interface DockerImageSource {\n readonly type: \"image\";\n readonly image: string;\n}\nexport interface DockerfileSource {\n readonly type: \"dockerfile\";\n readonly context: string | URL;\n readonly file?: string;\n readonly buildArgs?: Readonly<globalThis.Record<string, string>>;\n readonly target?: string;\n}\nexport type DockerSandboxSource = DockerImageSource | DockerfileSource;\nexport interface ManagedDockerResources extends DockerSandboxResources {\n readonly cpus: number;\n readonly memoryBytes: number;\n readonly pidsLimit: number;\n readonly dockerDataBytes: number;\n readonly readOnlyRootfs: true;\n}\nexport interface DockerSandboxReadiness {\n readonly command: readonly [\n string,\n ...string[]\n ];\n readonly user?: string;\n readonly timeoutMs: number;\n readonly intervalMs?: number;\n}\nexport interface DockerSandboxCommonOptions {\n readonly source: DockerSandboxSource;\n readonly user?: string;\n readonly readiness?: DockerSandboxReadiness;\n readonly lifetimeMs?: number;\n readonly pathPrepend?: readonly string[];\n}\nexport type DockerSandboxAccess = {\n readonly mode: \"socket\";\n readonly socketPath: string;\n} | {\n readonly mode: \"dind\";\n readonly isolation: \"raw-privileged\";\n /** Required only when resources.dockerDataBytes requests control-owned storage. */\n readonly storageProfile?: string;\n} | {\n readonly mode: \"dind\";\n readonly isolation: \"managed-rootless\";\n readonly profile: string;\n};\nexport type DockerSandboxOptions = (DockerSandboxCommonOptions & {\n readonly dockerAccess?: undefined;\n readonly resources?: DockerSandboxResources;\n}) | (DockerSandboxCommonOptions & {\n readonly dockerAccess: {\n readonly mode: \"socket\";\n readonly socketPath: string;\n } | {\n readonly mode: \"dind\";\n readonly isolation: \"raw-privileged\";\n readonly storageProfile?: string;\n };\n readonly resources?: DockerSandboxResources;\n}) | (DockerSandboxCommonOptions & {\n readonly dockerAccess: {\n readonly mode: \"dind\";\n readonly isolation: \"managed-rootless\";\n readonly profile: string;\n };\n readonly resources: ManagedDockerResources;\n});\nexport interface E2BSandboxOptions {\n readonly template: string;\n /** 覆盖整个 Sandbox 的默认执行身份;省略时沿用 template 的默认用户。 */\n readonly user?: string;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface VercelSandboxOptions {\n readonly snapshotId: string;\n readonly lifetimeMs?: number;\n /** 按序前置到受管 `PATH` 的目录;省略 = 不改 PATH(见 docs/feature/sandbox/library.md)。 */\n readonly pathPrepend?: readonly string[];\n}\nexport interface CustomProviderSandboxOptions {\n readonly name: string;\n readonly targetPlatform: SandboxTargetPlatform;\n readonly recommendedConcurrency?: number;\n readonly exclusive?: boolean;\n readonly create: (context: CustomProviderMaterializeContext) => Effect.Effect<Sandbox, CustomSandboxMaterializationError>;\n}\nexport class CustomSandboxMaterializationError extends Data.TaggedError(\"CustomSandboxMaterializationError\")<{\n readonly code: string;\n readonly message: string;\n readonly cause: Error;\n}> {\n}\nexport interface CustomProviderMaterializeContext {\n readonly deadline: SandboxRuntimeDeadlineDeclaration;\n readonly runtime: SandboxRuntime;\n readonly feedback: ScopedFeedback;\n}\nexport type CustomCaseServices = {\n readonly _tag: \"Supported\";\n} | {\n readonly _tag: \"Unsupported\";\n};\nexport type CustomCaseMaterializedServices = {\n readonly _tag: \"None\";\n} | {\n readonly _tag: \"Available\";\n readonly value: ServiceController;\n};\nexport interface CustomCaseMaterializeResult {\n readonly sandbox: Sandbox;\n readonly group: SandboxResourceGroup;\n readonly services: CustomCaseMaterializedServices;\n readonly facts: JsonValue;\n /** Callback cases cannot provide detached retention without a discoverable provider plugin. */\n readonly retention?: never;\n}\nexport interface CustomCaseSandboxOptions {\n readonly identity: JsonValue;\n readonly targetPlatform: SandboxTargetPlatform;\n readonly services: CustomCaseServices;\n readonly materialize: (context: SandboxMaterializeContext) => Effect.Effect<CustomCaseMaterializeResult, CustomSandboxMaterializationError>;\n}\nexport type SandboxRuntimeDeadlineDeclaration = {\n readonly _tag: \"Unlimited\";\n} | {\n readonly _tag: \"Bounded\";\n readonly timeoutMs: number;\n readonly deadlineAt: number;\n};\nexport type SandboxLocation = {\n readonly _tag: \"Path\";\n readonly value: string;\n} | {\n readonly _tag: \"Url\";\n readonly value: string;\n};\nexport type SandboxTemplateLocatorFieldName = \"image\" | \"context\" | \"file\" | \"target\" | \"workspaceService\" | \"template\" | \"snapshotId\" | \"dir\";\nexport interface SandboxTemplateLocatorField {\n readonly name: SandboxTemplateLocatorFieldName;\n readonly value: string;\n}\nexport type SandboxTemplateLocatorRedactionPart = \"userinfo\" | \"query\" | \"fragment\";\nexport interface SandboxTemplateLocatorRedaction {\n readonly field: SandboxTemplateLocatorFieldName;\n readonly parts: readonly SandboxTemplateLocatorRedactionPart[];\n}\n/** Public command-plan evidence; it is deliberately separate from provider identity and Record data. */\nexport type SandboxTemplateCommandPlanLocator = {\n readonly _tag: \"Exact\";\n readonly fields: readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n ];\n} | {\n readonly _tag: \"Redacted\";\n readonly fields: readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n ];\n readonly redactions: readonly SandboxTemplateLocatorRedaction[];\n} | {\n readonly _tag: \"Opaque\";\n readonly reason: {\n readonly code: string;\n readonly summary: string;\n };\n};\n/**\n * Discovery 泄题门唯一消费的 provider-neutral 声明。它只描述需要检查的作者输入,\n * 不要求 discovery 解读 provider identity,也不把「缺字段」当作一种状态。\n */\nexport type SandboxLeakGate = {\n readonly _tag: \"None\";\n} | {\n readonly _tag: \"Dockerfile\";\n readonly context: SandboxLocation;\n readonly dockerfile: string;\n} | {\n readonly _tag: \"Compose\";\n readonly file: SandboxLocation;\n readonly workspaceService: string;\n};\nexport type SandboxTargetPlatform = {\n readonly _tag: \"Linux\";\n readonly os: \"linux\";\n readonly arch: string;\n readonly libc: \"gnu\" | \"musl\";\n} | {\n readonly _tag: \"Darwin\";\n readonly os: \"darwin\";\n readonly arch: string;\n} | {\n readonly _tag: \"Windows\";\n readonly os: \"windows\";\n readonly arch: string;\n};\nexport type SandboxPlanningSource = \"docker-daemon\" | \"provider-standard\" | \"host\" | \"provider-defined\";\nexport interface SandboxPlannedTarget {\n readonly platform: SandboxTargetPlatform;\n readonly source: SandboxPlanningSource;\n}\nexport type SandboxAdmission = {\n readonly _tag: \"Shared\";\n} | {\n readonly _tag: \"Exclusive\";\n};\nexport interface SandboxProviderScheduling {\n readonly recommendedConcurrency: number;\n readonly lane: {\n readonly key: string;\n readonly limit: number;\n };\n readonly admission: SandboxAdmission;\n}\nexport type SandboxRuntimeRetention = {\n readonly _tag: \"DestroyOnly\";\n} | {\n readonly _tag: \"Suspendable\";\n};\nexport type SandboxRuntimeReuse = {\n readonly _tag: \"Supported\";\n} | {\n readonly _tag: \"Unsupported\";\n readonly reason: string;\n};\nexport type SandboxRuntimeSessionLimit = {\n readonly _tag: \"Unlimited\";\n} | {\n readonly _tag: \"Bounded\";\n readonly milliseconds: number;\n} | {\n /** 上限由 provider 账号/plan 决定,只有真实创建或续期请求才能裁决。 */\n readonly _tag: \"ProviderValidated\";\n readonly reason: string;\n};\n/** Provider 在 physical planning 时一并冻结的运行能力;core 不从 provider 名反推。 */\nexport interface SandboxProviderCapabilities {\n readonly retention: SandboxRuntimeRetention;\n readonly reuse: SandboxRuntimeReuse;\n readonly sessionLimit: SandboxRuntimeSessionLimit;\n}\n/**\n * Provider 私有的类型联系。`Plan` 只在 factory 与本模块内部存在;绑定到公开 plan 后被闭包捕获,\n * core 只看见已消去泛型的 `SandboxProviderBinding`,从不接触 `unknown` 或 JSON runtime input。\n */\nexport interface SandboxProviderModule<Plan> {\n readonly id: string;\n readonly capabilities: SandboxProviderCapabilities;\n readonly materialize: (plan: Plan, context: SandboxRuntimeMaterializeContext) => Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope>;\n readonly collectBuildPreparation: (plan: Plan, published: SandboxProviderPlan, evalId: string) => Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError>;\n}\n/** 泛型已经由闭包消去的 provider binding;只有合法 constructor 产物存在于 WeakMap 中。 */\nexport interface SandboxProviderBinding {\n readonly moduleId: string;\n readonly capabilities: SandboxProviderCapabilities;\n readonly materialize: (context: SandboxRuntimeMaterializeContext) => Effect.Effect<MaterializedSandboxCase, SandboxRuntimeMaterializationError, Scope.Scope>;\n readonly collectBuildPreparation: (evalId: string) => Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>, SandboxRuntimeMaterializationError>;\n}\n/**\n * physical planning 的唯一完成态。整个对象都可发布、可序列化;provider 私有的 runtime input\n * 只存在于 plan-keyed runtime binding,不会因调用方误做 `JSON.stringify(plan)` 而落盘。\n */\nexport interface SandboxProviderPlan {\n readonly [SANDBOX_PROVIDER_PLAN]: true;\n readonly provider: string;\n readonly plannerRevision: string;\n readonly caseKind: SandboxCaseKind;\n readonly target: SandboxPlannedTarget;\n readonly scheduling: SandboxProviderScheduling;\n readonly capabilities: SandboxProviderCapabilities;\n readonly build: SandboxProviderBuildPlan;\n readonly identity: JsonValue;\n}\nexport type SandboxProviderBuildPlan = {\n readonly _tag: \"None\";\n readonly caseKey: CaseKey;\n readonly buildKeys: readonly [\n ];\n} | {\n readonly _tag: \"Required\";\n readonly caseKey: CaseKey;\n readonly buildKeys: readonly [\n BuildKey,\n ...BuildKey[]\n ];\n};\nexport interface SandboxProviderPlanInput<Plan> {\n readonly provider: string;\n readonly plannerRevision: string;\n readonly caseKind: SandboxCaseKind;\n readonly target: SandboxPlannedTarget;\n readonly scheduling: SandboxProviderScheduling;\n readonly module: SandboxProviderModule<Plan>;\n readonly runtimePlan: Plan;\n readonly build: SandboxProviderBuildPlan;\n /** 仅用于保留既有 provider fingerprint 的稳定身份投影;不参与携带裁决。 */\n readonly identityMarker?: JsonValue;\n /** 可直接出现在 record / manifest 的 provider-owned 纯数据。 */\n readonly publishableIdentity: JsonValue;\n /** 影响 fingerprint 但不得落盘的值;plan 只保存它的稳定摘要。 */\n readonly privateFingerprintIdentity: JsonValue;\n}\nexport class SandboxProviderPlanningError extends Data.TaggedError(\"SandboxProviderPlanningError\")<{\n readonly code: string;\n readonly provider: string;\n readonly summary: string;\n readonly actions: readonly string[];\n}> {\n}\nexport interface SandboxTemplatePlanningInput {\n readonly authorBaseDir: string;\n}\nexport type SandboxTemplatePlanner = (input: SandboxTemplatePlanningInput) => Effect.Effect<SandboxProviderPlan, SandboxProviderPlanningError>;\n/** Template 声明只暴露 link 与 fingerprint 所需纯数据;planner 在 WeakMap 中私有绑定。 */\nexport interface SandboxTemplateDeclaration {\n readonly provider: string;\n readonly kind: string;\n readonly identity: JsonValue;\n readonly leakGate: SandboxLeakGate;\n}\nexport interface SandboxTemplateDefinition {\n readonly provider: string;\n readonly kind: string;\n /** 可直接进入 pair-owned record projection 的 provider-owned 纯数据。 */\n readonly publishableIdentity: JsonValue;\n /** 影响 template identity 但不得直接进入 link / record 的作者输入。 */\n readonly privateFingerprintIdentity: JsonValue;\n /** Configured non-secret locator shown only by the explicit command-plan projection. */\n readonly commandPlanLocator: SandboxTemplateCommandPlanLocator;\n readonly plan: SandboxTemplatePlanner;\n readonly leakGate: SandboxLeakGate;\n}\nexport interface BuiltinSandboxPlannerServices {\n /** 只读 control-plane 探测;测试可注入确定值或 typed failure。 */\n readonly dockerBuildPlatform: Effect.Effect<string, SandboxProviderPlanningError>;\n}\nexport interface BuiltinSandboxFactories {\n readonly dockerComposeSandbox: (options: DockerComposeSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly dockerfileSourceLayer: (options: DockerfileSourceOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly dockerImageSourceLayer: (options: DockerImageSourceOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly e2bSandbox: (options: E2BSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n readonly vercelSandbox: (options: VercelSandboxOptions) => SandboxLayer<\"template-bearing\", \"prepare-only\">;\n}\nexport interface CommandOnlySandboxLayerState {\n readonly kind: \"command-only\";\n readonly commands: readonly SandboxCommandDeclaration[];\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n}\nexport interface TemplateBearingSandboxLayerState {\n readonly kind: \"template-bearing\";\n readonly template: SandboxTemplateDeclaration;\n readonly commands: readonly SandboxCommandDeclaration[];\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n}\nexport type SandboxLayerState<Kind extends SandboxLayerKind = SandboxLayerKind> = Kind extends \"command-only\" ? CommandOnlySandboxLayerState : TemplateBearingSandboxLayerState;\ntype SandboxLayerRuntime<Kind extends SandboxLayerKind, Lifecycle extends SandboxLayerLifecycle = SandboxLayerLifecycle> = SandboxLayer<Kind, Lifecycle>;\nfunction freezeJson(value: JsonValue): JsonValue {\n if (value === null || typeof value !== \"object\")\n return value;\n if (Array.isArray(value)) {\n const children: JsonValue[] = value.map(freezeJson);\n Object.freeze(children);\n return children;\n }\n return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, child]) => [key, freezeJson(child)])));\n}\nfunction freezePlatform(platform: SandboxTargetPlatform): SandboxTargetPlatform {\n return Object.freeze({ ...platform });\n}\nfunction freezeTarget(target: SandboxPlannedTarget): SandboxPlannedTarget {\n return Object.freeze({ platform: freezePlatform(target.platform), source: target.source });\n}\nfunction freezeLocation(value: SandboxLocation): SandboxLocation {\n return Object.freeze({ _tag: value._tag, value: value.value });\n}\nconst LOCATOR_REDACTION_PARTS: readonly SandboxTemplateLocatorRedactionPart[] = Object.freeze([\n \"userinfo\",\n \"query\",\n \"fragment\",\n]);\nconst LOCATOR_FIELD_NAMES = new Set<SandboxTemplateLocatorFieldName>([\n \"image\",\n \"context\",\n \"file\",\n \"target\",\n \"workspaceService\",\n \"template\",\n \"snapshotId\",\n \"dir\",\n]);\nfunction freezeCommandPlanLocator(locator: SandboxTemplateCommandPlanLocator): SandboxTemplateCommandPlanLocator {\n if (locator._tag === \"Opaque\") {\n return Object.freeze({\n _tag: \"Opaque\",\n reason: Object.freeze({\n code: nonEmptyString(locator.reason.code, \"sandbox template locator.reason.code\"),\n summary: nonEmptyString(locator.reason.summary, \"sandbox template locator.reason.summary\"),\n }),\n });\n }\n if (locator.fields.length === 0)\n throw new TypeError(\"sandbox template locator.fields must be non-empty\");\n const names = new Set<SandboxTemplateLocatorFieldName>();\n const fields = locator.fields.map((field) => {\n if (!LOCATOR_FIELD_NAMES.has(field.name)) {\n throw new TypeError(`sandbox template locator field ${JSON.stringify(field.name)} is unsupported`);\n }\n if (names.has(field.name)) {\n throw new TypeError(`sandbox template locator field ${JSON.stringify(field.name)} is duplicated`);\n }\n names.add(field.name);\n return Object.freeze({\n name: field.name,\n value: nonEmptyString(field.value, `sandbox template locator.${field.name}`),\n });\n }) as unknown as readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n ];\n if (locator._tag === \"Exact\")\n return Object.freeze({ _tag: \"Exact\", fields: Object.freeze(fields) });\n if (locator.redactions.length === 0) {\n throw new TypeError(\"redacted sandbox template locator must declare at least one redaction\");\n }\n const redactedFields = new Set<SandboxTemplateLocatorFieldName>();\n const redactions = locator.redactions.map((redaction) => {\n if (!names.has(redaction.field)) {\n throw new TypeError(`sandbox template locator redaction references missing field ${JSON.stringify(redaction.field)}`);\n }\n if (redactedFields.has(redaction.field)) {\n throw new TypeError(`sandbox template locator redaction for ${JSON.stringify(redaction.field)} is duplicated`);\n }\n redactedFields.add(redaction.field);\n const declared = new Set(redaction.parts);\n const parts = LOCATOR_REDACTION_PARTS.filter((part) => declared.has(part));\n if (parts.length !== declared.size || parts.length === 0) {\n throw new TypeError(`sandbox template locator redaction for ${JSON.stringify(redaction.field)} is invalid`);\n }\n return Object.freeze({ field: redaction.field, parts: Object.freeze(parts) });\n });\n return Object.freeze({ _tag: \"Redacted\", fields: Object.freeze(fields), redactions: Object.freeze(redactions) });\n}\nfunction configuredLocator(fields: readonly [\n SandboxTemplateLocatorField,\n ...SandboxTemplateLocatorField[]\n], redactions: readonly SandboxTemplateLocatorRedaction[] = []): SandboxTemplateCommandPlanLocator {\n return freezeCommandPlanLocator(redactions.length === 0\n ? { _tag: \"Exact\", fields }\n : { _tag: \"Redacted\", fields, redactions });\n}\nfunction opaqueConfiguredLocator(code: string, summary: string): SandboxTemplateCommandPlanLocator {\n return freezeCommandPlanLocator({\n _tag: \"Opaque\",\n reason: { code, summary },\n });\n}\nfunction configuredDockerImageLocator(image: string): SandboxTemplateCommandPlanLocator {\n const digestSeparator = image.lastIndexOf(\"@\");\n const reference = digestSeparator === -1 ? image : image.slice(0, digestSeparator);\n const digest = digestSeparator === -1 ? undefined : image.slice(digestSeparator + 1);\n const credentialSafeReference = /^[A-Za-z0-9][A-Za-z0-9._:/-]*$/u.test(reference)\n && !reference.includes(\"://\")\n && (digest === undefined || /^sha256:[a-f0-9]{64}$/iu.test(digest));\n if (credentialSafeReference) {\n return configuredLocator([{ name: \"image\", value: image }]);\n }\n return opaqueConfiguredLocator(\"docker-image-locator-unsafe-to-display\", \"Docker image locator is omitted because its syntax is not credential-safe to display\");\n}\nfunction configuredPathLocator(): SandboxTemplateCommandPlanLocator {\n return opaqueConfiguredLocator(\"sandbox-path-locator-unsafe-to-display\", \"Sandbox path locator is omitted because local paths may expose host filesystem details\");\n}\nfunction configuredLocationField(name: \"context\" | \"file\", value: SandboxLocation): {\n readonly field: SandboxTemplateLocatorField;\n readonly redaction?: SandboxTemplateLocatorRedaction;\n} | undefined {\n if (value._tag === \"Path\")\n return undefined;\n const url = new URL(value.value);\n if (url.protocol === \"file:\")\n return undefined;\n const parts: SandboxTemplateLocatorRedactionPart[] = [];\n if (url.username !== \"\" || url.password !== \"\") {\n parts.push(\"userinfo\");\n url.username = \"\";\n url.password = \"\";\n }\n if (url.search !== \"\") {\n parts.push(\"query\");\n url.search = \"\";\n }\n if (url.hash !== \"\") {\n parts.push(\"fragment\");\n url.hash = \"\";\n }\n return {\n field: Object.freeze({ name, value: url.href }),\n ...(parts.length === 0 ? {} : { redaction: Object.freeze({ field: name, parts: Object.freeze(parts) }) }),\n };\n}\nfunction freezeLeakGate(value: SandboxLeakGate): SandboxLeakGate {\n switch (value._tag) {\n case \"None\":\n return Object.freeze({ _tag: \"None\" });\n case \"Dockerfile\":\n return Object.freeze({\n _tag: \"Dockerfile\",\n context: freezeLocation(value.context),\n dockerfile: nonEmptyString(value.dockerfile, \"sandbox leakGate.dockerfile\"),\n });\n case \"Compose\":\n return Object.freeze({\n _tag: \"Compose\",\n file: freezeLocation(value.file),\n workspaceService: nonEmptyString(value.workspaceService, \"sandbox leakGate.workspaceService\"),\n });\n }\n}\nfunction freezeScheduling(scheduling: SandboxProviderScheduling): SandboxProviderScheduling {\n if (!Number.isInteger(scheduling.recommendedConcurrency) || scheduling.recommendedConcurrency <= 0) {\n throw new TypeError(\"sandbox provider recommendedConcurrency must be a positive integer\");\n }\n if (!Number.isInteger(scheduling.lane.limit) || scheduling.lane.limit <= 0) {\n throw new TypeError(\"sandbox provider scheduling lane limit must be a positive integer\");\n }\n return Object.freeze({\n recommendedConcurrency: scheduling.recommendedConcurrency,\n lane: Object.freeze({\n key: nonEmptyString(scheduling.lane.key, \"sandbox provider scheduling lane.key\"),\n limit: scheduling.lane.limit,\n }),\n admission: Object.freeze({ _tag: scheduling.admission._tag }),\n });\n}\n/** Provider planner 统一用本 helper 构造完整、冻结、可安全发布的计划。 */\nexport function sandboxProviderPlan<Plan>(input: SandboxProviderPlanInput<Plan>): SandboxProviderPlan {\n const provider = nonEmptyString(input.provider, \"sandbox provider plan.provider\");\n const plannerRevision = nonEmptyString(input.plannerRevision, \"sandbox provider plan.plannerRevision\");\n const caseKind = input.caseKind;\n const target = freezeTarget(input.target);\n const scheduling = freezeScheduling(input.scheduling);\n const moduleId = nonEmptyString(input.module.id, \"sandbox provider module.id\");\n const capabilities = freezeProviderCapabilities(input.module.capabilities);\n const publishableIdentity = freezeJson(input.publishableIdentity);\n const privateIdentityDigest = digestOf(input.privateFingerprintIdentity);\n const build: SandboxProviderBuildPlan = input.build._tag === \"None\"\n ? Object.freeze({ _tag: \"None\", caseKey: input.build.caseKey, buildKeys: [] as const })\n : Object.freeze({\n _tag: \"Required\",\n caseKey: input.build.caseKey,\n buildKeys: freezeSortedNonEmptyBuildKeys(input.build.buildKeys, \"sandbox provider plan.build.buildKeys\"),\n });\n const identity = freezeJson({\n version: 3,\n provider,\n plannerRevision,\n caseKind,\n target: targetIdentity(target),\n scheduling: {\n recommendedConcurrency: scheduling.recommendedConcurrency,\n lane: { key: scheduling.lane.key, limit: scheduling.lane.limit },\n admission: { _tag: scheduling.admission._tag },\n },\n providerModule: moduleId,\n capabilities: {\n retention: { _tag: capabilities.retention._tag },\n reuse: capabilities.reuse,\n sessionLimit: capabilities.sessionLimit,\n },\n // Keep the old identity slot stable while carry eligibility is no longer a\n // provider/template concern. The marker is fingerprint data only.\n carry: input.identityMarker ?? { _tag: \"Eligible\" },\n build: { _tag: build._tag, caseKey: build.caseKey, buildKeys: [...build.buildKeys] },\n publishable: publishableIdentity,\n privateIdentityDigest,\n });\n const plan: SandboxProviderPlan = {\n [SANDBOX_PROVIDER_PLAN]: true,\n provider,\n plannerRevision,\n caseKind,\n target,\n scheduling,\n capabilities,\n build,\n identity,\n };\n const binding = Object.freeze({\n moduleId,\n capabilities,\n materialize: (context) => input.module.materialize(input.runtimePlan, context),\n collectBuildPreparation: (evalId) => input.module.collectBuildPreparation(input.runtimePlan, plan, evalId),\n } satisfies SandboxProviderBinding);\n SANDBOX_PROVIDER_BINDINGS.set(plan, binding);\n return Object.freeze(plan);\n}\n/** @internal core 只取得已经消去泛型的闭包;合法 planner 产物恒为 Some。 */\nexport function sandboxProviderBindingOf(plan: SandboxProviderPlan): Option.Option<SandboxProviderBinding> {\n return Option.fromNullable(SANDBOX_PROVIDER_BINDINGS.get(plan));\n}\nfunction freezeProviderCapabilities(capabilities: SandboxProviderCapabilities): SandboxProviderCapabilities {\n if (capabilities.sessionLimit._tag === \"Bounded\" &&\n (!Number.isFinite(capabilities.sessionLimit.milliseconds) || capabilities.sessionLimit.milliseconds <= 0)) {\n throw new TypeError(\"sandbox provider bounded session limit must be a positive finite number\");\n }\n return Object.freeze({\n retention: Object.freeze({ _tag: capabilities.retention._tag }),\n reuse: capabilities.reuse._tag === \"Supported\"\n ? Object.freeze({ _tag: \"Supported\" as const })\n : Object.freeze({\n _tag: \"Unsupported\" as const,\n reason: nonEmptyString(capabilities.reuse.reason, \"sandbox provider capabilities.reuse.reason\"),\n }),\n sessionLimit: capabilities.sessionLimit._tag === \"Unlimited\"\n ? Object.freeze({ _tag: \"Unlimited\" as const })\n : capabilities.sessionLimit._tag === \"Bounded\"\n ? Object.freeze({\n _tag: \"Bounded\" as const,\n milliseconds: capabilities.sessionLimit.milliseconds,\n })\n : Object.freeze({\n _tag: \"ProviderValidated\" as const,\n reason: nonEmptyString(capabilities.sessionLimit.reason, \"sandbox provider capabilities.sessionLimit.reason\"),\n }),\n });\n}\nfunction targetIdentity(target: SandboxPlannedTarget): JsonValue {\n const platform = target.platform;\n return {\n source: target.source,\n platform: platform._tag === \"Linux\"\n ? { _tag: \"Linux\", os: \"linux\", arch: platform.arch, libc: platform.libc }\n : { _tag: platform._tag, os: platform.os, arch: platform.arch },\n };\n}\nfunction assertRecord(value: unknown, path: string): asserts value is globalThis.Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(`${path} must be an object`);\n }\n}\nfunction assertOnlyKeys(value: globalThis.Record<string, unknown>, allowed: readonly string[], path: string): void {\n const known = new Set(allowed);\n for (const key of Object.keys(value)) {\n if (!known.has(key))\n throw new TypeError(`${path}.${key} is not supported`);\n }\n}\nfunction nonEmptyString(value: unknown, path: string): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(`${path} must be a non-empty string`);\n }\n return value;\n}\n/** `pathPrepend`:省略即空;否则必须是非空字符串数组,按声明顺序前置到受管 PATH。 */\nfunction pathPrependList(value: unknown, path: string): readonly string[] {\n if (value === undefined)\n return Object.freeze([]);\n if (!Array.isArray(value))\n throw new TypeError(`${path} must be an array of strings`);\n return Object.freeze(value.map((entry, index) => nonEmptyString(entry, `${path}[${index}]`)));\n}\n/**\n * 可选字段缺省值不进身份序列化:空 `pathPrepend` 与省略该字段同义,因此在身份/哈希输入里\n * 一律省略键本身(absent ≡ default),不写 `pathPrepend: []`——否则「不声明」与「声明成空\n * 数组」这两种作者写法会产出不同的 digest,对使用者是无法解释的差异。非空时才带着键出现,\n * 值本身(顺序、内容)照常参与摘要。\n */\nfunction pathPrependIdentityField(pathPrepend: readonly string[]): globalThis.Record<string, never> | {\n readonly pathPrepend: string[];\n} {\n return pathPrepend.length === 0 ? {} : { pathPrepend: [...pathPrepend] };\n}\nfunction location(value: unknown, path: string): SandboxLocation {\n if (value instanceof URL)\n return Object.freeze({ _tag: \"Url\", value: value.href });\n return Object.freeze({ _tag: \"Path\", value: nonEmptyString(value, path) });\n}\nfunction plannedLocation(location: SandboxLocation, authorBaseDir: string): SandboxLocation {\n return location._tag === \"Url\"\n ? location\n : Object.freeze({ _tag: \"Path\", value: resolve(authorBaseDir, location.value) });\n}\nfunction lifetime(value: unknown, path: string): SandboxProviderLifetime {\n if (value === undefined)\n return Object.freeze({ _tag: \"ProviderDefault\" });\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n throw new TypeError(`${path} must be a positive finite number`);\n }\n return Object.freeze({ _tag: \"Configured\", milliseconds: value });\n}\nfunction dockerPrivileged(value: unknown, path: string): \"disabled\" | \"rootless\" {\n if (value === undefined)\n return \"disabled\";\n if (value !== \"rootless\")\n throw new TypeError(`${path} must be \\\"rootless\\\" when configured`);\n return \"rootless\";\n}\nfunction dockerAccess(value: unknown, path: string): Readonly<DockerSandboxAccess> | undefined {\n if (value === undefined)\n return undefined;\n assertRecord(value, path);\n const mode = nonEmptyString(value.mode, `${path}.mode`);\n if (mode === \"socket\") {\n assertOnlyKeys(value, [\"mode\", \"socketPath\"], path);\n const socketPath = nonEmptyString(value.socketPath, `${path}.socketPath`);\n if (!isAbsolute(socketPath) || resolve(socketPath) !== socketPath) {\n throw new TypeError(`${path}.socketPath must be a normalized absolute path`);\n }\n return Object.freeze({ mode: \"socket\", socketPath });\n }\n if (mode !== \"dind\")\n throw new TypeError(`${path}.mode must be \"socket\" or \"dind\"`);\n const isolation = nonEmptyString(value.isolation, `${path}.isolation`);\n if (isolation === \"raw-privileged\") {\n assertOnlyKeys(value, [\"mode\", \"isolation\", \"storageProfile\"], path);\n return Object.freeze({\n mode: \"dind\",\n isolation: \"raw-privileged\",\n ...(value.storageProfile === undefined\n ? {}\n : { storageProfile: nonEmptyString(value.storageProfile, `${path}.storageProfile`) }),\n });\n }\n if (isolation === \"managed-rootless\") {\n assertOnlyKeys(value, [\"mode\", \"isolation\", \"profile\"], path);\n return Object.freeze({\n mode: \"dind\",\n isolation: \"managed-rootless\",\n profile: nonEmptyString(value.profile, `${path}.profile`),\n });\n }\n throw new TypeError(`${path}.isolation must be \"raw-privileged\" or \"managed-rootless\"`);\n}\nfunction dockerAccessConfiguration(value: unknown, legacyProfile: unknown, legacyPrivileged: unknown, path: string): {\n readonly access?: Readonly<DockerSandboxAccess>;\n readonly profile?: string;\n readonly privileged: \"disabled\" | \"raw\" | \"rootless\";\n} {\n const access = dockerAccess(value, path);\n if (access !== undefined) {\n if (legacyProfile !== undefined || legacyPrivileged !== undefined) {\n throw new TypeError(`${path} cannot be combined with profile or privileged`);\n }\n if (access.mode === \"socket\")\n return Object.freeze({ access, privileged: \"disabled\" });\n if (access.isolation === \"raw-privileged\") {\n return Object.freeze({ access, profile: access.storageProfile, privileged: \"raw\" });\n }\n return Object.freeze({ access, profile: access.profile, privileged: \"rootless\" });\n }\n const profile = dockerProfileAlias(legacyProfile, path.replace(/dockerAccess$/, \"profile\"));\n const privileged = dockerPrivileged(legacyPrivileged, path.replace(/dockerAccess$/, \"privileged\"));\n return Object.freeze({\n ...(profile === undefined ? {} : { profile }),\n privileged,\n });\n}\nfunction dockerProfileAlias(value: unknown, path: string): string | undefined {\n if (value === undefined)\n return undefined;\n return nonEmptyString(value, path);\n}\nfunction dockerReadiness(value: unknown, path: string): Readonly<DockerSandboxReadiness> | undefined {\n if (value === undefined)\n return undefined;\n assertRecord(value, path);\n assertOnlyKeys(value, [\"command\", \"user\", \"timeoutMs\", \"intervalMs\"], path);\n if (!Array.isArray(value.command) || value.command.length === 0) {\n throw new TypeError(`${path}.command must be a non-empty array of strings`);\n }\n const commandValues = value.command.map((entry, index) => nonEmptyString(entry, `${path}.command[${index}]`));\n const first = commandValues[0];\n if (first === undefined)\n throw new TypeError(`${path}.command must contain an executable`);\n const command: readonly [\n string,\n ...string[]\n ] = Object.freeze([first, ...commandValues.slice(1)]);\n const user = value.user === undefined ? undefined : nonEmptyString(value.user, `${path}.user`);\n const timeoutMs = positiveFinite(value.timeoutMs, `${path}.timeoutMs`);\n const intervalMs = value.intervalMs === undefined\n ? undefined\n : positiveFinite(value.intervalMs, `${path}.intervalMs`);\n return Object.freeze({\n command,\n ...(user === undefined ? {} : { user }),\n timeoutMs,\n ...(intervalMs === undefined ? {} : { intervalMs }),\n });\n}\nfunction dockerReadinessForAccess(access: Readonly<DockerSandboxAccess> | undefined, value: unknown, path: string): Readonly<DockerSandboxReadiness> | undefined {\n return dockerReadiness(value === undefined && access !== undefined\n ? { command: [\"docker\", \"info\"], timeoutMs: 30000 }\n : value, path);\n}\nfunction managedDockerResources(value: unknown, path: string): ManagedDockerResources {\n if (value === undefined) {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-resources-required\",\n path,\n message: \"managed Docker sandbox requires explicit CPU, memory, PID, dockerDataBytes and readOnlyRootfs resources\",\n });\n }\n const resources = dockerResources(value, path);\n if (resources.cpus === undefined ||\n resources.memoryBytes === undefined ||\n resources.pidsLimit === undefined ||\n resources.dockerDataBytes === undefined ||\n resources.readOnlyRootfs !== true) {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-resources-required\",\n path,\n message: \"managed Docker sandbox requires explicit CPU, memory, PID, dockerDataBytes and readOnlyRootfs: true resources\",\n });\n }\n return Object.freeze({\n ...resources,\n cpus: resources.cpus,\n memoryBytes: resources.memoryBytes,\n pidsLimit: resources.pidsLimit,\n dockerDataBytes: resources.dockerDataBytes,\n readOnlyRootfs: true,\n });\n}\nfunction dockerResourcesForProfile(profile: string | undefined, privileged: \"disabled\" | \"raw\" | \"rootless\", value: unknown, path: string): Readonly<DockerSandboxResources> {\n if (profile === undefined && privileged === \"rootless\") {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-required\",\n path: `${path}.privileged`,\n message: 'privileged: \"rootless\" requires an explicit Docker profile alias',\n });\n }\n const resources = dockerResources(value, path);\n if (resources.dockerDataBytes !== undefined && privileged === \"disabled\") {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-required\",\n path: `${path}.dockerDataBytes`,\n message: \"dockerDataBytes is only available to profile-bound DinD\",\n });\n }\n if (privileged === \"raw\") {\n if (resources.dockerDataBytes !== undefined && profile === undefined) {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-required\",\n path: `${path}.dockerDataBytes`,\n message: \"raw privileged DinD with dockerDataBytes requires dockerAccess.storageProfile\",\n });\n }\n if (profile !== undefined && resources.dockerDataBytes === undefined) {\n throw dockerProfileError({\n code: \"sandbox.docker-profile-resources-required\",\n path,\n message: \"dockerAccess.storageProfile requires resources.dockerDataBytes\",\n });\n }\n return resources;\n }\n return profile === undefined ? resources : managedDockerResources(value, path);\n}\nfunction readinessIdentity(readiness: Readonly<DockerSandboxReadiness> | undefined): JsonValue {\n return readiness === undefined\n ? null\n : {\n command: [...readiness.command],\n ...(readiness.user === undefined ? {} : { user: readiness.user }),\n };\n}\nfunction positiveFinite(value: unknown, path: string): number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n throw new TypeError(`${path} must be a positive finite number`);\n }\n return value;\n}\nfunction positiveSafeInteger(value: unknown, path: string): number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value <= 0) {\n throw new TypeError(`${path} must be a positive safe integer`);\n }\n return value;\n}\nfunction nonNegativeSafeInteger(value: unknown, path: string): number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${path} must be a non-negative safe integer`);\n }\n return value;\n}\nfunction dockerResources(value: unknown, path: string): Readonly<DockerSandboxResources> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n assertOnlyKeys(value, [\"cpus\", \"memoryBytes\", \"pidsLimit\", \"dockerDataBytes\", \"readOnlyRootfs\", \"tmpfs\"], path);\n if (value.readOnlyRootfs !== undefined && typeof value.readOnlyRootfs !== \"boolean\") {\n throw new TypeError(`${path}.readOnlyRootfs must be a boolean`);\n }\n const tmpfs: globalThis.Record<string, DockerSandboxTmpfsOptions> = {};\n if (value.tmpfs !== undefined) {\n assertRecord(value.tmpfs, `${path}.tmpfs`);\n for (const mountPath of Object.keys(value.tmpfs).sort()) {\n if (!isAbsolute(mountPath) || resolve(mountPath) !== mountPath || mountPath === \"/\") {\n throw new TypeError(`${path}.tmpfs keys must be normalized absolute paths other than /`);\n }\n if (mountPath === \"/var/lib/docker\") {\n throw new TypeError(`${path}.tmpfs must not contain /var/lib/docker; use dockerDataBytes`);\n }\n const entry = value.tmpfs[mountPath];\n assertRecord(entry, `${path}.tmpfs.${mountPath}`);\n assertOnlyKeys(entry, [\"sizeBytes\", \"mode\", \"uid\", \"gid\", \"executable\"], `${path}.tmpfs.${mountPath}`);\n const sizeBytes = positiveSafeInteger(entry.sizeBytes, `${path}.tmpfs.${mountPath}.sizeBytes`);\n if (entry.mode !== undefined &&\n (typeof entry.mode !== \"number\" || !Number.isInteger(entry.mode) || entry.mode < 0 || entry.mode > 0o7777)) {\n throw new TypeError(`${path}.tmpfs.${mountPath}.mode must be an integer between 0 and 0o7777`);\n }\n if (entry.executable !== undefined && typeof entry.executable !== \"boolean\") {\n throw new TypeError(`${path}.tmpfs.${mountPath}.executable must be a boolean`);\n }\n const uid = entry.uid === undefined ? undefined : nonNegativeSafeInteger(entry.uid, `${path}.tmpfs.${mountPath}.uid`);\n const gid = entry.gid === undefined ? undefined : nonNegativeSafeInteger(entry.gid, `${path}.tmpfs.${mountPath}.gid`);\n tmpfs[mountPath] = Object.freeze({\n sizeBytes,\n ...(entry.mode === undefined ? {} : { mode: entry.mode }),\n ...(uid === undefined ? {} : { uid }),\n ...(gid === undefined ? {} : { gid }),\n ...(entry.executable === true ? { executable: true } : {}),\n });\n }\n }\n return Object.freeze({\n ...(value.cpus === undefined ? {} : { cpus: positiveFinite(value.cpus, `${path}.cpus`) }),\n ...(value.memoryBytes === undefined\n ? {}\n : { memoryBytes: positiveSafeInteger(value.memoryBytes, `${path}.memoryBytes`) }),\n ...(value.pidsLimit === undefined\n ? {}\n : { pidsLimit: positiveSafeInteger(value.pidsLimit, `${path}.pidsLimit`) }),\n ...(value.dockerDataBytes === undefined\n ? {}\n : { dockerDataBytes: positiveSafeInteger(value.dockerDataBytes, `${path}.dockerDataBytes`) }),\n ...(value.readOnlyRootfs === true ? { readOnlyRootfs: true } : {}),\n ...(Object.keys(tmpfs).length === 0 ? {} : { tmpfs: Object.freeze(tmpfs) }),\n });\n}\nfunction dockerRuntimeIdentity(privileged: \"disabled\" | \"raw\" | \"rootless\", resources: Readonly<DockerSandboxResources>, access?: Readonly<DockerSandboxAccess>): globalThis.Record<string, JsonValue> {\n return {\n ...(access === undefined\n ? (privileged === \"disabled\" ? {} : { privileged })\n : {\n dockerAccess: access.mode === \"socket\"\n ? { mode: \"socket\" }\n : {\n mode: \"dind\",\n isolation: access.isolation,\n supervisorRevision: dindSupervisorRevision(),\n },\n }),\n ...(Object.keys(resources).length === 0 ? {} : { resources: resources as JsonValue }),\n };\n}\nfunction dockerRequiresDestroyOnly(resources: Readonly<DockerSandboxResources>): boolean {\n return resources.readOnlyRootfs === true || resources.tmpfs !== undefined;\n}\nfunction stringRecord(value: unknown, path: string): Readonly<globalThis.Record<string, string>> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n const result: globalThis.Record<string, string> = {};\n for (const [key, child] of Object.entries(value)) {\n if (key === \"\")\n throw new TypeError(`${path} keys must be non-empty strings`);\n if (typeof child !== \"string\")\n throw new TypeError(`${path}.${key} must be a string`);\n result[key] = child;\n }\n return Object.freeze(result);\n}\nfunction credentialEnvRecord(value: unknown, path: string): Readonly<globalThis.Record<string, {\n readonly value: string;\n readonly revision?: string;\n}>> {\n if (value === undefined)\n return Object.freeze({});\n assertRecord(value, path);\n const result: globalThis.Record<string, {\n readonly value: string;\n readonly revision?: string;\n }> = {};\n for (const [key, child] of Object.entries(value)) {\n if (key === \"\")\n throw new TypeError(`${path} keys must be non-empty strings`);\n assertRecord(child, `${path}.${key}`);\n assertOnlyKeys(child, [\"value\", \"revision\"], `${path}.${key}`);\n const credential = {\n value: nonEmptyString(child.value, `${path}.${key}.value`),\n ...(child.revision === undefined\n ? {}\n : { revision: nonEmptyString(child.revision, `${path}.${key}.revision`) }),\n };\n result[key] = Object.freeze(credential);\n }\n return Object.freeze(result);\n}\nfunction normalizeArch(arch: string): string {\n return arch === \"amd64\" || arch === \"x86_64\" || arch === \"x64\"\n ? \"x64\"\n : arch === \"aarch64\" ? \"arm64\" : arch;\n}\nfunction targetFromDocker(value: string): Effect.Effect<SandboxPlannedTarget, SandboxProviderPlanningError> {\n const normalized = normalizeBuildPlatform(value);\n const [os, arch, extra] = normalized.split(\"/\");\n if (os === undefined || arch === undefined || extra !== undefined || os === \"\" || arch === \"\") {\n return Effect.fail(providerPlanningError(\"sandbox.target-platform-invalid\", \"docker\", `Docker returned an invalid target platform ${JSON.stringify(value)}.`, [\"Configure DOCKER_DEFAULT_PLATFORM as os/arch or repair the Docker daemon response.\"]));\n }\n const platform: SandboxTargetPlatform = os === \"linux\"\n ? { _tag: \"Linux\", os: \"linux\", arch: normalizeArch(arch), libc: \"gnu\" }\n : os === \"darwin\"\n ? { _tag: \"Darwin\", os: \"darwin\", arch: normalizeArch(arch) }\n : os === \"windows\"\n ? { _tag: \"Windows\", os: \"windows\", arch: normalizeArch(arch) }\n : { _tag: \"Linux\", os: \"linux\", arch: normalizeArch(arch), libc: \"gnu\" };\n if (os !== \"linux\" && os !== \"darwin\" && os !== \"windows\") {\n return Effect.fail(providerPlanningError(\"sandbox.target-platform-unsupported\", \"docker\", `Docker target operating system ${JSON.stringify(os)} is not supported.`, [\"Use a Linux, Darwin, or Windows Docker target platform.\"]));\n }\n return Effect.succeed(Object.freeze({ platform: freezePlatform(platform), source: \"docker-daemon\" }));\n}\n/** Provider target ADT → Docker builder 使用的 canonical os/arch 字符串。 */\nfunction plannedTargetPlatform(target: SandboxPlannedTarget): string {\n const arch = target.platform.arch === \"x64\" ? \"amd64\" : target.platform.arch;\n return normalizeBuildPlatform(`${target.platform.os}/${arch}`);\n}\nfunction providerPlanningError(code: string, provider: string, summary: string, actions: readonly string[]): SandboxProviderPlanningError {\n return new SandboxProviderPlanningError({\n code,\n provider,\n summary,\n actions: Object.freeze([...actions]),\n });\n}\nfunction createLayer<Lifecycle extends SandboxLayerLifecycle>(state: CommandOnlySandboxLayerState, lifecycle: Lifecycle): SandboxLayer<\"command-only\", Lifecycle>;\nfunction createLayer<Lifecycle extends SandboxLayerLifecycle>(state: TemplateBearingSandboxLayerState, lifecycle: Lifecycle): SandboxLayer<\"template-bearing\", Lifecycle>;\nfunction createLayer(state: SandboxLayerState, lifecycle: SandboxLayerLifecycle): SandboxLayer {\n const frozenCommands = Object.freeze([...state.commands]);\n const setupHooks = Object.freeze([...state.setupHooks]);\n const teardownHooks = Object.freeze([...state.teardownHooks]);\n const frozenState = state.kind === \"command-only\"\n ? Object.freeze({ kind: \"command-only\" as const, commands: frozenCommands, setupHooks, teardownHooks })\n : Object.freeze({ kind: \"template-bearing\" as const, template: state.template, commands: frozenCommands, setupHooks, teardownHooks });\n const layer = {\n prepare(command: SandboxCommand): SandboxLayer {\n const declaration = sandboxCommandDeclarationOf(command);\n return frozenState.kind === \"command-only\"\n ? createLayer({ kind: \"command-only\", commands: [...frozenCommands, declaration], setupHooks, teardownHooks }, lifecycle)\n : createLayer({\n kind: \"template-bearing\",\n template: frozenState.template,\n commands: [...frozenCommands, declaration],\n setupHooks,\n teardownHooks,\n }, lifecycle);\n },\n setup(hook: SandboxHook): SandboxLayer {\n if (typeof hook !== \"function\")\n throw new TypeError(\"sandbox setup hook must be a function\");\n return frozenState.kind === \"command-only\"\n ? createLayer({ kind: \"command-only\", commands: frozenCommands, setupHooks: [...setupHooks, hook], teardownHooks }, \"instance-lifecycle\")\n : createLayer({ kind: \"template-bearing\", template: frozenState.template, commands: frozenCommands, setupHooks: [...setupHooks, hook], teardownHooks }, \"instance-lifecycle\");\n },\n teardown(hook: SandboxHook): SandboxLayer {\n if (typeof hook !== \"function\")\n throw new TypeError(\"sandbox teardown hook must be a function\");\n return frozenState.kind === \"command-only\"\n ? createLayer({ kind: \"command-only\", commands: frozenCommands, setupHooks, teardownHooks: [...teardownHooks, hook] }, \"instance-lifecycle\")\n : createLayer({ kind: \"template-bearing\", template: frozenState.template, commands: frozenCommands, setupHooks, teardownHooks: [...teardownHooks, hook] }, \"instance-lifecycle\");\n },\n } as SandboxLayerRuntime<SandboxLayerKind, SandboxLayerLifecycle>;\n Object.defineProperty(layer, SANDBOX_LAYER, { value: frozenState.kind });\n Object.defineProperty(layer, SANDBOX_LAYER_LIFECYCLE, { value: lifecycle });\n SANDBOX_LAYERS.add(layer);\n SANDBOX_LAYER_STATES.set(layer, frozenState);\n return Object.freeze(layer);\n}\nexport function sandboxLayer(): SandboxLayer<\"command-only\", \"prepare-only\"> {\n return createLayer({ kind: \"command-only\", commands: [], setupHooks: [], teardownHooks: [] }, \"prepare-only\");\n}\n/** @internal Provider factory 用它一次性绑定纯数据声明与 Effect planner。 */\nexport function defineSandboxTemplate(definition: SandboxTemplateDefinition): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n const provider = nonEmptyString(definition.provider, \"sandbox template.provider\");\n const kind = nonEmptyString(definition.kind, \"sandbox template.kind\");\n const declaration = Object.freeze({\n provider,\n kind,\n identity: freezeJson({\n version: 2,\n provider,\n kind,\n publishable: freezeJson(definition.publishableIdentity),\n privateIdentityDigest: digestOf(definition.privateFingerprintIdentity),\n }),\n leakGate: freezeLeakGate(definition.leakGate),\n });\n SANDBOX_TEMPLATE_PLANNERS.set(declaration, definition.plan);\n SANDBOX_TEMPLATE_COMMAND_PLAN_LOCATORS.set(declaration, freezeCommandPlanLocator(definition.commandPlanLocator));\n return createLayer({ kind: \"template-bearing\", template: declaration, commands: [], setupHooks: [], teardownHooks: [] }, \"prepare-only\");\n}\nfunction sharedScheduling(laneKey: string, recommendedConcurrency: number): SandboxProviderScheduling {\n return Object.freeze({\n recommendedConcurrency,\n lane: Object.freeze({ key: laneKey, limit: recommendedConcurrency }),\n admission: Object.freeze({ _tag: \"Shared\" }),\n });\n}\nfunction exclusiveScheduling(laneKey: string): SandboxProviderScheduling {\n return Object.freeze({\n recommendedConcurrency: 1,\n lane: Object.freeze({ key: laneKey, limit: 1 }),\n admission: Object.freeze({ _tag: \"Exclusive\" }),\n });\n}\nfunction standardLinuxTarget(): SandboxPlannedTarget {\n return Object.freeze({\n platform: Object.freeze({ _tag: \"Linux\", os: \"linux\", arch: \"x64\", libc: \"gnu\" }),\n source: \"provider-standard\",\n });\n}\nfunction providerBuildPlan(input: Parameters<typeof computeCaseKey>[0]): SandboxProviderBuildPlan {\n const buildKeys = [...input.buildKeys].sort();\n const caseKey = computeCaseKey(input);\n return buildKeys.length === 0\n ? Object.freeze({ _tag: \"None\", caseKey, buildKeys: [] as const })\n : Object.freeze({\n _tag: \"Required\",\n caseKey,\n buildKeys: freezeSortedNonEmptyBuildKeys(buildKeys, \"provider build collection.buildKeys\"),\n });\n}\n/** 将动态 provider 输入收敛为 Required 完成态:非空不变量必须在这里验证,不能靠 tuple 断言伪造。 */\nfunction freezeSortedNonEmptyBuildKeys(buildKeys: readonly BuildKey[], path: string): readonly [\n BuildKey,\n ...BuildKey[]\n] {\n const [first, ...rest] = [...buildKeys].sort();\n if (first === undefined)\n throw new TypeError(`${path} must contain at least one BuildKey when _tag is Required`);\n return Object.freeze(nonEmptyBuildKeys(first, rest));\n}\nfunction nonEmptyBuildKeys(first: BuildKey, rest: readonly BuildKey[]): [\n BuildKey,\n ...BuildKey[]\n] {\n return [first, ...rest];\n}\nexport type SandboxExecutionUser = {\n readonly _tag: \"EnvironmentDefault\";\n} | {\n readonly _tag: \"Configured\";\n readonly value: string;\n};\nexport type SandboxProviderLifetime = {\n readonly _tag: \"ProviderDefault\";\n} | {\n readonly _tag: \"Configured\";\n readonly milliseconds: number;\n};\nexport interface DockerComposeProviderPlan {\n readonly file: SandboxLocation;\n readonly workspaceService: string;\n readonly build: \"on-demand\" | \"prebuilt\";\n readonly user: SandboxExecutionUser;\n readonly env: Readonly<Record<string, string>>;\n readonly collection: ComposeBuildCollection;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface DockerfileProviderPlan {\n readonly context: SandboxLocation;\n readonly dockerfile: string;\n readonly buildArgs: Readonly<Record<string, string>>;\n readonly profile?: string;\n readonly profileBinding?: DockerProfileRuntimeBinding;\n readonly target?: string;\n readonly readiness?: DockerSandboxReadiness;\n readonly user: SandboxExecutionUser;\n readonly privileged: \"disabled\" | \"raw\" | \"rootless\";\n readonly dockerAccess?: DockerSandboxAccess;\n readonly resources: Readonly<DockerSandboxResources>;\n readonly build: DockerfileBuildIdentity;\n readonly buildKey: BuildKey;\n readonly platform: string;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface DockerImageProviderPlan {\n readonly image: string;\n readonly profile?: string;\n readonly profileBinding?: DockerProfileRuntimeBinding;\n readonly readiness?: DockerSandboxReadiness;\n readonly user: SandboxExecutionUser;\n readonly privileged: \"disabled\" | \"raw\" | \"rootless\";\n readonly dockerAccess?: DockerSandboxAccess;\n readonly resources: Readonly<DockerSandboxResources>;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface E2BProviderPlan {\n readonly template: string;\n readonly user: SandboxExecutionUser;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface VercelProviderPlan {\n readonly snapshotId: string;\n readonly lifetime: SandboxProviderLifetime;\n readonly pathPrepend: readonly string[];\n}\nexport interface CustomProviderPlan {\n readonly name: string;\n}\nexport interface CustomCaseProviderPlan {\n readonly identity: JsonValue;\n readonly services: {\n readonly _tag: \"Supported\";\n } | {\n readonly _tag: \"Unsupported\";\n };\n}\nfunction loadProviderRuntime() {\n return Effect.promise(() => __niceevalDynamicImport(\"./runtime.cjs\"));\n}\nconst noBuildPreparation = (): Effect.Effect<Option.Option<SandboxRuntimeBuildPreparation>> => Effect.succeed(Option.none());\nconst dockerComposeProviderModule = Object.freeze({\n id: \"niceeval/docker-compose\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeDockerComposeProviderPlan(plan, context)),\n collectBuildPreparation: (plan, published, evalId) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.collectDockerComposeProviderBuildPreparation(plan, published, evalId)),\n} satisfies SandboxProviderModule<DockerComposeProviderPlan>);\nconst dockerfileProviderModule = Object.freeze({\n id: \"niceeval/dockerfile\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeDockerfileProviderPlan(plan, context)),\n collectBuildPreparation: (plan, published, evalId) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.collectDockerfileProviderBuildPreparation(plan, published, evalId)),\n} satisfies SandboxProviderModule<DockerfileProviderPlan>);\n/** tmpfs / 只读 rootfs 的状态不会跨 stop/restart 保留,不能向 --keep-sandbox 宣称 Suspendable。 */\nconst dockerfileEphemeralProviderModule = Object.freeze({\n ...dockerfileProviderModule,\n id: \"niceeval/dockerfile-ephemeral\",\n capabilities: Object.freeze({\n ...dockerfileProviderModule.capabilities,\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n }),\n} satisfies SandboxProviderModule<DockerfileProviderPlan>);\nconst dockerImageProviderModule = Object.freeze({\n id: \"niceeval/docker-image\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeDockerImageProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<DockerImageProviderPlan>);\nconst dockerImageEphemeralProviderModule = Object.freeze({\n ...dockerImageProviderModule,\n id: \"niceeval/docker-image-ephemeral\",\n capabilities: Object.freeze({\n ...dockerImageProviderModule.capabilities,\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n }),\n} satisfies SandboxProviderModule<DockerImageProviderPlan>);\nconst e2bProviderModule = Object.freeze({\n id: \"niceeval/e2b-template\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({\n _tag: \"ProviderValidated\",\n reason: \"E2B validates lifetimeMs against the active account tier when the sandbox is created or renewed.\",\n }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeE2BProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<E2BProviderPlan>);\nconst vercelProviderModule = Object.freeze({\n id: \"niceeval/vercel-snapshot\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"Suspendable\" }),\n reuse: Object.freeze({ _tag: \"Supported\" }),\n sessionLimit: Object.freeze({\n _tag: \"ProviderValidated\",\n reason: \"Vercel validates lifetimeMs against the active project plan when the sandbox session is created or extended.\",\n }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeVercelProviderPlan(plan, context)),\n collectBuildPreparation: noBuildPreparation,\n} satisfies SandboxProviderModule<VercelProviderPlan>);\nfunction customProviderModule(name: string, create: CustomProviderSandboxOptions[\"create\"]): SandboxProviderModule<CustomProviderPlan> {\n return Object.freeze({\n id: `custom-provider:${name}`,\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Unsupported\", reason: \"custom provider has no reset contract\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeCustomProviderPlan(plan, context, create)),\n collectBuildPreparation: noBuildPreparation,\n } satisfies SandboxProviderModule<CustomProviderPlan>);\n}\nfunction customCaseProviderModule(materialize: CustomCaseSandboxOptions[\"materialize\"]): SandboxProviderModule<CustomCaseProviderPlan> {\n return Object.freeze({\n id: \"custom-case\",\n capabilities: Object.freeze({\n retention: Object.freeze({ _tag: \"DestroyOnly\" }),\n reuse: Object.freeze({ _tag: \"Unsupported\", reason: \"custom case has no reset contract\" }),\n sessionLimit: Object.freeze({ _tag: \"Unlimited\" }),\n }),\n materialize: (plan, context) => Effect.flatMap(loadProviderRuntime(), (runtime) => runtime.materializeCustomCaseProviderPlan(plan, context, materialize)),\n collectBuildPreparation: noBuildPreparation,\n } satisfies SandboxProviderModule<CustomCaseProviderPlan>);\n}\n/** Built-in factory 集合只属于 provider 侧;测试通过 services 注入,不改全局状态。 */\nexport function createBuiltinSandboxFactories(services: BuiltinSandboxPlannerServices): BuiltinSandboxFactories {\n const dockerTarget = (): Effect.Effect<SandboxPlannedTarget, SandboxProviderPlanningError> => Effect.flatMap(services.dockerBuildPlatform, targetFromDocker);\n const dockerTargetForProfile = (profile: string | undefined, privileged: \"disabled\" | \"raw\" | \"rootless\", resources: Readonly<DockerSandboxResources>): Effect.Effect<{\n readonly target: SandboxPlannedTarget;\n readonly profileBinding?: DockerProfileRuntimeBinding;\n }, SandboxProviderPlanningError> => profile === undefined\n ? Effect.map(dockerTarget(), (target) => ({ target }))\n : Effect.flatMap(Effect.tryPromise({\n try: async () => (await __niceevalDynamicImport(\"./docker-profile/runtime.cjs\")).attestDockerProfile(profile),\n catch: (cause) => providerPlanningError(\"sandbox.docker-profile-attestation-failed\", \"docker\", cause instanceof Error ? cause.message : String(cause), [`Run niceeval docker profile doctor ${profile}.`]),\n }), (profileBinding) => {\n const rawStorage = profileBinding.profile.securityLevel === \"raw-dind-storage/v1\";\n if ((privileged === \"raw\") !== rawStorage) {\n return Effect.fail(providerPlanningError(\"sandbox.docker-profile-attestation-failed\", \"docker\", privileged === \"raw\"\n ? `Docker storage profile ${profile} must declare raw-dind-storage/v1`\n : `Managed Docker profile ${profile} must declare a managed rootless security level`, [`Run niceeval docker profile doctor ${profile}.`]));\n }\n const capacity = profileBinding.profile.capacity;\n if ((resources.cpus ?? 0) > capacity.cpus ||\n (resources.memoryBytes ?? 0) > capacity.memoryBytes ||\n (resources.pidsLimit ?? 0) > capacity.pids ||\n (resources.dockerDataBytes ?? 0) > capacity.ephemeralDiskBytes) {\n return Effect.fail(providerPlanningError(\"sandbox.docker-profile-attestation-failed\", \"docker\", `Docker profile ${profile} does not have capacity for the declared container resource vector`, [`Reduce resources or select another Docker profile.`]));\n }\n return Effect.map(targetFromDocker(profileBinding.platform), (target) => ({ target, profileBinding }));\n });\n return Object.freeze({\n dockerComposeSandbox(options: DockerComposeSandboxOptions) {\n assertRecord(options, \"dockerComposeSandbox options\");\n assertOnlyKeys(options, [\"file\", \"workspaceService\", \"build\", \"user\", \"env\", \"credentialEnv\", \"lifetimeMs\", \"pathPrepend\"], \"dockerComposeSandbox options\");\n if (options.build !== undefined && options.build !== \"on-demand\" && options.build !== \"prebuilt\") {\n throw new TypeError('dockerComposeSandbox options.build must be \"on-demand\" or \"prebuilt\"');\n }\n const file = location(options.file, \"dockerComposeSandbox options.file\");\n const fileLocator = configuredLocationField(\"file\", file);\n const workspaceService = nonEmptyString(options.workspaceService, \"dockerComposeSandbox options.workspaceService\");\n const build = options.build === undefined ? \"on-demand\" : options.build;\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"dockerComposeSandbox options.user\") };\n const env = stringRecord(options.env, \"dockerComposeSandbox options.env\");\n const credentialEnv = credentialEnvRecord(options.credentialEnv, \"dockerComposeSandbox options.credentialEnv\");\n for (const key of Object.keys(credentialEnv)) {\n if (key in env)\n throw new TypeError(`dockerComposeSandbox env and credentialEnv both define ${JSON.stringify(key)}`);\n }\n const credentialIdentity: globalThis.Record<string, JsonValue> = Object.fromEntries(Object.entries(credentialEnv).map(([name, credential]): readonly [\n string,\n JsonValue\n ] => [\n name,\n credential.revision === undefined ? {} : { revision: credential.revision },\n ]));\n const runtimeEnv = {\n ...env,\n ...Object.fromEntries(Object.entries(credentialEnv).map(([name, credential]) => [name, credential.value])),\n };\n const plannedLifetime = lifetime(options.lifetimeMs, \"dockerComposeSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"dockerComposeSandbox options.pathPrepend\");\n const identity: JsonValue = {\n provider: \"docker\",\n kind: \"compose\",\n file,\n workspaceService,\n build,\n user,\n env: { ...env },\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n return defineSandboxTemplate({\n provider: \"docker\",\n kind: \"compose\",\n publishableIdentity: {\n workspaceService,\n build,\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n envKeys: Object.keys(env).sort(),\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: identity,\n commandPlanLocator: fileLocator === undefined\n ? configuredPathLocator()\n : configuredLocator([fileLocator.field, { name: \"workspaceService\", value: workspaceService }], fileLocator.redaction === undefined ? [] : [fileLocator.redaction]),\n leakGate: { _tag: \"Compose\", file, workspaceService },\n plan: ({ authorBaseDir }) => Effect.flatMap(dockerTarget(), (target) => Effect.gen(function* () {\n const plannedFile = yield* Effect.try({\n try: () => plannedLocation(file, authorBaseDir),\n catch: (cause) => providerPlanningError(\"sandbox.case-identity-unavailable\", \"docker\", cause instanceof Error ? cause.message : String(cause), [\"Make the Compose file and every filtered build context readable during physical planning.\"]),\n });\n const collection = yield* collectComposeBuilds({\n file: plannedFile._tag === \"Url\" ? new URL(plannedFile.value) : plannedFile.value,\n mainService: workspaceService,\n platform: plannedTargetPlatform(target),\n env: runtimeEnv,\n }).pipe(Effect.mapError((cause) => providerPlanningError(\"sandbox.case-identity-unavailable\", \"docker\", cause.message, [\"Make the Compose file and every filtered build context readable during physical planning.\"])));\n const caseIdentity = composeCollectionIdentity(collection);\n const identityInput: JsonValue = {\n file: plannedFile,\n workspaceService,\n build,\n user,\n env: { ...env },\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n plannedBuildKeys: [...collection.buildKeys].sort(),\n plannedCaseIdentityDigest: digestOf(caseIdentity),\n };\n return sandboxProviderPlan({\n provider: \"docker\",\n plannerRevision: COMPOSE_MATERIALIZER_REVISION,\n caseKind: \"compose\",\n target,\n scheduling: sharedScheduling(\"docker\", 10),\n module: dockerComposeProviderModule,\n build: providerBuildPlan({\n caseKind: \"compose\",\n materializerRevision: COMPOSE_MATERIALIZER_REVISION,\n composeBytes: collection.composeBytes,\n buildKeys: collection.buildKeys,\n serviceImageRefs: collection.imageRefs,\n bindMountDigests: collection.bindMountDigests,\n configContents: collection.configContents,\n caseParams: identityInput,\n }),\n runtimePlan: Object.freeze({\n file: plannedFile,\n workspaceService,\n build,\n user: Object.freeze({ ...user }),\n env: Object.freeze({ ...runtimeEnv }),\n collection,\n lifetime: plannedLifetime,\n pathPrepend,\n }),\n publishableIdentity: {\n workspaceService,\n build,\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n envKeys: Object.keys(env).sort(),\n credentialEnv: credentialIdentity,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n ...(caseIdentity as Record<string, JsonValue>),\n },\n privateFingerprintIdentity: {\n identityInput,\n caseIdentity,\n },\n identityMarker: collection.providerIdentityMarker,\n });\n })),\n });\n },\n dockerfileSourceLayer(options: DockerfileSourceOptions) {\n assertRecord(options, \"dockerSandbox options\");\n assertOnlyKeys(options, [\"context\", \"dockerfile\", \"buildArgs\", \"profile\", \"target\", \"user\", \"privileged\", \"dockerAccess\", \"resources\", \"readiness\", \"lifetimeMs\", \"pathPrepend\"], \"dockerSandbox options\");\n const context = location(options.context, \"dockerSandbox options.source.context\");\n const contextLocator = configuredLocationField(\"context\", context);\n const dockerfile = options.dockerfile === undefined\n ? \"Dockerfile\"\n : nonEmptyString(options.dockerfile, \"dockerSandbox options.source.file\");\n const buildArgs = stringRecord(options.buildArgs, \"dockerSandbox options.source.buildArgs\");\n const accessConfig = dockerAccessConfiguration(options.dockerAccess, options.profile, options.privileged, \"dockerSandbox options.dockerAccess\");\n const { access, profile, privileged } = accessConfig;\n const targetStage = options.target === undefined\n ? undefined\n : nonEmptyString(options.target, \"dockerSandbox options.source.target\");\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"dockerSandbox options.user\") };\n const resources = dockerResourcesForProfile(profile, privileged, options.resources, \"dockerSandbox options.resources\");\n const readiness = dockerReadinessForAccess(access, options.readiness, \"dockerSandbox options.readiness\");\n const plannedLifetime = lifetime(options.lifetimeMs, \"dockerSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"dockerSandbox options.pathPrepend\");\n const identity: JsonValue = {\n provider: \"docker\",\n kind: \"dockerfile\",\n context,\n dockerfile,\n buildArgs: { ...buildArgs },\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n return defineSandboxTemplate({\n provider: \"docker\",\n kind: \"dockerfile\",\n publishableIdentity: {\n buildArgKeys: Object.keys(buildArgs).sort(),\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: identity,\n commandPlanLocator: contextLocator === undefined || options.dockerfile !== undefined\n ? configuredPathLocator()\n : configuredLocator([\n contextLocator.field,\n { name: \"file\", value: dockerfile },\n ...(targetStage === undefined ? [] : [{ name: \"target\" as const, value: targetStage }]),\n ], contextLocator.redaction === undefined ? [] : [contextLocator.redaction]),\n leakGate: { _tag: \"Dockerfile\", context, dockerfile },\n plan: ({ authorBaseDir }) => Effect.flatMap(dockerTargetForProfile(profile, privileged, resources), ({ target, profileBinding }) => Effect.gen(function* () {\n const plannedContext = yield* Effect.try({\n try: () => plannedLocation(context, authorBaseDir),\n catch: (cause) => providerPlanningError(\"sandbox.build-identity-unavailable\", \"docker\", cause instanceof Error ? cause.message : String(cause), [\"Make the Dockerfile and its filtered build context readable during physical planning.\"]),\n });\n const build = yield* resolveDockerfileBuildIdentity({\n provider: \"docker\",\n context: plannedContext._tag === \"Url\" ? new URL(plannedContext.value) : plannedContext.value,\n dockerfile,\n buildArgs,\n ...(targetStage === undefined ? {} : { target: targetStage }),\n platform: plannedTargetPlatform(target),\n label: \"Dockerfile sandbox\",\n }).pipe(Effect.mapError((cause) => providerPlanningError(\"sandbox.build-identity-unavailable\", \"docker\", cause.message, [\"Make the Dockerfile and its filtered build context readable during physical planning.\"])));\n const runtimeIdentity: JsonValue = {\n context: plannedContext,\n dockerfile,\n buildArgs: { ...buildArgs },\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n plannedBuildKey: build.buildKey,\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n return sandboxProviderPlan({\n provider: \"docker\",\n plannerRevision: DOCKERFILE_PROVIDER_PLANNER_REVISION,\n caseKind: \"on-demand-build\",\n target,\n scheduling: sharedScheduling(\"docker\", 10),\n module: dockerRequiresDestroyOnly(resources)\n ? dockerfileEphemeralProviderModule\n : dockerfileProviderModule,\n build: providerBuildPlan({\n caseKind: \"on-demand-build\",\n materializerRevision: DOCKERFILE_MATERIALIZER_REVISION,\n buildKeys: [build.buildKey],\n caseParams: {\n provider: \"docker\",\n buildKey: build.buildKey,\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n }),\n runtimePlan: Object.freeze({\n context: plannedContext,\n dockerfile,\n buildArgs,\n ...(profile === undefined ? {} : { profile }),\n ...(profileBinding === undefined ? {} : { profileBinding }),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n ...(readiness === undefined ? {} : { readiness }),\n user: Object.freeze({ ...user }),\n privileged,\n ...(access === undefined ? {} : { dockerAccess: access }),\n resources,\n build,\n buildKey: build.buildKey,\n platform: plannedTargetPlatform(target),\n lifetime: plannedLifetime,\n pathPrepend,\n }),\n publishableIdentity: {\n buildArgKeys: Object.keys(buildArgs).sort(),\n user: { _tag: options.user === undefined ? \"EnvironmentDefault\" : \"Configured\" },\n ...dockerRuntimeIdentity(privileged, resources, access),\n buildKey: build.buildKey,\n ...(profileBinding === undefined ? {} : {\n dockerProfile: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: {\n runtimeIdentity,\n buildKey: build.buildKey,\n ...dockerRuntimeIdentity(privileged, resources, access),\n ...(targetStage === undefined ? {} : { target: targetStage }),\n readiness: readinessIdentity(readiness),\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n },\n identityMarker: build.providerIdentityMarker,\n });\n })),\n });\n },\n dockerImageSourceLayer(options: DockerImageSourceOptions) {\n assertRecord(options, \"dockerSandbox options\");\n assertOnlyKeys(options, [\"image\", \"profile\", \"user\", \"privileged\", \"dockerAccess\", \"resources\", \"readiness\", \"lifetimeMs\", \"pathPrepend\"], \"dockerSandbox options\");\n const image = nonEmptyString(options.image, \"dockerSandbox options.source.image\");\n const accessConfig = dockerAccessConfiguration(options.dockerAccess, options.profile, options.privileged, \"dockerSandbox options.dockerAccess\");\n const { access, profile, privileged } = accessConfig;\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"dockerSandbox options.user\") };\n const resources = dockerResourcesForProfile(profile, privileged, options.resources, \"dockerSandbox options.resources\");\n const readiness = dockerReadinessForAccess(access, options.readiness, \"dockerSandbox options.readiness\");\n const plannedLifetime = lifetime(options.lifetimeMs, \"dockerSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"dockerSandbox options.pathPrepend\");\n const identity: JsonValue = {\n provider: \"docker\",\n kind: \"image\",\n image,\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n };\n const publishedUser = { _tag: options.user === undefined ? \"EnvironmentDefault\" as const : \"Configured\" as const };\n return defineSandboxTemplate({\n provider: \"docker\",\n kind: \"image\",\n publishableIdentity: {\n source: \"configured-image\",\n user: publishedUser,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: identity,\n commandPlanLocator: configuredDockerImageLocator(image),\n leakGate: { _tag: \"None\" },\n plan: () => Effect.map(dockerTargetForProfile(profile, privileged, resources), ({ target, profileBinding }) => {\n return sandboxProviderPlan({\n provider: \"docker\",\n plannerRevision: DOCKER_IMAGE_PROVIDER_REVISION,\n caseKind: \"prebuilt\",\n target,\n scheduling: sharedScheduling(\"docker\", 10),\n module: dockerRequiresDestroyOnly(resources)\n ? dockerImageEphemeralProviderModule\n : dockerImageProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: DOCKER_IMAGE_PROVIDER_REVISION,\n buildKeys: [],\n caseParams: {\n image,\n user,\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n }),\n runtimePlan: Object.freeze({\n image,\n ...(profile === undefined ? {} : { profile }),\n ...(profileBinding === undefined ? {} : { profileBinding }),\n ...(readiness === undefined ? {} : { readiness }),\n user: Object.freeze({ ...user }),\n privileged,\n ...(access === undefined ? {} : { dockerAccess: access }),\n resources,\n lifetime: plannedLifetime,\n pathPrepend,\n }),\n publishableIdentity: {\n source: \"configured-image\",\n user: publishedUser,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n privateFingerprintIdentity: {\n image,\n user,\n ...dockerRuntimeIdentity(privileged, resources, access),\n readiness: readinessIdentity(readiness),\n ...(profileBinding === undefined ? {} : {\n dockerProfilePolicy: {\n securityLevel: profileBinding.profile.securityLevel,\n semanticPolicyRevision: profileBinding.profile.semanticPolicyRevision,\n },\n }),\n lifetime: plannedLifetime,\n ...pathPrependIdentityField(pathPrepend),\n },\n identityMarker: looksLikeDigestRef(image)\n ? undefined\n : unresolvedProviderFingerprintMarker(\"sandbox.image-unresolved\", \"Docker image is not pinned to a sha256 digest.\"),\n });\n }),\n });\n },\n e2bSandbox(options: E2BSandboxOptions) {\n assertRecord(options, \"e2bSandbox options\");\n assertOnlyKeys(options, [\"template\", \"user\", \"lifetimeMs\", \"pathPrepend\"], \"e2bSandbox options\");\n const template = nonEmptyString(options.template, \"e2bSandbox options.template\");\n const user: SandboxExecutionUser = options.user === undefined\n ? { _tag: \"EnvironmentDefault\" }\n : { _tag: \"Configured\", value: nonEmptyString(options.user, \"e2bSandbox options.user\") };\n const publishedUser = { _tag: options.user === undefined ? \"EnvironmentDefault\" as const : \"Configured\" as const };\n const plannedLifetime = lifetime(options.lifetimeMs, \"e2bSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"e2bSandbox options.pathPrepend\");\n const identity: JsonValue = { provider: \"e2b\", kind: \"template\", template, user, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) };\n return defineSandboxTemplate({\n provider: \"e2b\",\n kind: \"template\",\n publishableIdentity: { user: publishedUser, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: identity,\n commandPlanLocator: opaqueConfiguredLocator(\"e2b-template-locator-unsafe-to-display\", \"E2B template locator is omitted because provider identifiers may contain credentials\"),\n leakGate: { _tag: \"None\" },\n plan: () => {\n return Effect.succeed(sandboxProviderPlan({\n provider: \"e2b\",\n plannerRevision: \"e2b-template-1\",\n caseKind: \"prebuilt\",\n target: standardLinuxTarget(),\n scheduling: sharedScheduling(\"e2b\", 20),\n module: e2bProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: \"e2b-template-1\",\n buildKeys: [],\n caseParams: { template, user, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }),\n runtimePlan: Object.freeze({ template, user: Object.freeze({ ...user }), lifetime: plannedLifetime, pathPrepend }),\n publishableIdentity: { user: publishedUser, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: { template, user, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }));\n },\n });\n },\n vercelSandbox(options: VercelSandboxOptions) {\n assertRecord(options, \"vercelSandbox options\");\n assertOnlyKeys(options, [\"snapshotId\", \"lifetimeMs\", \"pathPrepend\"], \"vercelSandbox options\");\n const snapshotId = nonEmptyString(options.snapshotId, \"vercelSandbox options.snapshotId\");\n const plannedLifetime = lifetime(options.lifetimeMs, \"vercelSandbox options.lifetimeMs\");\n const pathPrepend = pathPrependList(options.pathPrepend, \"vercelSandbox options.pathPrepend\");\n const identity: JsonValue = { provider: \"vercel\", kind: \"snapshot\", snapshotId, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) };\n return defineSandboxTemplate({\n provider: \"vercel\",\n kind: \"snapshot\",\n publishableIdentity: { lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: identity,\n commandPlanLocator: opaqueConfiguredLocator(\"vercel-snapshot-locator-unsafe-to-display\", \"Vercel snapshot locator is omitted because provider identifiers may contain credentials\"),\n leakGate: { _tag: \"None\" },\n plan: () => {\n return Effect.succeed(sandboxProviderPlan({\n provider: \"vercel\",\n plannerRevision: \"vercel-snapshot-1\",\n caseKind: \"prebuilt\",\n target: standardLinuxTarget(),\n scheduling: sharedScheduling(\"vercel\", 1),\n module: vercelProviderModule,\n build: providerBuildPlan({\n caseKind: \"prebuilt\",\n materializerRevision: \"vercel-snapshot-1\",\n buildKeys: [],\n caseParams: { snapshotId, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }),\n runtimePlan: Object.freeze({ snapshotId, lifetime: plannedLifetime, pathPrepend }),\n publishableIdentity: { lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n privateFingerprintIdentity: { snapshotId, lifetime: plannedLifetime, ...pathPrependIdentityField(pathPrepend) },\n }));\n },\n });\n },\n });\n}\nconst LIVE_FACTORIES = createBuiltinSandboxFactories({\n dockerBuildPlatform: Effect.tryPromise({\n try: () => detectDockerBuildPlatform(),\n catch: (cause) => providerPlanningError(\"sandbox.target-platform-unavailable\", \"docker\", cause instanceof Error ? cause.message : String(cause), [\"Make the Docker control plane available or set DOCKER_DEFAULT_PLATFORM.\"]),\n }),\n});\nexport const dockerComposeSandbox = LIVE_FACTORIES.dockerComposeSandbox;\nconst dockerfileSourceLayer = LIVE_FACTORIES.dockerfileSourceLayer;\nconst dockerImageSourceLayer = LIVE_FACTORIES.dockerImageSourceLayer;\nexport const e2bSandbox = LIVE_FACTORIES.e2bSandbox;\nexport const vercelSandbox = LIVE_FACTORIES.vercelSandbox;\n/**\n * 统一的单容器 Docker factory。Docker access用判别联合选择显式socket、raw DinD或managed DinD;\n * 宿主路径/profile只保存到私有runtime binding。本函数不连接Docker,provider接线由后续层负责。\n */\nexport function dockerSandbox(options: DockerSandboxOptions): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n assertRecord(options, \"dockerSandbox options\");\n assertOnlyKeys(options, [\"source\", \"dockerAccess\", \"resources\", \"user\", \"readiness\", \"lifetimeMs\", \"pathPrepend\"], \"dockerSandbox options\");\n const source = options.source;\n assertRecord(source, \"dockerSandbox options.source\");\n if (source.type === \"image\") {\n assertOnlyKeys(source, [\"type\", \"image\"], \"dockerSandbox options.source\");\n const access = dockerAccess(options.dockerAccess, \"dockerSandbox options.dockerAccess\");\n const resources = access?.mode === \"dind\" && access.isolation === \"managed-rootless\"\n ? managedDockerResources(options.resources, \"dockerSandbox options.resources\")\n : options.resources;\n return dockerImageSourceLayer({\n image: nonEmptyString(source.image, \"dockerSandbox options.source.image\"),\n ...(options.user === undefined ? {} : { user: options.user }),\n ...(access === undefined ? {} : { dockerAccess: access }),\n ...(resources === undefined ? {} : { resources }),\n ...(options.readiness === undefined ? {} : { readiness: options.readiness }),\n ...(options.lifetimeMs === undefined ? {} : { lifetimeMs: options.lifetimeMs }),\n ...(options.pathPrepend === undefined ? {} : { pathPrepend: options.pathPrepend }),\n });\n }\n if (source.type === \"dockerfile\") {\n assertOnlyKeys(source, [\"type\", \"context\", \"file\", \"buildArgs\", \"target\"], \"dockerSandbox options.source\");\n const access = dockerAccess(options.dockerAccess, \"dockerSandbox options.dockerAccess\");\n const resources = access?.mode === \"dind\" && access.isolation === \"managed-rootless\"\n ? managedDockerResources(options.resources, \"dockerSandbox options.resources\")\n : options.resources;\n return dockerfileSourceLayer({\n context: source.context,\n ...(source.file === undefined ? {} : { dockerfile: source.file }),\n ...(source.buildArgs === undefined ? {} : { buildArgs: source.buildArgs }),\n ...(source.target === undefined ? {} : { target: source.target }),\n ...(options.user === undefined ? {} : { user: options.user }),\n ...(access === undefined ? {} : { dockerAccess: access }),\n ...(resources === undefined ? {} : { resources }),\n ...(options.readiness === undefined ? {} : { readiness: options.readiness }),\n ...(options.lifetimeMs === undefined ? {} : { lifetimeMs: options.lifetimeMs }),\n ...(options.pathPrepend === undefined ? {} : { pathPrepend: options.pathPrepend }),\n });\n }\n throw dockerProfileError({\n code: \"sandbox.docker-profile-schema-invalid\",\n path: \"dockerSandbox options.source.type\",\n message: `dockerSandbox source type ${JSON.stringify(source.type)} is unsupported`,\n });\n}\nexport function customProviderSandbox(options: CustomProviderSandboxOptions): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n assertRecord(options, \"defineSandbox options\");\n assertOnlyKeys(options, [\"name\", \"targetPlatform\", \"recommendedConcurrency\", \"exclusive\", \"create\"], \"defineSandbox options\");\n if (typeof options.create !== \"function\")\n throw new TypeError(\"defineSandbox options.create must be a function\");\n const name = nonEmptyString(options.name, \"defineSandbox options.name\");\n const targetPlatform = freezePlatform(options.targetPlatform);\n const recommendedConcurrency = options.recommendedConcurrency ?? 5;\n const scheduling = options.exclusive === true\n ? exclusiveScheduling(name)\n : sharedScheduling(name, recommendedConcurrency);\n const module = customProviderModule(name, options.create);\n const identity: JsonValue = {\n provider: name,\n kind: \"custom-provider\",\n targetPlatform: targetIdentity({ platform: targetPlatform, source: \"provider-defined\" }),\n scheduling: {\n recommendedConcurrency: scheduling.recommendedConcurrency,\n lane: { key: scheduling.lane.key, limit: scheduling.lane.limit },\n admission: { _tag: scheduling.admission._tag },\n },\n create: { _tag: \"OpaqueCallback\" },\n retention: { _tag: \"Unsupported\" },\n reuse: { _tag: \"Unsupported\" },\n };\n return defineSandboxTemplate({\n provider: name,\n kind: \"custom-provider\",\n publishableIdentity: {},\n privateFingerprintIdentity: identity,\n commandPlanLocator: {\n _tag: \"Opaque\",\n reason: {\n code: \"custom-provider-template\",\n summary: \"Custom provider owns its template locator and does not expose it to the command plan\",\n },\n },\n leakGate: { _tag: \"None\" },\n plan: () => Effect.succeed(sandboxProviderPlan({\n provider: name,\n plannerRevision: \"custom-provider-1\",\n caseKind: \"custom\",\n target: { platform: targetPlatform, source: \"provider-defined\" },\n scheduling,\n module,\n build: providerBuildPlan({\n caseKind: \"custom\",\n materializerRevision: \"custom-provider-1\",\n buildKeys: [],\n caseParams: identity,\n }),\n runtimePlan: Object.freeze({ name }),\n publishableIdentity: {},\n privateFingerprintIdentity: identity,\n identityMarker: unresolvedProviderFingerprintMarker(\"sandbox.custom-provider-opaque\", `custom provider ${JSON.stringify(name)} owns an opaque create callback; use defineSandboxCase({ identity, materialize }) for cross-Run carry.`),\n })),\n });\n}\nexport function defineSandboxCase(options: CustomCaseSandboxOptions): SandboxLayer<\"template-bearing\", \"prepare-only\"> {\n assertRecord(options, \"defineSandboxCase options\");\n assertOnlyKeys(options, [\"identity\", \"targetPlatform\", \"services\", \"materialize\"], \"defineSandboxCase options\");\n if (typeof options.materialize !== \"function\") {\n throw new TypeError(\"defineSandboxCase options.materialize must be a function\");\n }\n const targetPlatform = freezePlatform(options.targetPlatform);\n if (options.services === null ||\n typeof options.services !== \"object\" ||\n (options.services._tag !== \"Supported\" && options.services._tag !== \"Unsupported\") ||\n Object.keys(options.services).some((key) => key !== \"_tag\")) {\n throw new TypeError('defineSandboxCase options.services must be exactly { _tag: \"Supported\" } or { _tag: \"Unsupported\" }');\n }\n const services = Object.freeze({ _tag: options.services._tag });\n const identity = freezeJson(assertPureDataIdentity(options.identity));\n const module = customCaseProviderModule(options.materialize);\n const declarationIdentity: JsonValue = {\n provider: \"custom-case\",\n kind: \"custom-case\",\n identity,\n targetPlatform: targetIdentity({ platform: targetPlatform, source: \"provider-defined\" }),\n services: { _tag: services._tag },\n group: { _tag: \"Required\" },\n retention: { _tag: \"Unsupported\" },\n };\n return defineSandboxTemplate({\n provider: \"custom-case\",\n kind: \"custom-case\",\n publishableIdentity: {},\n privateFingerprintIdentity: declarationIdentity,\n commandPlanLocator: {\n _tag: \"Opaque\",\n reason: {\n code: \"custom-case-template\",\n summary: \"Custom Sandbox Case identity is private and has no configured template locator\",\n },\n },\n leakGate: { _tag: \"None\" },\n plan: () => Effect.succeed(sandboxProviderPlan({\n provider: \"custom-case\",\n plannerRevision: \"custom-case-1\",\n caseKind: \"custom\",\n target: { platform: targetPlatform, source: \"provider-defined\" },\n scheduling: sharedScheduling(\"custom-case\", 5),\n module,\n build: providerBuildPlan({\n caseKind: \"custom\",\n materializerRevision: \"custom-case-1\",\n buildKeys: [],\n caseParams: declarationIdentity,\n }),\n runtimePlan: Object.freeze({ identity, services }),\n publishableIdentity: {},\n privateFingerprintIdentity: declarationIdentity,\n })),\n });\n}\nexport function sandboxTemplateIdentity(template: SandboxTemplateDeclaration): JsonValue {\n return template.identity;\n}\n/** @internal Explicit command-plan projection only; never use this as provider or cache identity. */\nexport function sandboxTemplateCommandPlanLocator(template: SandboxTemplateDeclaration): SandboxTemplateCommandPlanLocator {\n return SANDBOX_TEMPLATE_COMMAND_PLAN_LOCATORS.get(template) ?? Object.freeze({\n _tag: \"Opaque\",\n reason: Object.freeze({\n code: \"sandbox-template-locator-missing\",\n summary: \"Sandbox template was not constructed with command-plan locator evidence\",\n }),\n });\n}\n/** physical planner 的唯一 callback 入口;link 不调用本函数。 */\nexport function planSandboxTemplate(template: SandboxTemplateDeclaration, input: SandboxTemplatePlanningInput): Effect.Effect<SandboxProviderPlan, SandboxProviderPlanningError> {\n if (!isAbsolute(input.authorBaseDir)) {\n return Effect.fail(providerPlanningError(\"sandbox.author-base-dir-invalid\", template.provider, `Sandbox template author baseDir must be absolute, got ${JSON.stringify(input.authorBaseDir)}.`, [\"Complete discovery before physical planning.\"]));\n }\n const planner = SANDBOX_TEMPLATE_PLANNERS.get(template);\n return planner === undefined\n ? Effect.fail(providerPlanningError(\"sandbox.template-planner-missing\", template.provider, `Sandbox template ${template.provider}:${template.kind} has no bound planner.`, [\"Construct templates through their provider factory.\"]))\n : planner(input);\n}\nexport function isSandboxLayer(value: unknown): value is SandboxLayer {\n if (value === null || typeof value !== \"object\")\n return false;\n if (!SANDBOX_LAYERS.has(value))\n return false;\n const candidate = value as Partial<SandboxLayerRuntime<SandboxLayerKind>>;\n const kind = candidate[SANDBOX_LAYER];\n const state = SANDBOX_LAYER_STATES.get(value);\n return ((kind === \"command-only\" || kind === \"template-bearing\") &&\n state?.kind === kind &&\n Array.isArray(state.commands) &&\n typeof candidate.prepare === \"function\");\n}\n/** 仅供 linker/fingerprint/runner 使用,不从 niceeval/sandbox 公开。 */\nexport function sandboxLayerStateOf(layer: SandboxLayer<\"command-only\">): CommandOnlySandboxLayerState;\nexport function sandboxLayerStateOf(layer: SandboxLayer<\"template-bearing\">): TemplateBearingSandboxLayerState;\nexport function sandboxLayerStateOf(layer: SandboxLayer): SandboxLayerState;\nexport function sandboxLayerStateOf(layer: SandboxLayer): SandboxLayerState {\n if (!isSandboxLayer(layer))\n throw new TypeError(\"sandbox must be a SandboxLayer factory product\");\n const state = SANDBOX_LAYER_STATES.get(layer);\n if (state === undefined)\n throw new TypeError(\"sandbox must be a SandboxLayer factory product\");\n return state;\n}\n"]}